|
Para la comprensión de este ejemplo, se recomienda haber entendido previamente el ejemplo de validación de un certificado X509.
El mecanismo utilizado para el cifrado de datos, sirve para asegurar la confidencialidad entre un emisor y un receptor. Este mecanismo, usa el par de claves proporcionados por la infraestructura PKI, es decir la clave privada y la clave pública.
El elemento dss:EncryptRequest de la petición, indica al sistema que se trata de una petición de cifrado y su atributo Profile indica que se trata de un cifrado usando el perfil xmlenc.
Por otra parte, contiene el elemento opcional css:Recipients que determina los destinatarios a los que se quiere cifrar el mensaje.
Por último, el elemento dss:Document contiene el documento a cifrar.
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SOAP-ENV:Header><wsse:Security><wsse:UsernameToken wsu:Id="SecurityToken-3265069996882602124"><wsse:Username>dave</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">trustedx</wsse:Password></wsse:UsernameToken></wsse:Security></SOAP-ENV:Header>
<SOAP-ENV:Body xmlns:css="http://www.safelayer.com/TWS" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dss="http://www.docs.oasis-open.org/dss/2004/06/oasis-dss-1.0-core-schema-wd-27.xsd" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:xades="http://uri.etsi.org/01903/v1.2.2#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" wsu:Id="Id-792686793907855382">
<css:EncryptRequest Profile="urn:safelayer:tws:de:1.0:profiles:xmlenc:1.0:encrypt" RequestID="Id-6963162054466289454"><dss:OptionalInputs><css:Recipients><css:Recipient><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIEVzCCAz+gAwIBAgICA8EwDQYJKoZIhvcNAQEFBQAwbjFBMD8GA1UEChM4U2FmZWxheWVyIFNlY3VyZSBDb21tdW5pY2F0aW9ucywgUy5BLiBbQy5JLkYuIEE2MTkzMDA0Nl0xKTAnBgNVBAMTIFNhZmVsYXllciAtIENsYXNzIDEgUm9vdCBDQSBEZW1vMB4XDTA4MDExMDExNDYwNFoXDTA5MDExMDExNDYwNFowPjELMAkGA1UEBhMCRVMxETAPBgNVBAoTCFRydXN0ZWRYMQ0wCwYDVQQLEwREZW1vMQ0wCwYDVQQDEwREYXZlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwgP6U2BdxG/hUzPLlVN4maa79hfsxfOpvENDo4BOCmni9IhXBsFoQkNt/an/JILIhsZm1Pz+oiOZCuzb6FJxHMoKltxMFukZnGBdyDvhAKJVx5J9t165hB82x2cIjkjyGEdRCEpmp40IQV23P0/t71vj9tEF2dTRhs723KZvk2wIDAQABo4IBsTCCAa0wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCA/gwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQUsQmFz7/Ei7KW7aJu01YtRCIH3yUwgZgGA1UdIwSBkDCBjYAUNEmbBBkEQgCP0PZ4m8TXjcAX7TShcqRwMG4xQTA/BgNVBAoTOFNhZmVsYXllciBTZWN1cmUgQ29tbXVuaWNhdGlvbnMsIFMuQS4gW0MuSS5GLiBBNjE5MzAwNDZdMSkwJwYDVQQDEyBTYWZlbGF5ZXIgLSBDbGFzcyAxIFJvb3QgQ0EgRGVtb4IBATA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly92YS5zYWZlbGF5ZXIuY29tOjgwOTQwZwYDVR0fBGAwXjBcoFqgWIYpaHR0cDovL2NhLnNhZmVsYXllci5jb20vY3Jscy9jcmxEZW1vcy5jcmyGK2h0dHA6Ly9kZW1vLnNhZmVsYXllci5jb20vY3Jscy9jcmxEZW1vcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAH1/za0hD5V/JBCFHZRtXtQfkrP9Os+iD5lq04+el+ULnXR03F801scmdLoFLT6IC69wwnGO61lQpRvzPf2GYBB5QOfU/13CeZEVWyG4k5kx8jcDvT2SCbPJ5Ewh74tO8PnRH+/5Ja5pj9MIv51sRXEP5mJrf5rOEyRX5ZK/aSZuGaEkuIOhsYoKGvAkf8gxuBZ5Jj0CP9vPnRJXReXov6GkUoJd45NulOIHEa3vuJnserph3cX+D3yJV1ytRZAurOIWtxlkp4uWiNUa4yzGIcXT03TRLn96iyB+uDL4U4i725e3kE6oSlB2STjvGctkSm0lVKCRk007ioN2WnsDYRY=</ds:X509Certificate></ds:X509Data></ds:KeyInfo></css:Recipient></css:Recipients></dss:OptionalInputs><dss:InputDocuments><dss:Document><dss:XMLData><trustedx Id="data"><example Id="node1">Simple xml file</example><description Id="node2" format="text">XMLDSig/XAdES TrustedX signatures</description></trustedx></dss:XMLData></dss:Document></dss:InputDocuments></css:EncryptRequest></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
| | | | | | | |
La explicación siguiente, hace referencia a la respuesta obtenida por la plataforma TrustedX una vez enviada la petición, por lo que se debe pulsar el botón de "probar" anterior para la generación de esta respuesta.
El elemento css:EncryptResponse indica que se trata de una respuesta a una petición de cifrado previa. En concreto, el elemento xenc:EncryptedData indica el inicio de la propia respuesta cifrada.
Como puede verse en la respuesta, existen dos valores cifrados (xenc:CipherValue), esto es debido a se realiza el cifrado en dos partes, la primera consiste en realizar el cifrado de los datos mediante un mecanismo simétrico (con algoritmo aes128 del elemento xenc:EncryptionMethod), y posteriormente se cifra la clave simétrica resultante del cifrado mediante el mecanismo asimétrico de cifrado o clave pública (con algoritmo rsa-1_5 del elemento xenc:EncryptionMethod). De este modo se simplifica la complejidad de cálculo conservando todas las ventajas de la infraestructura PKI.
Por último, puede observarse que la respuesta ha retornado información sobre la clave usada para realizar la firma asimétrica a través del elemento ds:KeyInfo. |