Seminario: Firmas electrónicas y estándares basados en XML.

59
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

description

Firmas electrónicas y estándares basados en XML. Seminario interno de grupo de seguridad de la información.

Transcript of Seminario: Firmas electrónicas y estándares basados en XML.

Page 1: Seminario: Firmas electrónicas y estándares basados en XML.

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

Page 2: Seminario: Firmas electrónicas y estándares basados en XML.

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?

Page 3: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 4: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Firmas electrónicas

Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.

Page 5: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Firmas electrónicas

Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.

Page 6: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Firmas electrónicas

Fuente: Ciberseguridad y Certificación Electrónica. Suscerte. 2011.

Page 7: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 8: Seminario: Firmas electrónicas y estándares basados en XML.

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).

Page 9: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 10: Seminario: Firmas electrónicas y estándares basados en XML.

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)

Page 11: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 12: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Estándares en firma electrónica:PAdES

• Perfiles PAdES:– PAdES (basic)– PAdES Enhanced– PAdES Long Term– PAdES for XML Content

Page 13: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 14: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 15: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XML• Lenguaje de etiquetas ampliamente utilizado y

desarrollado por el W3C.<?xml version="1.0" encoding="UTF­8" ?><!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>

Page 16: Seminario: Firmas electrónicas y estándares basados en XML.

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/

Page 17: Seminario: Firmas electrónicas y estándares basados en XML.

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/

Page 18: Seminario: Firmas electrónicas y estándares basados en XML.

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/

Page 19: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 20: Seminario: Firmas electrónicas y estándares basados en XML.

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)

Page 21: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES: versiones e interoperabilidad

Page 22: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 23: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Ilustración de una firma XAdES

Ilustración de XAdES

Page 24: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Perfiles XAdES

Page 25: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES-BES SigningCertificate SignerRole ....

Page 26: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES-EPES SigningCertificate SignerRole SignaturePolicyId

Page 27: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Ilustración de perfiles XAdES

Ilustración de XAdES, XAdES-T y XAdES-C

Page 28: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES-T SigningCertificate SignerRole SignaturePolicyId

SignatureTimeStamp

Page 29: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Ilustración de perfiles XAdES

Ilustración de XAdES-X y XAdES-X-L

Page 30: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES-C SigningCertificate SignerRole SignaturePolicyId

SignatureTimeStamp

CompleteCertificateRefs CompleteRevocationRefs

XAdES-X

SigAndRefsTimeStamp

Page 31: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Ilustración de perfiles XAdES

Ilustración de XAdES-A

Page 32: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES-X-L SigningCertificate SignerRole SignaturePolicyId

SignatureTimeStamp

CompleteCertificateRefs CompleteRevocationRefs

XAdES-A

SigAndRefsTimeStamp

CertificateValues RevocationValues

ArchiveTimeStamp

Page 33: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 34: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES

http://www.viafirma.com/

Page 35: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Page 36: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Page 37: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

XAdES

Page 38: Seminario: Firmas electrónicas y estándares basados en XML.

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

Page 39: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 40: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Versiones de DIGIDOC-XML

• 1.0• 1.1• 1.2• 1.3• 1.4

Page 41: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Sistema DigiDoc

<?xml version="1.0" encoding="UTF­8" ?>

<SignedDoc format="DIGIDOC­XML" 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:

Page 42: Seminario: Firmas electrónicas y estándares basados en 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

Page 43: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 44: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 45: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 46: Seminario: Firmas electrónicas y estándares basados en XML.

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/x­bdoc.

• Exige que los archivos a firmar se encuentre dentro del contenedor.

• Recomienda utilizar algoritmo SHA256 o superior.

Page 47: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

BDOC: estructura de un archivo

document.odtmimetypeMETA­INF/manifest.xmlMETA­INF/signature0.xml

Page 48: Seminario: Firmas electrónicas y estándares basados en 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

Page 49: Seminario: Firmas electrónicas y estándares basados en XML.

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

Page 50: Seminario: Firmas electrónicas y estándares basados en XML.

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

Page 51: Seminario: Firmas electrónicas y estándares basados en XML.

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

Page 52: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 53: Seminario: Firmas electrónicas y estándares basados en XML.

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?

Page 54: Seminario: Firmas electrónicas y estándares basados en XML.

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.

Page 55: Seminario: Firmas electrónicas y estándares basados en XML.

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/

Page 56: Seminario: Firmas electrónicas y estándares basados en XML.

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/es­ES/Paginas/principal.aspx

• Canal IRC del proyecto esteid:#esteid en irc.freenode.net

Page 57: Seminario: Firmas electrónicas y estándares basados en XML.

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/03­cruellas­etal/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

Page 58: Seminario: Firmas electrónicas y estándares basados en XML.

www.cenditel.gob.ve

Gracias por su atención

Page 59: Seminario: Firmas electrónicas y estándares basados en XML.

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]