Open SSL2
Open SSL2
Open SSL2
2
Motivación
Necesidad de Realizar envío de datos
confidenciales o secretos por la Internet
Sólo debe recibida por el destinatario
deseado
√ es necesario autentificar al destinatario.
3
Motivación
Como alternativa para esto actualmente se
cuenta con el protocolo SSL, cuyo
funcionamiento será descrito a
continuación.
4
Contenidos
1.Conceptos Generales.
2.Protocolo SSL
- Definiciones y aspectos históricos.
- Tipos de SSL.
- Funcionamiento del protocolo SSL.
- Resumen
5
Contenidos
3.OpenSSL
- Definición
- Protocolo TSL
- Instalación
- Uso de OpenSSL
6
1. Conceptos Generales
Conceptos Generales
Llaves pública/privada:
- Información encriptada con una llave solo
puede ser desencriptada por su par.
- La base es mantener una llave guardada y
distribuir la otra.
- El par de llaves está basado en un número
primo.
8
Conceptos Generales
Llave Simétrica:
- Usa la misma llave para encriptar y
desencriptar (más práctico)
- Mucho más veloz que algoritm asimétrico.
- Potencialmente inseguro.
- Transmitir llave simétrica con ayuda de
algoritmos asimétricos.
9
Conceptos Generales
Hash:
- Número dado al aplicar una función hash a
un mensaje.
- Función hash es en un solo sentido.
- Se utiliza para certificar que un mensaje no
ha cambiado.
- Usado en Sistemas de Password.
10
Conceptos Generales
Proceso de Firmado:
- Asumir la autenticidad de un mensaje.
- Crear hash del mensaje, encriptar hash con
llave privada y agragar hash al certificado
firmado.
- Se transmite la llave pública a todos los
receptores.
11
Conceptos Generales
- También es posible firmar un mensaje en
conjunto con la firma.
- Más simple, cualquier programa puede leer
la llave pública y desencriptarlo.
- Además asegura que el mensaje no fue
cambiado.
- Mensaje viaja encriptado a diferencia del
anterior.
12
Conceptos Generales
Certificado Digital:
- Certifica que una persona o entidad es quien
dice ser.
- Dirección de Correo, nombre, uso del
certificado, ID de entidad que lo firma.
- CA almacenados en Navegador.
- Todo certificado es no confiable si no se ha
firmado.
13
Ejemplo Certificado Digital
14
2. SSL
Definiciones
SSL: Secure Sockets Layer, capa de sockets
seguros.
Establece un canal seguro en el nivel de
16
Historia
Originalmente desarrollado por Netscape
Communications Corporation, a mediados
de los ‘90.
La versión 2 del protocolo fue la primera en
ser ampliamente utilizada.
La versión 3, actualmente en uso otorga un
mayor número de características, mayor
eficiencia y flexibilidad.
17
Tipos de SSL
Existen 2 tipos de uso del protocolo SSL:
- SSL del Servidor:
Autentifica que una dirección web
pertenece a quien dice ser.
- SSL del Cliente:
Autentifica que la persona que está al otro
lado de la conexión es quien dice ser.
18
Funcionamiento SSL
SSL del Servidor es el más usado, por eso
será explicado:
- El servidor web debe entregar la llave
pública de su certificado digital.
- Antes de aceptar esta llave pública, se debe
revisar que el certificado esté firmado por
una autoridad de confianza.
19
Funcionamiento
- Calculo del Hash del certificado (llave
pública del CA).
- Verificación de que el certificado se
encuentra válido.
- Comparar URL con la que viene en el
certificado.
20
Funcionamiento
- Se extrae la llave pública del certificado.
- Se genera la llave simétrica (aleatoria).
- Se encripta la llave simétrica con la llave
pública del servidor (certificado) y se envía.
- Servidor recibe la llave y la decodifica con
su llave privada.
- Comunicación puede comenzar con cifrado
simétrico.
21
Resumen
El navegador generó una clave simétrica aleatoria
y luego la cifró utilizando la llave pública del
servidor, el hecho que el servidor web pueda
descifrar la clave simétrica y por ende participar
en la conversación, le dice al navegador que él es
el servidor real, pues es el único nodo en todo el
universo que posee la llave privada capaz de
descifrar los datos encriptados con la llave
pública, necesaria para desempaquetar la clave
simétrica
22
3. OpenSSL
Definición
Esfuerzo conjunto para desarrollar una
implementación robusta, de nivel comercial,
con todas las características y de tipo Open
Source de los protocolos Secure Sockets
Layer (SSL v2/v3), y Transport Layer
Security (TLS v1), además de bibliotecas
con propósitos criptográficos.
24
Definición
Principal diferencia con un paquete SSL se
puede ver claramente en el slogan del
proyecto:
“¿Porque comprar un paquete SSL como
una caja negra, cuando puede obtener una
abierta y gratis?”
25
Protocolo TSL
Forma superior de SSL v3 con funciones
criptográficas fortalecidas
Es considerado el estándar a utilizar para comercio
electrónico.
Protocolo de Seguridad del Nivel de Transporte
(TSL), y protocolo Seguridad a Nivel de
Transporte inalámbrico (Wireless Transport Layer
Security, WTLS) son descendientes directos del
SSL.
26
Instalación
Actualmente viene como un paquete en la
mayoría de las distribuciones Linux.
Directorio por defecto de instalación:
/var/ssl
Archivo de configuración:
/usr/lib/ssl/openssl.cnf
Utilidades y otras librerías:
/usr/lib/ssl
27
Uso de OpenSSL
a.) Creación de Certificados Digitales.
b.) Instalación de Certificados Digitales.
c.) Manejo de Certificados Digitales:
- Generar y Firmar Certificados
- Revocar Certificados
- Renovar un Certificado
- Visualizar un Certificado
28
Uso OpenSSL
Creación
Primer paso: Crear un Certificado Raíz:
openssl req -new -x509 -keyout private/cakey.pem \
-out cacert.pem -days 3650.
Genera 2 partes:
Llave (RSA PRIVATE KEY) private/cakey.pem
Certificado (CERTIFICATE) cecert.pem
Proteger el Certificado de posibles ataques
o robos y utilizarlo solo para firmar otros
certificados.
30
Creación
Existen 2 archivos que llevan un registro
sobre los certificados creados:
- index.txt el cual ahora debe encontrarse
vacío
- serial debe contener el valor 01
31
Instalación
Se debe instalar el certificado creado como
certificado raíz, en el cual se confía.
Almacenar solo la parte del certificado:
openssl x509 -in cacert.pem -out cacert.crt
Poner cacert.crt en el servidor web, para
que pueda ser descargado e instalado.
Disponer de más de un método de obtener
el certificado.
32
Manejo de Certificados
Generar y Firmar
openssl req –new keyout newreq.pem –out newreq.pem \ –
days 365
Crea una clave privada y una solicitud de
certificado ( newreq.pem ).
Usar un nombre común (Common Name):
actualizados.
35
Revocar
Actualizar base de datos de Certificados:
openssl –revoke newcert.pem
Actualizar lista de Certificados Revocados:
36
Renovar
Un usuario envía su certificado antiguo o
crea uno nuevo usando su llave privada.
También es posible obtener el nombre en
37
Renovación
openssl ca –policy policy_anyting –out \
newcert.pem –infiles newreq.pem \
-startdate [now] –eddate [end_date]
Reemplazar los valores [now] y [end_date]
con los valores correctos.
38
Visualizar
Se puede tener un certificado en forma
encriptada, para leerlo:
Openssl x509 –in newcert.pem –noout –text
39
Comentarios Finales
Index.txt: este archivo contiene
información de los certificados manejados
por OpenSSL, todas las entradas del archivo
están marcadas con R de revocado, V de
válido y E de expirado.
40
Comentarios Finales
Posee compatibilidad con distintos
aplicaciones de uso masivo como por
ejemplo: Apache, protocolos de correo
como IMAPS o POP, Microsoft Key
Manager y para correo electrónico seguro,
donde puede funcionar con certificados
mime, ser utilizado con el Outlook,
Netscape Messenger y varios otros clientes
de correo.
41
Consultas o comentarios...