Algoritmo por defecto de las firmas

Cuando una aplicación hace una petición al Signador Centralizado y no indica qué algoritmo de firma desea utilizar, el sistema aplica un algoritmo por defecto.

📌 Desde el 26 de abril de 2023 este algoritmo por defecto es SHA256.

Esta situación es habitual, por ejemplo, cuando se envía un archivo PDF ay no se especifica ningún algoritmo concreto.

Cómo indicar un algoritmo específico en la petición de firma

Si quieres que el Signador Centralizado utilice un algoritmo concreto para generar la firma, debes añadir el campo <SignatureDigestAlgorithm> dentro de <OptionalInputs> en la request que llega a TX.

📋 Los valores posibles son:

  • md5

  • sha1

  • id_sha256

  • id_sha384

  • id_sha512

Ejemplo:

<OptionalInputs>

...

<SignatureDigestAlgorithm>id_sha256</SignatureDigestAlgorithm>

....

</OptionalInputs>

Peticiones que en lugar de un documento aportan un HASH calculado externamente.

Hay casos en que la petición no contiene el documento a firmar sino un HASH calculado externamente en TrustedX. En este caso el nodo <Document> contiene una estructura como ésta:

<InputDocuments><DocumentHash>

<ns3:DigestMethod Algorithm=" urn:nist-gov:sha256 " xsi:type="ns3:DigestMethodType" xmlns:ns3=http://www.w3.org/2000/09/xmldsig#/>

<ns4:DigestValue xsi:type="ns4:DigestValueType" xmlns:ns4=http://www.w3.org/2000/09/xmldsig#>ZTgwZTYyZTQ2MTJmMjQ5NGE4OTAwY2QxZTJjZTA4ZjQwNjQwMjI0NTE1MzY4ZjYwNDVjOTU4YTM3MjFlZGY3MA==</ns4:DigestValue>

</DocumentHash>

</InputDocuments>

En este caso el valor que debe indicarse en <ds:DigestMethod> el atributo Algorithm utilizado, los valores pueden ser los siguientes:

  • http://www.w3.org/2000/09/xmldsig#sha1

  • http://www.w3.org/2001/04/xmldsig-more#md5

  • urn:nist-gov:sha256

  • urn:nist-gov:sha384

  • urn:nist-gov:sha512

  • http://www.w3.org/2001/04/xmlenc#sha256 (only for generating XMLDSig/XAdES firmas)

  • http://www.w3.org/2001/04/xmldsig-more#sha384 (only for generating XMLDSig/XAdES firmas)

  • http://www.w3.org/2001/04/xmlenc#sha512 (only for generating XMLDSig/XAdES firmas)

NOTA : En este caso, es necesario asegurar que la combinación entre SignatureDigestAlgorithm y el HASH calculado debe ser coherente o el sistema no firmará.

Te podría interesar