Verschlüsselungsmethoden
Wenn Sie die Bindungseinstellungen für den Anforderungsgenerator angeben, müssen Sie für die Verschlüsselungsmethoden unter anderem die Verschlüsselungsalgorithmen für Daten und Schlüssel angeben, die zum Verschlüsseln der SOAP-Nachricht verwendet werden soleln. Die WSS-API für Verschlüsselung (WSSEncryption) gibt den Algorithmusnamen und den entsprechenden Algorithmus-URI für die Schlüssel- und Datenverschlüsselungsmethoden an. Wenn die Schlüssel- und Datenverschlüsselungsmethoden angegeben sind, werden nur Elemente akzeptiert, die mit diesen Algorithmen verschlüsselt wurden.
Datenverschlüsselungsalgorithmen
Der Datenverschlüsselungsalgorithmus wird verwendet, um Abschnitte der SOAP-Nachricht, z. B. den Hauptteil und die Signatur, zu verschlüsseln. Datenverschlüsselungsalgorithmen geben den Algorithmus-URI für jeden Typ von Datenverschlüsselungsalgorithmus an.
Name des Algorithmus für Datenverschlüsselung | Algorithmus-URI |
---|---|
WSSEncryption.AES128 (Standardwert) | URI des Datenverschlüsselungsalgorithmus AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSEncryption.AES192 | URI des Datenverschlüsselungsalgorithmus AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSEncryption.AES256 | URI des Datenverschlüsselungsalgorithmus AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSEncryption.TRIPLE_DES | URI des Datenverschlüsselungsalgorithmus TRIPLE DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc |
Standardmäßig wird Java™ Cryptography Extension (JCE) mit eingeschränkten oder eingeschränkten Verschlüsselungswerten geliefert. 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 Algorithmen AES256-cbc und AES192-CBC müssen Sie die uneingeschränkten JCE-Richtliniendateien (Java™ Cryptography Extension) von der folgenden Website herunterladen: http://www.ibm.com/developerworks/java/jdk/security/index.html.
Der auf der Generatorseite konfigurierte Datenverschlüsselungsalgorithmus muss mit dem Datenverschlüsselungsalgorithmus übereinstimmen, der für die Konsumentenseite konfiguriert ist.
Algorithmen für Schlüsselchiffrierung
Dieser Algorithmus wird zum Chiffrieren und Dechiffrieren von Schlüsseln verwendet. 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. Die folgenden vorkonfigurierten Algorithmen für Schlüsselchiffrierung werden unterstützt:
WSS-API | URI |
---|---|
WSSEncryption.KW_AES128 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 128": http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSEncryption.KW_AES192 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 192":
http://www.w3.org/2001/04/xmlenc#kw-aes192 Einschränkung: Verwenden Sie den 192-Bit-Schlüsselverschlüsselungsalgorithmus nicht, wenn Ihre konfigurierte Anwendung mit dem Basic Security Profile (BSP) konform sein soll.
|
WSSEncryption.KW_AES256 | URI des Schlüsselchiffrieralgorithmus "key wrap AES 256": http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSEncryption.KW_RSA_OAEP (the default value) | URI des Schlüsselchiffrieralgorithmus "key wrap RSA OAEP": http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSEncryption.KW_RSA15 | URI des Schlüsselchiffrieralgorithmus "key wrap RSA 1.5": http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
WSSEncryption.KW_TRIPLE_DES | URI des Schlüsselchiffrieralgorithmus "key wrap TRIPLE DES": http://www.w3.org/2001/04/xmlenc#kw-tripledes |
- algorithmName
- keyLength
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 uneingeschränkten JCE-Richtliniendateien von der folgenden Website herunterladen: http://www.ibm.com/developerworks/java/jdk/security/index.html.
Der Schlüsselchiffrieralgorithmus für die Generatorseite muss mit dem Schlüsseldechiffrieralgorithmus übereinstimmen, der für den Konsumenten konfiguriert ist.
Im Folgenden sehen Sie Beispielcode für die Verschlüsselung mit Triple DES als Datenverschlüsselungsmethode und RSA1.5 als Schlüsselchiffriermethode:
// get the message context
Object msgcontext = getMessageContext();
// generate WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
// generate WSSGenerationContext instance
WSSGenerationContext gencont = factory.newWSSGenerationContext();
// generate callback handler
X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"bob",
null,
"CN=Bob, O=IBM, C=US",
null);
// generate the security token used to the encryption
SecurityToken token = factory.newSecurityToken(X509Token.class,
callbackHandler);
// generate WSSEncryption instance to encrypt the SOAP body content
WSSEncryption enc = factory.newWSSEncryption(token);
enc.addEncryptPart(WSSEncryption.BODY_CONTENT);
// set the data encryption method
// DEFAULT: WSSEncryption.AES128
enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);
// set the key encryption method
// DEFAULT: WSSEncryption.KW_RSA_OAEP
enc.setEncryptionMethod(WSSEncryption.KW_RSA15);
// add the WSSEncryption to the WSSGenerationContext
gencont.add(enc);
// generate the WS-Security header
gencont.process(msgcontext);