FIRMAS ELECTRONICAS MEDIANTE EL ESTANDAR XADES

Documentos relacionados
POLÍTICA DE FIRMA (versión 3.1) FORMATO FACTURAE

Firma electrónica in a nutshell

Política de firma electrónica basada en certificados

Guía Rápida de aplicación de la política de firma electrónica de la AGE v1.9

Política de firma electrónica basada en certificados de la Administración Pública de la Comunidad Autónoma de Euskadi

BOLETÍN OFICIAL DEL ESTADO

Política de Firma Electrónica de ANF Autoridad de Certificación

Tema 3 Formatos de firma electrónica

Política de firma electrónica basada en certificados emitidos por las jerarquías de ANF Autoridad de Certificación

Política de Formatos Oficiales de los Documentos Electrónicos Firmados Digitalmente

Firma Electrónica Avanzada

DOCUMENTO DE POLÍTICA DE FIRMA ELECTRÓNICA Y DE CERTIFICADOS EN EL AYUNTAMIENTO DE MADRID

Condiciones de Firma Electrónica de la Plataforma SIR

Estándar técnico de firma electrónica de acto jurídico Notificación electrónica

Política de firma electrónica basada en certificados de la Administración Pública de la Comunidad Autónoma de Euskadi

Política de Formatos Oficiales de los Documentos Electrónicos Firmados Digitalmente

SICRES 3.0 Presentación Ejecutiva

Experiencia de uso de la firma electrónica en la recogida de firmas de Iniciativas legislativas populares

MANUAL SOBRE FIRMA ELECTRÓNICA

LECCIÓN 5 Firma Electrónica

FIRMA ELECTRÓNICA NECESIDADES CORPORATIVAS

Guía para verificar documentos firmados digitalmente.

Documento de Recomendación de Uso de Firma Digital en Comunicación PISEE. Ministerio Secretaría General de la Presidencia

ESPECIFICACIONES DE FIRMA ELECTRÓNICA e-factura v 2.0

LEGISLACIÓN CONSOLIDADA

Web Service Cancelación Expide Tu Factura

CÓMO PREPARARSE PARA UN MERCADO CON UBL & XADES?

Aplicaciones de la Firma Electrónica

ANEXO X ESTÁNDARES RECONOCIDOS PARA LA ACREDITACIÓN

Firma Digital en SOA

POLÍTICA DE SERVICIOS DE VALIDACIÓN DE CERTIFICADOS EN LÍNEA DE VITSA

Guía para verificar documentos firmados digitalmente.

MARCO DE REFERENCIA PARA LA PLATAFORMA DE INTEROPERABILIDAD VOLÚMEN IV: MANUAL DEL DESARROLLADOR

INFORMACIÓN GENERAL SOBRE FIRMA ELECTRÓNICA COLEGIO OFICIAL DE INGENIEROS INDUSTRIALES DEL PRINCIPADO DE ASTURIAS V /04/2017.

Conceptos de Criptografía Normativa de firma electronica Firma electrónica

ANEXO APLICACIÓN DE FIRMA

DECLARACIÓN INFORMATIVA TSA

ANEXO 11: ESTÁNDARES RECONOCIDOS PARA LA ACREDITACIÓN

Manual de Instrucciones para la Validación de Facturas Electrónicas con Sello de Tiempo recibidas en formato Adode Acrobat (PDF).

REGISTRO DE CAMBIOS LISTA DE DISTRIBUCIÓN

La Firma Digital. Seguridad en Redes TCP/IP. Tabla de Contenidos

DOCUMENTOS TÉCNICOS DIVISIÓN INFORMÁTICA DESARROLLO

Manual del desarrollador Servicio de Sello Electrónico y Copia Electrónica

Ciencia con Juristas

Formatos Oficiales de los Documentos Electrónicos Firmados Digitalmente Alexander Barquero Elizondo

Firma Electronica Avanzada

Sellado de Tiempo de ACGISS

EXPEDIENTE ELECTRÓNICO en la agilización de trámites al ciudadano

Conceptos sobre firma y certificados digitales

Certificados de Sello Electrónico de ACGISS

GUÍA DE INTEROPERABILIDAD Y SEGURIDAD DE DIGITALIZACIÓN CERTIFICADA DE DOCUMENTOS. Grupo de trabajo de Bases de interoperabilidad del CTEAJE (BIS)

Consejería de Hacienda y Administración Pública. Módulo de firmas XML

Política de Firma Electrónica

Autenticación: Garantiza que el autor o visador del documento es quien dice ser.

DOCUMENTOS TÉCNICOS DIVISIÓN INFORMÁTICA DESARROLLO

Política de Validación

Marco conceptual del Cero Papel y los Servicios de Certificación Digital

Guía de Firma Digital para Adobe Reader XI.

Firma y validación de ficheros PDF con Acrobat 8

Manual del desarrollador Servicio de Sello Electrónico y Compulsa Electrónica

