Entschlüsselungsmethoden für die Konsumentenbindung auswählen
Wenn Sie den Client für die Antwortentschlüsselung für die Konsumentenbindung konfigurieren möchten, müssen Sie angeben, welche Daten- und Umsetzungsalgorithmen verwendet werden sollen, wenn der Client die SOAP-Nachrichten entschlüsselt.
Vorbereitende Schritte
Bevor Sie diese Schritte ausführen, sollten Sie die Informationen zur XML-Verschlüsselung lesen, um sich mit dem Verschlüsseln und Entschlüsseln von SOAP-Nachrichten vertraut zu machen.
Sie müssen die folgenden Tasks ausführen, um die Entschlüsselungskonfiguration zum Sichern von SOAP-Nachrichten zu definieren:
- Entschlüsselung der SOAP-Nachrichtenabschnitte konfigurieren
- Entschlüsselungsmethoden angeben
Sie können die Entschlüsselungsmethoden mit den APIs "WSSDecryption" und "WSSDecryptPart" konfigurieren. Sie können zum Konfigurieren der Entschlüsselungsmethoden auch über die Administrationskonsole Richtliniensätze konfigurieren.
Informationen zu diesem Vorgang
Einige der verschlüsselungsbezogenen Definitionen basieren auf der Spezifikation "XML-Encryption". Im Folgenden finden Sie Definitionen einiger Begriffe, die sich auf die Datenverschlüsselung beziehen:
- Algorithmus der Datenverschlüsselungsmethode
- Datenverschlüsselungsalgorithmen geben den Algorithmus-URI (Uniform Resource Identifier) der
Datenverschlüsselungsmethode an. Dieser Algorithmus verschlüsselt und entschlüsselt
Daten in mehrere Oktettblöcken fester Größe.
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.
- Algorithmus der Schlüsselverschlüsselungsmethoden
- Die Schlüsselchiffrieralgorithmen geben den Algorithmus-URI der Schlüsselchiffriermethode an. Der
Algorithmus stellt die öffentlichen Schlüsselchiffrieralgorithmen dar, die
für die Verschlüsselung (Chiffrierung) und Entschlüsselung (Dechiffrierung) von Schlüsseln verwendet werden.
Standardmäßig verwendet der Algorithmus RSA_OAEP den Message-Digest-Algorithmus SHA1 für die Berechnung eines Message-Digest im Rahmen der Verschlüsselungsoperation. 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 Codierungsoktettzeichenfolge 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. Der Eigenschaftswert ist der Base-64-verschlüsselte Wert der Oktettzeichenfolge.
Wichtig: Sie können diese Digest-Methode und die OAEPParams-Eigenschaften nur auf Generatorseite angeben. Auf der Konsumentenseite werden diese Eigenschaften aus der eingehenden SOAP-Nachricht (Simple Object Access Protocol) gelesen.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.
Wichtig: In Ihrem Herkunftsland gibt es möglicherweise Beschränkungen für den Import, den Besitz oder den Reexport von Verschlüsselungssoftware in ein anderes Land. Bevor Sie die uneingeschränkten Richtliniendateien herunterladen oder verwenden, müssen Sie die Gesetze und Richtlinien Ihres Landes in Bezug auf den Import, den Besitz und den Reexport von Verschlüsselungssoftware prüfen, um festzustellen, ob dies zulässig ist.
Zum Definieren der Entschlüsselungskonfiguration müssen Sie den Algorithmus-URI und seinen Verwendungstyp angeben. Wenn der URI für mehrere Verwendungstypen verwendet wird, müssen Sie den URI für jeden Verwendungstyp definieren. WebSphere Application Server unterstützt die folgenden Verwendungstypen für Entschlüsselung:
Verwendungstypen | Beschreibung |
---|---|
Datenverschlüsselung | Gibt den für die Verschlüsselung und Entschlüsselung von Daten verwendeten Algorithmus-URI an. Ver- und entschlüsselt Daten fester Größe in mehreren Oktettblöcken. |
Schlüsselchiffrierung | Gibt den für die Chiffrierung und Dechiffrierung von Chiffrierschlüsseln verwendeten Algorithmus-URI an. |
Verwenden Sie zum Konfigurieren der Algorithmen für die Entschlüsselung und die entschlüsselten Abschnitte die APIs "WSSDecryption" und "WSSDecryptPart", oder konfigurieren Sie über die Administrationskonsole Richtliniensätze.
- Verwenden Sie die API "WSSDecryption", um den Datenverschlüsselungsalgorithmus und die Algorithmusmethoden für Schlüsselchiffrierung zu konfigurieren.
- Verwenden Sie die API "WSSDecryptPart", um eine Umsetzungsalgorithmusmethode zu konfigurieren.
Während der WSS-API-Verarbeitung werden die folgenden übergeordneten Schritte ausgeführt, um anzugeben, welche Algorithmusmethoden für die Entschlüsselung und die entschlüsselten Abschnitte verwendet werden sollen, wenn der Client für die Antwortentschlüsselung konfiguriert wird:
Vorgehensweise
Ergebnisse
Beispiel
Das folgende Beispiel enthält WSS-API-Beispielcode, der den Inhalt des Hauptteils entschlüsselt und die Standardeinstellungen für die Algorithmen für Datenverschlüsselung und Schlüsselchiffrierung ändert:
// Nachrichtenkontext abrufen
Object msgcontext = getMessageContext();
// WSSFactory-Instanz generieren
WSSFactory factory = WSSFactory.getInstance();
// WSSConsumingContext-Instanz generieren
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Callback-Handler generieren
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// WSSDecryption-Instanz generieren
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Kandidaten für die Datenverschlüsselungsmethode festlegen
// STANDARD: WSSDecryption.AES128
dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
dec.addAllowedEncryptionMethod(WSSDecryption.AES192);
// Kandidaten für die Schlüsselchiffrierungsmethode festlegen
// STANDARD: WSSDecryption.KW_RSA_OAEP
dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
// WSSDecryption zu WSSConsumingContext hinzufügen
concont.add(dec);
// WS-Security-Header validieren
concont.process(msgcontext);