29

Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

  • Upload
    others

  • View
    44

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El
Page 2: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Dos modelos comunes:

PKI centralizada (SSL/TLS, S/MIME)◦ Certificados

◦ Autoridades de certificación centralizadas

PKI distribuida (PGP)◦ Firmas entre usuarios

◦ Red de confianza (Web of trust)

Page 3: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

RFC 3280 define X.509 v3

Define una PKI para Internet

Formato de los certificados

Formato de las Listas de Revocación de Certificados (CRL)

Forma de PKI centralizada más usada◦ Usado para S/MIME, SSL/TLS, SSH...

Page 4: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

• Certificate

• Version

• Serial Number

• Algorithm ID

• Issuer

• Validity

• Subject

• Subject Public Key Info

• Public Key Algorithm

• Subject Public Key

• • ...

• Certificate Signature Algorithm

• Certificate Signature

Versión del certificado (3)

Número identificador único del cert.

Algoritmos para firmar el cert.

Nombre de la CA

Periodo de validez del cert.

Usuario (a quien pertenece la clave)

Datos de la clave certificada

Algoritmos usados para firmar el crt.

Firma de la CA

Algunos campos del certificado X.509

Page 5: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Open SSL Herramienta que implementa SSL

S/MIME Correo cifrado

Cifrado de llamada a procedimiento remoto (RPC). El protocolo RPC utilizado por COM distribuido (DCOM) proporciona un nivel de autenticación (privacidad de paquete) que realiza el cifrado de todos los paquetes de datos enviados entre el cliente y el servidor.

Seguridad del protocolo Internet (IPSec). IPSec ofrece una solución para la comunicación segura en el nivel de transporte y puede utilizarse para proteger los datos enviados entre dos equipos, como por ejemplo, entre un servidor de aplicaciones y un servidor de bases de datos.

Page 6: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El
Page 7: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Open SSL es una herramienta SSL funcional.

OpenSSL es una implementación de código abierto, de los protocolos SSL y TLS.

Está basado sobre el extinto proyecto SSLeay, iniciado por Eric Young y Tim Hudson.

Se encuentra disponible en www.openssl.orgy admite diferentes plataformas.

Page 8: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Pasos principales de la instalación(en sistemas UNIX):

◦ Descargar el paquete, descomprimirlo desde un usuario diferente de root.

◦ Ejecutar el archivo ./configure (se puede especificar de forma explicita)

◦ Ejecutar make

◦ Entrar al sistema como root. Ejecutar make install para mover los archivos al directorio correspondiente (/usr/local/ssl)

◦ Crear referencia a las bibliotecas: ln –s /usr/local/ssl/lib/libssl.a /usr/lib/ ln –s /isr/local/ssl/lib/libcrypto /usr/lib

Page 9: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

◦ Crear la referencia a los archivos incluidos: ln –s /usr/local/ssl/include/openssl/ /usr/include

◦ Incorporar el MANPATH /usr/local/ssl/man a su archivo /etc/man.config

◦ Incorporar en la ruta de acceso (PATH) /usr/local/ssl/bin

◦ OpenSSL incluye un API para programación segura en C

Page 10: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

openssl genrsa –des3 –out ca.key 1024

◦ En donde: genrsa indicará que se usarán parámetros RSA

-des3 indica que se utilizará el algoritmo triple DES para realizar el cifrado.

-out ca.key, indica que la llave se depositará en un archivo llamado ca.key

El parámetro 1024 indica el tamaño que tendrá la clave privada.

Al ejecutar el comando se pedirá el password que resguardará la llave privada y su confirmación

Page 11: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Una vez que se generó la llave privada, se utilizará ésta para generar un certificado, para esto, se ejecuta el siguiente comando:

#openssl req –new –x509 –days 365 –key

ca.key –out ca.csr (o puede ser ca.crt)

req indica que se trata de una solicitud

-new que se trata de una nueva solicitud

-x509 que la solicitud se generará en el estándar x509