GUIA DE ELABORACION DE DOCUMENTOS ELECTRONICOS XML

Guía de Firma Digital para documentos de Word 2010.

POLÍTICA DE FIRMA ELECTRÓNICA Documento de especificación de la política de firma electrónica de la Universidad Europea de Madrid

Visión Práctica de la Firma Electrónica. Valencia, 20 de noviembre de 2009

DocuSign. Advantage Security S de RL de CV Av Prolongación Paseo de la Reforma 625 Paseo de las Lomas, Santa Fe CP Tel

Universidad Autónoma del Estado de México. Facultad de Ingeniería. Ingeniería en Computación. Trabajo de Investigación: Estándar X.

Í N D I C E COMPROBANTE FISCAL ELECTRÓNICO. Fecha: 10/07/2017

Guía de Firma Digital para Adobe Reader DC. DIRECCIÓN DE CERTIFICADORES DE FIRMA DIGITAL

Guía de Firma Digital para Adobe Reader XI en Mac.

Certificados de Empleado Público de ACGISS

@ries: Interfaz servicios web Registro Telemático

FORMATO LIBRO DE BOLETAS Versión 2.0

Servicio Público de Empleo Estatal CERTIFICADO DE SELLO ELECTRÓNICO POLÍTICA DE CERTIFICACIÓN. ÁREA DE SEGURIDAD Y LOGÍSTICA

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

VALIDACIÓN DE FIRMAS DIGITALES EN DOCUMENTOS PDF

Evolución n 2007 de los Servicios de Certificación n FNMT y DNI electrónico

Política de Formatos Oficiales de los Documentos Electrónicos Firmados Digitalmente

Resolución de febrero 24 de 2016

Capítulo 3. Qué es un Prestador de Servicios de Certificación?

Manual de Firma de documentos en Adobe Acrobat

GUIA DE ELABORACION DE DOCUMENTOS ELECTRONICOS XML

Política de Firma Digital de CONICET

Juan Carlos Rodríguez (S21Sec) Juan José Carrasco (IZENPE) Rames Swart (SmartAccess)

Time Stamp Sellado de tiempo

Firmador Digital Documentation

Seguridad y criptografía

Un mundo de servicios de firma electrónica: suite de aplicaciones y utilidades de firma

Documentación de integración y recomendaciones

Manual de configuración de sistemas para el acceso a través de servicios web a la Consulta y Firma de Notificaciones Telemáticas

Introducción a la firma electrónica

Í N D I C E COMPROBANTE FISCAL ELECTRÓNICO. Fecha: 26/08/2013

Herramienta de verificación y formación de documentos y expedientes electrónicos conformes al Esquema Nacional de Interoperabilidad

GUÍA DE NOTIFICACIÓN DE SERVICIOS ELECTRÓNICOS DE CONFIANZA CUALIFICADOS

Requerimientos Técnicos 1

Los documentos en soporte electrónico

Firma-e, Administración-e y DNI-e. Retos y desafíos.

El archivo como pilar del ciclo de vida del documento electrónico

IFACTURE WEB NUESTRA SOLUCIÓN DE FACTURA ELECTRÓNICA PARA PYMES.

GUÍA TIC DE CASTILLA Y LEÓN EDITA: Consejo Regional de Cámaras Oficiales de Comercio e Industria de Castilla y León DISEÑA: IMPRIME: Grá

Transcripción:

FIRMAS ELECTRONICAS MEDIANTE EL ESTANDAR XADES

INTRODUCCION A LAS FIRMAS XML Las firmas XML están diseñadas para su utilización en transacciones XML. Como toda firma digital, las firmas XML añaden autenticación, integridad de datos, y soporte al no repudio a los datos que firman. Las firmas XML tienen la ventaja respecto a las firmas que no se basan en XML (como CMS o CADES) de que permiten firmar sólo porciones específicas del árbol XML en vez del documento completo. Esta capacidad es muy útil cuando un documento tiene una larga historia en la que sus componentes son creados por diferentes autores en diferentes momentos, y hay que garantizar la integridad de cada porción. Otra ventaja de las firmas XML es que XML es la tecnología que hace posible actualmente la integración entre aplicaciones y datos, y todas las aplicaciones de firma actuales soportan XML. Una firma XML puede firmar más de un tipo de recurso. Por ejemplo, una sola firma XML podría abarcar datos HTML, JPG, XML, y una sección específica de un fichero XML. La validación de una firma requiere que el objeto de datos que fue firmado esté accesible. La propia firma XML indica por regla general la localización del objeto firmado original. Este objeto puede : ser referenciado por una URI dentro de la firma XML residir dentro del mismo recurso que la firma XML (la firma es un hermano del contenido) estar incrustado dentro de la firma XML (la firma sería el padre del contenido). tener la firma XML incrustada dentro de él (la firma sería el hijo del contenido). La desventaja principal de las firmas XML es que ocupan más espacio que las firmas basadas en CMS, que son binarias. Además de que el código de las firmas XML es más extenso, se codifican en base64, lo que multiplica adicionalmente por 4/3 su extensión. Por otro lado, el proceso de generación de una representación canónica en firmas XML causa una latencia mayor que en las firmas basadas en CMS, y requiere capacidades de proceso más elevadas.

