解密方法

解密演算法指定用來解密 SOAP 訊息的資料和金鑰加密演算法。 用於解密的 WSS API (WSSDecryption) 指定資料和金鑰加密方法的演算法統一資源識別碼 (URI)。 WSSDecryption 介面是 com.ibm.websphere.wssecurity.wssapi.decryption 套件的一部分。

資料加密演算法

資料加密演算法是用來加密及解密資料的演算法。 此演算法類型用於加密資料,以加密及解密訊息的各個部分,包括內文內容及簽章。

資料解密演算法指定資料加密方法的演算法統一資源識別碼 (URI)。 WebSphere® Application Server 支援下列預先配置的資料解密演算法:

表 1. 支援預先配置的資料解密演算法 這些演算法用來解密 SOAP 訊息。
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 支援下列預先配置的金鑰加密演算法:

表 2. 支援的預先配置金鑰加密演算法 這些演算法用來解密 SOAP 訊息。
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 編碼值。

重要事項: 您只能在產生器端設定這些摘要方法及 OAEPParams 內容。 在消費端,這些內容是從送入的 SOAP 訊息中讀取。

對於 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);