Configuración de métodos de firma de solicitud para el cliente

Utilice las API WSSSignature y WSSSignPart para seleccionar los métodos de firma. Los métodos de firma de solicitudes incluyen los métodos de firma, canonicalización, conversión y transformación.

Antes de empezar

En primer lugar, debe haber especificado qué partes del mensaje enviado por el cliente se deben firmar digitalmente utilizando las API de WSS, o configurando los conjuntos de políticas utilizando la consola administrativa.

Acerca de esta tarea

La siguiente tabla describe la finalidad de esta información. Algunas de estas definiciones se basan en la especificación de firmas XML, que se puede consultar en el siguiente sitio web:http://www.w3.org/TR/xmldsig-core.

Tabla 1. Métodos de firma. Utilice los métodos de firma para proteger los mensajes.
Nombre del método Descripción
Algoritmo de canonicalización Convierte en canónico el elemento <SignedInfo> antes de su conversión como parte de la operación de firma.
Algoritmo de firma Calcula el valor de la firma del elemento <SignedInfo> canonicalizado. El algoritmo seleccionado para la configuración del remitente de solicitudes de cliente debe coincidir con el algoritmo seleccionado en la configuración del receptor de solicitudes de servidor.
Método de transformación Transforma las partes que se van a firmar, antes de que se convierta la información como parte de la operación de firma.
Método de conversión Calcula el valor de conversión de las partes transformadas. El algoritmo seleccionado para la configuración del emisor de solicitudes de cliente debe coincidir con los algoritmos seleccionados en la configuración del receptor de solicitudes de servidor.

Puede utilizar las API de WSS o configurar conjuntos de políticas utilizando la consola administrativa para configurar los métodos de algoritmo de firma. Si utiliza las API de WSS, utilice las API WSSSignature y WSSSignPart para especificar qué partes del mensaje se van a firmar digitalmente cuando se configura el cliente para la firma de solicitudes.

Las API WSSSignature y WSSSignPart completan los pasos siguientes para configurar la firma y los métodos de algoritmo de la parte firmada:

Procedimiento

  1. Para en el enlace del generador, la API WSSSignature especifica el método de firma. WebSphere Application Server da soporte a los métodos de firma preconfigurados siguientes:
    • WSSSignature.RSA_SHA1 (el valor predeterminado): http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • WSSSignature.HMAC_SHA1: http://www.w3.org/2000/09/xmldsig#hmac-sha1
    Para las API de WSS, WebSphere Application Server no soporta el método de firma digital DSA-SHA1, http://www.w3.org/2000/09/xmldsig#dsa-sha1.
  2. Para el enlace del generador, la API WSSSignature especifica el método de canonicalización. WebSphere Application Server da soporte a los algoritmos de canonicalización preconfigurados siguientes:
    • WSSSignature.EXC_C14N (el valor predeterminado): el algoritmo exclusivo de canonicalización, http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSSignature.C14N: el algoritmo inclusivo de canonicalización, http://www.w3.org/2001/10/xml-c14n#
  3. Para el enlace del generador, la API WSSSignPart especifica el método de conversión. WebSphere Application Server da soporte a los métodos de conversión preconfigurados siguientes:
    • WSSSignPart.SHA1 (el valor predeterminado): http://www.w3.org/2000/09/xmldsig#sha1
    • WSSSignPart.SHA256: http://www.w3.org/2001/04/xmlenc#sha256
    • WSSSignPart.SHA512: http://www.w3.org/2001/04/xmlenc#sha512
  4. Para el enlace del generador, la API WSSSignPart especifica el método de transformación. WebSphere Application Server da soporte a los siguientes algoritmos de transformación preconfigurados:
    • WSSSignPart.TRANSFORM_EXC_C14N (el valor predeterminado): http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSSignPart.TRANSFORM_XPATH2_FILTER: http://www.w3.org/2002/06/xmldsig-filter2
    • WSSSignPart.TRANSFORM_STRT10: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
    • WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE: http://www.w3.org/2000/09/xmldsig#enveloped-signature
    Para las API de WSS, WebSphere Application Server no se da soporte a los siguientes algoritmos de transformación:
    • http://www.w3.org/TR/1999/REC-xpath-19991116
    • http://www.w3.org/2002/07/decrypt#XML

Resultados

Al utilizar las API de WSS, ha especificado los métodos de algoritmo que se van a utilizar para firmar digitalmente un mensaje cuando el cliente envía un mensaje a un servidor.

Ejemplo

El ejemplo siguiente es código de ejemplo para especificar la información de firma, HMAC_SHA1 como método de firma, C14N como método de canonicalización, SHA256 como método de conversión y EXC_C14N y TRANSFORM_STRT10 como métodos de transformación:

	  	  //obtener el contexto del mensaje
	  Object msgcontext = getMessageContext();
	  
	  	  //generar la instancia de WSSFactory 
	  WSSFactory factory = WSSFactory.getInstance();		
	  	  
	  	  //generar instancia WSSGenerationContext 
	  WSSGenerationContext gencont = factory.newWSSGenerationContext();
		
	  	  //generar manejador de retorno de llamada
	  	  X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler(
			  "",
			  "dsig-sender.ks",
			  "jks", 
			  "client".toCharArray(), 
			  "soaprequester", 
			  "client".toCharArray(), 
			  			  "CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP", 
			  null);
	  
	  	  //generar la señal de seguridad utilizada para la firma  
	  SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);

	  	  //generar instancia WSSSignature 
	  WSSSignature sig = factory.newWSSSignature(token);
	  
	  	  //establecer el método de canonicalización
	  // DEFAULT: WSSSignature.EXC_C14N
	  sig.setCanonicalizationMethod(WSSSignature.C14N);
	  
	  	  //establecer el método de firma
	  // DEFAULT: WSSSignature.RSA_SHA1
	  sig.setSignatureMethod(WSSSignature.HMAC_SHA1);

	  	  //establecer la parte especificada por WSSSignPart
	  WSSSignPart sigPart = factory.newWSSSignPart();
	
	  	  //establecer el método de conversión
 	  	  // DEFAULT: WSSSignPart.SHA1
	  sigPart.setDigestMethod(WSSSignPart.SHA256);

	  	  //añadir el método de transformación
	  	  // DEFAULT: WSSSignPart.TRANSFORM_EXC_C14N
	  	  sigPart.addTransformMethod(WSSSignPart.TRANSFORM_EXC_C14N);
	  	  sigPart.addTransformMethod(WSSSignPart.TRANSFORM_STRT10);

    // añadir WSSSignPart a WSSSignature
    sig.addSignPart(sigPart);	  
		  
	  	  //añadir WSSSignature a WSSGenerationContext  
	  gencont.add(sig);
		
	  	  //generar la cabecera de WS-Security  
	  gencont.process(msgcontext);

Qué hacer a continuación

Después de configurar el cliente para firmar digitalmente el mensaje y seleccionar los métodos de algoritmo, debe configurar el servidor para verificar la firma digital para la firma de solicitudes y seleccionar los métodos de algoritmo.

Configure los conjuntos de políticas utilizando la consola administrativa para configurar la información y los métodos de verificación de la firma en el servidor.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwsssignalgorithms
File name: twbs_confwsssignalgorithms.html