POR QUE XADES? XADES es un estándar abierto basado en XMLDSIG, que lo extiende para proporcionar validez a largo plazo (sellos de tiempo, listas de revocación de certificados, etc) y el resto de requisitos necesarios para cumplir con la Directiva 1999/93/EC de la Comunidad Europea y el Consejo del 13 de Diciembre de 1999, por la que se establece un Marco Comunitario para la Firma Electrónica. Elemento Descripción FIRMA XMLDSIG : <Signature ID?> <SignedInfo> <CanonicalizationMethod /> <SignatureMethod /> <Reference> <Transforms /> <DigestMethod /> <DigestValue /> </Reference> <Reference /> etc. </SignedInfo> <SignatureValue /> <KeyInfo /> <Object /> </Signature> Signature SignedInfo CanonicalizationMethod SignatureMethod Reference Transforms (opcional) DigestMethod DigestValue SignatureValue KeyInfo (opcional) Object (opcional) Elemento raíz de la firma. Puede llevar opcionalmente identificador Contiene toda la información sobre los datos firmados e información adicional para verificación de firma Método para generar una representación canónica que iguala los documentos XML sintácticamente equivalentes Indica el algoritmo usado para firmar los datos URI que indica el objeto (u objetos) firmados Lista ordenada de transformaciones aplicadas a los datos antes de hacer el hash. Se usa en firmas enveloped para eliminar el elemento signature antes de calcular la firma. Algoritmo utilizado para obtener el hash del objeto Contiene el valor del hash del objeto Valor de la firma en base64 del elemento SignedInfo completo Información adicional para obtener las claves para la verificación de la firma. En XADES, si aparece debe contener el certificado X509 del firmante, no sólo la clave pública (como en XMLDSIG), y puede también contener la cadena de confianza completa. Elemento opcional. Puede incluir cualquier dato, como sellos tiempo, o los datos a firmar en firmas enveloping.

XMLDSIG XMLDSig cumple los requerimientos de Firma Electrónica Avanzada (aunque debe extenderse a XADES para cumplir todas las medidas de seguridad expuestas en [99/93/EC]) : - Se identifica con un único firmante. - Identifica al firmante. - Se crea por medios que sólo el firmante puede conocer y mantener. - Se relaciona de tal manera con los datos que firma que un cambio en ellos es detectado. Por todo ello, XMLDSig cumple los principios de integridad, autenticación y no repudio. En XMLDSig se definen tres tipos de firmas (que también existen en XADES) : - Enveloped : La firma está contenida dentro del documento que se firma. - Enveloping : La firma contiene al documento. - Detached : La firma está separada del documento firmado. En XMLDSIG, el elemento Object puede contener cualquier tipo de contenido, y XADES delimita las posibilidades en cuanto a su estructura y los tipos de elementos que puede contener, que veremos posteriormente.

FORMATOS DE FIRMA EN XADES Formatos de firma en XADES: XADES-BES (Basic Electronic Signature) : forma básica que simplemente cumple los requisitos legales de la Directiva para firma electrónica avanzada. Se usa cuando no se ha definido una política de firma. XAdES-EPES : forma básica a la que se la ha añadido información sobre la política de firma. XAdES-T (timestamp), añade un campo de sellado de tiempo para proteger la firma contra el repudio. XADES-C (complete): añade referencias a datos de verificación (certificados y listas de revocación) a los documentos firmados, para permitir verificación y validación off-line en el futuro (pero no almacena los datos en sí mismos). XAdES-X (extended): añade sellos de tiempo a las referencias introducidas por XAdES-C para evitar que pueda verse comprometida en el futuro una cadena de certificados. XAdES-X-L (extended long-term): añade los propios certificados y listas de revocación a los documentos firmados para permitir la verificación en el futuro incluso si las fuentes originales (de consulta de certificados o de las listas de revocación) no estuvieran ya disponibles. XAdES-A (archivado), añade la posibilidad de timestamping periódico (por ej. cada año) de documentos archivados para prevenir que puedan ser comprometidos debido a la debilidad de la firma durante un periodo largo de almacenamiento.

