解密方法
解密演算法指定用來解密 SOAP 訊息的資料和金鑰加密演算法。 用於解密的 WSS API (WSSDecryption) 指定資料和金鑰加密方法的演算法統一資源識別碼 (URI)。 WSSDecryption 介面是 com.ibm.websphere.wssecurity.wssapi.decryption 套件的一部分。
資料加密演算法
資料加密演算法是用來加密及解密資料的演算法。 此演算法類型用於加密資料,以加密及解密訊息的各個部分,包括內文內容及簽章。
資料解密演算法指定資料加密方法的演算法統一資源識別碼 (URI)。 WebSphere® Application Server 支援下列預先配置的資料解密演算法:
| WSS API | URI |
|---|---|
| WSSDecryption.AES128 (預設值) | 資料加密演算法的 URI AES 128: https://www.w3.org/2001/04/xmlenc#aes128-cbc |
| WSSDecryption.AES192 | 資料加密演算法的 URI AES 192: https://www.w3.org/2001/04/xmlenc#aes192-cbc |
| WSSDecryption.AES256 | 資料加密演算法的 URI , AES 256: https://www.w3.org/2001/04/xmlenc#aes256-cbc |
| WSSDecryption.TRIPLE_DES | 資料加密演算法 Triple des 的 URI: https://www.w3.org/2001/04/xmlenc#tripledes-cbc |
依預設, Java™ Cryptography Extension (JCE) 隨附有限或有限強度的密碼。 如果要使用 192 位元和 256 位元的進階加密標準 (AES) 加密演算法,您必須套用無限適用範圍的原則檔。
對於 AES256-cbc 和 AES192-cbc 演算法,您必須從下列網站下載未限定的 Java™ Cryptography Extension (JCE) 原則檔: https://www.ibm.com/devdeveloperworks/java/jdk/security/index.html。
資料加密演算法必須符合配置給消費者的資料解密演算法。
金鑰加密演算法
金鑰加密演算法是用來加密及解密金鑰的演算法。
此金鑰資訊用來指定產生數位簽章和加密的金鑰所需的配置。 簽署資訊和加密資訊配置可以共用金鑰資訊。 消費者端的金鑰資訊用於指定金鑰的相關資訊,該金鑰用於驗證所接收訊息中的數位簽章或解密訊息的已加密部分。 已針對用戶端配置要求產生者。
金鑰加密演算法指定金鑰加密方法的演算法統一資源識別碼 (URI)。 WebSphere Application Server 支援下列預先配置的金鑰加密演算法:
| WSS API | URI |
|---|---|
| WSSDecryption.KW_AES128 | 金鑰加密演算法的 URI ,金鑰包裝 AES 128: https://www.w3.org/2001/04/xmlenc#kw-aes128 |
| WSSDecryption.KW_AES192 | 金鑰加密演算法的 URI ,金鑰包裝 AES 192: https://www.w3.org/2001/04/xmlenc#kw-aes192 限制: 如果您想要已配置的應用程式符合「基本安全設定檔 (BSP)」,請不要使用 192 位元金鑰加密演算法。
|
| WSSDecryption.KW_AES256 | 金鑰加密演算法的 URI ,金鑰包裝 AES 256: https://www.w3.org/2001/04/xmlenc#kw-aes256 |
| WSSDecryption.KW_RSA_OAEP (預設值) | 金鑰加密演算法的 URI ,金鑰包裝 RSA OAEP: https://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
| WSSDecryption.KW_RSA15 | 金鑰加密演算法的 URI ,金鑰包裝 RSA 1.5: https://www.w3.org/2001/04/xmlenc#rsa-1_5 |
| WSSDecryption.KW_TRIPLE_DES | 資料加密演算法的 URI ,金鑰包裝 Triple des: https://www.w3.org/2001/04/xmlenc#kw-tripledes |
依預設,RSA-OAEP 演算法會利用 SHA1 訊息摘要演算法,將訊息摘要當作加密作業的一部分來計算。 您可以選擇性地指定金鑰加密演算法內容來使用 SHA256 或 SHA512 訊息摘要演算法。 內容名稱為 com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod。 內容值是摘要方法的下列 URI 之一: https://www.w3.org/2001/04/xmlenc#sha256
https://www.w3.org/2001/04/xmlenc#sha512
依預設,RSA-OAEP 演算法會在 OAEPParams 的選用性編碼八進位字串上,使用空值字串。 您可以指定金鑰加密演算法內容來提供明確的編碼八進位字串。 對於內容名稱,您可以指定 com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams。 內容值是八進位字串的基本 64 編碼值。
對於 kw-aes256 及 kw-aes192 金鑰加密演算法,您必須從下列網站下載未限定的 JCE 原則檔案: https://www.ibm.com/devdeveloperworks/java/jdk/security/index.html。
產生器和消費者的金鑰加密演算法必須相符。
下列範例提供用於 WebSphere Application Server 解密之預設演算法的 WSS API 程式碼範例:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Required to attach username token into the message.
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Set the decrypt component.
// Default encrypted part: Body-Content
// Default data encryption algorithm: AES128
// Default key encryption algorithm: KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// validate the WS-Security header.
concont.process(msgctx);