Für den Client Prüfmethoden für die Antwortsignatur konfigurieren

Verwenden Sie die APIs WSSVerification und WSSVerifyPart, um die Prüfmethoden für die Signatur auszuwählen. Zu den Prüfmethoden für die Anforderungssignatur gehören der Digest-Algorithmus und die Transportmethoden.

Vorbereitende Schritte

Sie müssen die folgenden Algorithmustasks ausführen, um zum Sichern von SOAP-Nachrichten die Informationen für die Signaturprüfung zu konfigurieren:
  • Verwenden Sie die API WSSVerification, um die Kanonisierungs- und Signaturmethoden zu konfigurieren.
  • Verwenden Sie die API WSSVerifyPart, um die Digest- und Umsetzungsmethoden zu konfigurieren.
Damit konfigurieren Sie die zu verwendenden Algorithmusmethoden, wenn Sie den Client für Anforderungssignatur konfigurieren.

Informationen zu diesem Vorgang

Die folgende Tabelle beschreibt den Zweck dieser Informationen. Einige dieser Definitionen basieren auf der Spezifikation "XML-Signature", die Sie auf der folgenden Website finden: http://www.w3.org/TR/xmldsig-core.

Tabelle 1. Signaturprüfmethoden. Verwenden Sie die Signaturprüfinformationnen, um Nachrichten zu sichern.
Name der Methode Zweck
Digest-Algorithmus Der Algorithmus für die Digest-Methode wird, sofern angegeben, nach den Umsetzungen auf die Daten angewendet, um das Element <DigestValue> zu erzeugen. Durch die Signatur des Elements <DigestValue> wird der Ressourceninhalt an den Unterzeichnerschlüssel gebunden. Der Algorithmus, der für die Konfiguration des Senders der Clientanforderung ausgewählt wurde, muss mit dem Algorithmus, der in der Konfiguration des Empfängers der Clientanforderung ausgewählt wurde, übereinstimmen.
Umsetzungsalgorithmus Wird auf das Element <Transform> angewendet.
Signaturalgorithmus Gibt den Uniform Resource Identifiers (URI) der Signaturprüfmethode an.
Kanonisierungsalgorithmus Gibt den Uniform Resource Identifiers (URI) der Kanonisierungsmethode an.

Nachdem Sie den Client für die digitale Signatur der Nachricht konfiguriert haben, müssen Sie den Client für die Prüfung der digitalen Signatur konfigurieren. Zur Prüfung der digitalen Signatur und zur Auswahl der Prüfalgorithmen und Algorithmen für die Prüfabschnitte können Sie die WSS-APIs verwenden oder über die Administrationskonsole Richtliniensätze. Bei der Verwendung der WSS-APIs für die Konfiguration können Sie mit den APIs WSSVerification und WSSVerifyPart angeben, welche digital signierten Nachrichtenabschnitte geprüft und welche Algorithmusmethoden verwendet werden sollen, wenn der Client für die Anforderungssignatur konfiguriert wird.

Die APIs WSSVerification und WSSVerifyPart führen die folgenden Schritte aus, um die Algorithmusmethoden für die Signaturprüfung und die Prüfabschnitte zu konfigurieren:

Vorgehensweise

  1. Für die Konsumentenbindung gibt die API WSSVerification die Signaturmethoden an, die für die Signaturprüfung zugelassen werden. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Signaturmethoden:
    • WSSVerification.RSA_SHA1 (Standardwert): http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • WSSVerification.HMAC_SHA1: http://www.w3.org/2000/09/xmldsig#hmac-sha1
    Die digitale Signaturmethode DSA-SHA1 (http://www.w3.org/2000/09/xmldsig#dsa-sha1) wird nicht unterstützt.
  2. Für die Konsumentenbindung gibt die API WSSVerification die Kanonisierungsmethode an, die für die Signaturprüfung zugelassen wird. WebSphere Application Server unterstützt standardmäßig die folgenden vorkonfigurierten Kanonisierungsmethoden:
    • WSSVerification.EXC_C14N (Standardwert): http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSVerification.C14N: http://www.w3.org/2001/10/xml-c14n#
  3. Für die Konsumentenbindung gibt die API WSSVerifyPart bei Bedarf die Digest-Methode an. WebSphere Application Server unterstützt die folgenden Digest-Methodenalgorithmen für die Prüfung signierter Abschnitte:
    • WSSVerifyPart.SHA1 (Standardwert): http://www.w3.org/2000/09/xmldsig#sha1
    • WSSVerifyPart.SHA256: http://www.w3.org/2001/04/xmlenc#sha256
    • WSSVerifyPart.SHA512: http://www.w3.org/2001/04/xmlenc#sha512
  4. Für die Konsumentenbindung gibt die API WSSVerifyPart die Umsetzungsmethode an. WebSphere Application Server unterstützt die folgenden Umsetzungsalgorithmen für Prüfabschnitte:
    • WSSVerifyPart.TRANSFORM_EXC_C14N (Standardwert): http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSVerifyPart.TRANSFORM_XPATH2_FILTER: http://www.w3.org/2002/06/xmldsig-filter2
    • WSSVerifyPart.TRANSFORM_STRT10: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
    • WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE: http://www.w3.org/2000/09/xmldsig#enveloped-signature

    Für die WSS-Anwendungsprogrammierschnittstellen werden die folgenden Algorithmen von WebSphere Application Server nicht unterstützt:

    • http://www.w3.org/2002/07/decrypt#XML
    • http://www.w3.org/TR/1999/REC-xpath-19991116

Ergebnisse

Sie haben angegeben, welche Methode zur Prüfung einer digitalen Signatur verwendet werden soll, wenn der Client eine Nachricht sendet.

Beispiel

Das folgende Beispiel enthält WSS-API-Beispielcode, der die Prüfinformationen, den Hauptteil als zu prüfenden Abschnitt, HMAC_SHA1 als Signaturmethode, C14N und EXC_C14N als Kandidaten für die Kanonisierungsmethode, TRANSFORM_STRT10 als Umsetzungsmethode und SHA256 als Digest-Methode angibt.

// Nachrichtenkontext abrufen
   Object msgcontext = getMessageContext();

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

// WSSConsumingContext-Instanz generieren
   WSSConsumingContext concont = factory.newWSSConsumingContext();

// Zertifikatsliste generieren
   String certpath = "intca2.cer";
// Position der X509-Zertifikatsdatei
      X509Certificate x509cert = null;
      try  {    
            InputStream is = new FileInputStream(certpath);
            CertificateFactory cf = CertificateFactory.getInstance("X.509");
	          x509cert = (X509Certificate)cf.generateCertificate(is);
      } catch(FileNotFoundException e1){
	         throw new WSSException(e1);
      } catch (CertificateException e2) {
	         throw new WSSException(e2);
      }

      Set<Object> eeCerts = new HashSet<Object>();
      eeCerts.add(x509cert);  
// Zertifikatsspeicher erstellen
   java.util.List<CertStore> certList = new 
        java.util.ArrayList<CertStore>();
   CollectionCertStoreParameters certparam = new 
        CollectionCertStoreParameters(eeCerts);
   CertStore cert = null;
      try  {    
	           	        cert = CertStore.getInstance("Collection", 
                                           certparam, 
                                          "IBMCertPath");
      } catch (NoSuchProviderException e1) {
	          throw new WSSException(e1);
      } catch (InvalidAlgorithmParameterException e2) {
	          throw new WSSException(e2);
      } catch (NoSuchAlgorithmException e3) {
	          throw new WSSException (e3);
      }
      if(certList != null ){
	           certList.add(cert);
      }

// Callback-Handler generieren
   X509ConsumeCallbackHandler callbackHandler = new 
      X509ConsumeCallbackHandler(
                                 "dsig-receiver.ks", 
                                 "jks",
                                 "server".toCharArray(), 
                                 certList, 
                                 java.security.Security.getProvider(
                                       "IBMCertPath")
                                 );

// WSSVerification-Instanz generieren
   WSSVerification ver = factory.newWSSVerification(X509Token.class, 
                                                    callbackHandler);

// Kandidaten für die Signaturmethode für die Prüfung festlegen
// (Schritt 1)
// STANDARD: WSSVerification.RSA_SHA1
      ver.addAllowedSignatureMethod(WSSVerification.HMAC_SHA1);

// Kandidaten für die Kanonisierungsmethode für die Prüfung festlegen
// (Schritt 2)
// STANDARD: WSSVerification.EXC_C14N
      ver.addAllowedCanonicalizationMethod(WSSVerification.C14N);
      ver.addAllowedCanonicalizationMethod(WSSVerification.EXC_C14N);

// Mit WSSVerifyPart anzugebenden Abschnitt festlegen
   WSSVerifyPart verPart = factory.newWSSVerifyPart();

// Mit dem Schlüsselwort anzugebenden Abschnitt festlegen
      verPart.setRequiredVerifyPart(WSSVerification.BODY);

// Kandidaten für die Digest-Methode für die Prüfung festlegen (Schritt 3)
// STANDARD: WSSVerifypart.TRANSFORM_EXC_C14N : String
      verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_STRT10);

// Kandidaten für die Digest-Methode für die Prüfung festlegen (Schritt 4)
// STANDARD: WSSVerifyPart.SHA1
      verPart.addAllowedDigestMethod(WSSVerifyPart.SHA256);

// WSSVerifyPart auf WSSVerification setzen
      ver.addRequiredVerifyPart(verPart);

// WSSVerification zu WSSConsumingContext hinzufügen
   concont.add(ver);

// WS-Security-Header validieren
	  concont.process(msgcontext);

Nächste Schritte

Sie haben die Konfiguration der Signaturprüfalgorithmen abgeschlossen. Konfigurieren Sie als Nächstes die Verschlüsselungs- oder Entschlüsselungsalgorithmen, falls noch keine konfiguriert sind. Bei Bedarf können Sie auch Informationen zum Sicherheitstoken konfigurieren.


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_confwssverifyalgorithms
Dateiname:twbs_confwssverifyalgorithms.html