XADES-BES XAdES-BES se construirá sobre un XMLDSig, incorporando propiedades que se incluirán, en algunos casos, entre los datos firmados (dentro del elemento <xades:signedproperties>), y en el caso de aquellas que no requieren ser firmadas, entre los datos no firmados (dentro del elemento <xades:unsignedproperties>). El cálculo de la firma se realiza, igual que en XMLDSig, sobre los datos de negocio y sobre el nuevo conjunto de propiedades <xades:signedproperties>, cuando esté presente. Esta modalidad extiende a XMLDSig, haciendo obligatorio incluir o proteger el certificado firmante dentro de la firma, utilizando una de las dos formas siguientes : - Incorporando un resumen del certificado dentro de <xades:signingcertificate>, que forma parte del elemento <xades:signedsignatureproperties>, incluído dentro de las SignedProperties. - No incorporando el elemento SigningCertificate, pero incluyendo el certificado X.509 completo dentro de <ds:keyinfo> y firmando después este elemento. Si SigningCertificate está presente en un XADES, no aplica ninguna restricción al elemento KeyInfo. Si SigningCertificate no está presente en XADES, aplican las siguientes restricciones a KeyInfo : - el elemento ds:keyinfo DEBE incluir un ds:x509data que contenga el certificado del firmante; - el elemento ds:keyinfo también DEBE contener otros certificados que formen una cadena que PUEDE alcanzar el punto de confianza; - el elemento ds:signedinfo DEBE contener un elemento ds:reference que referencie ds:keyinfo, de manera que se incluya a este último en el cálculo del valor de la firma. De este modo, el certificado del firmante es securizado por la firma.

XADES-BES(2) <ds:signature ID?> <ds:signedinfo> <ds:canonicalizationmethod/> <ds:signaturemethod/> (<ds:reference URI? > (<ds:transforms />)? <ds:digestmethod /> <ds:digestvalue/> </ds:reference>)+ </ds:signedinfo> <ds:signaturevalue /> (<ds:keyinfo/>)? <ds:object> <QualifyingProperties> <SignedProperties> <SignedSignatureProperties> (SigningTime) (SigningCertificate) (SignatureProductionPlace)? (SignerRole)? </SignedSignatureProperties> <SignedDataObjectProperties> (DataObjectFormat)* (CommitmentTypeIndication)* (AllDataObjectsTimeStamp)* (IndividualDataObjectsTimeStamp)* </SignedDataObjectProperties> </SignedProperties> <UnsignedProperties> <UnsignedSignatureProperties> (CounterSignature)* </UnsignedSignatureProperties> </UnsignedProperties> </QualifyingProperties> </ds:object> </ds:signature>

XADES-BES : PROPIEDADES FIRMADAS PROPIEDADES SignedSignature Properties : contienen elementos que califican la firma en sí misma. SigningTime : indica la fecha y la hora. En el caso de firma en cliente sin acceder a servidor, será meramente indicativa (pues la fecha en el dispositivo cliente es fácilmente manipulable) y/o será utilizada con fines distintos a conocer la fecha y hora de firma. Las políticas particulares de firma electrónica podrán determinar características y restricciones particulares respecto a generación en cliente de las referencias temporales y sincronización del reloj. SigningCertificate: contiene referencias a los certificados y algoritmos de seguridad utilizados para cada certificado. Este elemento se ha definido como una propiedad firmada, con objeto de evitar ataques de sustitución del certificado. Debe contener como mínimo el certificado del firmante, pero puede contener la cadena de certificación completa. SignatureProductionPlace : define el lugar geográfico donde se ha realizado la firma del documento. SignerRole : define el rol de la persona en la firma electrónica. En el caso de Facturae (factura electrónica), podría contener uno de los siguientes valores en el campo ClaimedRoles : supplier o emisor : cuando la firma la realiza el emisor. customer o receptor : cuando la firma la realiza el receptor. third party o tercero : cuando la firma la realiza una persona o entidad distinta al emisor o al receptor.

XADES-BES : PROPIEDADES FIRMADAS (2) PROPIEDADES SignedDataObjectProperties : contienen elementos que califican todos (o algunos) de los objetos de datos firmados. DataObjectFormat : define el formato del documento original, y es necesario para que el receptor conozca la forma de visualizar el documento. CommitmentTypeIndication : define la acción del firmante sobre el documento firmado (lo aprueba, lo informa, lo recibe, lo certifica, ). AllDataObjectsTimeStamp: contiene un sello de tiempo, calculado antes de la generación de la firma, sobre todos los elementos contenidos en ds:reference. Da fe de que los objetos estaban generados antes de la firma, en el momento indicado en el sello de tiempo. IndividualDataObjectsTimeStamp: contiene un sello de tiempo, calculado antes de la generación de la firma, sobre algunos de los elementos contenidos en ds:reference. Da fe de que los objetos estaban generados antes de la firma.

XADES-BES : PROPIEDADES FIRMADAS (3) Identificación segura del firmante en XADES Una referencia a un certificado (SigningCertificate) es un par [hash del certificado identificador del certificado] SigningCertificate contiene una lista de referencias a certificados. Uno de ellos DEBE ser una referencia al certificado del firmante. El mínimo tamaño de la lista es 1. PUEDE contener referencias y hashes de otros certificados (que pueden formar una cadena hasta el punto de confianza). Si está presente el atributo URI, indica dónde se puede encontrar el certificado referenciado. Si ds:keyinfo contiene <ds:x509issuerserial>, este valor debe ser consistente con <xades:issuerserial> del elemento Cert de SigningCertificate.