Se ingresa el password y los datos que formarán el certificado.

Page 12: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Enviar el archivo .csr a una CA, ésta solicita el pago y valida la identidad de la organización y proporciona el certificado por un tiempo limitado.

Aunque también se pueden generar certificados firmados por “uno mismo”

#openssl req –new –x509 –days 30 –in ca.csr –key

ca.key –out ca.ctr

csr.- Solicitud de firma del certificado

crt.- Certificado temporal firmado por el propio servidor.

Page 13: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Al instalar Apache:◦ Después de desempaquetar el archivo de instalación (tgz)#./configure –-enable-ssl

# make

# make install

◦ Generar una llave privada y un certificado (diapositivas anteriores)

◦ Mover el .key y .crt al directorio: /dir_apache/conf/ssl(crearlo, ya que no existe por default)

◦ Y modificar el archivo ssl.conf indicando donde se encuentran los archivos: SSLCertificateFile

SSLCertificateKeyFile

◦ Finalmente iniciar apache: #/dir_apache/bin/apachectl start

Page 14: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Los servidores como el IIS tienen opciones para habilitar conexiones seguras por medio de la configuración.

Apache + SSL sobre Windows

Servidores de base de datos como DB2 u Oracle también traen opción de conexiones seguras.

Page 15: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

http://httpd.apache.org/download.cgi

◦ Unix Source: httpd-2.2.14.tar.gz

◦ Win32 Source: httpd-2.2.14-win32-src.zip

◦ Win32 Binary without crypto (no mod_ssl) (MSI Installer): apache_2.2.14-win32-x86-no_ssl.msi

◦ Win32 Binary including OpenSSL 0.9.8k (MSI Installer): apache_2.2.14-win32-x86-openssl-0.9.8k.msi

Page 16: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

C:\OpenSSL>openssl req -config openssl.cnf -new -out my-server.csr

C:\OpenSSL>openssl rsa -in privkey.pem -out my-server.key

C:\OpenSSL>openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365

C:\OpenSSL>openssl x509 -in my-server.cert -out my-server.der.crt -outform DER

Page 17: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

#Listen 80Listen 443…..Probar http://localhost:443…..LoadModule ssl_module modules/mod_ssl.so…..<VirtualHost localhost:443>SSLEngine OnSSLCertificateFile conf/ssl/my-server.certSSLCertificateKeyFile conf/ssl/my-server.key</VirtualHost>

….Probar: https://localhost

Page 18: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Iniciar el estado del cliente:◦ SSL_METHOD * method;

◦ SSL_CTX *ctx;

◦ OpenSSL_add_all_algorithms(); Cargar el cifrado

◦ SSL_load_error_strings();

Cargar/registrar mansajes de error

◦ method = SSLv2_client_method(); Crear el nuevo cliente

◦ ccx = SSL_CTX_new(method); Crear el nuevo contexto

Page 19: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

El siguiente paso es crear un socket normal.

Después de la conexión de los sockets entre cliente y servidor,se necesita crear una instancia SSL y asociarla a la conexión.

SSL *ssl = SSL_new(ctx);◦ Crear nuevo estado de la conexión

SSL_set_fd (ssl, sd);◦ Adjuntar el descriptor del socket “int sd = socket(PF_INET, SOCK_STREAM,0);”

If (SSL_connect(ssl) == -1) //Realiza conexión

ERR_print_errors_fp(stderr);

Page 20: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Multipurpose Internet Mail Extensions

RFC 2045-2049

MIME ◦ Define la estructura del cuerpo de los correos

electrónicos.

◦ Permite dividir los correos en bloques múltiples.

◦ Permite incluir imágenes, audio, video... en un correo.

◦ No contempla seguridad/criptografía

Page 21: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Secure/MIME, desarrollado por RSA Security

◦ Extiende MIME con encripción y firmas

◦ Basado en PKI centralizada

◦ Usa CAs y certificados X.509

◦ RFC 3851 → S/MIME v3.1

