51
Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Embed Size (px)

Citation preview

Page 1: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Introducción SSL/TLS

Page 2: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Seguridad WEB

Page 3: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Seguridad Web

• HTTP no es un protocolo seguro– Es simple y no se establece un estado

cliente/servidor. Ejecuta sobre TCP/IP

• Es necesario instrumentar medidas de seguridad– Revisaremos SSL (Secure Socket Layer) y su

sucesor TLS (Transport Layer Security)– HTTPS

• Protocolo seguro HTTP

– El uso de SSL se aplica también a otras capas TCP/IP, por ejemplo,

• POP3, SMTP, FTP, SSH, etc.

Page 4: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Problema de Diseño

Problema de diseño: crear aplicaciones que puedan ejecutar de manera segura sobre Internet. Se cuenta con las siguientes herramientas/soluciones:

• TLS: Transport Layer Security (SSL)

• Certificados

• Esta presentación está basada principalmente en el capítulo 17 del Stallings

Page 5: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

¿Dónde ofrecer Seguridad?

• Discusión bizantina sin respuesta final

Se menciona Esta presentación futuro

Page 6: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Contexto de SSL/TLS

• Amenazas– Integridad

• Modificación de datos, inseción• Funciones hash (HMAC)

– Confidencialidad• Espionaje en la red

– Puede ser prevenido con cifrado• Compromiso de la seguridad

– Las medidas de seguridad in-situ son indispensables

– Autenticación• masacarada• Hemos visto diversas técnicas criptográficas

– Denegación de servicio

Page 7: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

SSL (Secure Socket Layer)

• Desarrollado originalmente por Netscape

• Versión 3: Diseñada tomando en cuenta opiniones de la comunidad [RFC 2246]

• Un esfuerzo de estandarización ha sido patrocinado por la IETF

