Infraestructura de clave pública con Software Libre

Post on 18-Dec-2014

6.474 views 3 download

description

Infraestructura de clave pública con Software Libre. Introducción a la PKI y soluciones actuales para implementar PKI con soluciones Open Source.

Transcript of Infraestructura de clave pública con Software Libre

Infraestructura de clave pública -PKI- con Software Libre

Febrero 2009

Toni de la FuenteDirector de Sistemas y Soporte

Intecna Solucionesafuente@intecna.es

Contenidos

● Quién soy● ¿Qué es PKI y para qué sirve?● Conceptos relacionados con PKI● Criptografía asimétrica● Firma digital● Certificados digitales● Autoridades de certificación● Validez de los certificados: CRL y OCSP● Soluciones

Quién soy

Director de Sistemas y Soporte de Intecna Soluciones España y LATAM.

Responsable de Formación de Intecna Soluciones España y LATAM.

Miembro del comité de Innovación de Intecna Soluciones.

Creador de phpRADmin, solución para seguridad de redes basadas en FreeRADIUS y PKI.

Blog personal blyx.com, desde 2002 publicando artículos relacionados con Software Libre, Seguridad y Tecnologías de la Información.

¿Qué es PKI y para qué sirve? I

Es un sistema para gestión de certificados digitales y aplicaciones de firma digital o/y cifrado.

Debe proporcionar:

● Autenticidad, la firma digital tendrá la misma validez que la manuscrita.

● Confidencialidad de la información transmitida entre las partes.

● Integridad. Debe asegurarse la capacidad de detectar si un documento firmado ha sido manipulado.

● No Repudio, de un documento firmado digitalmente.

¿Qué es PKI y para qué sirve? II

Proporciona el marco que permite la implantación de clave pública.

Incluye una Autoridad de Certificación (CA) y gestiona la información relacionada con ella.

Debe prestar los siguientes servicios:• Emisión de certificados• Generación del par de claves (pública y privada)• Distribución de certificados• Certificación cruzada• Salvaguarda de claves• Suspensión y revocación de certificados• etc.

¿Qué es PKI y para qué sirve? III

Los componentes de una PKI son o pueden ser entidades con funciones diferentes:

• Autoridad de Certificación: CA• Autoridad de Registro: RA• Autoridad Raiz: Root CA• Usuarios finales.

Una PKI sólo es válida si se cumplen las siguientes condiciones:

• Las claves privadas estén protegidas.• Las claves públicas estén inequívocamente asociadas a una entidad.

¿Qué es PKI y para qué sirve? IV

Las claves privadas se protegen con una contraseña y se deben almacenar de forma cifrada en:

• Disco duro.• Floppy.• Dispositivo USB.• Smart Card.

Conceptos relacionados con PKI

• Criptografía asimétrica o de clave pública• Funciones Hash• Firma digital• Certificados digitales• Autoridad de Certificación• Autoridad de Registro• CRL• OCSP• PEM• PKCS • DER

Criptografía asimétrica

Cifrado simétrico:

Se cifra y descifra con la misma clave. (DES, RC2, RC5, Tripe DES, AES, etc.)

Cifrado asimétrico:

Basado en un par de claves (pública y privada) de modo que lo que se cifra con una sólo se puede descifrar con la otra del mismo par.

Firma digital

Esquema de funcionamiento de la firma digital:

Certificados digitales I

¿Qué es un certificado?

• Documento electrónico que garantiza la identidad de una persona o fqdn.

• Contiene información del titular del certificado.

Certificados digitales II

Información que contiene un certificado (X.509v3):

• La identidad de un usuario y su clave pública.• Un número de serie y versión.• Periodo de validez.• La identidad de quién emite el certificado.• Descripción.• Clave pública.• Algoritmos utilizados.• La firma digital de las informaciones contenidas en el certificado.

Certificados digitales III

¿Cómo obtengo un certificado digital?

• Se solicitan a una autoridad de certificación.• Tienen un tiempo de validez determinado, a partir del

cual caducan.• Normalmente hay que pagar por ellos.

Certificados digitales IV

Contenido de un certificado:Data:

Version: 3 (0x0) Serial Number: 18 (0x12) SignatureAlgorithm: PKCS #1 SHA-1 con cifrado RSA Issuer: OU = FNMT Clase 2 CA, O = FNMT, C = ES Validity:

NotBefore: Jan7 13:02:39 2000 GMT NotAfter: Jan6 13:02:39 2001 GMT