◦ Tipos MIME Application/pkcs7-mime, multipart/signed...

Page 22: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Estándar para uso de PGP◦ Basado en PKI distribuida

Usa red de confianza◦ RFC 3156 → MIME con OpenPGP (“PGP/MIME”)

Tipos MIME ◦ Application/pgp-encrypted, application/pgpsignature◦ Estructura MIME de un correo cifrado/firmado◦ RFC 2440 → OpenPGP Message Format

Campos binarios que componen un bloque cifrado/firmado (datos encriptados, algoritmo, hash...)

Comando pgp linux

Page 23: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

IPSec puede utilizarse para proteger los datos enviados entre dos equipos, como por ejemplo, un servidor de aplicaciones y un servidor de bases de datos.

IPSec es totalmente transparente para las aplicaciones al implementarse los servicios de cifrado, integridad y autenticación en el nivel de transporte.

Las aplicaciones siguen comunicándose entre sí de la forma habitual mediante puertos TCP y UDP.

Page 24: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Proporcionar confidencialidad de mensajes al cifrar todos los datos enviados entre dos equipos.

Proporcionar integridad de mensajes entre dos equipos (sin cifrado de datos).

Proporcionar autenticación mutua entre dos equipos (no usuarios). Por ejemplo, puede ayudar a proteger un servidor de bases de datos si establece una directiva que admite peticiones solamente de un equipo cliente específico (por ejemplo, un servidor Web o de aplicaciones).

Restringir los equipos que pueden comunicarse entre sí. También puede limitar la comunicación a protocolos IP y puertos TCP/UDP específicos.

IPSec puede utilizar kerberos para autenticación de los usuarios

Page 25: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

RPC es el mecanismo de transporte subyacente utilizado por DCOM.

RPC ofrece un conjunto de niveles de autenticación configurables, desde ninguna autenticación (y ninguna protección de los datos) al cifrado total del estado de los parámetros.

El nivel más seguro (Privacidad de paquete RPC) cifra el estado de los parámetros para cada llamada a procedimiento remoto (y, por lo tanto, todas las invocaciones de métodos DCOM).

El nivel de cifrado RPC (40 bits o 128 bits) depende de la versión del sistema operativo Windows que se ejecuta en los equipos cliente y servidor.

Page 26: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El
Page 27: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

SSH es un protocolo que permite establecer una conexión segura entre un cliente y servidor a través de una red insegura como es la red IP.

El protocolo SSH (Secure Shell) se desarrolló en 1995 por el finlandés Tatu Ylönen.

Inicialmente se creo para sustituir a telnet, pero actualmente se le han agregado más funcionalidades.

El protocolo SSH consta de dos componentes:◦ Cliente SSH, permite conectarse al servidor de manera segura.

◦ Servidor SSH, actúa como supervisor, crea una conexión segura y un proceso por cada cliente que atiende.

Page 28: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

El objetivo de la versión 1 del protocolo (SSH1), propuesta en 1995, ofrecía una alternativa a las sesiones interactivas (shells) tales como Telnet, rsh, rlogin y rexec.

Sin embargo, este protocolo tenía un punto débil que permitía a los hackers introducir datos en los flujos cifrados. Por este motivo, en 1997 se propuso la versión 2 del protocolo (SSH2) como un anteproyecto del IETF. http://www.ietf.org/html.charters/secsh-charter.html.

Secure Shell Versión 2 también incluye un protocolo SFTP (Secure File Transfer Protocol).

Page 29: Dos modelos comunes: PKI centralizada (SSL/TLS, S/MIME ...profesores.fi-b.unam.mx/yasmine/Tema_5_2.pdf · S/MIME Correo cifrado Cifrado de llamada a procedimiento remoto (RPC). El

Una conexión SSH se establece en varias fases:

◦ En primera instancia, se determina la identidad entre el servidor y el cliente para establecer un canal seguro (capa segura de transporte).

◦ En segunda instancia, el cliente inicia sesión en el servidor.