www.cenditel.gob.ve
Seminario: Firmas electrónicas y estándares
basados en XML
Antonio Araujo Brett
Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI
06 de Abril de 2011
www.cenditel.gob.ve
Agenda
• Firmas electrónicas• Estándares en firma electrónica
– CAdES– PAdES– XAdES
• XML - XMLDSIG• XAdES • DDOC• BDOC• ¿Hacia dónde vamos nosotros?
www.cenditel.gob.ve
Firmas electrónicas
• Criptografía de Clave Pública– Certificados electrónicos X509v3
• Ley sobre Mensajes de Datos y Firmas Electrónicas de Venezuela (2001).
• Infraestructura Nacional de Certificación Electrónica.
• Cédula Electrónica con certificados electrónicos para ciudadanos.
www.cenditel.gob.ve
Firmas electrónicas
Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.
www.cenditel.gob.ve
Firmas electrónicas
Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.
www.cenditel.gob.ve
Firmas electrónicas
Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.
www.cenditel.gob.ve
Estándares en firma electrónica
• 1999: Directiva de Firma Electrónica de la Unión Europea (1999/93/EC) define firmas electrónicas avanzadas: – Unívocamente enlazadas con el firmante.– Capaces de identificar al firmante.– Creadas a través de medios que el firmante puede
mantener bajo su control.– Enlazadas a los datos de manera que cambios
posteriores sean detectables.
www.cenditel.gob.ve
Estándares en firma electrónica
• European Telecommunications Standards Institute (ETSI) inició el desarrollo de estándares para firma electrónica alineados con la Directiva Europea.– 2000: ETSI TS 101 733 Electronic Signature and
Infrastructure (ESI) – CMS Advanced Electronic Signature (CAdES).
– 2001: ETSI TS 101 903 XML Advanced Signatures (XAdES).
– 2009: ETSI TS 102 778 PDF Advanced Electronic Signatures (PAdES).
www.cenditel.gob.ve
Estándares en firma electrónica:CAdES
• CMS: Cryptographic Message Syntax– Estándar para mensajes protegidos
criptográficamente.– Sintaxis de encapsulamiento para protección de datos.– Basado en PKCS#7 (firma y cifrado de mensajes bajo
una PKI). – RFC 5652.
• CMS Advanced Electronic Signature– Especifica perfiles de datos firmados con CMS que
permanecen válidos por largos periodos de tiempo.
www.cenditel.gob.ve
Estándares en firma electrónica:CAdES
• Perfiles CAdES– CAdES (basic)– CAdES-T (timestamp)– CAdES-C (complete)– CAdES-X (extended)– CAdES-X-L (extended long-term)– CAdES-A (archival)
www.cenditel.gob.ve
Estándares en firma electrónica:PAdES
• PDF y el estándar ISO 32000-1 establecen un framework para firmar electrónicamente documentos.
• PAdES introduce adaptaciones y extensiones para satisfacer la Directiva 1999/93/EC.
• Firma electrónica sobre documentos legibles para el humano.
www.cenditel.gob.ve
Estándares en firma electrónica:PAdES
• Perfiles PAdES:– PAdES (basic)– PAdES Enhanced– PAdES Long Term– PAdES for XML Content
www.cenditel.gob.ve
Estándares en firma electrónica
• Ley sobre Mensajes de Datos y Firmas Electrónicas de Venezuela (2001)– Tecnológicamente neutra.– Garantizar que los datos utilizados para la generación
de la firma sólo pueden producirse una vez.– Ofrecer seguridad suficiente de que no pueda ser
falsificada con la tecnología existente en cada momento.
– No alterar la integridad del mensaje de datos.
www.cenditel.gob.ve
Estándares en firma electrónica
• Ley sobre Mensajes de Datos y Firmas Electrónicas de Venezuela (2001)– Tecnológicamente neutra.– Garantizar que los datos utilizados para la generación
de la firma sólo pueden producirse una vez.– Ofrecer seguridad suficiente de que no pueda ser
falsificada con la tecnología existente en cada momento.
– No alterar la integridad del mensaje de datos.
No se especifica un formato de documentos firmados electrónicamente.
www.cenditel.gob.ve
XML• Lenguaje de etiquetas ampliamente utilizado y
desarrollado por el W3C.<?xml version="1.0" encoding="UTF8" ?><!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.dtd"> <Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre> <Mail>Correo del destinatario</Mail> </Destinatario> <Texto> <Asunto> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades... </Asunto> <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades... </Parrafo> </Texto> </Mensaje></Edit_Mensaje>
www.cenditel.gob.ve
XMLDSIG
• XML-Signature Syntax and Processing (2002)• Integridad, autenticación de mensaje y servicios
de autenticación de firmantes para datos de cualquier tipo incluidos en el XML o no.
http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
www.cenditel.gob.ve
XMLDSIG
<Signature ID?>
<SignedInfo>
<CanonicalizationMethod/>
<SignatureMethod/>
(<Reference URI? >
(<Transforms>)?
<DigestMethod>
<DigestValue>
</Reference>)+
</SignedInfo>
<SignatureValue>
(<KeyInfo>)?
(<Object ID?>)*
</Signature>
http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
www.cenditel.gob.ve
XAdES
• Recomendación de W3C: XML Advanced Electronic Signatures
• ETSI TS 101 903: especificación técnica de firmas electrónicas avanzadas en XML (XAdES)
• ETSI TS 102 904: Perfiles de XAdES basados en ETSI TS 101 903.
Define un perfil base para firmas electrónicas y perfiles para gobierno electrónico y factura electrónica
http://www.w3.org/TR/XAdES/
www.cenditel.gob.ve
XAdES
• Extiende XMLDSIG• Define formatos XML para firmas electrónicas
válidas por largos periodos de tiempo.• Firma de documentos de distintos formatos.
www.cenditel.gob.ve
XAdES: versiones e interoperabilidad
• 1.1.1: Febrero 2002• 1.2.2: Abril 2004• 1.3.2: Marzo 2006• 1.4.1: Junio 2009• 1.4.2: Diciembre 2010
XAdES Plugtests: eventos de interoperabilidad de Implementaciones (último registrado: 25/10/10)
www.cenditel.gob.ve
XAdES: versiones e interoperabilidad
www.cenditel.gob.ve
XAdES
• ETSI TS 101 903 -V1.4.2 especifica cuatro formas de firmas electrónicas avanzadas en XML:– Basic Electronic Signature (XAdES-BES):
• XMLDSIG + QualifyingProperties
– Explicit Policy based Electronic Signature (XAdES-EPES):
• XMLDSIG ó XAdES-BES + SignaturePolicyIdentifier
– Electronic Signature with Validation Data (XAdES-T y XAdES-C)
• Certificados de clave pública, información de estado de revocación, estampillas de tiempo, detalles de política de firma, entre otros.
www.cenditel.gob.ve
Ilustración de una firma XAdES
Ilustración de XAdES
www.cenditel.gob.ve
Perfiles XAdES
www.cenditel.gob.ve
XAdES-BES SigningCertificate SignerRole ....
www.cenditel.gob.ve
XAdES-EPES SigningCertificate SignerRole SignaturePolicyId
www.cenditel.gob.ve
Ilustración de perfiles XAdES
Ilustración de XAdES, XAdES-T y XAdES-C
www.cenditel.gob.ve
XAdES-T SigningCertificate SignerRole SignaturePolicyId
SignatureTimeStamp
www.cenditel.gob.ve
Ilustración de perfiles XAdES
Ilustración de XAdES-X y XAdES-X-L
www.cenditel.gob.ve
XAdES-C SigningCertificate SignerRole SignaturePolicyId
SignatureTimeStamp
CompleteCertificateRefs CompleteRevocationRefs
XAdES-X
SigAndRefsTimeStamp
www.cenditel.gob.ve
Ilustración de perfiles XAdES
Ilustración de XAdES-A
www.cenditel.gob.ve
XAdES-X-L SigningCertificate SignerRole SignaturePolicyId
SignatureTimeStamp
CompleteCertificateRefs CompleteRevocationRefs
XAdES-A
SigAndRefsTimeStamp
CertificateValues RevocationValues
ArchiveTimeStamp
www.cenditel.gob.ve
XAdES
• Existen diversas implementaciones de XAdES en software privativo; muy pocas en software libre.
• España utiliza formas de XAdES para su Facturae.
• Existen registros de algunas aplicaciones del eGobierno Catalán que utilizan XAdES.
• Algunos países de Europa del Este utilizan perfiles adecuados de XAdES.
• ICP-Brasil tiene definidos atributos utilizados en la generación de firmas basadas en XAdES.
www.cenditel.gob.ve
XAdES
http://www.viafirma.com/
www.cenditel.gob.ve
www.cenditel.gob.ve
www.cenditel.gob.ve
XAdES
www.cenditel.gob.ve
Sistema DigiDoc
• Formato de archivo DIGIDOC-XML: XML como formato base, está basado en XMLDSIG y ETSI TS 101 903 (XAdES).
• Desarrollado por el Gobierno de Estonia.• Provee un framework e implementación para
firma electrónica.
• Utiliza archivos con extensión .ddoc.
• Cumple el XAdES-X-L.• Soporta sólo confirmaciones OCSP (obligatoria).
http://www.id.ee/28660
www.cenditel.gob.ve
Sistema DigiDoc
• Verificación fuera de línea sin información adicional.
• Firma aplicada a varios documentos a la vez.• Protección contra ataques de formato: el tipo de
documento firmado también está firmado.• El documento a firmar puede o no estar
contenido.• El documento a firmar puede ser XML u otro
archivo binario.• Un contenedor puede tener 0, 1 o más firmas.• Se tiene una confirmación de validez por firma.
www.cenditel.gob.ve
Versiones de DIGIDOC-XML
• 1.0• 1.1• 1.2• 1.3• 1.4
www.cenditel.gob.ve
Sistema DigiDoc
<?xml version="1.0" encoding="UTF8" ?>
<SignedDoc format="DIGIDOCXML" version="1.4"
xmlns="http://www.sk.ee/DigiDoc/v1.4.0#">
<! original data files >
<DataFile />
<! client signatures with validity confirmations >
<Signature />
</SignedDoc>
Estructura del formato de archivo DIGIDOC-XML:
www.cenditel.gob.ve
Sistema DigiDoc: Libdigidoc
• Implementación del formato DIGIDOC-XML en una biblioteca en C.
• Soporte para firma con soporte de hardware (tarjetas inteligentes) a través de PKCS#11.
• Biblioteca utilizada por el proyecto SAFET para aplicar firma electrónica y verificar firmas.
• Sólo aplica firma con algoritmo RSA-SHA1.• Archivo firmado en XML (texto claro)
http://code.google.com/p/esteid/wiki/libDigiDoc
www.cenditel.gob.ve
XAdES e implementaciones
ETSI TS 101 903 a pesar de ser un estándar se encuentran implementaciones no compatibles:• No se soportan los bloques o elementos no
obligatorios en el XML.• Algunos bloques o elementos no obligatorios
dependen de necesidades y requerimientos particulares de una ICP.
• Se especifica un formato de firma que permite que los datos a firmar se encuentren en cualquier lugar referenciado por una URI.
www.cenditel.gob.ve
Baltic WPKI Forum
• 2007: surgió el grupo de trabajo Baltic WPKI Forum (Lithuania, Latvia y Estonia).– Organizaciones públicas y privadas.– http://wpki.eu
• 2008: se generó un perfil del estándar XAdES denominado: BDOC.
www.cenditel.gob.ve
BDOC
• Especificación que intenta resolver problemas de incompatibilidad entre implementaciones de XAdES:– Define un subconjunto de elementos y parámetros
(perfil BDOC basado en XAdES).– Define perfiles de requerimientos para PKI,
estampillado de tiempo y validación de certificados con sus bloques XAdES.
– Define un formato de contenedor para incluir datos y firmas.
www.cenditel.gob.ve
BDOC
• Formato de firma basado en XAdES (v.1.3.2).• Formato de contenedor basado en el estándar
OpenDocument (convenciones de empaquetado).
• La extensión de archivo del formato de archivo BDOC es .bdoc y el tipo MIME es application/xbdoc.
• Exige que los archivos a firmar se encuentre dentro del contenedor.
• Recomienda utilizar algoritmo SHA256 o superior.
www.cenditel.gob.ve
BDOC: estructura de un archivo
document.odtmimetypeMETAINF/manifest.xmlMETAINF/signature0.xml
www.cenditel.gob.ve
Perfiles BDOC
• BDOC-BES: Basic Electronic Signature• BDOC-TM: Time marking• BDOC-TS: Time stamping• BDOC-TM-A: Time marking archival• BDOC-TS-A: Time stamping archival
XAdES-X-L
www.cenditel.gob.ve
Perfiles BDOC: Time-marking
OCSPOCSP
Doc
Cliente
OCSP response(firmada por OCSP)
OCSP request
hash
hash
Firmar Doc
Doc
2
1
33
4
5
www.cenditel.gob.ve
Perfiles BDOC: Time-stamping
OCSPOCSP
Doc
Cliente
OCSP response(firmada por OCSP)
OCSP request
Firmar Doc
Doc
4
12
5
6
7
TSA
3
Solicitud estampilla
Respuesta
www.cenditel.gob.ve
LibDigiDocpp
• Biblioteca en C++ para leer, validar y crear contenedores BDOC y DDOC.
• Implementa los perfiles:– BDOC-BES– BDOC-TM
• Código fuente disponible.• Licencia GPL v2.• Soporte para firma con dispositivos
criptográficos (tarjetas inteligentes) a través de PKCS#11.
http://code.google.com/p/esteid/source/browse/libdigidocpp/trunk/README
www.cenditel.gob.ve
LibDigiDocpp
De acuerdo a la comunidad de desarrollo y soporte del proyecto EsteID*, BDOC fue parte del último plugtests de interoperabilidad de XAdES (http://xades-portal.etsi.org/pub/ ) realizado por ETSI en Octubre de 2010. No se conocen los resultados.
* #esteid en irc.freenode.net
Se han realizado pruebas de concepto exitosas para aplicar firma electrónica con la cédula electrónica de nuestro país con esta biblioteca.
www.cenditel.gob.ve
¿Hacia dónde vamos nosotros?
• ¿Utilizar un estándar propietario?• ¿Proponer un consorcio público-privado para
definir un estándar propio?• ¿Utilizar un estandar existente?• ¿Proponer un estándar nuevo?
www.cenditel.gob.ve
¿Hacia dónde vamos nosotros?
• ¿Utilizar un estándar propietario?• ¿Proponer un consorcio público-privado para
definir un estándar propio?• ¿Utilizar un estandar existente?• ¿Proponer un estándar nuevo?• BDOC – LibDigiDocpp es una alternativa.
www.cenditel.gob.ve
Referencias
• Blog Todo es electrónico: http://inza.wordpress.com
• Proyecto esteid Estonia: http://code.google.com/p/esteid/
• Portal de soporte para ID-Card de Estonia: http://www.id.ee/28660?lang=en
• XML Advanced Electronic Signatures (XadES) de W3C: http://www.w3.org/TR/XAdES/
• XML Signature Syntax and Processing (Second Edition) de W3C:http://www.w3.org/TR/xmldsig-core/
• Baltic WPKI Forum:http://wpki.eu/
www.cenditel.gob.ve
Referencias
• ICP Brasilhttp://www.iti.gov.br/twiki/bin/view/Certificacao/WebHome
• RFC 5652 CMS: http://tools.ietf.org/html/rfc5652
• ETSI TS 101 903: http://www.etsi.org/deliver/etsi_ts/101900_101999/101903/01.04.02_60/
• Factura electrónica de España (Facturae)http://www.facturae.es/esES/Paginas/principal.aspx
• Canal IRC del proyecto esteid:#esteid en irc.freenode.net
www.cenditel.gob.ve
Referencias
• W3C Workshop on Next Steps for XML Signature and XML Encryption. The importance of incorporating XAdES extensions into ongoing XML-Sig work. Juan Carlos Cruellas, Giles Hogben, Nick Pope. Mountain View 25, 26 Sept 2007.http://www.w3.org/2007/xmlsec/ws/slides/03cruellasetal/Overview.pdf
• Ciberseguridad y Certificación Electrónica. SUSCERTE. 2011. 2do Encuentro Internacional de Especialistas en Registro Civil. Caracas. 2011.http://www.cne.gob.ve/web/sala_prensa/noticia_detallada.php?id=1941
www.cenditel.gob.ve
Gracias por su atención
www.cenditel.gob.ve
Contactos
Fundación Cenditel:http://www.cenditel.gob.ve
Proyecto FirmaXML:http://seguridad.cenditel.gob.ve/firmaxml
Proyecto SAFET:http://seguridad.cenditel.gob.ve/safet
Correo electrónico:[email protected]