Verschlüsselungsmethoden für Generatorbindungen

Wenn Sie den Client für die Anforderungsverschlüsselung für die Generatorbindung konfigurieren möchten, müssen Sie die Verschlüsselungsmethoden angeben, die verwendet werden sollen, wenn der Client die SOAP-Nachrichten verschlü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.

Führen Sie die folgenden Tasks aus, um die Algorithmusmethoden anzugeben, die verwendet werden sollen, wenn der Client die SOAP-Nachrichten verschlüsselt:
  • Verwenden Sie die API WSSEncryption, um den Datenverschlüsselungsalgorithmus und die Algorithmusmethoden für Schlüsselchiffrierung zu konfigurieren.
  • Verwenden Sie die API WSSEncryptPart, um bei Bedarf eine Umsetzungsalgorithmusmethode zu konfigurieren. Es gibt keinen Standardumsetzungsalgorithmus.

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 Algorithmen für Schlüsselchiffrierung geben den Algorithmus-URI der Methode für die Verschlüsselung des Schlüssels an, der zum Verschlüsseln der Daten verwendet wird. 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, 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. 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.
Tabelle 1. Verwendungstypen für Verschlüsselung. In den folgenden Abschnitten sind die Verschlüsselungsmethoden beschrieben, die den Verwendungstypen zugeordnet sind.
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.

Datenverschlüsselung

WebSphere Application Server unterstützt die folgenden vorkonfigurierten Datenverschlüsselungsalgorithmen:

Tabelle 2. Datenverschlüsselungsalgorithmen. Diese vorkonfigurierten Verschlüsselungsalgorithmen werden von WebSphere Application Server unterstützt.
Name der 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 3DES: http://www.w3.org.2001/04/xmlenc#tripledes-cbc

Schlüsselchiffrierung

WebSphere Application Server unterstützt die folgenden vorkonfigurierten Schlüsselchiffrieralgorithmen:

Tabelle 3. Algorithmen für Schlüsselchiffrierung. Diese vorkonfigurierten Verschlüsselungsalgorithmen werden von WebSphere Application Server unterstützt.
Name der Schlüsselchiffrierung Algorithmus-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 Algorithmus für 192-Bit-Schlüsselverschlüsselung 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 http://www.w3.org/2001/04/xmlenc#kw-tripledes

Verwenden Sie zum Konfigurieren der Algorithmusmethoden für Verschlüsselung und verschlüsselte Abschnitte die API WSSEncryption, 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.

Während der WSS-API-Verarbeitung werden die folgenden übergeordneten Schritte ausgeführt, um anzugeben, welche Verschlüsselungsmethoden verwendet werden sollen, wenn der Client für die Anforderungsverschlüsselung konfiguriert wird:

Vorgehensweise

  1. Bei der Verwendung der API WSSEncryption wird der erforderliche Datenverschlüsselungsalgorithmus hinzugefügt. Der Datenverschlüsselungsalgorithmus wird für die Ver- und Entschlüsselung von Teilen einer SOAP-Nachricht. Datenverschlüsselungsalgorithmen geben den Algorithmus-URI (Uniform Resource Identifier) der Datenverschlüsselungsmethode an.

    Die Konfiguration des Clientgenerators muss mit der Konfiguration des Providerkonsumenten übereinstimmen.

    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 Datenverschlüsselungsalgorithmen:

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

      Standardmäßig wird die Datenalgorithmusmethode AES 128 verwendet.

    • AES 192: 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.

    • AES 256: 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.

    • TRIPLEDES: 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:
    // Standardalgorithmus für Datenverschlüsselung: AES128
    WSSEncryption enc = factory.newWSSEncryption(x509t); 
       enc.setEncryptionMethod(EncryptionMethod.TRIPLEDES_CBC);
    gencont.add(enc);
  3. Bei der Verwendung der API WSSEncryption 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 der Chiffrierschlüssel, d. h. der Schlüssel, der für die Verschlüsselung der Nachrichtenabschnitte verwendet wird, nicht verschlüsselt ist, wählt die API für Entschlüsselung dem unverschlüsselten Chiffrierschlüssel entsprechend die Einstellung false aus.

    Die Konfiguration des Clientgenerators muss mit der Konfiguration des Providerkonsumenten übereinstimmen.

    Der Standardwert für den Schlüsselchiffrieralgorithmus ist "key wrap RSA OAP". 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.

      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 AES 256: 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 RSA15: 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

Ergebnisse

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

Beispiel

Im folgenden WSS-API-Beispielcode werden die Methoden WSSEncryption.setEncryptionMethod() und WSSEncryption.setKeyEncryptionMethod() verwendet.

// Nachrichtenkontext abrufen
   Object msgcontext = getMessageContext();

// WSSFactory-Instanz generieren
   WSSFactory factory = WSSFactory.getInstance();

// WSSGenerationContext-Instanz generieren
   WSSGenerationContext gencont = factory.newWSSGenerationContext();

// Callback-Handler generieren
   X509GenerateCallbackHandler callbackHandler = new 
       X509GenerateCallbackHandler(
                                   "",
                                   "enc-sender.jceks",
                                   "jceks", 
                                   "storepass".toCharArray(), 
                                   "bob", 
                                   null, 
                                   			  "CN=Bob, O=IBM, C=US", 
                                   null); 
// Für die Verschlüsselung verwendetes Sicherheitstoken generieren
   SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler);

// WSSEncryption-Instanz generieren
   WSSEncryption enc = factory.newWSSEncryption(token);

// Datenverschlüsselungsmethode festlegen
// STANDARD: WSSEncryption.AES128
      enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);

// Schlüsselchiffriermethode festlegen
// STANDARD: WSSEncryption.KW_RSA_OAEP
      enc.setEncryptionMethod(WSSEncryption.KW_RSA15);

// WSSEncryption zu WSSGenerationContext hinzufügen
   gencont.add(enc);

// WS-Security-Header generieren
gencont.process(msgcontext);

Nächste Schritte

Wenn Sie einen Umsetzungsalgorithmus hinzufügen möchten, sehen Sie sich als Nächstes den Prozess der API WSSEncryptPart an.


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_confwssencryptalgorithms
Dateiname:twbs_confwssencryptalgorithms.html