Seguridad Informática Seguridad en redes: Arquitecturas de seguridad Ramón Hermoso y Matteo Vasirani Universidad Rey Juan Carlos Curso 2012/2013
Bibliografía Eric Cole. Network Security Bible. Wiley Publishing, Inc., 2nd edition, 2009. William Stallings. Network Security Essentials: Applications and Standards. Pearson Education, Inc., 4nd edition, 2011. Harold F. Tipton, Micki Krause, and Micki Krause. Information security management handbook (6. ed.). Auerbach Publications, 2007. Michael E. Whitman and Herbert J. Mattord. Principles of Information Security. Course Technology, Cengace Learning, third edition edition, 2009.
Índice 1 Introducción 2 VPN IPSec PPTP/PPP Shell segura 3 SSL Protocolo de registro Protocolo de cambio de especificación de cifrado Protocolo de alertas Protocolo de saludo
Introducción TCP/IP Servicios y protocolos IP/Sec SSL o TLS Aplicación Aplicación HTTP FTP SMTP... HTTP FTP SMTP... HTTP FTP SMTP... Kerberos HTTP FTP SMTP... S/MIME HTTP FTP SMTP... Transporte TCP UDP TCP UDP SSL o TLS TCP UDP TCP TCP Red IP IP/IPSec IP IP IP Host a red Ethernet FDDI x.25... Ethernet FDDI x.25... Ethernet FDDI x.25... Ethernet FDDI x.25... Ethernet FDDI x.25...
Introducción VPN SSL VPN(i) VPN (Virtual Private Network ) o Redes Virtuales Privadas Usuario en movilidad Cliente Oficina principal Internet (red insegura) Sucursal Servidores
VPN(ii) VPN es una red privada y segura que conecta distintos sistemas de red, interconectados por una red insegura. Usada habitualmente para extender, de forma segura, una red interna segura a localizaciones remotas. Tres tecnologías VPN, según el VPNC (consorcio VPN) VPN de confianza: utiliza circuitos en los que confía para la transmisión de información (acuerdos o contratos de protección de circuitos) VPN segura: utiliza protocolos de seguridad, cifrando la información, para poder transmitir información por redes inseguras. VPN híbrido: Combina circuitos de confianza y la utilización de protocolos de seguridad.
VPN(iii) Implementación de mecanismos de seguridad: Encapsulación de la información entrante y saliente. La información encapsulada debe poder ser transportada por la red pública. Cifrado de los datos entrantes y salientes, manteniendo la confidencialidad de la información al transmitirla por la red pública. La información debe poder ser usada, sin problema, en los extremos de la conexión (sin cifrado adicional) Autenticación de los extremos de la comunicación (usuario, ordenador, etc) La identificación debe ser válida no sólo en la VPN, sino también en los sistemas extremo.
VPN(iv) Diseños de VPN Dependiendo del uso de la VPN, existen dos diseños posibles: VPNs de acceso remoto Usuario en movilidad ISP Internet (red insegura) Oficina principal VPN segura. Dependencia en la gestión de la información del ISP. VPNs de interconexión de redes (LAN-to-LAN o site-to-site)
VPN(iv) Diseños de VPN Dependiendo del uso de la VPN, existen dos diseños posibles: VPNs de acceso remoto VPNs de interconexión de redes (LAN-to-LAN o site-to-site) LAN A Internet VPN/IPSec LAN B Posibilidad de VPN híbrido. Utilización de IPSec y SSL para el subsistema de cifrado.
VPN(v) IPSec(i) Seguridad en la capa de red: El contenido del paquete IP es cifrado. Las cabeceras del paquete IP no son cifradas. Por qué en la capa de red? Muchos estándares de protocolos a nivel de aplicación. Añadir más complejidad al nivel de transporte (TCP) es mucho más complejo que hacerlo a un nivel inferior (IP) Proporciona: Confidencialidad Autenticación Integridad de datos Protección contra ataques reply
VPN(vi) IPSec(ii) Capa de actuación de IPSec: diagrama de niveles OSI TCP/IP Servicios y protocolos IP/Sec Aplicación HTTP FTP SMTP... HTTP FTP SMTP... Transporte TCP UDP TCP UDP Red Host a red IP Ethernet FDDI x.25... IP/IPSec Ethernet FDDI x.25...
VPN(vii) IPSec(iii) El cliente puede seleccionar el cifrador a utilizar. IPSec es orientado a conexión (IP no). Protocolos en IPSec para el manejo de clave y certificados: Internet Security Association Key Management Protocol Internet Key Exchange Protocol
VPN(viii) Modos de funcionamiento de IPSec Los modos de funcionamiento de IPSec son: Modo transporte: El paquete completo (cabeceras y contenido) no es encapsulado. Se requiere software específico para poder tratar con paquetes IPSec. Modo túnel (tunneled mode): Encapsulación del paquete (cabeceras en claro, datos cifrados). No es necesario de ningún software especial para el tratamiento. Distribución de paquetes IP por la red insegura. El origen y destino del paquete está en claro.
VPN(ix) Para mantener el estado de las comunicaciones, se añade información adicional a las cabeceras IP: Autenticación de cabecera: Proporciona integridad y autenticación de los extremos de la comunicación. Asegura la utilización de los mismos sistemas de cifrado y longitudes de claves. Encapsulación de la información: Proporciona autenticación y confidencialidad a la transmisión de información. Puede ofrecer también (RFC 2406), integridad y protección contra ataques reply.
VPN(x) Autenticación de cabecera(i) Autenticación de cabecera Próxima cabecera Longitud contenido Reservado Parámetros seguros de indexado Número de secuencia Datos de autenticación
VPN(xi) Autenticación de cabecera(ii) Próxima cabecera: Muestra el protocolo del siguiente paquete IP, antes de ser procesado por IPSec. Longitud del contenido: Longitud del contenido enviado. Parámetros seguros indexados: Información como claves y algoritmos utilizados. Número de secuencia: Mantiene el número de paquetes enviados en una asociación segura. Efectivo contra ataques reply. Datos de autenticación: mantienen la integridad de la conexión. Firmas digitales, códigos hash, etc. Mantiene únicamente el control de integridad y autenticación: VPN de confianza.
VPN(xii) Seguridad del contenido (Encapsulating security payload(i) Seguridad del contenido Asociación de seguridad Número de secuencia Contenido Relleno Longitud de relleno Próxima cabecera Datos de autenticación
VPN(xii) Seguridad del contenido (Encapsulating security payload(ii) Respecto a la autenticación de cabecera, ofrece además la confidencialidad. Protección contra ataque reply. Limitaciones de uso de cifrados según legislación de cada país. Seguridad en contenido es opcional en IPv6 (por problemas legales) Autenticación de cabecera no tiene ninguna limitación legal y está incluido en IPv6.
VPN(xii) VPN basadas en PPTP/PPP Point-to-Point Tunneling Protocol (PPTP) Desarrollado por Microsoft para proporcionar servicios VPN sin IPSec. Intento de ser más fácilmente utilizable: Sin necesidad de software IPSec Integrado en sistemas operativos de Microsoft Soporte en antiguos PDAs Cifrados sin problema de exportación fuera de EEUU. Debilidad en longitud de claves y cifradores. Es una implementación mejorada de PPP (utilizado como acceso telefónico a internet)
VPN(xiii) Shell segura(i) Secure Shell o ssh: sustituto seguro a programa de acceso remoto en UNIX (rsh, ftp, rlogin, rcp, etc.) Funcionamiento similar a telnet, pero con un nivel más alto de seguridad. Las sesiones en ordenadores pueden transmitir información valiosa (cat /etc/passwd). Permite tanto el inicio de sesión, como la transmisión de información utilizando canales seguros.
VPN(xiv) Shell segura(ii) Características: Reemplaza completamente a programas como ftp, telnet, rlogin con sus versiones scp, sftp, ssh y agentes ssh. Puede utilizar distintos algoritmos de cifrado (similar a SSL) Algoritmos específicos para la detección de spoofing. Puede hacer uso de los modos transporte y modo túnel. Proporciona algoritmos de autenticación. Permite mantener múltiples sesiones de forma simultánea. ssh -f user@server.com -L 2000:server.com:25 -N
SSL(i) SSL y TLS SSL: Secure Socket Layer Desarrollado originalmente por Netscape como un protocolo abierto. Pensado y usado para la web: autenticación y confidencialidad. Autenticación del cliente con el servidor y del servidor con el cliente. TLS: Transport Layer Security Basado en SSL, para producir un protocolo estándar para internet (RFC 5246, muy similar a SSLv3)
SSL(ii) TCP/IP Servicios y protocolos SSL Aplicación HTTP FTP SMTP... SSL HandShake Protocol SSL Change Cipher Spec Protocol SSL Alert Protocol HTTP Transporte TCP UDP SSL Record Protocol TCP Red IP IP
SSL(iii) Arquitectura Protocolo divido en 2 niveles: Protocolo de registro SSL (SSL Record Protocol) Proporciona los servicios básicos de seguridad para HTTP Clientes y servidores Web pueden interactuar sobre este protocolo Tres protocolos de alto nivel: Protocolo de saludo SSL (SSL Handshake Protocol) Protocolo de cambio de especificación de cifrado (SSL Change Cipher Spec Protocol) Protocolo de alertas SSL (SSL Alert Protocol)
SSL(iv) Conceptos Dos conceptos clave para SSL: Conexión: es un transporte que ofrece un tipo de servicio adecuado. Es una relación 1 a 1 (peer-to-peer). Las conexiones son transitorias. Toda conexión está asociada con una sesión. Sesión: es una asociación entre un cliente y un servidor. Creada por el protocolo de saludo (Handshake Protocol) Una sesión define un entorno criptográfico que puede ser compartido durante distintas conexiones. Son utilizadas para evitar el negociar en cada conexión todos los parámetros de seguridad (proceso costoso).
SSL(v) Parámetros de una sesión Parámetros de una sesión: Identificador de sesión Certificado del par (X509.v3) Método de compresión Especificaciones del cifrado: para el cifrador (AES, etc) y función Hash (MD5, SHA-1,etc) para el cálculo del código de autenticación de mensaje (MAC). Secreto compartido. Es reanudable.
SSL(vi) Parámetros de una conexión Parámetros de una conexión: Número aleatorio para el cliente y el servidor Código de autenticación de mensaje del servidor Código de autenticación de mensaje del cliente Clave privada del servidor Clave privada del cliente Vectores de inicialización (IV) Número de secuencia
SSL(vii) Protocolo de registro - SSL Record Protocolo de registro - SSL Record Proporciona 2 servicios en las conexiones SSL: Confidencialidad: El protocolo de saludo define un secreto compartido que se utiliza para cifrar la información. Integridad: El secreto compartido definido en el protocolo de saludo se utiliza para generar un código de autenticación de mensaje (MAC)
SSL(viii) Protocolo de registro - SSL Record - funcionamiento Datos de aplicación Fragmentación Compresión Añadir MAC (código autenticación de mensaje) Cifrar Añadir cabecera SSL Record
SSL(ix) Protocolo de registro - SSL Record - Formato de mensaje Tipo de contenido Major version Minor version Longitud de contenido Contenido Cifrado MAC (código autenticación de mensaje)
SSL(x) Protocolo de cambio de especificación de cifrado Protocolo de cambio de especificación de cifrado (SSL Change Cipher Spec Protocol) Un único mensaje con 1 byte con valor 1 Cambia el estado del protocolo, actualizando el entorno criptográfico actual al negociado en el protocolo de saludo.
SSL(xi) Protocolo de alertas Protocolo de alertas (SSL Alert Protocol) Envío de posibles alertas en el uso de los protocolos SSL. Dos niveles de alertas: warning y fatal: fatal cierra la conexión de forma inmediata. Colección de tipos de error (problemas en certificados, el protocolos, en cierre de sesión inesperado, etc).
SSL(xii) Protocolo de saludo - SSL Handshake(i) Protocolo de saludo SSL Handshake El más complejo de todos los protocolos SSL Permite autenticar el cliente con el servidor y el servidor con el cliente. Negocian los algoritmos de cifrado y hash a utilizar. Se calcula la clave secreta compartida de sesión. Divido en 4 fases: Fase 1: establecer entorno de seguridad. Fase 2: autenticación de servidor e intercambio de claves. Fase 3: autenticación del cliente e intercambio de claves Fase 4: finalización
SSL(xiii) Protocolo de saludo - SSL Handshake(ii) client_hello Fase 1 Cliente server_hello certificate serve_key_exchange certificate_request server_hello_done Servidor Fase 2
SSL(xiv) Protocolo de saludo - SSL Handshake(iii) Fase 1: Establecer entorno de seguridad El cliente envía sus capacidades para el entorno criptográfico de la sesión: Método de intercambio de clave (RSA, Diffie-Hellman y sus variaciones, Fortezza) Especificación del cifrador (RC4, RC2, DES, 3DES, DES40, IDEA o Fortezza) Función hash para el cálculo de código de autenticación de mensaje MAC (MD5 o SHA-1) Tipo de cifrador (por bloques o por flujo) Tamaño del hash Vector de inicialización IV para el Cipher Block Chaining (CBC) El servidor responde con el entorno criptográfico seleccionado a partir de las capacidades enviadas por el cliente. Si no existe, se aborta la conexión.
SSL(xv) Protocolo de saludo - SSL Handshake(iv) Fase 2: autenticación del servidor e intercambio de claves El servidor envía sus credenciales al cliente (cuando sea necesario, no lo es para Diffie-Hellman anónimo) El servidor envía un mensaje de intercambio de clave (excepto cuando no sea necesario) El servidor puede solicitar el certificado del cliente (si fuese necesario, dependiendo de los métodos de intercambio de clave seleccionados) Se envía un mensaje de finalización.
SSL(xvi) Protocolo de saludo - SSL Handshake(v) certificate client_key_exchange Fase 3 certificate_verify Cliente change_cipher_spec finished Servidor Fase 4 change_cipher_spec finished
SSL(xvii) Protocolo de saludo - SSL Handshake(vi) Fase 3: autenticación del cliente e intercambio de claves El cliente envía sus credenciales al servidor (cuando sea necesario) El cliente envía un mensaje de intercambio de clave (excepto cuando no sea necesario) Se envía un mensaje que ofrece una verificación explícita del certificado enviado al servidor (cuando sea necesario) Fase 4: finalización Se inicia el protocolo de cambio de especificación de cifrado, para actualizar en los 2 extremos el nuevo entorno criptográfico de sesión. Se envía un mensaje de finalización, utilizando los algoritmos y secretos compartidos.
SSL(xvi) Consideraciones finales Análisis de los certificados: Periodo de validez Confianza en el CA (entidad certificadora) que emitió el certificado (directa o indirectamente) Validez de la clave pública del CA. Correspondencia del nombre del dominio con el declarado en el certificado.
Seguridad Informática Seguridad en redes: Arquitecturas de seguridad Ramón Hermoso y Matteo Vasirani Universidad Rey Juan Carlos Curso 2012/2013