Title: Introducci
1Introducción SSL/TLS
2Seguridad WEB
3Seguridad 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.
4Problema 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
5Dónde ofrecer Seguridad?
- Discusión bizantina sin respuesta final
futuro
Se menciona
Esta presentación
6Contexto 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
7SSL (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.h
tml - TLS puede ser visto como SSL v3.1 y/o compatible
con SSL v3
8HTTP 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
9Cambios 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
10Arquitectura TLS
11TLS 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
12Arquitectura SSL
- Utiliza TCP (transferencia de datos confiable)
13SSL 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
14SSL Protocolo Record
15Protocolo 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
16Protocolo 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 (conexió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
17Protocolo de Intercambio de datos TLS
18Protocolo 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
19Protocolo handshake de TLS tres objetivos
- Negociar algoritmos criptográficos
- Cifradores simétricos
- Método de intercambio de llave
- Función de digestión de mensaje
- Autentica opcionalmente al cliente y al
servidor - Establece y comparte un secreto maestro
20Pará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
21Pará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
22Definición de la palabra nonce
- Nonce The present or particular occasion.
- Nonce word A word occurring, invented, or used
just for a particular occasion.
23Tipos de mensajes en el protocolo handshake
24 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
25(No Transcript)
26Fase 1 del Protocolo Handshake
27Mensajes 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
28Establecimiento 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
29Establecimiento de algoritmos criptográficos
- 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
30Mé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
31Métodos de intercambio de Llave
- 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
32Protocolo Diffie-Hellman
33References
- 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 lthttp//www.counterpane.com/ssl.
htmlgt - Internet Drafts and RFCs lthttp//www.ietf.org/gt.
34WTLS
35WTLS
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.
Protocolo de registro administra la
fragmentación de los mensajes y aquí se realizan
los mecanismos necesarios para dar privacidad e
integridad al usuario.
WTLS es el protocolo de seguridad de WAP. Está
diseñado para hacer seguras las comunicaciones y
las transacciones sobre redes inalámbricas.
El protocolo de aplicación es la interfaz para
las capas superiores.
WTLS proporciona Privacidad, Integridad y
Autentificación.
Protocolo de alerta administra los avisos.
36Protocolo de Negociación Completo
Fase 1
Fase 2
Fase 3
Fase 4
37Fase de Negociación
Fase de Intercambio de Datos
38Seguridad IP
39Protocolo 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
40 Protocol Inter-redes (IP)
41Dó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
42IPv4
- La versión IP que la mayoría de las LANs utilizan
Los datos payload siguen al encabezado
43IPv6
- 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
44IPv6 header
45Cuá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
46IPSec
- 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
47IPSec Posibles escenarios
48AH 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
49- Ventana fija de tamaño W (por default 64)
- Empleado por el receptor
- 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 gt 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 lt N-W
- El paquete se descarta
50Administración de Llaves en IPSec
- 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.
51Administración de Llaves en IPSec