Firma XAdES Manifest

En XAdES, se denomina una firma Manifest al caso en el que no se firma directamente el documento, sino que se firma un manifiesto que hace referencia a él (identificándolo de forma unívoca mediante una huella digital y una referencia). Lo que hacemos es firmar la huella del documento en vez del documento tal y como recoge la normativa:

https://www.w3.org/TR/2000/WD-xmldsig-core-20000510/#sec-o-Manifest.

Las ventajas de una firma XAdES Manifest son claras, en lugar de enviar documentos que pueden llegar a pesar varios cientos de Mb, se envía la referencia y la huella de los documentos, reduciendo drásticamente el tamaño que navega por la red. Ejemplo de solicitud de firma de 3 documentos empleando el tipo de firma XAdES Manifest, en lugar de pasar el objeto document, se proporciona un listado de references:

Los parámetros que se reciben (en formato application/json) tienen la siguiente forma:

{
    "userCode": "{{user_code}}",
    "signatureConfigurations": [
        {
            "references": [
                {
                    "uri": "src/test/examples/manifest/a_documento.pdf",
                    "digestValue": "GQBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sCfJ/w=="
                },
                {
                    "uri": "src/test/examples/manifest/b_documento.pdf",
                    "digestValue": "GSLCsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sJcF/g=="
                },
                {
                    "uri": "src/test/examples/manifest/c_documento.pdf",
                    "digestValue": "XMBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS2mDfJ/m=="
                }
            ],
            "digestAlgorithm": "SHA512",
            "signatureType": "XADES_B",
            "signatureAlgorithm": "RSA_SHA256",
            "packaging": "ENVELOPING",
            "xadesConfiguration": {
                "manifestSignature": true
            }
        }
    ]
}

Donde:

Parámetro Tipo Descripción
userCode string Usuario que debe de realizar la firma, si el sistema cliente no informa dicho valor, Viafirma Fortress solicitará el usuario a emplear en el proceso de autenticación y autorización de la solicitud de firma
signatureConfigurations/references array Colección de referencias
signatureConfigurations/references/uri string Nombre del documento a firmar
signatureConfigurations/references/digestValue string Documento a firmar, codificado en Base64
signatureConfigurations/digestAlgorithm string Algoritmo que se usará para cifrar la firma. Valores disponibles:
- SHA1
- SHA224
- SHA256
- SHA384
- SHA512
signatureConfigurations/signatureType string Tipo de firma. Valores disponibles:
- CADES_B
- CADES_T
- CADES_LT
- CADES_LTA
- PADES_B
- PADES_T
- PADES_LT
- PADES_LTA
- XADES_B
- XADES_T
- XADES_LT
- XADES_LTA
- PKCS1
signatureConfigurations/signatureAlgorithm string Algoritmo que se usará para cifrar la firma. Valores disponibles:
- RSA_SHA1
- RSA_SHA224
- RSA_SHA256
- RSA_SHA384
- RSA_SHA512
signatureConfigurations/packaging string Envoltura de la firma. Valores disponibles:
- ENVELOPED
- ENVELOPING
- DETACHED
signatureConfigurations/xadesConfiguration/manifestSignature boolean Si se indica true, en lugar de pasar el objeto document, se proporciona un listado de references.

Al realizar la firma, podremos ver dentro de nuestro XAdES una estructura MANIFEST con la referencia al documento (en vez del documento en sí):

<ds:Manifest Id="manifest">
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>GQBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1a 6LDhIJcKS1sCfJ/w==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>GSLCsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sJcF/g==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>XMBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS2mDfJ/m==</ds:DigestValue>
    </ds:Reference>
</ds:Manifest>

results matching ""

    No results matching ""