Entschlüsselungsmethoden
Die Entschlüsselungsalgorithmen geben die Algorithmen für die Schlüssel- und Datenverschlüsselung an, die
zum Entschlüsseln der SOAP-Nachricht verwendet werden. Die WSS-API für Entschlüsselung (WSSDecryption)
gibt den Algorithmus-URI (Uniform Resource Identifier) der Schlüssel- und Datenverschlüsselungsmethoden
an. Die Schnittstelle "WSSDecryption" gehört zum Paket com.ibm.websphere.wssecurity.wssapi.decryption.
Datenverschlüsselungsalgorithmen
Die Datenverschlüsselungsalgorithmen sind Algorithmen, die zum Ver- und Entschlüsseln von Daten verwendet werden. Dieser Algorithmustyp wird für die Verschlüsselung von Daten verwendet, um verschiedene Abschnitte der Nachricht, einschließlich des Hauptteilinhalts und der Signatur, zu verschlüsseln und zu entschlüsseln.
Die Datenentschlüsselungsalgorithmen geben den Algorithmus-URI der Datenverschlüsselungsmethode an. WebSphere® Application Server unterstützt die folgenden vorkonfigurierten Datenentschlüsselungsalgorithmen:
| WSS-API | URI |
|---|---|
| WSSDecryption.AES128 (Standardwert) | URI des Datenverschlüsselungsalgorithmus AES 128: https://www.w3.org/2001/04/xmlenc#aes128-cbc |
| WSSDecryption.AES192 | URI des Datenverschlüsselungsalgorithmus AES 192: https://www.w3.org/2001/04/xmlenc#aes192-cbc |
| WSSDecryption.AES256 | URI des Datenverschlüsselungsalgorithmus AES 256: https://www.w3.org/2001/04/xmlenc#aes256-cbc |
| WSSDecryption.TRIPLE_DES | URI des Datenverschlüsselungsalgorithmus TRIPLE DES: https://www.w3.org/2001/04/xmlenc#tripledes-cbc |
Standardmäßig wird die Java™ Cryptography Extension (JCE) mit eingeschränkten oder stark begrenzten Chiffren ausgeliefert. Wenn Sie die 192-Bit- und 256-Bit-AES-Verschlüsselungsalgorithmen (Advanced Encryption Standard) verwenden möchten, müssen Sie uneingeschränkte Standortrichtliniendateien anwenden.
Für die AES256-cbc und das AES192-cbc Algorithmen müssen Sie die uneingeschränkten Java™ Cryptography Extension (JCE)-Richtliniendateien von der folgenden Website herunterladen: https://www.ibm.com/developerworks/java/jdk/security/index.html.
Der Datenverschlüsselungsalgorithmus muss dem Datenentschlüsselungsalgorithmus entsprechen, der für den Konsumenten konfiguriert ist.
Algorithmen für Schlüsselchiffrierung
Die Schlüsselchiffrieralgorithmen sind Algorithmen, die zum Ver- und Entschlüsseln von Schlüsseln verwendet werden.
Mit diesen Schlüsseldaten wird die Konfiguration definiert, die für die Generierung des Schlüssels für die digitale Signatur und Verschlüsselung benötigt wird. Die Konfigurationen für Signaturdaten und Verschlüsselungsdaten können die Schlüsseldaten gemeinsam nutzen. Auf der Konsumentenseite enthalten die Schlüsseldaten die Informationen zum Schlüssel, die für die Validierung der digitalen Signatur in der empfangenen Nachricht bzw. für die Entschlüsselung der verschlüsselten Nachrichtenabschnitte benötigt werden. Für den Client wird der Anforderungsgenerator konfiguriert.
Die Schlüsselchiffrieralgorithmen geben den Algorithmus-URI der Schlüsselchiffriermethode an. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Schlüsselverschlüsselungsalgorithmen:
| WSS-API | URI |
|---|---|
| WSSDecryption.KW_AES128 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 128": https://www.w3.org/2001/04/xmlenc#kw-aes128 |
| WSSDecryption.KW_AES192 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 192":
https://www.w3.org/2001/04/xmlenc#kw-aes192 Beschränkung: Verwenden Sie nicht den 192-Bit-Schlüsselverschlüsselungsalgorithmus, wenn Ihre konfigurierte Anwendung dem Basic Security Profile (BSP) entsprechen soll.
|
| WSSDecryption.KW_AES256 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 256": https://www.w3.org/2001/04/xmlenc#kw-aes256 |
| WSSDecryption.KW_RSA_OAEP (Standardwert) | URI des Schlüsselchiffrieralgorithmus "key wrap RSA OAEP": https://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
| WSSDecryption.KW_RSA15 | URI des Schlüsselchiffrieralgorithmus "key wrap RSA 1.5": https://www.w3.org/2001/04/xmlenc#rsa-1_5 |
| WSSDecryption.KW_TRIPLE_DES | URI des Datenverschlüsselungsalgorithmus TRIPLE DES mit Key-Wrapping: https://www.w3.org/2001/04/xmlenc#kw-tripledes |
Standardmäßig verwendet der Algorithmus RSA-OAEP
den Message-Digest-Algorithmus SHA1, um einen Message-Digest im Rahmen der Verschlüsselungsoperation zu berechnen. Optional können Sie den Message-Digest-Algorithmus SHA256 oder
SHA512 verwenden, indem Sie eine Eigenschaft für den Verschlüsselungsalgorithmus für Schlüssel angeben. Der Eigenschaftsname ist com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod. Als Eigenschaftswert können Sie einen der folgenden URIs der Digest-Methode angeben: https://www.w3.org/2001/04/xmlenc#sha256
https://www.w3.org/2001/04/xmlenc#sha512.
Standardmäßig verwendet der Algorithmus RSA-OAEP eine Nullzeichenfolge für die
optionale Verschlüsselungsoktettzeichenfolge für die OAEPParams. Sie können eine
explizite Verschlüsselungsoktettzeichenfolge angeben, indem Sie eine Eigenschaft für den Verschlüsselungsalgorithmus für Schlüssel angeben. Als Eigenschaftsnamen können Sie com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams angeben. Der Eigenschaftswert ist der Base-64-verschlüsselte Wert der Oktettzeichenfolge.
Für die kw-aes256 und das kw-aes192 Um Schlüsselverschlüsselungsalgorithmen zu verwenden, müssen Sie die uneingeschränkten JCE-Richtliniendateien von der folgenden Website herunterladen: https://www.ibm.com/developerworks/java/jdk/security/index.html.
Die Algorithmen für die Schlüsselchiffrierung für den Generator und den Konsumenten müssen übereinstimmen.
Das folgende Beispiel zeigt ein Beispiel des WSS-API-Codes für die Standardalgorithmen, die verwendet werden für WebSphere Application Server Entschlüsselung:
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);