XADES-BES : PROPIEDADES FIRMADAS (4) Declaración segura de la Fecha de Firma y el Lugar de Producción de la firma Los datos xsd:datetime siguen la sintaxis : [-]CCYY-MM-DDThh:mm:ss[Z (+ -)hh:mm] donde la zona horaria se puede especificar como : Z (UTC) o (+ -)hh:mm

XADES-BES : PROPIEDADES FIRMADAS (5) Indicador del tipo de objeto de datos El atributo ObjectReference identifica al objeto de datos cuyo tipo y codificación se proporcionan. Este atributo obligatorio DEBE referenciar al elemento ds:reference de la ds:signature que se corresponda con el objeto de datos calificado por esta propiedad. <ObjectIdentifier> permite identificar el tipo de datos mediante una URI <MimeType> permite identificar el tipo MIME del objeto de datos. <Encoding> permite identificar la codificación del objeto de datos.

XADES-BES : PROPIEDADES FIRMADAS (6) Indicador del Tipo de Compromiso Se puede indicar explícitamente el compromiso contraído cuando se firma un objeto de datos. Identificadores predefinidos (cada uno lleva asociado una URI) : proofoforigin : prueba que el firmante reconoce haber creado, aprobado y enviado el objeto de datos firmado. proofofreceipt : prueba que el firmante reconoce haber recibido el contenido del objeto de datos firmado. proofofdelivery : prueba que un PSC ha entregado los datos firmados a un almacenamiento local donde son accesibles por el receptor. proofofsender : prueba que los datos firmados fueron enviados por la entidad que proporciona esta indicación. proofofapproval : prueba que el firmante ha aprobado el contenido del objeto de datos firmado. proofofcreation : prueba que el firmante ha creado el objeto de datos firmado. No es necesario que el firmante también haya aprobado o enviado estos datos.

SELLOS DE TIEMPO EN XADES (1) Sellos de tiempo en XADES. Encapsulación EncapsulatedPKIDataType es un tipo para encapsular objetos binarios (codificados en base64) que vienen de servicios relacionados con PKI (sellos de tiempo, certificados, CRLs, respuestas OCSP, etc). Todos los sellos de tiempo en XADES (T, X, A) utilizan el objeto EncapsulatedPKIDataType. El atributo Id permite referencias a este elemento particular. El atributo opcional Encoding permite especificar la codificación del objeto original (se proporcionan URIs para BER, DER, CER, PER y XER). La mayoría de los sellos de tiempo que proporcionan las TSA son RFC 3161 (ASN.1). OASIS-DSS también ha especificado un formado para sellos de tiempo XML, que está empezando a utilizarse.

SELLOS DE TIEMPO EN XADES (2) Sellos de tiempo en XADES. Contenedores EncapsulatedTimeStamp es una instancia de EncapsulatedPKIDataType. XMLTimeStamp permite almacenar sellos de tiempo XML. El elemento opcional <ds:canonicalization> indica el algoritmo de representación canónica a aplicar a los conjuntos de nodos XML a firmar, previamente a la concatenación aplicada para obtener la entrada al proceso de cálculo del sello de tiempo. Si no está presente, se usa el algoritmo estándar de representación canónica. El elemento <xades:include> se usa cuando existe una necesidad de identificar explícitamente los diferentes objetos a los que se aplica el sello de tiempo.

SELLOS DE TIEMPO EN XADES (3) Sellos de tiempo en XADES. Contenedores (2) Se puede generar un sello de tiempo sobre TODOS los objetos de datos, o sobre objetos seleccionados de entre aquellos que son firmados por XADES. Dos nuevos elementos contenedores entre las propiedades firmadas : <xades:alldataobjectstimestamp> y <xades:individualdataobjectstimestamp>. Cualquiera de esos dos elementos da fe de que los objetos referenciados estaban generados a una hora determinada, anterior a la firma. Por otro lado, en XADES-T se añade el sello SignatureTimeStamp, que se aplica sobre la forma canónica de ds:signaturevalue, y contiene la hora de creación de la firma. El elemento <xades:include> se usa cuando hay una necesidad de identificar explícitamente los diferentes objetos sobre los que aplica el sello de tiempo. <xades:alldataobjectstimestamp> no tiene ningún elemento <Include> : la entrada al proceso de cálculo del sello de tiempo es implícita.

SELLOS DE TIEMPO EN XADES (4) Sellos de tiempo en XADES. Contenedores (3) Cómo se genera la entrada al proceso de cálculo de sello de tiempo en <xades:alldataobjectstimestamp> : para cada hijo <ds:reference> de un <ds:signedinfo> EXCEPTO aquel que referencia a <xades:signedproperties> : Procesarlo, y si el resultado es un conjunto de nodos XML, generar su representación canónica. Concatenar los octetos resultantes a aquellos que hayan sido obtenidos de los elementos <ds:reference> previamente procesados. <xades:individualdataobjetstimestamp> tiene un elemento <xades:include> por cada objeto de datos que contribuye a la entrada al cálculo del sello de tiempo. Generación de la entrada al proceso de cálculo del sello de tiempo : análogo al explicando en la diapositiva anterior, pero aplicado a las referencias explicitadas mediante elementos <xades:include>. Se puede calcular el sello de tiempo colectivamente sobre más de un objeto de datos.

