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: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSDecryption.AES192 | URI des Datenverschlüsselungsalgorithmus AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSDecryption.AES256 | URI des Datenverschlüsselungsalgorithmus AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSDecryption.TRIPLE_DES | URI des Datenverschlüsselungsalgorithmus TRIPLE DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc |
Standardmäßig wird JCE (Java™ Cryptography Extension) mit eingeschränkten Chiffriergraden oder beschränkten Schlüssellängen geliefert. Wenn Sie die 192-Bit- und 256-Bit-AES-Verschlüsselungsalgorithmen (Advanced Encryption Standard) verwenden möchten, müssen Sie Richtliniendateien anwenden, die keinen gesetzlichen Einschränkungen unterliegen.
Wenn Sie die Algorithmen AES256-cbc und AES192-cbc verwenden möchten, müssen Sie die nicht eingeschränkte JCE-Richtliniendatei (Java™ Cryptography Extension) von der folgenden Website herunterladen: http://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üsselchiffrieralgorithmen:
WSS-API | URI |
---|---|
WSSDecryption.KW_AES128 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 128": http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSDecryption.KW_AES192 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 192":
http://www.w3.org/2001/04/xmlenc#kw-aes192 Einschränkung: Verwenden Sie den Algorithmus für 192-Bit-Schlüsselverschlüsselung
nicht, wenn Ihre konfigurierte Anwendung mit dem Basic Security Profile (BSP) konform sein soll.
|
WSSDecryption.KW_AES256 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 256": http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSDecryption.KW_RSA_OAEP (Standardwert) | URI des Schlüsselchiffrieralgorithmus "key wrap RSA OAEP": http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSDecryption.KW_RSA15 | URI des Schlüsselchiffrieralgorithmus "key wrap RSA 1.5": http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
WSSDecryption.KW_TRIPLE_DES | URI des Datenverschlüsselungsalgorithmus TRIPLE DES mit Key-Wrapping: http://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: http://www.w3.org/2001/04/xmlenc#sha256 http://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 Schlüsselchiffrieralgorithmen kw-aes256 und kw-aes192 müssen Sie die nicht eingeschränkten JCE-Richtliniendateien von der folgenden Website herunterladen: http://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.
Im Folgenden sehen Sie WSS-API-Beispielcode für die Standardalgorithmen, die für die Entschlüsselung in WebSphere Application Server verwendet werden:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Erforderlich, um Benutzernamenstoken in die Nachricht einzufügen
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Entschlüsselungskomponente festlegen.
// Verschlüsselter Standardabschnitt: Body-Content
// Standardalgorithmus für Datenverschlüsselung: AES128
// Standardalgorithmus für Schlüsselchiffrierung: KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// WS-Security-Header validieren
concont.process(msgctx);