Sélection des méthodes de vérification de parties à l'aide de l'API WSSVerifyPart

Vous pouvez configurer les informations de vérification de la signature pour la liaison du destinataire à l'aide de l'API WSS. Les méthodes d'algorithme de transformation et de synthèse sont utilisées pour la liaison du destinataire. Utilisez l'API WSSVerifyPart API pour configurer les méthodes d'algorithme. L'API WSSVerifyPart est fournie dans le package com.ibm.websphere.wssecurity.wssapi.verification.

Pour configurer les informations de vérification du destinataire afin de protéger l'intégrité des messages, vous devez d'abord procéder à la signature numérique puis vérifier la signature et les parties signées des messages SOAP. L'intégrité fait référence à la signature numérique alors que la confidentialité fait référence au chiffrement. L'intégrité limite le risque d'altération des données lors de leur transmission sur le réseau.

Méthodes

Les méthodes utilisées pour les informations de signature sont les suivantes :
Méthode de synthèse (digest)
Définit la méthode de synthèse.
Méthode de transformation
Définit la méthode d'algorithme de transformation.

Algorithmes de synthèse

L'algorithme de méthode digest précisé dans l'élément et utilisé dans l'élément <Digest>. WebSphere Application Server prend en charge les algorithmes de synthèse (digest) préconfigurés suivants :

Tableau 1. Méthodes de synthèse de la vérification des parties. Il est recommandé de faire appel à la vérification des parties pour protéger l'intégrité des messages.
Méthode de synthèse (digest) Description
WSSVerifyPart.SHA1 (valeur par défaut) URI de l'algorithme de synthèse, SHA1 : http://www.w3.org/2000/09/xmldsig#sha1
WSSVerifyPart.SHA256 URI de l'algorithme de synthèse, SHA256 : http://www.w3.org/2001/04/xmlenc#sha256
WSSVerifyPart.SHA512 URI de l'algorithme de synthèse, SHA256 : http://www.w3.org/2001/04/xmlenc#sha512

Algorithme de transformation

L'algorithme de transformation est précisé dans l'élément <Transform> et indique celui pour la partie signée. WebSphere Application Server prend en charge les algorithmes de transformation préconfigurés suivants :

Tableau 2. Méthodes de transformation de la vérification des parties. Il est recommandé de faire appel à la vérification des parties pour protéger l'intégrité des messages.
Méthode de synthèse (digest) Description
WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE URI de l'algorithme de transformation, signature enveloppée : http://www.w3.org/2000/09/xmldsig#enveloped-signature
WSSVerifyPart.TRANSFORM_STRT10 URI de l'algorithme de transformation, STR-Transform : http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
WSSVerifyPart.TRANSFORM_EXC_C14N (valeur par défaut) URI de l'algorithme de transformation, Exc-C14N : http://www.w3.org/2001/10/xml-exc-c14n#
WSSVerifyPart.TRANSFORM_XPATH2_FILTER URI de l'algorithme de transformation, filtre XPath2 : http://www.w3.org/2002/06/xmldsig-filter2
Pour les API WSS, WebSphere Application Server ne prend pas en charge les algorithmes de transformation suivants :
  • http://www.w3.org/TR/1999/REC-xpath-19991116
  • http://www.w3.org/2002/07/decrypt#XML

Voici un exemple de code d'API WSS vérifiant le corps à l'aide de SHA256 comme méthode de synthèse et TRANSFORM_EXC_14N et TRANSFORM_STRT10 comme méthodes de transformation :

	  // Obtenir le contexte du message
	  Object msgcontext = getMessageContext();

	  // Générer une instance WSSFactory
	  WSSFactory factory = WSSFactory.getInstance();		

	  // Générer l'instance WSSConsumingContext
	  WSSConsumingContext concont = factory.newWSSConsumingContext();


	  // Générer la liste de certificats
	  String certpath = "intca2.cer";// The location of the X509 
      certificate file 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);  
	  // Créer certStore
	  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);
	  }

	  // génération du gestionnaire d'appel	  	    
	  X509ConsumeCallbackHandler callbackHandler = new 
         X509ConsumeCallbackHandler(
			  "dsig-receiver.ks", 
			  "jks",
			  "server".toCharArray(), 
			  certList, 
			  java.security.Security.getProvider("IBMCertPath")
	  );

	  // génération de l'instance WSSVerification
	  WSSVerification ver = factory.newWSSVerification(X509Token.class, 
        callbackHandler);

	  //définition d'un ou plusieurs candidats de la méthode de signature utilisée pour la 
    //vérification (étape 1)
	  // DEFAULT : WSSVerification.RSA_SHA1
	  ver.addAllowedSignatureMethod(WSSVerification.HMAC_SHA1);

	  //définition d'un ou plusieurs candidats de la méthode de canonisation utilisée 
    //pour la vérification (étape 2)
	  // DEFAULT : WSSVerification.EXC_C14N 
	  ver.addAllowedCanonicalizationMethod(WSSVerification.C14N);
	  ver.addAllowedCanonicalizationMethod(WSSVerification.EXC_C14N);

	  //définition de la partie à spécifier par WSSVerifyPart
	  WSSVerifyPart verPart = factory.newWSSVerifyPart();

	  //définition de la partie à spécifier par le mot clé
	  verPart.setRequiredVerifyPart(WSSVerification.BODY);

	  //définition des candidats des méthodes de synthèse à utiliser pour la vérification (étape 3)
	  // DEFAULT : WSSVerifypart.TRANSFORM_EXC_C14N 
	  verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_EXC_C14N);
	  verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_STRT10);

	  //définition des candidats des méthodes de synthèse à utiliser pour la vérification (étape 4)
	  // DEFAULT : WSSVerifyPart.SHA1
	  verPart.addAllowedDigestMethod(WSSVerifyPart.SHA256);

	  //paramétrage de WSSVerifyPart sur WSSVerification
	  ver.addRequiredVerifyPart(verPart);

	  //ajout de WSSVerification à WSSConsumingContext
	  concont.add(ver);

	  // validation de l'en-tête WS-Security
	  concont.process(msgcontext);

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wssverifypartalgorithms
Nom du fichier : rwbs_wssverifypartalgorithms.html