SELLOS DE TIEMPO SOBRE OBJETOS DE DATOS (1) Sellos de tiempo con referencias implícitas <xades:alldataobjetstimestamp> no tiene ningún elemento <xades:include> (identificación implícita de los objetos que contribuyen a la entrada para el cálculo del sello de tiempo).

SELLOS DE TIEMPO SOBRE OBJETOS DE DATOS (2) Sellos de tiempo con referencias explícitas <xades:individualdataobjetstimestamp> tiene un elemento <xades:include> por cada objeto de datos al que aplica el sello de tiempo, y que es referenciado por un <ds:reference>. Concatenar resultado de cada objeto obtenido a través de referencia, y generar forma canónica.

XADES-BES : PROPIEDADES NO FIRMADAS CounterSignature: contiene una firma de la firma referenciada por este elemento (es decir, una contrafirma)

XADES-EPES (1) XAdES-EPES extiende XADES-BES mediante la incorporación de un elemento SignaturePolicyIdentifier, que se ubicará en las propiedades firmadas. Este elemento indica que se debe usar una política de firma para la validación de la firma. La política de firma es un conjunto de reglas para la creación y validación de una firma electrónica, bajo las cuales se puede determinar que una firma es válida. SignaturePolicyIdentifier debe incluir los siguientes contenidos en sus elementos constitutivos : Una referencia explícita al documento de política de firma. Para ello aparecerá el OID que identifique la versión concreta de la política de firma o la URL de su localización. <xades:sigpolicyid> <xades:identifier> </xades:identifier> La huella digital del documento de política de firma correspondiente y el algoritmo utilizado, en el elemento <xades:sigpolicyhash>, de manera que el verificador pueda comprobar, calculando a su vez este valor, que la firma está generada según la misma política de firma que se utilizará para su validación. Además, puede incluir opcionalmente elementos calificadores que completen la información sobre esa política de firma.

XADES-EPES (2) Para verificar un XAdES-EPES, se tiene que comprobar, además de todo lo que se hace con XADES-BES, que el Hash de la política se corresponde con una política de firmado aceptada por la administración. Y por supuesto, se deben seguir las directrices especificadas en dicha política para la verificación. Aún asumiendo una política de firma común a la AGE, que sigan todos sus organismos, ésta puede tener varias versiones, y se deberá comprobar que el OID es aceptado y que el hash de dicho documento coincide con el referido en SigPolicyHash.

XADES-EPES (3) Identificando de manera segura la Política de Firma en XADES : SignaturePolicyId : Identifica la política de firma. Usa un URI para identificar la política. Si el identificador es un OID, se puede construir una URN según indica la RFC 3061 ( Un Espacio de Nombres de Identificadores de Objetos ). Puede incluir descripciones en texto de la política de firma. Puede incluir una lista de referencias a documentación explicativa adicional. ds:transforms (opcional) puede contener transformaciones a aplicar sobre el documento de política de firma previamente al cálculo del hash xades:sigpolicyhash incluye el algoritmo de hashing y el valor del hash calculado sobre el resultado de aplicar las transformaciones anteriotes al documento que define la política de firma. xades:sigpolicyqualifiers incluye calificadores de la firma. Se han definido hasta el momento dos calificadores de firma : Una URL en la que se puede obtener una copia de la política de firma; Un aviso al usuario que se debería mostrar cuando se verifica la firma.

XADES-T Este perfil añade un time-stamp sobre ds:signaturevalue para proporcionar protección contra el repudio del certificado digital. El sello de tiempo contiene la hora de creación de la firma digital. Si el certificado digital con el que se firmó no fue revocado antes de esta hora, será imposible repudiar la firma. Este perfil añade el siguiente elemento dentro del elemento UnsignedSignatureProperties : * SignatureTimeStamp+ : el cálculo del sello de tiempo se realiza siempre sobre la forma canónica del elemento <ds:signaturevalue>. - Su cardinalidad es múltiple porque se permite incluir varios sellos de tiempo de distintos proveedores. Estructura típica : <UnsignedSignatureProperties> <SignatureTimeStamp> </SignatureTimeStamp> </UnsignedSignatureProperties>

