Methoden für Prüfabschnitte mit der API WSSVerifyPart auswählen

Sie können die Informationen zur Signaturprüfung für die Konsumentenbindung mit der WSS-API konfigurieren. Der Umsetzungsalgorithmus und die Digest-Methoden werden für die Konsumentenbindung verwendet. Verwenden Sie die API WSSVerifyPart, um die Algorithmusmethoden zu konfigurieren. Die API WSSVerifyPart wird im Paket "com.ibm.websphere.wssecurity.wssapi.verification" bereitgestellt.

Wenn Sie Informationen zu Prüfabschnitten auf Konsumentenseite für den Schutz der Nachrichtenintegrität konfigurieren möchten, müssen Sie die Signatur und die signierten Abschnitte für die SOAP-Nachrichten zuerst digital signieren und anschließend prüfen. Integrität bezieht sich auf die digitale Signatur, wohingegen sich Vertraulichkeit auf die Verschlüsselung bezieht. Integrität verringert das Risiko der Datenmanipulation, wenn Daten über ein Netz übertragen werden.

Methoden

Im Folgenden sind einige Methoden aufgeführt, die für Signaturdaten verwendet werden:
Digest-Methode
Legt die Digest-Methode fest.
Umsetzungsmethode
Legt die Umsetzungsalgorithmusmethode fest.

Digest-Algorithmen

Der Digest-Methodenalgorithmus wird im Element <Digest> angegeben. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Digest-Algorithmen:

Tabelle 1. Digest-Methoden für Prüfabschnitte. Verwenden Sie die Prüfabschnitte, um die Nachrichtenintegrität sicherzustellen.
Digest-Methode Beschreibung
WSSVerifyPart.SHA1 (Standardwert) Ein URI des Digest-Algorithmus SHA1: http://www.w3.org/2000/09/xmldsig#sha1
WSSVerifyPart.SHA256 Ein URI des Digest-Algorithmus SHA256: http://www.w3.org/2001/04/xmlenc#sha256
WSSVerifyPart.SHA512 Ein URI des Digest-Algorithmus SHA256: http://www.w3.org/2001/04/xmlenc#sha512

Umsetzungsalgorithmen

Der Umsetzungsalgorithmus wird im Element <Transform> angegeben und definiert den Umsetzungsalgorithmus für den signierten Abschnitt. WebSphere Application Server unterstützt die folgenden vorkonfigurierten Umsetzungsalgorithmen:

Tabelle 2. Umsetzungsmethoden für Prüfabschnitte. Verwenden Sie die Prüfabschnitte, um die Nachrichtenintegrität sicherzustellen.
Digest-Methode Beschreibung
WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE Ein URI des Umsetzungsalgorithmus "enveloped signature": http://www.w3.org/2000/09/xmldsig#enveloped-signature
WSSVerifyPart.TRANSFORM_STRT10 Ein URI des Umsetzungsalgorithmus "STR-Transform": http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
WSSVerifyPart.TRANSFORM_EXC_C14N (Standardwert) Ein URI des Umsetzungsalgorithmus "Exc-C14N": http://www.w3.org/2001/10/xml-exc-c14n#
WSSVerifyPart.TRANSFORM_XPATH2_FILTER Ein URI des Umsetzungsalgorithmus "XPath2 Filter": http://www.w3.org/2002/06/xmldsig-filter2
Für die WSS-APIs unterstützt WebSphere Application Server die folgenden Umsetzungsalgorithmen nicht:
  • http://www.w3.org/TR/1999/REC-xpath-19991116
  • http://www.w3.org/2002/07/decrypt#XML

Das folgende Beispiel enthält WSS-API-Beispielcode, der den Hauptteil mit der Digest-Methode SHA256 und den Umsetzungsmethoden TRANSFORM_EXC_14N und TRANSFORM_STRT10 prüft:

	  // 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
	  	  verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_EXC_C14N);
	  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 auf WSSConsumingContext setzen
	  concont.add(ver);

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

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



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