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:

Tabelle 1. Verwendungstypen für Entschlüsselung. Die Entschlüsselungstypen werden von WebSphere Application Server unterstützt.
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.

Anmerkung: Richtliniensätze unterstützen symmetrische Schlüsselchiffrierung. Wenn Sie die WSS-API für symmetrische Schlüsselchiffrierung verwenden, ist eine Interoperation mit Web-Service-Endpunkten, die Richtliniensätze verwenden, nicht möglich.
Wenn Sie die WSS-APIs verwenden, geben die APIs "WSSDecryption" und "WSSDecryptPart" an, welche Algorithmusmethoden verwendet werden, wenn der Client die SOAP-Nachrichten entschlüsselt.
  • 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

  1. Bei der Verwendung der API "WSSDecryption" wird der erforderliche Datenverschlüsselungsalgorithmus hinzugefügt. Der Datenverschlüsselungsalgorithmus wird für die Ver- und Entschlüsselung von Teilen einer SOAP-Nachricht. Die Datenentschlüsselungsalgorithmen geben den Algorithmus-URI der Datenverschlüsselungsmethode an.

    Standardmäßig wird der Datenverschlüsselung AES 128 verwendet. Der Datenverschlüsselungsname ist AES128, und der URI des Datenverschlüsselungsalgorithmus ist http://www.w3.org/2001/04/xmlenc#aes128-cbc. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Datenentschlüsselungsalgorithmen:

    • AES128: http://www.w3.org/2001/04/xmlenc#aes128-cbc

      Standardmäßig wird die Datenalgorithmusmethode AES 128 verwendet.

    • AES256: http://www.w3.org/2001/04/xmlenc#aes256-cbc

      Zur Verwendung des Algorithmus AES 256-cbc 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.

    • AES192: http://www.w3.org/2001/04/xmlenc#aes192-cbc

      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.

      Zur Verwendung des Algorithmus AES 192-cbc 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.

    • TRIPLE_DES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc
  2. Ändern Sie bei Bedarf die API-Methode "WSSEncryption" in einen anderen Datenverschlüsselungsalgorithmus. Sie können beispielsweise den folgenden Code hinzufügen, um den Standardalgorithmus von AES 128 in Triple DES zu ändern:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.TRIPLE_DES); 
  3. Bei der Verwendung der API "WSSDecryption" wird der erforderliche Schlüsselchiffrieralgorithmus hinzugefügt. Der Algorithmus für Schlüsselchiffrierung wird für die Ver- und Entschlüsselung des Schlüssels verwendet, mit dem die Nachrichtenabschnitte in der SOAP-Nachricht verschlüsselt werden. Wenn kein Schlüssel für die Verschlüsselung der Daten erforderlich ist, müssen Sie WSSDecryption.encryptKey(false) angeben.

    Der Algorithmus für Schlüsselchiffrierung, den Sie für die Konsumentenseite auswählen, muss mit der Schlüsselchiffriermethode übereinstimmen, den Sie für die Generatorseite auswählen.

    Der Standardwert für den Schlüsselchiffrieralgorithmus ist "key wrap RSA_OAEP". Der Name der Schlüsselchiffrierung ist KW_RSA_OAEP, und der URI des Schlüsselchiffrieralgorithmus ist http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Schlüsselchiffrieralgorithmen:

    • KW_AES128: http://www.w3.org/2001/04/xmlenc#kw-aes128
    • KW_AES192: http://www.w3.org/2001/04/xmlenc#kw-aes192

      Zur Verwendung des Schlüssel-Wrap-Algorithmus "AES 192" müssen Sie die nicht eingeschränkte JCE-Richtliniensdatei (Java Cryptography Extension) von der folgenden Website herunterladen: http://www.ibm.com/developerworks/java/jdk/security/index.html.

      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.
    • KW_AES256: http://www.w3.org/2001/04/xmlenc#kw-aes256

      Zur Verwendung des Schlüssel-Wrap-Algorithmus "AES 256-cbc" müssen Sie die nicht eingeschränkte JCE-Richtliniensdatei (Java Cryptography Extension) von der folgenden Website herunterladen: http://www.ibm.com/developerworks/java/jdk/security/index.html.

    • KW_RSA_OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.

      Standardmäßig wird der Algorithmus KW_RSA_OAEP als Schlüsselalgorithmusmethode verwendet.

      Wenn Sie mit Software Development Kit (SDK) Version 1.4 arbeiten, ist dieser Algorithmus nicht in der Liste der unterstützten Schlüsseltransportalgorithmen enthalten. Dieser Algorithmus erscheint in der Liste der unterstützten Schlüsseltransportalgorithmen, wenn Sie mit SDK 1.5 arbeiten. Weitere Informationen finden Sie auf der Webseite http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

    • KW_RSA_15: http://www.w3.org/2001/04/xmlenc#rsa-1_5
    • KW_TRIPLE_DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes
    Anmerkung: Für Web Services Secure Conversation kann die API WSSEncryption weitere schlüsselbezogene Informationen angeben, wie z. B.:
    • algorithmName
    • keyLength
  4. Verwenden Sie bei Bedarf die API-Methode "WSSDecryption", um einen anderen Schlüsselchiffrieralgorithmus festzulegen. Sie können beispielsweise den folgenden Code hinzufügen, um den Standardalgorithmus für Schlüsselchiffrierung von KW_RSA_OAEP in TRIPLE_DES zu ändern:
    dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
  5. Bei der Verwendung der API WSSDecryptPart wird bei Bedarf ein Umsetzungsalgorithmus hinzugefügt. Es gibt keinen Standardumsetzungsalgorithmus. WebSphere Application Server stellt jedoch einen vorkonfigurierten entschlüsselten Abschnitt, WSSDecryptPart.TRANSFORM_ATTACHMENT_CIPHERTEXT, bereit, der hinzugefügt werden kann.

Ergebnisse

Wenn eine Fehlerbedingung eintritt, wird eine Ausnahme vom Typ "WSSException" angezeigt. Bei erfolgreicher Ausführung wird die Methode WSSConsumerContext.process() von der API aufgerufen, der WS-Security-Header wird validiert und die SOAP-Nachricht wird jetzt mit Web Services Security gesichert.

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

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssdecryptalgorithms
Dateiname:twbs_confwssdecryptalgorithms.html