XADES-C XML Advanced Electronic Signature with complete validation data (XAdES-C). Incluye referencias al conjunto de datos que soportan la validación de la firma electrónica (es decir, las referencias a la cadena de certificación y su información asociada sobre el estado de revocación). Este perfil es útil para aquellas situaciones en las que dicha información es archivada por una fuente externa, como un Prestador de Servicios de Certificación. Este perfil añade los siguientes elementos al perfil XADES-T dentro del elemento UnsignedSignatureProperties : CompleteCertificateRefs : contiene referencias (no los datos en sí mismos) a todos los certificados de la cadena de confianza necesaria para verificar la firma, excepto el certificado firmante. CompleteRevocationRefs : contiene referencias a las CRLs y/o respuestas OCSP usadas en la verificación de los certificados. Estructura típica : <UnsignedSignatureProperties> <SignatureTimeStamp> </SignatureTimeStamp> <CompleteCertificateRefs> </CompleteCertificateRefs> <CompleteRevocationRefs> </CompleteRevocationRefs> </UnsignedSignatureProperties>

XADES-C : REFERENCIAS A DATOS DE ESTADO DE CERTIFICADOS XADES-C especifica nuevos elementos que contienen referencias a : conjunto completo de CRLs, y respuestas OCSP que se han utilizado en la validación de los certificados de firmante y CA. <xades:completerevocationrefs> / complete-revocation-references se puede elegir entre referencias a CRLs, a respuestas OCSP, o a otro material

XADES-C : REFERENCIAS A DATOS DE ESTADO DE CERTIFICADOS (2)

XADES-C : REFERENCIAS A DATOS DE ESTADO DE CERTIFICADOS (3) Cada referencia a CRL ( CRLRef ) incluye su hash, y opcionalmente un identificador, que a su vez contiene el nombre del Emisor de CRL, la hora de emisión, y opcionalmente el número de la CRL.

XADES-C : REFERENCIAS A DATOS DE ESTADO DE CERTIFICADOS (4) Cada respuesta OCSP incluye su hash (opcional, para eliminar la ambigüedad en dos respuestas demasiado próximas entre sí en el tiempo) y su identificador, que a su vez contiene el identificador del servidor OCSP (como un nombre, o identificado por la clave del servidor) y la hora a la que se generó la respuesta (ProducedAt, de tipo xsd:datetime)

XADES-X XML Advanced Electronic Signature with extended validation data (XAdES-X). Incluye un time-stamp sobre las referencias a los datos de validación, o bien sobre el elemento Signature y los datos de validación mencionados. Este sello de tiempo toma en cuenta el riesgo de que cualquiera de las claves usadas en la cadena de certificación o en la información del estado de revocación puedan ser comprometidas. Esta modalidad de XADES tiene dos implementaciones alternativas : La primera añade el siguiente elemento a XADES-C dentro del elemento UnsignedSignatureProperties : RefsOnlyTimeStamp* : esta propiedad contiene un sello de tiempo aplicado sólo sobre las referencias a certificados y la información del estado de revocación. Es aplicable a referencias CRLs. La segunda añade el siguiente elemento a XADES-C dentro del elemento UnsignedSignatureProperties : SigAndRefsTimeStamp* : esta propiedad contiene un sello de tiempo computado sobre el valor de la firma, el sello de tiempo de la firma, y las referencias a certificados y estados de revocación. Es aplicable a referencias a respuestas OCSP. Ejemplo : <UnsignedSignatureProperties> <SignatureTimeStamp> </SignatureTimeStamp> <CompleteCertificateRefs> </CompleteCertificateRefs> <CompleteRevocationRefs> </CompleteRevocationRefs> <SigAndRefsTimeStamp> </SigAndRefsTimeStamp > </UnsignedSignatureProperties>

XADES-X (2) Si se usan referencias a respuestas OCSP : La entrada al proceso de cálculo del sello de tiempo es la concatenación de : Cadena de octetos de la representación canónica del elemento <ds:signaturevalue>. Representación canónica de cualquier <xades:signaturetimestamp> presente. <xades:completecertificaterefs> y <xades:attributecertificaterefs>. <xades:completerevocationrefs> y <xades:attributerevocationrefs>. Si se usan referencias a CRLs : La entrada al proceso de cálculo del sello de tiempo es la concatenación de : <xades:completecertificaterefs> y <xades:attributecertificaterefs>. <xades:completerevocationrefs> y <xades:attributerevocationrefs>.

XADES-X (3) Sellos de tiempo : Caso No Distribuido Cuando SigAndRefsTimeStamp y todas las propiedades no firmadas que comprende su sello de tiempo tienen el mismo nodo padre, esta propiedad usa el mecanismo implícito (no hay elementos <xades:include>) :

XADES-X (4) Sellos de tiempo : Caso Distribuido Cuando SigAndRefsTimeStamp y alguna de las propiedades no firmadas que comprende su sello de tiempo no tienen el mismo nodo padre, las aplicaciones de firma deben construir esta propiedad como sigue : No se debe generar un elemento Include que apunte a ds:signaturevalue (referencia implícita). Se generará un elemento Include para cada propiedad no firmada que deba abarcar el sello de tiempo : elementos SignatureTimeStamp, CompleteCertificateRefs, CompleteRevocationRefs.

