OpenSSL by 0wp077

VIEWS: 20 PAGES: 42

									    OpenSSL



Gonzalo Ojeda Figueroa
             Introducción
 OpenSSL, es una implementación de código
  libre del protocolo SSL (y del protocolo
  TSL).
 Su principal utilización es para realizar
  comunicaciones seguras en la Internet.



                                          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.

 Sin embargo, las comunicaciones también
  pueden ser capturadas en su viaje.
√ Las comunicaciones deben viajar protegidas

                                           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
Cer t i f i cat e:
      Dat a:
             Ver si on: 3 ( 0x2)
                            ber
             Ser i al Num : 1 ( 0x1)
                                         : d5W
             Si gnat ur e Al gor i t hm m i t hRSAEncr ypt i on
                                                          =SO
             I ssuer : C=FJ, ST=Fi j i , L=Suva, O PAC, O CT, CN=SO    U=I               PAC Root
        ai         i
CA/ Em l =adm ni st r at or @     sopac. or g
             Val i di t y
                   Not Bef or e: Nov 20 05: 47: 44 2001 G T       M
                   Not Af t er : Nov 20 05: 47: 44 2002 G T       M
                                                            =SO
             Subj ect : C=FJ, ST=Fi j i , L=Suva, O PAC, O CT,           U=I
                             ai        i
CN=www. sopac. or g/ Em l =adm ni st r at or @        sopac. or g
             Subj ect Publ i c Key I nf o:
                                                :
                   Publ i c Key Al gor i t hm r saEncr ypt i on
                   RSA Publ i c Key: ( 1024 bi t )
                          Modul us ( 1024 bi t ) :
                              00: ba: 54: 2c: ab: 88: 74: aa: 6b: 35: a5: a9: c1: d0: 5a:
                              9b: f b: 6b: b5: 71: bc: ef : d3: ab: 15: cc: 5b: 75: 73: 36:
                              b8: 01: d1: 59: 3f : c1: 88: c0: 33: 91: 04: f 1: bf : 1a: b4:
                              7a: c8: 39: c2: 89: 1f : 87: 0f : 91: 19: 81: 09: 46: 0c: 86:
                              08: d8: 75: c4: 6f : 5a: 98: 4a: f 9: f 8: f 7: 38: 24: f c: bd:
                              94: 24: 37: ab: f 1: 1c: d8: 91: ee: f b: 1b: 9f : 88: ba: 25:
                              da: f 6: 21: 7f : 04: 32: 35: 17: 3d: 36: 1c: f b: b7: 32: 9e:
                              42: af : 77: b6: 25: 1c: 59: 69: af : be: 00: a1: f 8: b0: 1a:
                              6c: 14: e2: ae: 62: e7: 6b: 30: e9
                          Exponent : 65537 ( 0x10001)
               X509v3 ext ensi ons:

                                                                                                    14
2. SSL
             Definiciones
 SSL: Secure Sockets Layer, capa de sockets
  seguros.
 Establece un canal seguro en el nivel de
  transporte entre dos partes.
 Ofrece privacidad en las comunicaciones al
  utilizar cifrado con llave simétrica y usa
  códigos de autentificación de mensajes.

                                           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):
  Dirección web para autentificar página.
  Nombre usuario para autentificar correos de
  ese usuario.
                                                         34
               Generar y Firmar
   Para firmar la solicitud anterior:
    openssl ca -policy policy_anything -out newcert.pem \
    -infiles newreq.pem
 Transforma cacert.pem en el certificado
  newcert.pem.
 Se crea un archivo en el directorio
  newcerts/
 Los archivos index.txt y serial serán
  actualizados.                                             35
                 Revocar
 Actualizar base de datos de Certificados:
  openssl –revoke newcert.pem
 Actualizar lista de Certificados Revocados:
  openssl ca –gencrl –out crl/sopac-ca.crl
 Esta lista de Certificados Revocados (CRL)
  también debe estar disponible en el servidor
  web.

                                             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
  index.txt de acá se obtiene el serial “xx” y
  se obtiene el archivo cert”xx”.pem.
 Realizar el proceso manualmente para
  asegurarse de las fechas.

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

								
To top