Subject: CN = Toni, OU = 00011, OU = FNMT Clase 2 CA, O = FNMT, C = ES PublicKeyAlgorithm: rsaEncryption RSA PublicKey: (512 bit)

Modulus(512 bit): 00:98:59:ab:d9:7e:a3:40:21:60:ee:54:a5:a4:54: d2:29:fd:50:82:c1:28:05:25:0a:6b:aa:61:aa:e0: 19:3b:d7:5e:18:f2:14:60:ed:58:f6:87:eb:4c:61: fc:9e:ed:9d:b2:19:d4:73:25:cc:d4:63:88:54:f4: 49:2a:ba:ce:7b Exponent: 65537 (0x10001)

SignatureAlgorithm: PKCS #1 SHA-1 con cifrado RSA 7a:df:8a:aa:b5:23:5b:c6:ff:f3:02:73:65:bb:0f:05:7a:fd: f4:68:ee:b9:fe:92:72:53:bb:f2:31:9e:38:92:69:b3:04:22: d7:be:f5:18:42:7a:c0:9b:e2:1e:04:a4:66:02:80:76:79:0e: f6:c3:7e:25:2d:ec:00:01:fb:f7

Autoridades de Certificación I

Autoridad de Certificación (CA):• Entidad intermediaria y confiable que emite y

administra los certificados.• Garantiza la asociación entre una clave pública y una

identidad. • Debe verificar los datos incorporados en el

certificado. • Problemas asociados a lo difuso de las relaciones de

confianza.• Publicación de las listas de certificados no válidos.

Autoridades de Certificación II

Tipos de autoridades de certificación:• CA interna • CA ext. certificadora de empleados • CA ext. certificadora de clientes • CA tipo Tercera Parte Confiable

Tipos de certificados: • Certificados de usuarios • Certificados de servidores • Certificados de CA

Validez de los certificados:CRL y OCSP

Listas de Revocación de Certificados (CRL) Misión:

• Detectar que un certificado no es válido en caso de sustracción, errores, cambios de derechos, ruptura de la CA.

Problemas: • CRLs de gran longitud • Existe un intervalo de posible fraude • Comprobación on-line de certificados

Para verificar una firma de un documento, el usuario no sólo ha de verificar el certificado y su validez, sino que también ha de adquirir la versión más reciente de la CRL y confirmar que el número de serie del certificado no está en tal CRL.

Validez de los certificados: CRL y OCSP

Contenido de una CRL:• Versión • Algoritmo de Firma • Emisor • Actualización Presente • Siguiente Actualización • Nº Serie Certificado • Fecha Revocación • Extensiones Locales • Extensiones Globales

Validez de los certificados: CRL y OCSP

Servidor OSCP (Online Certificate Status Protocol)• Confirmación online del estado de un certificado.• Servicio online de alta disponibilidad que debe ofrece

la CA a los usuarios.• Proporciona información más adecuada y reciente.• No requiere CRLs: ahorra tráfico y CPU.• Las CRLs contienen información sensible.• Usa LDAP como backend.

Funcionamiento: el cliente OSCP envía petición de estado al OSCP responder y suspende su aceptación hasta recibir respuesta.

Soluciones PKI en Software Libre

Las soluciones a tener en cuenta son:

• OpenCA• OpenXPKI (fork de OpenCA)• EJBCA• PHPki• Gnomint• OpenSSL

Soluciones PKI en Software Libre

OpenCA: herramienta que proporciona un interface Web para poder administrar una PKI.

Componentes:• Una interface web creado en Perl (Público).• Openssl para operaciones criptográficas.• Una base de datos (MySQL/PgSQL).• Un OpenLDAP, Apache (mod_ssl).

Características:• Software Libre.• Integración con otras aplicaciones.• Comunidades de soporte y empresas.• Soporte estándares internacionales.• Versión 1.0.2• En castellano• Demo en http://mm.cs.dartmouth.edu/pki/pub/

Soluciones PKI en Software LibreOpenCA: Capturas de pantalla, Inicialización:

Soluciones PKI en Software LibreOpenCA: Capturas de pantalla, General:

Soluciones PKI en Software Libre

OpenXPKI: fork de OpenCA, con varios componentes reescritos.

Componentes:• Similares a OpenCA (perl).

Características:• Software Libre.• No se liberan versiones de forma normal, se