XADES-XL XML Advanced Electronic Signature with extended validation data incorporated for the long term (XAdES-XL). Un beneficio fundamental de XADES es que los documentos firmados electrónicamente pueden permanecer válidos durante largos períodos, incluso si se rompen los algoritmos criptográficos subyacentes. Esta, que es la característica más importante de XADES, se llama Long Term Validation o Firma Longeva. XADES-X-L incluye los datos de validación para aquellas situaciones en las que los datos de validación no se almacenan a largo plazo en ningún otro sitio. Este perfil añade los siguientes elementos a XADES-X dentro del elemento UnsignedSignatureProperties : CertificateValues : contiene el conjunto completo de certificados que se han utilizado para validar la firma electrónica (encapsula cada certificado en base64). RevocationValues : incluye la propia información de validación (respuestas CRL u OCSP). Ejemplo : <UnsignedSignatureProperties> <SignatureTimeStamp> </SignatureTimeStamp> <CompleteCertificateRefs> </CompleteCertificateRefs> <CompleteRevocationRefs> </CompleteRevocationRefs> <SigAndRefsTimeStamp> </SigAndRefsTimeStamp > <CertificateValues> </CertificateValues> <RevocationValues> </RevocationValues> </UnsignedSignatureProperties>

XADES-XL : VALORES DE CERTIFICADOS El elemento <xades:certificatevalues> contiene el conjunto completo de certificados que se han usado para validar la firma electrónica, incluyendo el certificado del firmante (excepción : no es necesario incluir aquellos certificados que se encuentren presentes en el elemento ds:keyinfo de la firma). Cada elemento EncapsulatedX509Certificate es capaz de contener certificados X.509 codificados en DER, en codificación base64. El elemento OtherCertificate es un contenedor para futuros nuevos formatos de certificados que pueden aparecer.

XADES-XL : VALORES DE DATOS DE ESTADO DE CERTIFICADOS El elemento <xades:revocationvalues> contiene el conjunto completo de datos de estado de certificación que se han usado para verificar la firma. Debe contener todos los datos de validación referenciados dentro de <xades:completerevocationrefs>. Atributo Id para permitir referencias. Lista de valores encapsulados de CRLs u OCSPs. Contenedor OtherValues para otras formas de datos de estado de certificados.

XADES-A (1) XML Advanced Electronic Signature with archiving validation data (XAdES-A). Incluye sellos de tiempo adicionales para archivar firmas de forma que estén protegidas si los datos criptográficos se vuelven débiles. A lo largo de un período de tiempo pueden surgir vulnerabilidades en los algoritmos criptográficos usados para crear una firma electrónica. Antes de que estas debilidades sean probables (por ejemplo, a causa de mejoras en las técnicas de criptoanálisis o en la capacidad de proceso), se deben tomar medidas para mantener la validez de la firma electrónica. La técnica usada en XADES-A son los Datos de Validación de Archivo (archive validation data). Los Datos de Validación de Archivo consisten en sellar temporalmente el conjunto formado por los datos de validación completos, y los datos completos de certificados y revocación, junto con la firma electrónica. Además, cuando exista el riesgo de que el hash usado por el sello de tiempo ya no sea seguro, el timestamp se aplicará recurrentemente, incluyendo los sellos de tiempo previos entre el conjunto de datos que se fecha. Las TSA usan criptografía más fuerte o con claves más largas que las que se usan en los certificados de usuario. Por tanto, un sello de tiempo ofrece mayor protección contra la falsificación. Esta última puede derivarse de una rotura del algoritmo o compromiso de la clave. Este proceso de time-stamping debe repetirse iterativamente antes de que los algoritmos criptográficos empleados para generar el sello de tiempo previo dejen de ser seguros. Por tanto, los Datos de Validación de Archivo pueden incorporar múltiples sellos de tiempo anidados.

XADES-A (2) Ejemplo : El perfil XADES-A añade el siguiente elemento a XAdES-X-L dentro del elemento UnsignedSignatureProperties : ArchiveTimestamp+ : sello de tiempo aplicado sobre la firma electrónica y los datos completos de validación (cadena de confianza y datos de revocación). <UnsignedSignatureProperties> <SignatureTimeStamp> </SignatureTimeStamp> <CompleteCertificateRefs> </CompleteCertificateRefs> <CompleteRevocationRefs> </CompleteRevocationRefs> <SigAndRefsTimeStamp> </SigAndRefsTimeStamp > <CertificateValues> </CertificateValues> <RevocationValues> </RevocationValues> <ArchiveTimeStamp> </ArchiveTimeStamp> </UnsignedSignatureProperties>

EJEMPLO DE EVOLUCION DE FIRMAS (1) Firma inicial XADES-EPES :

EJEMPLO DE EVOLUCION DE FIRMAS (2) Generación de XADES-T :

EJEMPLO DE EVOLUCION DE FIRMAS (3) Generación de XADES-C :

EJEMPLO DE EVOLUCION DE FIRMAS (4) Generación de XADES-X :

EJEMPLO DE EVOLUCION DE FIRMAS (5) Generación de XADES-A :