infraestructura de clave pública con software libre
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
Infraestructura de clave pública -PKI- con Software Libre
Febrero 2009
Toni de la FuenteDirector de Sistemas y Soporte
Intecna [email protected]
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 [email protected]