Resumen:
Firma XML, es una recomendación W3C (World Wide Web Consortium) Las firmas XML se pueden aplicar a cualquier contenido digital,pero en especial los que son orientados a XML.
Detalle:
Tabla de contenidos
Tipos de Firma XML.
Podemos denominar que existen 3 tipos de firma XML ya que podemos presentarla por medio de archivos separados, firma dentro del documento o documento dentro de la firma.
- Firma envuelta (Enveloped): La firma está contenida dentro del documento que se firma.
- Firma envolvente (Enveloping): La firma contiene al documento.
- Firma separada (Detached): La firma está separada del documento firmado.
Estructura
Presentaremos la estructura XML de la firma la cual esta compuesta por etiquetas establecidas por estándar la cual cada una tiene una funcionalidad específica y datos.
<Signature>
<SignedInfo>
<SignatureMethod/>
<CanonicalizationMethod/>
<Reference>
<Transforms>
<DigestMethod>
<DigestValue>
</Reference>
</SignedInfo>
<SignatureValue/>
<KeyInfo/>
<Object/>
</Signature>
<Signature></Signature> : es un elemento simple que contiene información: lo que se está firmando, la propia firma, las claves utilizadas para firmar.
< SignedInfo ></ SignedInfo > : El elemento puede dividirse en dos partes desde el punto de vista conceptual: información sobre el valor de la firma e información sobre los datos a firmar.
< SignatureMethod ></ SignatureMethod> : especifica qué tipo de algoritmo de firma se utilizará para obtener la firma. La firma se realiza aplicando este algoritmo matemático sobre el elemento
<SignedInfo> Puesto que contiene los valores hash de los distintos datos que se quieren firmar.
<CanonicalizationMethod>: método para estandarización del documento para que sea único y cambia su estado en bits.
<References>: Contiene URI El atributo URI identifica al objeto de datos que se va a firmar. Y contiene las etiquetas de transform DigestMethod y DigestValue.
<Transform>: Es opcional contendra una lista en la que cada uno de sus elementos
indica un paso realizado en el procesamiento de cálculo del hash.
< DigestMethod >: define la función hash utilizada.
<DigestValue>: es el valor hash codificado en Base64.
<Keyinfo>: Es una estructura opcional que identifica al firmante. Su contenido suele
utilizarse en procesos de verificación de firmas,que contienen información del certificado firmante y de la clave pública del firmante respectivamente.
<Object>: es opcional y se utiliza para contener cualquier tipo de dato por lo general importante para la firma, como sellos de tiempo y, en el caso de una firma de tipo enveloping, para contener los datos que se firman.
Firma XML avanzada XADES.
Existen de firmas avanzadas, basadas en formatos XML. Dentro de este formato de firmas, se han ido evolucionando distintas extensiones que dan respuesta a distintas necesidades y escenarios; las extensiones descritas a continuación no tienen que considerarse de menos a más en el grado de robustez, fiabilidad o seguridad, sino que deben considerarse como evoluciones del formato que dan respuesta a escenarios distintos.
XAdES-BES. Firma básica que simplemente cumple los requisitos legales de la Directiva para firma electrónica avanzada
XAdES-EPES. Es un XAdES-BES al que se le incorpora aquella información sobre el certificado empleado y la CA que lo emitió.
XAdES-T (timestamp). Es un XAdES-EPES al que se le añade una segunda firma, una firma realizada por una TSA (Time Stamp Authority). Esta segunda firma aporta información específica sobre la fecha y hora exacta de la firma.
XAdES-C (complete). Es un XAdES-T al que se le añaden referencias sobre los certificados y listas de revocación utilizadas para la validación del propio certificado utilizado para la firma. Por ejemplo: fue firmado por Certificado CCC emitidos por CA AAA y cuya CRL RRRR fue consultada en el momento de la validación.
XAdES-X (extended). Es un XAdES-C al que se le añade información sobre la fecha y hora de los datos introducido para la extensión C.
XAdES-XL (extended long-term). Es un XAdES-X al que se le incorporan los certificados (sólo clave pública) y las fuentes de validación que se usaron. A diferencia del -C, donde sólo se incluía una referencia (un puntero), en este formato se embebe toda esa información. Esto se utiliza para garantizar la validación muchos años después de la firma incluso en el caso que la CA que emitió el certificado, o la fuente de validación (CRL) que se consultó, ya no esté disponibles (publicadas por ejemplo). Es decir, garantiza la validación off-line a largo plazo.
0 comentarios