Fechando os Métodos de Verificação de Partes que Utilizam a WSSVerifyPart API

É possível configurar as informações sobre verificação de assinatura para a ligação do consumidor utilizando a WSS API. Os métodos de compilação e de algoritmo de transformação são utilizados para a ligação do consumidor. Utilize a WSSVerifyPart API para configurar os métodos de algoritmo. A WSSVerifyPart API é fornecida no pacote com.ibm.websphere.wssecurity.wssapi.verification.

Para configurar informações sobre verificação de partes do consumidor para proteger a integridade da mensagem, primeiro assine digitalmente e verifique a assinatura e as partes assinadas para a mensagem SOAP. A integridade refere-se à assinatura digital, enquanto que a confidencialidade refere-se à criptografia. A integridade diminui o risco de modificação de dados quando você transmite dados pela rede.

Métodos

Métodos que são utilizados para as informações sobre assinatura incluem:
Método de Compilação
Configura o método de compilação.
Método de Transformação
Configura o método do algoritmo de transformação.

Algoritmos de Compilação

O algoritmo do método de compilação é especificado dentro do elemento utilizado no elemento <Digest>. O WebSphere Application Server suporta os seguintes algoritmos de compilação pré-configurados:

Tabela 1. Métodos de Compilação de Verificação de Partes. Use a verificação de partes para proteger a integridade da mensagem.
Método de Compilação Description
WSSVerifyPart.SHA1 (o valor padrão) Um URI do algoritmo de compilação, SHA1: http://www.w3.org/2000/09/xmldsig#sha1
WSSVerifyPart.SHA256 Um URI do algoritmo de compilação, SHA256: http://www.w3.org/2001/04/xmlenc#sha256
WSSVerifyPart.SHA512 Um URI do algoritmo de compilação, SHA256: http://www.w3.org/2001/04/xmlenc#sha512

Algoritmos de Transformação

O algoritmo de transformação é especificado dentro do elemento <Transform> e especifica o algoritmo de transformação para a parte assinada. O WebSphere Application Server suporta os seguintes algoritmos de transformação pré-configurados:

Tabela 2. Métodos de Transformação de Verificação de Partes. Use a verificação de partes para proteger a integridade da mensagem.
Método de Compilação Description
WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE Um URI do algoritmo de transformação, assinatura envelopada: http://www.w3.org/2000/09/xmldsig#enveloped-signature
WSSVerifyPart.TRANSFORM_STRT10 Um URI do algoritmo de transformação, STR-Transform: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
WSSVerifyPart.TRANSFORM_EXC_C14N (o valor padrão) Um URI do algoritmo de transformação, Exc-C14N: http://www.w3.org/2001/10/xml-exc-c14n#
WSSVerifyPart.TRANSFORM_XPATH2_FILTER Um URI do algoritmo de transformação, filtro XPath2: http://www.w3.org/2002/06/xmldsig-filter2
Para WSS APIs, o WebSphere Application Server não suporta os seguintes algoritmos de transformação:
  • http://www.w3.org/TR/1999/REC-xpath-19991116
  • http://www.w3.org/2002/07/decrypt#XML

O exemplo a seguir fornece o código de amostra da WSS API que verifica o corpo que utiliza SHA256 como o método de compilação e TRANSFORM_EXC_14N e TRANSFORM_STRT10C14n como os métodos de transformação:

	  // obter o contexto da mensagem
	  Object msgcontext = getMessageContext();

	  // gerar a instância WSSFactory
	  WSSFactory factory = WSSFactory.getInstance();		

	  // generate WSSConsumingContext instance
	  WSSConsumingContext concont = factory.newWSSConsumingContext();


	  // gera a lista de certificados
	  String certpath = "intca2.cer";// O local do 
      arquivo de certificado X509 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);  
	  // criar 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);
	  }

	  // gerar manipulador de retorno de chamada	  	    
	  X509ConsumeCallbackHandler callbackHandler = new 
         X509ConsumeCallbackHandler(
			  "dsig-receiver.ks", 
			  "jks",
			  "server".toCharArray(), 
			  certList, 
			  java.security.Security.getProvider("IBMCertPath")
	  );

	  //gera a instância de WSSVerification
	  WSSVerification ver = factory.newWSSVerification(X509Token.class, 
        callbackHandler);

	  //configura um ou mais candidatos do método de assinatura utilizado para a 
    //verificação (etapa. 1)
	  // DEFAULT : WSSVerification.RSA_SHA1
	  ver.addAllowedSignatureMethod(WSSVerification.HMAC_SHA1);

	  //configura um ou mais candidatos do método de canonicalização utilizado 
    //para a verificação (etapa. 2)
	  // DEFAULT : WSSVerification.EXC_C14N 
	  ver.addAllowedCanonicalizationMethod(WSSVerification.C14N);
	  ver.addAllowedCanonicalizationMethod(WSSVerification.EXC_C14N);

	  //configura a parte a ser especificada por WSSVerifyPart
	  WSSVerifyPart verPart = factory.newWSSVerifyPart();

	  //configura a parte a ser especificada pela palavra-chave
	  verPart.setRequiredVerifyPart(WSSVerification.BODY);

	  //configura os candidatos de métodos de compilação a ser utilizado para verificação (etapa. 3)
	  // PADRÃO : WSSVerifypart.TRANSFORM_EXC_C14N 
	  verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_EXC_C14N);
	  verPart.addAllowedTransform(WSSVerifyPart.TRANSFORM_STRT10);

	  //configura os candidatos de métodos de compilação a ser utilizado para verificação (etapa. 4)
	  // DEFAULT : WSSVerifyPart.SHA1
	  verPart.addAllowedDigestMethod(WSSVerifyPart.SHA256);

	  //configura WSSVerifyPart para WSSVerification
	  ver.addRequiredVerifyPart(verPart);

	  //inclui a WSSVerification na WSSConsumingContext
	  concont.add(ver);

	  //valida o cabeçalho de WS-Security
	  concont.process(msgcontext);

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wssverifypartalgorithms
Nome do arquivo: rwbs_wssverifypartalgorithms.html