Métodos de firma digital mediante la API WSSSignature
Puede configurar la información de firmas para el enlace de generador mediante la API de WSS. Para configurar el cliente para el firmado de solicitudes, seleccione los métodos de firma digital. Los métodos de algoritmo incluyen los métodos de firma y canonicalización.
Debe configurar la información de firmas del generador para proteger la integridad de los mensajes mediante la firma digital de mensajes SOAP. La integridad hace referencia a la firma digital mientras que la confidencialidad hace referencia al cifrado. La integridad disminuye el riesgo de que se modifiquen los datos mientras estos se transmiten por la red.
Después de especificar las partes del mensaje que desea firmar digitalmente, debe especificar qué método se va a utilizar para firmar digitalmente el mensaje.
Métodos
- Método de firma
- Establece el método del algoritmo de firma.
- Método de canonicalización
- Establece el método del algoritmo de canonicalización.
Algoritmos de firma
Los algoritmos de firma especifican el algoritmo que se utiliza para firmar el certificado. Los algoritmos de firma especifican el URI (Uniform Resource Identifier) del método de firma. WebSphere Application Server admite los algoritmos preconfigurados siguientes:
Algoritmo | Descripción |
---|---|
WSSSignature.HMAC_SHA1 | Un URI del algoritmo de firma, HMAC: http://www.w3.org/2000/09/xmldsig#hmac-sha1 |
WSSSignature.RSA_SHA1 (el valor predeterminado) | Un URI del algoritmo de firma, RSA: http://www.w3.org/2000/09/xmldsig#rsa-sha1 |
Para las API de WSS, WebSphere Application Server no da soporte al algoritmo de DSA-SHA1, http://www.w3.org/2000/09/xmldsig#dsa-sha1
El algoritmo de firma que se especifica para la configuración del generador de solicitudes debe coincidir con el algoritmo que se especifica para la configuración del consumidor de solicitudes.
Algoritmos de canonicalización
Los algoritmos de canonicalización especifican el URI (Uniform Resource Identifier) del método de canonicalización. WebSphere Application Server admite los algoritmos preconfigurados siguientes:
Algoritmo | Descripción |
---|---|
WSSSignature.EXC_C14N (el valor predeterminado) | Un URI del algoritmo de canonicalización exclusivo, EXC_C14N: http://www.w3.org/2001/10/xml-exc-c14n# |
WSSSignature.C14N | Un URI del algoritmo de canonicalización inclusivo, C14N: http://www.w3.org/2001/10/xml-c14n# |
El algoritmo de canonicalización que se especifica para la configuración del generador de solicitudes debe coincidir con el algoritmo que se especifica para la configuración del consumidor de solicitudes.
El ejemplo siguiente proporciona el código de la API de WSS de ejemplo que especifica HMAC_SHA1 como un método de firma y C14n como un método de canonicalización:
//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 de 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);
//añadir WSSSignature a WSSGenerationContext
gencont.add(sig);
//generar la cabecera de WS-Security
gencont.process(msgcontext);