– TLS (Transport Layer Security) grupo de trabajo establecido y funcionando [Véase:

http://www.ietf.org/html.charters/tls-charter.html]

– TLS puede ser visto como SSL v3.1 y/o compatible con SSL v3

Page 8: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

HTTP : Visto como aplicación de TLS

• HTTP es la más común aplicación de TLS– https://

• Requiere servidores Web que soporten TLS

• Requiere navegadores Web que soporten TLS:– Netscape– Internet Explorer– Cryptozilla

• Netscape Mozilla sources with SSLeay

Page 9: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Cambios de SSL 3.0 a TLS

• Mensajes adicionales de alerta

• Modificaciones a los cómputos de funciones hash

• versión del protocolo 3.1 en ClientHello, ServerHello

Page 10: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Arquitectura TLS

Page 11: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

TLS: ¿Qué hace?

• Establece una sesión – Acuerdo de algoritmos– Realiza autenticación– Compartir de secretos

• Transferencia de datos de aplicación– Asegura privacidad e integridad

Page 12: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Arquitectura SSL

• Utiliza TCP (transferencia de datos confiable)

Page 13: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

SSL: Protocolo “Record”• Utilizado en conexiones SSL

– Usa parámetros de la conexión• Brinda confidencialidad e integridad• También fragmenta (en bloques de 214 bytes) y

opcionalmente comprime datos (en la práctica no se utiliza casi nunca)

• confidencialidad– IDEA, RC2-40, DES-40, DES, 3DES, Fortezza,

RC4-40, RC4-128– Opcionalmente, los mensajes son

comprimidos• integridad de mensaje

– Se usan protocolos MAC con llave secreta compartida

– Actua de manera similar a HMAC pero la llave es concatenada al mensaje en vez de XORed

Page 14: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

SSL: Protocolo “Record”

Page 15: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo de cambio de especificaciones de cifrado

• El protocolo TLS más simple

• El nuevo estado establecido por el protocolo handshake es un estado de pendiente

– Todavía no definitivo

• El protocolo de cambio de espec. de cifrado es en realidad un sólo mensaje intercambiado entre el cliente y el servidor que cambia el estado de pendiente a definitivo.

• Se revisará en el protocolo de intercambio de datos [handshake protocol]

Page 16: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo de Alerta• Cubre el sistema de alertas de SSL generadas por la identidad de

las entidades• Asegura los datos intercambiados en el protocolo record

– Y con los parámetros de conexión en vigor en la sesión• Cada mensaje tiene 2 bytes

– Un byte para el nivel de seguridad (severidad)• warning (cone´xión puede reanudarse) o fatal (la conexión

se termina inmediatamente)– Un byte para el código de alerta

• Mensaje inesperado, falla en el MAC o en el descomprimido• Falla en el intercambio (no pudo establecerse acuerdo),

parámetros ilegales (inconsistentes o irreconocibles)• Tiempo insuficiente para procesar• Sin certificado, mal certificado, certificado no soportado,

certificado revocado, certificado expirado, certificado desconocido

Page 17: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo de Intercambio de datos TLS

Page 18: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo de Intercambio de datos

• La parte más compleja de SSL

• Permite al servidor y al cliente– Autenticar uno a otro

– Negociar algoritmos de cifrado y MAC

– Negociar llaves de cifrado y MAC a ser usadas

• Este protocolo es ejecutado antes que cualquier intercambio de datos se realice– Es decir, el protocolo record no comienza hasta que no

acabe el de intercambio de datos.

• De hecho, el protocolo de intercambio de datos (de manera abreviada) aun si una sesión anterior es relanzada

Page 19: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo handshake de TLS: tres objetivos

1. Negociar algoritmos criptográficos– Cifradores simétricos– Método de intercambio de llave– Función de digestión de mensaje

2. Autentica [opcionalmente] al cliente y al servidor

3. Establece y comparte un secreto maestro

Page 20: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Parámetros de estado de la Sesión• Identificador de Sesión

– Escogido por el servidor• Certificado de participante

– (certificado del servidor si la entidad es el cliente, o del cliente si la entidad es el servidor)

– Puede ser null (lo cual es un caso probable para el cliente)• Método de Compresión

– Algoritmo usado por compresión • Especificación de cifrado

– Algoritmos de cifrado por bloques (DES, etc.) – puede ser null (casi nunca)

– Algoritmo hash usado para integridad (MD5 o SHA-1)• Secreto Maestro

– 48-bytes secretos compartidos por el cliente y servidor• Es re-ejecutable

– Existe una bandera que indica si la sesión puede ser reutilizada más tarde

Page 21: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Parámetros de Conexión

• Números Aleatorios– Intercambios entre servidor y cliente– Utilizados como “nonces” durante los mensajes

intercambiados

• secreto MAC– Llave secreta utilizada en operaciones MAC

• Llave de cifrado convencional• Vector de inicialización

– Si el modo CBC es utilizado

• Secuencias pseudo-aleatorios– Cada participante genera sus propias secuencias

Page 22: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Definición de la palabra nonce

• Nonce: The present or particular occasion.

• Nonce word: A word occurring, invented, or used just for a particular occasion.

Page 23: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Tipos de mensajes en el protocolo handshake

Page 24: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Fases del protocolo Handshake

• Mensajes de Hola• Mensajes de certificados e

intercambio de llaves.• Cambio de especificación de

cifrado y mensajes de finalización

Page 25: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Page 26: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Fase 1 del Protocolo Handshake

Page 27: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Mensajes de hola

• Hola del cliente – Inicia Sesión

– Propone la versión del protocolo

– Los cifradores a ser utilizados

– Es el servidor quien escoge los

algoritmos criptográficos a ser usados

Page 28: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Establecimiento de algoritmos criptográficos

• Hola del Cliente (Lista de sus preferencias)– versión: la más alta soportada por el cliente– El cliente envía un número aleatorio

• Se incluye un marca de tiempo para evitar ataques de replay

– Identificador de Sesión• No-cero significa que el cliente desea utilizar una sesión

existente para renovar el estado de conexión, cero significa una conexión nueva en una sesión nueva.

– Métodos de comprensión soportados por el cliente– Selección criptográfica

• Una lista que contiene la combinación de algoritmos criptográficos soportados por el cliente en orden de preferencia

Page 29: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

• Hola del Servidor • versión: versión propuesta por el cliente si la

soporta el servidor, si no, la más alta soportada por el servidor.– Aleatorios del servidor

• Mismos mecanismos que el cliente pero independientes

– Identificador de sesión• Se acepta la sugerida por el cliente si el

servidor la soporta• En caso contrario, el servidor asigna un

identificador– Lo mismo ocurre con las sugerencias del

cliente para los algoritmos de cifrado

Establecimiento de algoritmos criptográficos

Page 30: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Métodos de intercambio de Llave

• ¿Cómo se intercambian las llaves secretas

para el cifrado y funciones MAC?

– Primero se intercambia un secreto pre-

maestro.

– El secreto maestro se deriva a partir de éste.

– Las llaves necesarias se derivan del secreto

maestro

Page 31: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

• ¿Cómo se intercambia el secreto pre-maestro?– RSA

• El servidor envía un certificado RSA, el cliente cifra el secreto pre-maestro y lo envía.

– Diffie-Hellman (DH) fijo• Los parámetros DH del servidor han sido

prefijados y se les envían al cliente por medio de un certificado.

– DH Efímero [DH Ephemeral]• El certificado del servidor contiene una llave

RSA o DSA• El servidor crea los parámetros DH en tiempo

real (se asume que sólo serán usados una vez) y los firma con su llave.

– DH Anónimo• Sin certificados ni autenticación, simplemente

se envían los parámetros DH en claro.• Obviamente es vulnerable a ataques

Métodos de intercambio de Llave

Page 32: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo Diffie-Hellman

Page 33: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

References

• http://www.openssl.org/

• http://www.openssl.org/docs/

• http://httpd.apache.org/docs-2.0/ssl/

• Stallings, William Cryptography and Network Security: Principles and Practice, 2nd Edition, Prentice Hall, 1999.

• Wagner, David, Schneier, Bruce “Analysis of the SSL 3.0 Protocol” <http://www.counterpane.com/ssl.html>

• Internet Drafts and RFCs <http://www.ietf.org/>.

Page 34: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

WTLS

Page 35: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

WTLS

WTLS es el protocolo de seguridad de WAP. Está diseñado para hacer seguras las comunicaciones y las transacciones sobre redes inalámbricas.

WTLS

Capa de Transacción (WTP)

Capa de Transporte (WDP/UDP)

Protocolo de Alerta

Protocolo de Negociación

Protocolo deEspCC

Protocolo de Aplicación

Protocolo de Registro

WTLS proporciona Privacidad, Integridad y Autentificación.El protocolo de aplicación: es la interfaz para las capas superiores.

Protocolo de registro: administra la fragmentación de los mensajes y aquí se realizan los mecanismos necesarios para dar privacidad e integridad al usuario.Protocolo de alerta: administra los avisos.

Protocolo de especificación de cambio de cifrado: indica la transición a la verdadera fase de transmisión utilizando los métodos de cifrado acordados.

Page 36: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Cliente Servidor

Pro

toco

lo d

e

Neg

oci

aci

ón

C

om

ple

to

Fase 1

hola del cliente

hola del servidor

certificado

Fase 2 intercambio de llave del servidor

hola del servidor terminadopetición de certificado

certificado

Fase 3intercambio de llave del clienteverificación del certificado

terminado

especificación de cambio de cifrador

especificación de cambio de cifrador

terminado

Fase 4

Page 37: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Módulo de Negociación

en el Cliente usando

TLS/WTLS

Módulo de Negociación

en elServidor usando

TLS/WTLS

HolaCliente

HolaServidor

Certificado Digital

Petición de Certificado

Llave Pública

Petición de Certificado

Certificado

Especificación Cambio Cifrador

Llave Pública

Verificación de Certificado

Terminado

Especificación Cambio CifradorTerminado

Llave de Sesión

Llave de Sesión

Canal Inalámbrico

Intercambio de Datos Cifrado Descifrado

Firmado Verificación

Cifrado Descifrado

Firmado Verificación

Parámetros Criptográficos

Datos a Intercambiar

Datos recibidos

Tiempos de Ejecución

Datos recibidos

Datos a Intercambiar

Módulo para Intercambio de

Datos

Módulo para Intercambio de

Datos

Fase de Negociación

Fase de Intercambio de Datos

Page 38: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Seguridad IP

Page 39: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocolo Inter-redes (IP)• Objetivo

– Proveer interconexión entre diferentes redes

• Implementado en todas las redes y ruteadores

• IP es un protocolo no confiable– Los datagramas IP suelen perderse – Llegan en desorden– TCP arregla estos problemas

Page 40: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Protocol Inter-redes (IP)

Page 41: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

¿Dónde proveer Seguridad?

• ¿Capa de aplicación?– S/MIME, PGP – seguridad en correo electrónico– Kerberos – modelo cliente-servidor– SSH –telnet seguro

• ¿Nivel de transporte?– SSL / TLS– Entre TCP y Aplicación

• Nivel IP– IPSec

Page 42: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

IPv4• La versión IP que la mayoría de las

LANs utilizan

Los datos [payload] siguen al encabezado

Page 43: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

IPv6

• Nueva generación IP– La motivación principal fue lo

inadecuado del espacio de direcciones de IPv4

• Encabezado IPv6– Estrategia modular– Encabezado base + extensiones– Encabezado base es mayor que el de

v4, pero el número de campos es menor

Page 44: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

IPv6 header

Page 45: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

¿Cuán seguro es IP?

• Los datos (Payload) no viajan cifrados– No se ofrece confidencialidad

– IP sniffers están disponibles en la red

– Las direcciones IP pueden ser observadas

– La autenticación basada en direcciones IP addresses puede ser rota

• Así que IP tiene debilidades

Page 46: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

IPSec• Mecanismos de Seguridad para IP• Provee confidencialidad y autenticación a nivel IP

– También incluye algunas características de administración de llaves

• Applicaciones– VPNs (Virtual Private Networks)

• Interconexión de LANs sobre un medio inseguro [típicamente Internet]

• Ruteador a ruteador

– Acceso remoto seguro• Nodos a ruteadores

• IPSec es obligatorio para v6 y opcional para v4

Page 47: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

IPSec: Posibles escenarios

Page 48: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

AH – Servicio Anti-Replay• Detección de paquetes duplicados • Secuencias

– Asociadas con SAs – 32-bit valores– Cuando un SA es creado, se inicializa a 0

• Cuando alcance 232-1, SA debe ser terminado

– El transmisor incrementa el contador de replay y lo coloca en cada AH [campo de secuencias]

• Problema: IP no es confiable, así que el destinatario puede recibir paquetes IP en desorden– La solución es usar ventanas

Page 49: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

• Si un paquete recibido cae dentro de la ventana– Si se autentica y no está marcado, márquelo– Si ya está marcado: Ataque de replay!

• Si un paquete recibido es mayor > N– Si está autenticado, avance la ventana así que el

paquete esté en el extremo derecho de la ventana

• Si el paquete recibido es menor que <= N-W– El paquete se descarta

•Ventana fija de tamaño W (por default 64)

–Empleado por el receptor

Page 50: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

• Objetivo principal– Generar y administrar SAs para los modos AH y ESP

– Criptografía asimétrica• El remitente y destinatario tienen diferentes SAs

• Puede ser manual o automatizada– Administración manual de llave

• El administrador de red configura manualmente cada llave

– Administración automática de red• Creación de llaves de acuerdo a la demanda en sistemas

de redes grandes.

Administración de Llaves en IPSec

Page 51: Seguridad en Sistemas de Información Francisco Rodríguez Henríquez Introducción SSL/TLS

Seguridad en Sistemas de Información Francisco Rodríguez Henríquez

Administración de Llaves en IPSec