distribuye en ISO, SVN, nightly builds.• Soporte estándares internacionales.• Versión 0.9.1• Integrado con RT para solicitud de certificados.• Múltiples instancias de CA• Soporte nCipher y nShield para hardware

criptográfico.

Soluciones PKI en Software Libre

OpenXPKI: captura de pantalla, listado:

Soluciones PKI en Software Libre

EJBCA: Infraestructura completa de PKI realizada en Java.

Componentes:• Java JDK.• Servidor de aplicaciones Jboss, Glashfish• Ant

Características:• Software Libre.• Proyecto muy activo.• Soporte estándares internacionales.• Versión 3.8.1.• Software complementario para más funcionalidades.• Multiples CAs y multiplataforma.• Soporte a gran variedad de HW criptográfico y eParapher*.

Soluciones PKI en Software Libre

EJBCA: Capturas de pantalla, panel de administración:

Soluciones PKI en Software Libre

EJBCA: Capturas de pantalla, visor de eventos:

Soluciones PKI en Software Libre

PHPki: Infraestructura mínima de PKI realizada en PHP y OpenSSL.

Componentes:• Apache + mod_ssl.• OpenSSL• PHP (librerías criptográficas)

Características:• Software Libre.• Proyecto parado.• Soporte y funcionalidades limitadas.• Versión 0.82.• Muy fácil de usar e implementar.• No soporta HW criptográfico.

Soluciones PKI en Software Libre

PHPki: captura de pantalla, menú de administración:

Soluciones PKI en Software Libre

Gnomint: Herramienta gestión de CA y certificados para Gnome.

Componentes:• Gnome.• OpenSSL

Características:• Software Libre.• Soporte y funcionalidades limitadas.• Versión 0.6.0.• Muy fácil de usar e implementar.• No soporta HW criptográfico.• No soporta OCSP.

Soluciones PKI en Software Libre

Gnomint: captura de pantalla, listado:

Soluciones PKI en Software Libre

OpenSSL: Herramienta por excelencia para gestión y creación de CAs y certificados.

Componentes:• OpenSSL ;)

Características:• Software Libre.• Herramienta por línea de comandos.• Soporta gestión de CA, cifrado, firma, etc.• Navaja suiza para certificados.• Multiplataforma.• Dispone de su propia shell.

Ver: Usando OpenSSL en el mundo real.pdf (blyx.com)

Soluciones PKI en Software Libre

OpenSSL: línea de comandos, ejemplos:

$ fnd /etc -type f | xargs openssl md5 > /etc/secure/md5_sigs.txt El anterior comando creará un archivo MD5 hash de todos los archivos del directorio /etc. Estos finger prints deben ser almacenados como solo lectura y en un lugar seguro.

Veamos un ejemplo para cifrar un archivo llamado passwd con Blowfish: $ openssl bf -e -in /etc/secure/passwd -out /etc/secure/passwd.enc.bf

El siguiente ejemplo muestra como descifrar el archivo /etc/secure/sensitive_data.enc.3des que fue cifrado con el algoritmo 3DES: $ openssl enc -des3 -d -in /etc/secure/sensitive_data.enc.3des -out \ /etc/secure/sensitive_data

El siguiente ejemplo muestra como generar el MD5de la contraseña “blah”: $ echo blah | openssl passwd -stdin -1 La opción "-1" indica que usaremos MD5 como algoritmo y la opción “-stdin” indica que le pasamos la contraseña a través de la entrada estándar.

Soluciones PKI en Software Libre

eParapher: Cliente para firma digital de documentos.

Componentes:• Java 5 y 6.• Eclipse.• OpenOffice 2.4+• Maven.• Apache directory studio.

Características:• Software Libre.• Herramienta gráfica multiplataforma.• Windows, Linux y Mac.• En estado inicial, versión 0.0.1.• Bien dimensianada.• Soporta firmas en PDF, PDF/A, CMS and XML.• Firma masiva (bulk sign).

Conclusiones

Preguntas y respuestas

Agradecimientos:

Víctor Manuel Fernández Gómez - http://vfernandezg.blogspot.com/Gonzalo Álvarez Marañón - Univ. Oviedo. Pedro Pablo Pérez García - Univ. Oviedo.

José María Sierra - Univ. Comillas.

$ while true; do ; ‘¡gracias!’; done

;-)

Toni de la FuenteDirector de Sistemas y Soporte

Intecna Solucionesafuente@intecna.es