Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE – 0502 Proyecto Eléctrico Seguridad en Redes Inalámbricas de Área Local WLAN Por: Juan Pablo Vásquez Vargas Ciudad Universitaria Rodrigo Facio Julio del 2005 Seguridad en Redes Inalámbricas de Área Local WLAN Por: Juan Pablo Vásquez Vargas Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: _________________________________ Ing. Víctor Hugo Chacón Prendas Profesor Guía _________________________________ Ing. Francisco Rojas Fonseca Profesor lector _________________________________ Ing. Jorge A. Romero Chacón. Profesor lector ii DEDICATORIA Dedico este trabajo a mis padres por todo el apoyo y cariño que me han dado en toda mi vida. A mi hija Ana María por todas las alegrías que me ha dado desde que nació. A Maricela por todo lo bonito y lo difícil que hemos pasado juntos, cada día soy más feliz. A mi hermana y a toda mi familia que me apoya y que aprecio mucho. A mis amigos que casi no nos hemos podido ver en estos meses por tanto trabajo, pero espero que nos reunamos pronto. iii RECONOCIMIENTOS El principal reconocimiento y agradecimiento es a la Escuela de Ingeniería Eléctrica por darme el conocimiento y forjarme como un buen profesional. Al profesor Víctor Hugo por la guía y ayuda brindada durante la elaboración de este proyecto. A Juan Ignacio del grupo de usuarios de Linux que me ayudo con la parte de OpenVPN A todos mis compañeros de carrera por el apoyo, la ayuda y la amistad que me han dado. A mis amigos de RACSA que me brindaron su amistad y me ayudaron a adentrarme en el tema de las telecomunicaciones. iv ÍNDICE GENERAL ÍNDICE DE FIGURAS ................................................................................ vii ÍNDICE DE TABLAS................................................................................... ix NOMENCLATURA....................................................................................... x RESUMEN.................................................................................................. xvii CAPÍTULO 1: Introducción ......................................................................... 1 1.1 Objetivos.................................................................................................................4 1.1.1 Objetivo general..............................................................................................4 1.1.2 Objetivos específicos ......................................................................................4 1.2 Metodología ............................................................................................................5 CAPÍTULO 2: Conceptos básicos de WLAN y el proceso de conexión..... 6 2.1 2.2 2.3 Topologías de red básicas WLAN ..........................................................................6 Aspectos de la arquitectura 802.11 .........................................................................8 Proceso de comunicación en una red inalámbrica 802.11 ...................................12 2.3.1 Proceso de Descubrimiento [12]...................................................................12 2.3.2 Autentificación..............................................................................................15 2.3.3 Administración de llaves (“Key Management”)...........................................20 2.3.4 Transferencia de datos: .................................................................................22 CAPÍTULO 3: Seguridad en los Estándares de redes WLAN ................. 24 1.1 El Estándar 802.11................................................................................................24 Seguridad en el estándar IEEE 802.11..........................................................26 Seguridad en el estándar IEEE 802.11i ........................................................27 Seguridad en el estándar IEEE 802.1X.........................................................30 1.2 El Estándar Wi-Fi .................................................................................................33 3.2.1 Seguridad en el estándar WPA .....................................................................34 3.2.2 Seguridad en el estándar WPA2 ...................................................................38 3.1.1 3.1.2 3.1.3 CAPÍTULO 4: Mecanismos de Seguridad en el Proceso de comunicación WLAN ........................................................................................................... 40 4.1 4.1.1 4.1.2 4.1.3 4.2 Mecanismos de Seguridad en el proceso de autentificación.................................40 Protocolo de Autentificación Extensible (EAP) ...........................................40 El Estandar IEEE 802.1X .............................................................................44 Autentificación mediante RADIUS ..............................................................48 Mecanismos de Seguridad en el proceso de Administración de Llaves ...............52 v 4.3 Mecanismos de seguridad para proteger la transferencia de datos en las redes inalámbricas ..........................................................................................................................55 4.3.1 Privacidad equivalente a una red cableada (WEP) .......................................55 4.3.2 Protocolo de Clave Temporal de Integridad (TKIP) ....................................59 4.3.3 Protocolo CTR con CBS-MAC (CCMP)......................................................70 CAPÍTULO 5: Mecanismos de Seguridad alternativos que están fuera de los Estándares en las redes WLAN ............................................................. 81 5.1 5.2 Filtrado de direcciones MAC................................................................................81 Las Redes Privadas Virtuales (VPN)....................................................................82 CAPÍTULO 6: Ataques que podrían sufrir las redes inalámbricas......... 84 6.1 6.2 6.3 6.4 6.5 Romper ACL’s basados en MAC .........................................................................84 Ataque de Denegación de Servicio (DoS) ............................................................85 Descubrir ESSID ocultos ......................................................................................86 Ataque Man in the middle ....................................................................................86 Envenenamiento de la cache de las tablas ARP ...................................................89 CAPÍTULO 7: Definiendo la mejor alternativa para las redes inalámbricas de la Escuela de Ingeniería Eléctrica y el Decanato de Ingeniería. ..................................................................................................... 92 7.1 Diseño de la red basado en OpenVPN..................................................................96 7.1.1 Comprendiendo el funcionamiento de OpenVPN [21].................................96 7.1.2 Funcionamiento básico de OpenVPN...........................................................98 7.1.3 Comparacion entre OpenVPN y las VPNs basadas en IPSec.....................100 7.1.4 Implementacion de OpenSSL en OpenVPN...............................................103 7.1.5 EL modelo de tres capas de OpenVPN.......................................................109 7.1.6 Comparacion entre Enrutamiento y Puenteo ..............................................109 7.2 Diseño de la red OpenVPN.................................................................................111 CAPÍTULO 8: Conclusiones y recomendaciones .................................... 114 8.1 8.2 Conclusiones.......................................................................................................114 Recomendaciones ...............................................................................................115 BIBLIOGRAFÍA........................................................................................ 117 APÉNDICES............................................................................................... 120 A1. Creación de llaves RSA ...............................................................................................120 A.1.1 Creación del Certificado de Autoridad CA.......................................................122 A.1.2 Creación del Certificado y la Llave del servidor .............................................123 A.2 Creación de los archivos de configuración .................................................................126 A.2.1 Archivo del Servidor:......................................................................................126 A.2.2 Archivo del Cliente:........................................................................................130 A.3 Probando la conectividad inicial de la VPN ...............................................................132 vi ÍNDICE DE FIGURAS Figura 2.1 Topología Ad-Hoc.............................................................................................6 Figura 2.2 Topología Infraestructura ..................................................................................7 Figura 2.3 “Roaming”.........................................................................................................8 Figura 2.4 Escaneo Pasivo ................................................................................................11 Figura 2.5 Escaneo Activo................................................................................................12 Figura 2.6 Formato de la RSN IE .....................................................................................13 Figura 2.7 Seleccionadores de suites ................................................................................13 Figura 2.8 Capacidades de seguridad ...............................................................................14 Figura 2.9 Proceso de Descubrimiento .............................................................................15 Figura 2.10 Proceso de Autentificación de llave compartida ...........................................16 Figura 2.11 Formato de la trama de Autentificación ........................................................17 Figura 2.12 Protocolos del proceso de Autentificación ....................................................18 Figura 2.13 Proceso de autentificación.............................................................................19 Figura 2.14 Administración y derivación de las llaves.....................................................21 Figura 3.1 Esquema de Seguridad 802.11i .......................................................................29 Figura 3.2 Proceso de autentificación EAPoL RADIUS ..................................................32 Figura 3.3 Logotipo y certificación Wi-Fi.......................................................................34 Figura 4.1 Proceso de comunicación RADIUS ................................................................49 Figura 4.2 Proceso de comunicación cliente/servidor RADIUS ......................................51 Figura 4.3 Proceso de la Administración de Llaves .........................................................52 Figura 4.4 Jerarquía de Llaves ..........................................................................................53 Figura 4.5 “4-Way Handshake”........................................................................................54 Figura 4.6 Establecimiento de una llave de grupo GTK...................................................55 Figura 4.7 Funcionamiento del algoritmo WEP en modalidad de cifrado .......................57 Figura 4.8 Funcionamiento del algoritmo WEP en modalidad de des-cifrado.................58 Figura 4.9 Diagrama de encapsulación de bloque en TKIP .............................................62 vii Figura 4.10 Diagrama de des-encapsulación de bloque en TKIP.....................................64 Figura 4.7 Construcción de la MPDU extendida ..............................................................65 Figura 4.8 Relación entre la MIC TKIP y el proceso IEEE 802.11..................................67 Figura 4.9 Formato de la elaboración TKIP MIC.............................................................67 Figura 4.10 MPDU expandida en CCMP .........................................................................71 Figura 4.11 Diagrama de encapsulación de bloques CCMP.............................................72 Figura 4.13 Construcción de Nonce .................................................................................75 Figura 4.14 Diagrama de bloques de la des-encapsulación CCMP ..................................76 Figura 5.1 Estructura de una VPN para acceso inalámbrico seguro.................................83 Figura 6.1 WLAN antes del ataque ..................................................................................87 Figura 6.2 WLAN después del ataque ..............................................................................88 Figura 6.3 La red antes del ataque ....................................................................................89 Figura 6.4 La red después del ataque................................................................................90 Figura 7.1 Túnel OpenVPN ..............................................................................................99 Figura 7.2 Encapsulamiento en OpenVPN .....................................................................100 Figura 7.3 Funcionamiento OpenVPN ...........................................................................104 Figura 7.4 Esquema PKI.................................................................................................108 Figura 7.5 Configuración en modo Ruteo ......................................................................110 Figura 7.6 Diseño de la red con OpenVPN ....................................................................111 viii ÍNDICE DE TABLAS Tabla 2.1 Posibles valores de los campos de la trama según el número de secuencia .....14 Tabla 2.2 Posibles valores de los campos de la trama según el número de secuencia .....23 Tabla 4.1 Características de los campos de AAD.............................................................74 Tabla 7.1 Tabla comparativa de los mecanismos de seguridad en las redes inalámbricas ..........................................................................................................................................93 ix NOMENCLATURA 802.11i Estándar IEEE que define la seguridad en las redes 802.11 802.1X Protocolo de la IEEE para asegurar las redes cableadas mediante autentificación y TLS AAA Servidor de Autentificación, Autorización y Auditoria (Authentication Authorization Accounting) AAD Datos de Autentificación Adicionales (Aditional Authentication Data) ACLs Listas de Control de Acceso (Access Control Lists) AES Estándar de Cifrado Avanzado (Advanced Encryption Standard) AP Punto de Acceso inalámbrico (Access Point) ARP Protocolo de Resolución de Direcciones (Address Resolution Protocol) AS Servidor de Acceso (Access Server) back-end Programa que efectúa las acciones de fondo Beacon Anuncios del AP para especificar su existencia y otra informacion Broadcast Transmisión a todos los elementos de la red BSS Set de Servicios Básicos (Basic Service Set) CA Autoridad de Certificación (Certificate Authority) CBC Encadenamiento de bloques cifrados (Cipher-block chaining) x CCM Contador con modo de encadenamiento de bloques cifrados (Counter Cipher-block chaining mode) CCMP Protocolo CTR con CBS-MAC CHAP Protocolo de Autentificación por desafío (Challenge Authentication Protocol) CRC Comprobación de redundancia cíclica (Cyclic Redundancy Check) algoritmo de integridad CSMA/CD Sensor de señal de conexión para múltiple acceso con detección de colisiones (Carrier Sense Multiple Access / Colision Detection) CTR Registro contador (Count Register) DA Dirección de Destino (Destination Address) dB Decibeles DES Estándar de cifrado de datos (Data Encryption Standard) DHCP Protocolo de configuración dinámica de Host (Dynamic Host Configuration Protocol) DoS Ataques de Denegación de Servicio (Denial of Services) DSSS Espectro de extensión de secuencia directa (Direct Sequence Spread Spectrum) EAP Protocolo de Autentificación Extensible (Extensible Authentication Protocol) eavesdroppers Espías de información, atacantes pasivos EMI Interferencia Electromagnética (Electromagnetic Interference) xi ESS Set de Servicios Extendidos (Extended Service Set) ETSI Instituto Europeo de Estándares en Telecomunicaciones (European Telecommunications Standards Institute) FCC Comité Federal de Comunicaciones (Federal Communications Commission) FCS Secuencia de comprobación de trama (Frame Check Sequence) FHSS Modulación por saltos de frecuencia (Frequency Hopping Spread Spectrum) FIPS Norma de Procesamiento de la Información Federal GTK Llave temporal de grupo (Grup Key entre las STAs y el AP) HMAC Suma de chequeo para corroborar la integridad de los datos (KeyedHashing for Message Authentication) Host Servidor que provee servicios a otros ordenadores HUB Bifurcador de redes cableadas IBSS Set de Servicios Básicos Independiente (Independent Basic Service Set) ICV Valor de comprobación de integridad (Integrity Check Value) ID Identidad IEEE Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics) IETF Fuerza de Trabajo de la Ingeniería de Internet (Internet Engieneering Task Force) xii IPSec Seguridad en el protocolo IP ISM Industrial, Científica y Médica (Industrial Scientific and Medical) IV Vector de Inicialización (Initialization Vector) KCK Llave de cifrado (Key Encription Key) LAN Red de Área Local (Local Area Network) MAC Control de Acceso al Medio (Medium Access Control) MAN Redes de área metropolitana (Metropolitan Area Network) Management frames Tramas de gestión man-in-the-middle Ataque de interceptar la conexión, pasandola a través de una tercera persona Mbps Mega-bits por segundo MD5 Suma de chequeo para corroborar la integridad de los datos (Message Digest 5) MIB Administración de la Base de Informacion (Management Information Base) MIC Código de integridad del mensaje (Message Integrity Code) MK Llave Maestra (Master Key) MPDUs Unidades de datos del protocolo MAC (MAC protocol data units) MSDUs Unidades de datos del servicio MAC (MAC service data units) multicast Envío de información a varios puntos NAT Traducción de Direcciones de Red (Network Address Translation) NIC Tarjeta para Interfaz de Red (Network Interface Card) xiii NIST Instituto Nacional de Normas y Tecnologías (National Institute of Standards and Technology) OFDM Multiplexión por División de Frecuencia Ortogonal (Orthogonal Frequency Division Multiplexing) OSI Interconexión de Sistemas de Abiertos (Open Systems Interconnection) PAE Entidad de acceso al puerto (Port Access Entity IEEE 802.1X) PAP Protocolo de Autentificación de Claves (Password Authentication Protocol) payload Datos útiles de las tramas o paquetes PCM Modulación de Código de Pulso (Pulse Code Modulation) peer-to-peer Conexión punto a punto PMK Master Key compartida entre la STA y el AP (Pairwise Master Key) PN Número de paquete (Package number) PPP Protocolo Punto a Punto (Point-to-Point Protocol) PPTP Protocolo de entunelamiento punto a punto (Point to Point Tuneling Protocol) PRNG Generador de números pseudoaleatorios de WEP (Pseudo Random Number Generator) PSK Demodulación de Fase Cambiante PSK Llave precompartida (Pre-Shared Key) QoS Calidad de Servicio xiv RADIUS Servicio de Autentificación de usuarios telefónicos remotos (Remote Authentication Dial-In User Service (IETF RFC 2865) RC4 Código de cifrado utilizado por WEP Roaming Movimiento entre APs sin perder conectividad RSN Seguridad de Red Robusta (Robust Secure Network) RSNA Asociación de seguridad de red robusta (Robust Security Network Association ) SA Dirección de Fuente (Source Address) sniffer Capturador de trafico especifico en la red SOHO Oficina Pequeña Oficina en Casa (Small Office Home Office) spoofing Engaño SSID Identificador de Grupo de Servicios Extendidos (Service Set Identifier) STAs Estaciones de trabajo inalámbricas (Stations) TIM Mapa de indicación de tráfico TKIP Protocolo de Integridad de Llave Temporal (Temporal Key Integrity Protocol) TKs Llaves temporales (Temporal Keys) TLS Seguridad en la Capa de Transporte (Transport Layer Security) TSC Contador de Secuencia TKIP UDP Protocolo de data gramas de usuario (User Datagram Protocol) unicast Envío de información a solo un punto xv VLANs LANs Virtuales VPN Red Virtual Privada (Virtual Private Network) WECA Alianza de Compatibilidad de Redes Inalámbricas (Wireless Ethernet Compatibility Alliance) WEP Privacidad Equivalente con la Alambrada (Wired Equivalent privacy) Wi-Fi Fidelidad Inalámbrica (Wireless Fidelity) Wi-Fi Alliance Anteriormente WECA, certifica la interoperabilidad de equipos inalámbricos WLAN Red Inalámbrica de Área Local (Wireless Local Area Network) WPA Acceso Protegido Wifi (Wifi Protected Access) WPA2 Acceso Protegido Wifi 2 (Wifi Protected Access 2) write-only Sólo escritura xvi RESUMEN El presente documento analiza los diferentes mecanismos de seguridad para redes inalámbricas. Éste se llevó a cabo con el fin de determinar el esquema de seguridad más apropiado para las redes del Decanato de Ingeniría y de la Escuela de Ingeniería Eléctrica. En el presente se expone la importancia de asegurar las redes de comunicaciones para proteger la información que se soporta en un medio digital. También, se muestra la necesidad de asegurar el medio inalámbrico, puesto que transmite la información sin restricción alguna. Al inicio del trabajo se mencionan algunos conceptos básicos de redes WLAN y del proceso de comunicación. Además, se definen las topologías de red que se utilizan más frecuentemente en las redes inalámbricas, una de éstas es el modo infraestructura, el cual se busca implementar en dichas redes. Posteriormente, se mencionan algunos aspectos de la arquitectura definida en el estándar IEEE 802.11, uno de los cuales es el nombre de la red inalámbrica SSID. Más adelante se describe el proceso de comunicación. En éste se detalla el proceso de descubrimiento, en el cual el cliente inalámbrico y el punto de acceso se envían tramas de administración para así lograr la conexión. También, se detalla el proceso de autentificación donde se busca que solamente los usuarios autorizados ingresen en la red. Finalmente, se explica la administración de las llaves, por medio de las cuales se realiza el cifrado y la transferencia de los datos. xvii Los mecanismos de seguridad establecidos en los estándares de la IEEE y la WifiAlliance son mencionados, y sus elementos de seguridad se detallan en el capítulo 4. En dicho capítulo se definen los mecanismos del proceso de autentificación, la administración de llaves y los métodos de cifrado para proteger los datos que van en la red. Algunos mecanismos de seguridad que se encuentran fuera de los estándares, también, son mecionados. Valga decirse, que éstos mecanismos son ampliamente utilizados en las redes cableadas. Ellos son el filtrado de las direcciones MAC y las VPNs. Éstas últimas son ampliamente utilizadas en las redes inalámbricas debido a que fueron diseñadas para establecer comunicaciones en medios inseguros como Internet. Además, se muestran los mecanismos que son vulnerables a los distintos ataques. Para finalmente discutir las características deseadas en un mecanismo de seguridad con la finalidad de definir cuáles son los más apropiados para implementarse en la red inalámbrica del Decanato y la Escuela de Ingeniería Eléctrica. La conclusión del trabajo determina que la mejor opción es realizar una VPN basada en OpenVPN, en la cual se pretende implementar una Infraestructura de Llaves Publica (PKI). Asimismo, se recomienda desarrollar un proceso para ir depurando la seguridad de una red, debido a que ésta no se logra solamente mediante un mecanismo específico. xviii CAPÍTULO 1: Introducción En la actualidad la mayor parte de la información de las empresas se encuentra almacenada en los equipos informáticos en forma electrónica. Cualquier problema en los sistemas de información repercute instantáneamente en la totalidad de la empresa y afecta su funcionamiento normal. Por este motivo, las organizaciones son cada vez más dependientes de sus redes informáticas y un problema que las afecte, por mínimo que sea, puede llegar a comprometer la continuidad de las operaciones. La creciente expansión de las redes de comunicaciones ha hecho necesaria la adopción y el desarrollo de herramientas de seguridad que protejan los datos transmitidos y de posibles ataques a los elementos de la red. Además, el nivel de seguridad implementado en las redes antiguas no es suficiente para combatir las amenazas que cada día se agudizan más. Por todas estas razones, las empresas deben reforzar sus sistemas de seguridad de redes. América Latina está tan expuesta como cualquier otra región del mundo a los ataques a las redes de cómputo. El hecho de que menos del 10% de los recursos invertidos en Tecnologías de Información sean asignados actualmente a la seguridad, de acuerdo con un estudio realizado en la región entre 75 Directores de Tecnologías de Información (TI) por la firma de investigación Kaagan Research Associates (Julio 2003), hace que las empresas latinoamericanas sean muy vulnerables a estos ataques. Hay que tener en cuenta, adicionalmente, que Latinoamérica es la región del mundo que menos invierte en TI. La inversión en tecnologías de la información en América Latina 1 2 representa tan solo un 1,7 % del producto interno bruto, mientras que en Estados Unidos se invierte un 5,2 % del PIB, en Europa un 3,2 % y en Asia entre un 2,4 y un 2,5%. Sin embargo, el 79% de los ejecutivos latinoamericanos de TI, encuestados por Kaagan Research, considera que la seguridad de redes es “prioridad máxima” o “muy importante” para sus empresas, aunque no se ve reflejado en la inversión real que hacen en este rubro. En la actualidad las redes inalámbricas han tomado fuerza en el mercado de las comunicaciones. Los principales motivos de esta implementación se deben a la facilidad de movilidad que tienen los empleados dentro de la empresa sin perder conectividad a la red y cobertura en lugares donde el cableado no puede llegar. La facilidad de instalación de una WLAN libera a las compañías del gasto y complejidad que conlleva mantener infraestructuras cableadas en edificios en los que la configuración de las oficinas cambia con frecuencia. El acceso sin necesidad de cables, la razón que hace tan populares a las redes inalámbricas, es a la vez el problema más grande de este tipo de redes en cuanto a seguridad se refiere. Lo grave de esta situación es que muchos administradores de redes parecen no haberse dado cuenta de las implicaciones negativas de poseer puntos de acceso inalámbrico en la red de una empresa. Es muy común encontrar redes en las que el acceso a Internet se protege adecuadamente con un firewall bien configurado, pero al interior de la red existen puntos de acceso inalámbrico totalmente desprotegidos e irradiando señal hacia el exterior del edificio. Cualquier persona que desde el exterior capte la señal del punto de acceso, tendrá cabida en la red de la compañía, con la posibilidad de navegar gratis en la Internet, emplear la red de la compañía como punto de ataque hacia otras redes y 3 desconectarse para no ser detectado, robar software y/o información, introducir virus o software maligno, entre muchas otras acciones negativas para la empresa. Un punto de acceso inalámbrico mal configurado se convierte en una puerta trasera que vulnera por completo la seguridad informática de la compañía. La mala configuración de un acceso inalámbrico es muy común. Un estudio publicado en 2003 por RSA Security Inc. encontró que de 328 puntos de acceso inalámbricos que se detectaron en el centro de Londres, casi las dos terceras partes no tenían habilitado el cifrado mediante WEP. Además, cien de estos puntos de acceso estaban divulgando información que permitía identificar la empresa a la que pertenecían, y 208 tenían la configuración con la que vienen de fábrica. Para poder considerar una red inalámbrica como segura, debería cumplir con los siguientes requisitos: • Las ondas de radio deben confinarse tanto como sea posible. Esto es difícil de lograr totalmente, pero se puede hacer un buen trabajo empleando antenas direccionales y configurando adecuadamente la potencia de transmisión de los puntos de acceso. • Debe existir algún mecanismo de autenticación en doble vía. Uno que permita al cliente verificar que se está conectando a la red correcta. Y otro que deje a la red constatar que el cliente está autorizado para acceder a ella. • Los datos deben viajar cifrados por el aire, para evitar que equipos ajenos a la red puedan capturar datos mediante escucha pasiva. 4 Como se ha visto, para poder diseñar la seguridad de las redes inalámbricas es necesario tener un conocimiento a fondo del funcionamiento de las redes. Es por esto que este proyecto de investigación es de gran importancia para el desarrollo de un ingeniero que opta por la especialización en el área de telecomunicaciones. 1.1 Objetivos 1.1.1 Objetivo general Investigar acerca de la seguridad en redes inalámbricas de área local, esto con el fin de proponer un esquema de seguridad para la red inalámbrica existente en el edificio de la Escuela de Ingeniería Eléctrica y el Decanato de Ingeniería. 1.1.2 Objetivos específicos • Conocer el funcionamiento básico de las redes inalámbricas 802.11 • Investigar los estándares de seguridad en las redes inalámbricas WLAN • Investigar como funcionan los diferentes mecanismos de seguridad según los estándares de seguridad. • Investigar los mecanismos de seguridad utilizados pero que se encuentran fuera de los estándares. • Conocer los distintos tipos de ataques que se pueden presentar en las redes inalámbricas WLAN 5 • Analizar la seguridad existente en la red inalámbrica de la Escuela de Ingeniería Eléctrica y la del Decanato de Ingeniería, para proponer mejoras ha dicho sistema de seguridad. 1.2 Metodología Debido que las redes inalámbricas son un tema relativamente reciente, la investigación será guiada principalmente por material bibliográfico consultado en Internet. El material consultado, además, será corroborado por la información de páginas oficiales tales como la IEEE y la Wi-Fi Alliance. La investigación no podrá contar con mucho material de libros y revistas debido a la actualidad del tema, esto porque ya se ha realizado una búsqueda previa a la investigación en las bibliotecas de la Universidad de Costa Rica y el material que se encontró no posee la actualidad necesaria para satisfacer los requerimientos de este tema. La metodología de esta investigación también conlleva una parte práctica, dado que se quiere diseñar un sistema de seguridad para las redes inalámbricas de Ingeniería Eléctrica y el Decanato de Ingeniería. En esta parte se probarán las tecnologías de seguridad más recomendadas para luego hacer los diseños y las recomendaciones. CAPÍTULO 2: Conceptos básicos de WLAN y el proceso de conexión. En este capítulo se pretende presentar los conceptos básicos de las redes WLAN 802.11. Se comenzará por las topologías básicas WLAN, siguiendo por algunos aspectos de la arquitectura y finalizando con el proceso de comunicación de las redes 802.11. El objetivo de este capítulo es dar un contexto con el cual se puedan entender con mayor facilidad los capítulos siguientes. [3][7][9] 2.1 Topologías de red básicas WLAN 2.1.1 Topología Ad-Hoc Esta topología se caracteriza por no existir un Punto de Acceso (AP), las estaciones se comunican directamente entre sí (peer-to-peer), de esta manera el área de cobertura está limitada por el alcance de cada estación individual. También conocidas como IBSS (Set de Servicios Básicos Independiente) Figura 2.1 Topología Ad-Hoc 6 7 2.1.2 Topología Infraestructura Como mínimo se dispone de un Punto de Acceso AP, las estaciones inalámbricas STAs no se pueden comunicar directamente, todos los datos deben pasar a través del AP. Todas las estaciones deben ser capaces de “ver” al AP. Cuando se habla de BSS (Set de Servicios Básicos), se refiere a una WLAN con solamente un punto de acceso AP y uno o más clientes y además todas las transmisiones pasan a través del AP. Cuando se habla de ESS (Set de Servicios Extendidos) se refiere a dos o más AP que pueden tener diferentes SSID. Figura 2.2 Topología Infraestructura La mayoría de las redes inalámbricas que podemos encontrar en las empresas utilizan modo infraestructura con uno o más Puntos de Acceso. El AP actúa como un HUB en una LAN, redistribuyendo los datos hacia todas las estaciones. 8 2.1.2.1 Movilidad y Conectividad (“Roaming”) “Roaming” es una configuración de la red inalámbrica en la cual las estaciones de trabajo se pueden mover de un punto de acceso AP a otro sin perder conectividad. Esto se logra mediante el empleo de varios AP y mediante el traslapamiento de éstos en los límites de sus señales para lograr así una cobertura total de la zona. Los AP se comunican para poder coordinar el proceso de manera similar a los teléfonos celulares. Figura 2.3 “Roaming” 2.2 Aspectos de la arquitectura 802.11 Cuando se instala, se configura y se pone en marcha un cliente de red inalámbrica de área local, lo primero que el dispositivo hace es buscar en el medio las redes inalámbricas disponibles. A esto se le llama comúnmente “escaneo”. 9 En el escaneo, el cliente inalámbrico busca rastros dejados en el medio por él o los “hosts”. Estos rastros básicamente se componen de conjuntos de identificadores de servicio (SSID por su siglas en inglés) y de señaladores (en inglés “beacons”). [18] 2.2.1 Nombre de la red inalámbrica (SSID) Es el nombre de la red inalámbrica, también conocido como ESSID, está compuesto por valores alfanuméricos sensibles a mayúsculas desde 2 hasta 32 caracteres. Se utiliza para segmentar las redes. El valor del SSID se envía en señaladores, solicitudes de muestra, respuestas de muestra y otro tipo de tramas. Un cliente inalámbrico debe configurarse con el SSID correcto antes de unirse a la red del correspondiente SSID, que está también configurado en cada punto de acceso. Es muy importante colocar este valor en forma exacta. Cuando el cliente encuentra el SSID de la red, él mismo busca la dirección MAC de origen del “beacon” y envía una solicitud de autenticación al dispositivo que tiene esa MAC. Si el dispositivo cliente está configurado para aceptar cualquier SSID él mismo intentará sumarse a la red en el punto de acceso que envíe un “beacon” antes que los demás, o sino en el punto de acceso que envíe la señal más fuerte de todas. 2.2.2 Tramas de Señal (“Beacon Frames”) Los Puntos de Acceso mandan constantemente anuncios de la red, para que los clientes móviles puedan detectar su presencia y conectarse a la red inalámbrica. Estos “anuncios” son conocidos como BEACON FRAMES, si espiamos las tramas de una red inalámbrica podremos ver que normalmente el AP manda el ESSID de la red en los 10 BEACON FRAMES, aunque esto se puede deshabilitar por software en la mayoría de los AP que se comercializan actualmente. 2.2.3 Sincronización Cuando el dispositivo cliente recibe el “beacon”, su reloj cambia con el fin de seguir el reloj del punto de acceso. También en este paso se envía la información de cada cuánto tiempo será enviado un “beacon”. 2.2.4 Conjuntos de parámetros FH o DS Los “beacons” contienen información de la tecnología de espectro extendido que se está utilizando. Si es FHSS, entonces tiene información de los saltos de frecuencia y los tiempos de permanencia en cada valor de la misma, así como la secuencia a seguir. Si se trata de DSSS se tiene información del canal. 2.2.5 Mapa de indicación de tráfico (TIM) Indica cuáles clientes tienen paquetes de tráfico esperando ser recibidos por ellos. Esto se usa con el fin de posibilitar a los clientes mantenerse en un estado durmiente si ningún punto de acceso les está enviando tráfico, con lo cual se ahorra energía. En primera instancia el dispositivo cliente no recibe paquetes de tráfico en un tiempo determinado y por ello cambia a modo durmiente. Periódicamente el punto de acceso envía el mapa de indicación de tráfico. A su vez el dispositivo cliente también enciende su receptor cada cierto tiempo y chequea el mapa, y si éste no se encuentra allí apaga su receptor de nuevo. 11 2.2.6 Escaneo Pasivo y Activo El escaneo pasivo es el proceso de escuchar los “beacons” en cada canal por un periodo específico de tiempo. Estos beacons son enviados por los puntos de acceso (en el caso del modo infraestructura) y sirven para que las estaciones puedan ver algunas características de los puntos de acceso como por ejemplo la SSID de la red, el canal por el que transmite y la potencia de la señal. El escaneo activo se realiza mediante el envío de tramas de petición de prueba por parte de una estación de trabajo STA. En este caso la estación de trabajo debe conocer el identificador SSID o enviar un SSID broadcast. Si se envía la trama con la dirección SSID específica, solamente el punto de acceso AP que tenga esa SSID responderá. Si se envía la trama con la SSID en “broadcast” responderán todos los AP cercanos. La información enviada por el AP en las tramas “probe response” es por lo general idéntica a la enviada por los “beacons”. Figura 2.4 Escaneo Pasivo 12 Figura 2.5 Escaneo Activo 2.3 Proceso de comunicación en una red inalámbrica 802.11 2.3.1 Proceso de Descubrimiento [12] En la transición por los diferentes estados, ambas partes (STA y AP) intercambian mensajes llamados “management frames” (Tramas de gestión). El proceso que realiza una STA para encontrar y asociarse con un AP es el siguiente: Los AP transmiten tramas “beacon” cada cierto intervalo de tiempo fijo. Para asociarse con un AP y unirse a una red en modo infraestructura, un cliente escucha en busca de tramas “beacon” para identificar Puntos de Acceso. El cliente también puede enviar una trama de peticiones de prueba que contenga un ESSID determinado para ver si le responde un AP que tenga el mismo ESSID. En esta etapa se determinan las redes con las cuales se puede establecer comunicación, además se proporciona también información 13 importante para la autentificación como por ejemplo los mecanismos de seguridad permitidos por el AP en equipos que cumplen con WPA2. Después de identificar al AP, el cliente y el AP realizan autenticación mutua intercambiando varios “management frames” como parte del proceso. Hay varios mecanismos de autenticación posibles que se verán con detalle más adelante. El elemento de información RSN (Seguridad de Red Robusta) del estándar IEEE 802.11i da a conocer todas las “suites” de autentificación habilitadas por el AP, además de las “suites” de cifrado “unicast” y “multicast”. Figura 2.6 Formato de la RSN IE La Versión = 1 implica que se da soporte a la administración de llaves 802.1X , además da soporte a al protocolo CCMP Figura 2.7 Seleccionadores de suites Los seleccionadores de “suites” están constituidos por una lista de “suites” de autentificación dentro de la cual están los métodos de administración de llaves y de autentificación. La lista de las “suites” de cifrado de pares es utilizada para la distribución 14 de llaves de forma cifrada en comunicaciones “unicast”. También existe la lista de las “suites” de cifrado grupal la cual es utilizada para cifrar los mensajes multicast y broadcast. Tabla 2.1 Posibles valores de los campos de la trama según el número de secuencia 00:00:00:1 00:00:00:2 00:00:00:1 00:00:00:2 00:00:00:3 00:00:00:4 00:00:00:5 Selectores de Suites Autentificacion y administracion de llaves 802.1x Sin autentificacion y administracion de llaves 802.1x Suites de cifrado grupales y de pares WEP TKIP WRAP CCMP WEP-104 Figura 2.8 Capacidades de seguridad Cuando el campo Pre-autentificación es uno, indica que soporta la preautentificación. El campo llave “unicast” solamente es utilizado por WEP. El campo “Reseved” es puesto en cero en la transmisión e ignorado en la recepción. La STA selecciona la suite de autentificación y la suite de cifrado en la petición que realiza para asociarse. 15 Figura 2.9 Proceso de Descubrimiento 2.3.2 Autentificación 2.3.2.1 Sistema de autentificación abierta (Open System Authentication) Es el protocolo de autentificación por defecto en el estándar IEEE 802.11, en el cual cualquiera que quiera entrar a la red se puede autentificar sin ningún impedimento. Las “management frames” son enviadas sin cifrado alguno. 2.3.2.2 Clave Compartida (Shared Key) Este mecanismo es el segundo método de autentificación que proporciona el estándar IEEE 802.11. Utiliza una clave secreta compartida, que conocen cliente y AP. El siguiente esquema muestra el proceso de autentificación. 16 Figura 2.10 Proceso de Autentificación de llave compartida La STA que quiere autenticarse, envía una trama de petición de autentificación indicando que quiere utilizar una “clave compartida”. El destinatario (AP) contesta enviando una trama que contiene 128 octetos de texto (desafío) a la STA. El texto del desafío se genera utilizando el PRNG (generador de números pseudoaleatorios de WEP) con la clave compartida y un vector de inicialización (IV) aleatorio. Una vez que el cliente recibe la trama, copia el contenido del texto de desafío en el “payload” de una nueva trama, que encripta con WEP utilizando la clave compartida (passphrase) y añade un nuevo IV (elegido por el cliente). Una vez construida esta nueva trama encriptada, el cliente la envía al AP, y éste desencripta la trama recibida y comprueba que: • El ICV (Integrity Check Value) sea válido (CRC de 32 bits). • El texto de desafío concuerde con el enviado en el primer mensaje. 17 Si la comprobación es correcta, se produce la autenticación del cliente con el AP y entonces se vuelve a repetir el proceso pero esta vez el primero que manda la trama con la petición de autentificación es el AP. De esta manera se asegura una autentificación mutua. En la siguiente figura se muestra el formato de una trama de autentificación. Este formato es utilizado para todos los mensajes de autentificación: Management Frame Format: Size in Octets 2 2 6 6 6 2 Frame Control Duration Dest. Addr. Source Addr. BSSID Seq # 0-2312 4 FCS Authentication Frame Format: Size in Octets Algorithm Number Seq. Num Status Code Element ID Length Challenge Text 2 2 2 1 1 128 Figura 2.11 Formato de la trama de Autentificación Si el campo “Status Code” tiene valor ‘0’ indica que la autentificación ha sido realizada con éxito, sino, contiene un código de error. El campo “Element identifier” indica que la trama contiene el texto de desafío. El campo “Length” indica la longitud del texto de desafío y está fijado a 128 bits. El campo “Challenge text” incluye el texto de desafío aleatorio. 2.3.2.3 Autentificación IEEE 802.1X Se utiliza autentificación mediante 802.1X para buscar centralizar las políticas de admisión a la red en el Servidor de Acceso AS. La autentificación es mutua entre las estaciones de trabajo STAs y el servidor de autentificación AS, como efecto de la 18 autentificación se genera la llave maestra (Master Key MK) y seguidamente la PMK (Master Key compartida entre la STA y el AP). En la siguiente figura se muestran los protocolos que se utilizan en el proceso de autentificación entre los distintos elementos. Figura 2.12 Protocolos del proceso de Autentificación En el proceso de autentificación se establece una sesión entre el servidor de acceso AS y la estación de trabajo STA. En cada sesión que se establece se genera una llave compartida nueva, además de que la autentificación mutua está comprendida solamente entre el AS y la STA. El proceso inicia con una petición de identidad por parte del AP. La STA responde la petición que es tomada por el AP, el cual la transfiere mediante RADIUS al servidor de autentificación AS. Si el AS valida la identidad de la STA ambos generan la PMK (Pairwise Master Key) y la autentificación es exitosa. 19 Al final del proceso de autentificación, el AS y la STA tienen una sesión establecida si el método concreto de EAP también la tiene. El AS y la STA poseen una llave maestra producto de la mutua autentificación si el método concreto de EAP también la tiene. La llave maestra (Master Key) representa la decisión de conceder acceso basándose en el proceso de autentificación. A partir de la llave maestra se deriva la PMK que es la señal de autorización para hacer cumplir las decisiones del control de acceso. Figura 2.13 Proceso de autentificación EAP es el transporte para la autentificación de extremo a extremo entre la STA y el AS. IEEE 802.1X es el mecanismo de transporte de EAP en las LAN 802. El AP trabaja 20 como proxy de EAP entre 802.1X y el protocolo backend (RADIUS) entre el AP y el AS. Aunque RADIUS, EAP-TLS y UDP/IP son mecanismos que no contempla el estándar IEEE 802.11i, son muy utilizados y recomendados en el mercado. RADIUS es el mecanismo de transporte de facto para EAP en las redes IP. 2.3.3 Administración de llaves (“Key Management”) El estándar IEEE 802.11 no posee administración de llaves. Solamente unos pocos fabricantes implementaron algún tipo de administración de llaves, pero casi ninguno de los fabricantes ha liberado información para determinar el nivel de confiabilidad de sus productos. A partir de WPA se comienza a utilizar un sistema de distribución de llaves basado en RADIUS. El servidor mueve la PMK generada en la autentificación a la STA y al AP. Para implementar políticas de seguridad utilizando cifrado y algoritmos de integridad es recomendable que las llaves sean obtenidas. Afortunadamente, el estándar 802.11i implementa un régimen de derivación y administración de llaves. 21 Figura 2.14 Administración y derivación de las llaves Cuando se concluye la autentificación entre el suplicante STA y el servidor de autentificación AS, uno de los últimos mensajes enviados por el AS, que da una autorización exitosa, es la llave maestra MK (Master Key). Luego de ser enviada, la MK es conocida solamente por la STA y el AS. La MK está ligada a esta sesión entre la STA y el AS. Ambos STA y AS derivan una nueva llave llamada Llave Maestra entre pares PMK (Pairwise Master Key), a partir de la Master Key. La PMK se mueve desde el AS al autentificador AP. Solamente la STA y el AS pueden derivar la PMK, de otra manera, el AP podría tomar decisiones de control de acceso 22 en lugar del AS. La PMK es una llave renovada y simétrica confinada solamente a esta sesión entre la STA y el AP. La PMK y el 4-way-handshake (método para derivar las demás llaves) son utilizados entre la STA y el AP para derivar, unir y verificar la PTK (Pairwise Transient Key). Esta llave es en realidad un conjunto de llaves para operaciones específicas, las cuales son: • La llave de confirmación de llaves KCK (Key Confirmation Key) es utilizada para comprobar la posesión de la PMK y para ligar la PMK al AP. • La llave de cifrado de llaves KEK (Key Encryption Key) es utilizada para distribuir la llave de GTK (Group Transient Key) • Las Llaves Temporales 1 y 2 TK1 TK2 son utilizadas para el cifrado. El uso de las TK1 y TK2 es específico de la “suite” de cifrado. 2.3.4 Transferencia de datos: En la transferencia de los datos se utilizan distintos mecanismos para asegurar y proteger el contenido de los datos que se envían por el medio inalámbrico. El primero en aparecer en escena fue WEP que vino incluido en el primer estándar WLAN (IEEE 802.11). Pero rápidamente se conocieron muchas vulnerabilidades que produjeron la creación de los mecanismos posteriores. En los próximos apartados se ahondará más el tema de los algoritmos de cifrado, pero la siguiente tabla resulta un buen resumen de las características de cada protocolo. 23 Tabla 2.2 Posibles valores de los campos de la trama según el número de secuencia Nombre del Estándar Nombre del Algoritmo de cifrado Modo de cifrado Tamaño de la llave Vector de inicialización Integridad de los datos Integridad de la cabecera Administración de llaves WEP WEP RC4 40 a 128 bit 24 bit IV CRC-32 ninguna ninguna WPA TKIP RC4 128 bit 48/128 bit IV MIC MIC EAP WPA2/802.11i CCMP AES 128 bit 48/128 bit IV CCM CCM EAP CAPÍTULO 3: Seguridad en los Estándares de redes WLAN 3.1 El Estándar 802.11 La IEEE dividió sus estándares en varios comités. Al Comité IEEE 802 le correspondió hacerse cargo de las redes de área local LAN y las redes de área metropolitana MAN. Asimismo el comité 802 se subdividió en grupos de trabajo para tratar distintos temas específicos en las LANs y las MANs. De esta forma, el grupo 802.1 se dedicó al tema del puenteo (“bridging”) y administración, el grupo 802.2 se ocupó del control de la conexión lógica, al grupo 802.3 les correspondió el método de acceso CSMA/CD y de la misma forma, al grupo 802.11 le correspondió ocuparse de las redes inalámbricas WLAN. El grupo de trabajo 802.11 fue formado en septiembre de 1990. Su objetivo era crear la especificación de las LAN inalámbricas que operaran en el rango de frecuencia ISM (Industrial, Scientific, and Medical). Se definió inicialmente la velocidad de transmisión de 1 a 2 Mbps en el rango de frecuencia 2.4Ghz, usando: FHSS (Modulación por saltos de frecuencia) o DSSS (Espectro de extensión de secuencia directa). El primer estándar 802.11 fue publicado en 1997. Las normas IEEE 802.11 forman una familia de especificaciones que definen cómo deben producirse los equipos de WLAN para que los equipos de los diferentes fabricantes puedan trabajar juntos. Seguidamente, la IEEE publicó las subdivisiones del estándar 802.11 de los cuales se comentarán las principales características: 24 25 • 802.11a: Revisión del protocolo 802.11 que proporciona 54 Mbps estandarizado y hasta 72 y 108 Mbps con tecnologías de desdoblamiento no estandarizado en el rango de frecuencia 5GHz, usando: OFDM (Multiplexión por División de Frecuencia Ortogonal), DSSS (Espectro Disperso de Secuencia Directa). • 802.11b: También llamado 802.11 High Rate o Wi-Fi, revisión del protocolo 802.11 que proporciona 11 Mbps con reducciones a 5.5, 2 y 1 Mbps en el rango de frecuencia 2.4 GHz, usando: DSSS. • 802.11g: Protocolo que proporciona 54 Mbps en el rango de frecuencia 2.4 GHz, manteniendo plena compatibilidad con el protocolo 802.11b. Otras especificaciones del estándar son: • 802.11c: Define características de AP como puentes (“bridges”). • 802.11d: Permite el uso de 802.11 en países restringidos por el uso de las frecuencias. • 802.11e: Define el uso de QoS. • 802.11f : Define el enlace “Roaming” entre la STA y el AP. • 802.11h: Superior al 802.11a, permite asignación dinámica de canales (coexistencia con el HyperLAN). Regula la potencia en función de la distancia. • 802.11i: Estándar que define el cifrado y la autentificación para complementar, completar y mejorar el WEP. Es un estándar que mejorará la 26 seguridad de las comunicaciones mediante el uso del WPA con su Protocolo de Integridad de Llave Temporal TKIP. • 802.11j: Estándar que permitirá la armonización entre el IEEE, el ETSI HyperLAN2, ARIB e HISWANa. • 3.1.1 802.11m: Propuesto para mantenimiento de redes inalámbricas. Seguridad en el estándar IEEE 802.11 La seguridad en el estándar IEEE 802.11 se especifica en el apartado de Autentificación de dos maneras: Sistemas Abiertos y Sistemas de Clave Compartida. La autentificación del Sistema Abierto es la opción por defecto que se utiliza en todo equipo estandarizado bajo IEEE 802.11. Este tipo de autentificación permite que cualquier estación de trabajo pueda ser parte de la red. La seguridad que nos proporciona un Sistema abierto es por lo tanto nula, por lo que cualquier estación de trabajo con el equipo necesario puede entrar en la red sin ningún problema. En la autentificación de Clave Compartida se requiere también la implementación del mecanismo de seguridad WEP (Privacidad Equivalente con la Alambrada). Este mecanismo de seguridad utiliza una única clave secreta para todos los miembros de la red, la cual fue conocida por los miembros antes de entrar en la red. Esta clave compartida está contenida en un atributo MIB (Administración de la Base de Información) a través del camino de gestión MAC. Este atributo es de sólo escritura (write-only) así que el valor de la clave permanece interna en la MAC. 27 La principal característica del algoritmo WEP (Privacidad Equivalente con la Alambrada) es su fortaleza, ya que la seguridad que ofrece el algoritmo se basa en la dificultad de descubrir la clave secreta a través de ataques de fuerza bruta. El nivel de seguridad también depende de la longitud de la clave secreta y la frecuencia con la que se cambia la clave en la administración de la red. 3.1.2 Seguridad en el estándar IEEE 802.11i En el estándar IEEE 802.11i publicado en el año 2004 se realizan mejoras al algoritmo WEP con el fin de asegurar compatibilidad hacia atrás con el estándar IEEE 802.11, además se incluyen nuevas características como mejores mecanismos de autentificación para las estaciones de trabajo, algoritmos de gestión de claves, instauración de criptografía de claves, entre otras mejoras. Entre las expectativas más importantes que pretende este estándar esta la de hacer pasar a un segundo plano las tecnologías de redes privadas virtuales VPN (dado que la tecnología VPN es quizás demasiado costosa en recursos para su implementación en redes WLAN) así como algunos protocolos de seguridad como PPTP e IPSec que se estaban utilizando para brindar una adecuada seguridad en los entornos inalámbricos de gran importancia. Desde que se han comenzado a revelar las vulnerabilidades del protocolo WEP (Privacidad Equivalente con la Alambrada) hace un par de años, la industria ha "sobrevivido" gracias al TKIP (Protocolo de Integridad de Llave Temporal) que fue concebido como algo temporal y que la Wi-Fi Alliance denominó WPA (Acceso Protegido 28 Wifi). Varios de los conceptos de 802.11i ya estaban implementados en la norma de facto conocida como WPA. La diferencia más notable entre WPA y WPA2 que es el estándar Wi-Fi equivalente a 802.11i, es quizás la introducción del AES (Advanced Encryption Standard, el estándar de criptografía simétrica adoptado por los EEUU), el sucesor del ya obsoleto DES. El estándar 802.11i está basado en el componente de autenticación 802.1X, que invoca uno de dos métodos de cifrado: Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP, Protocolo de Código de Autenticación de Mensaje Encadenado de Bloqueo de Cifrado), parte del algoritmo de Advanced Encryption Standard (AES, Estándar de Cifrado Avanzado); o bien el Temporal Key Integrity Protocol (TKIP, Protocolo de Integridad de Clave Temporal). En el estándar 802.11i se define el concepto de RSNA (Asociación de seguridad de red robusta) y en esta se definen protocolos no pertenecientes a la IEEE. El IETF (Internet Engineering Task Force) es la organización que colabora con el protocolo de autentificación EAP, el estándar de cifrado AES y otros como MD5, HMAC y CCM. Una RSNA define un número de características de seguridad adicionales al algoritmo WEP y a la autentificación utilizada en el estándar IEEE 802.11. Entre las nuevas características se incluyen mejoras al mecanismo de autentificación para las STAs, algoritmos de gestión de claves y el establecimiento de claves de criptografía. Además se incluyen mejoras en el mecanismo de encapsulación CTR con CBC-MAC (Encadenamientos de bloques cifrados con mensaje de autentificación de 29 código), con protocolo CCMP y como opcional TKIP (Protocolo de integridad de clave temporal). Una RSNA se basa en varios componentes externos a la arquitectura IEEE 802.11. El primer componente es una entidad de puerto de acceso PAE, basado en IEEE 802.1X. Estas entidades (PAEs) están presentes en todas las STA en una RSNA y controlan el envío de datos hacia y desde el medio de acceso MAC. Un punto de acceso AP siempre implementa un autentificador PAE e implementa rol de Autentificador EAP, y las STA implementan el rol de Suplicante EAP. El segundo componente es un Servidor de autentificación AS. El AS puede autentificar los elementos de una RSNA por sí mismo. Los STAs y los APs pueden proporcionar el material que la RSNA puede usar para autentificarse mutuamente, permitiendo que las STAs sean autentificadas por el AS y viceversa. Una RSNA depende del uso del método de EAP que respalda la autentificación mutua de las STA y los AS. En ciertos casos el AS puede estar integrado dentro del mismo dispositivo AP, o en una STA. Figura 3.1 Esquema de Seguridad 802.11i 30 3.1.3 Seguridad en el estándar IEEE 802.1X El estándar IEEE 802.1X es un protocolo de control de acceso y autenticación basado en la arquitectura cliente/servidor, que restringe la conexión de equipos no autorizados a una red. El protocolo fue inicialmente creado por la IEEE para uso en redes de área local alambradas, pero se ha extendido también a las redes inalámbricas. Muchos de los puntos de acceso que se fabrican en la actualidad ya son compatibles con 802.1x. El protocolo 802.1x involucra tres participantes: • El suplicante, o equipo del cliente, que desea conectarse con la red. • El servidor de autorización/autenticación, que contiene toda la información necesaria para saber cuáles equipos y/o usuarios están autorizados para acceder a la red. 802.1x fue diseñado para emplear servidores RADIUS (Remote Authentication Dial-In User Service), cuya especificación se puede consultar en la RFC 2058. Estos servidores fueron creados inicialmente para autenticar el acceso de usuarios remotos por conexión vía telefónica; dada su popularidad se optó por emplearlos también para autenticación en las LAN. • El autenticador, que es el equipo de red (switch, enrutador, servidor de acceso remoto...) que recibe la conexión del suplicante. El autenticador actúa como intermediario entre el suplicante y el servidor de autenticación, y solamente permite el acceso del suplicante a la red cuando el servidor de autenticación así lo autoriza. 31 La autenticación del cliente se lleva a cabo mediante el protocolo EAP (Extensible Authentication Protocol) y el servicio RADIUS, de la siguiente manera: • El proceso inicia cuando la estación de trabajo se enciende y activa su interfaz de red (en el caso alambrado) o logra enlazarse o asociarse con un punto de acceso (en el caso inalámbrico). En ese momento, la interfaz de red tiene el acceso bloqueado para tráfico normal, y lo único que admite es el tráfico EAPOL (EAP over LAN), que es el requerido para efectuar la autenticación. • La estación de trabajo envía un mensaje EAPOL-Start al autenticador, indicando que desea iniciar el proceso de autenticación. • El autenticador solicita a la estación que se identifique, mediante un mensaje EAP-Request/Identity. • La estación se identifica mediante un mensaje EAP-Response/Identity. • Una vez recibida la información de identidad, el autenticador envía un mensaje RADIUS-Access-Request al servidor de autenticación, y le pasa los datos básicos de identificación del cliente. • El servidor de autenticación responde con un mensaje RADIUSAccessChallenge, en el cual envía información de un desafío que debe ser correctamente resuelto por el cliente para lograr el acceso. Dicho desafío puede ser tan sencillo como una contraseña, o involucrar una función 32 criptográfica más elaborada. El autenticador envía el desafío al cliente en un mensaje EAP-Request. • El cliente da respuesta al desafío mediante un mensaje EAP-Response (Credentials) dirigido al autenticador. Este último reenvía el desafío al servidor en un mensaje RADIUS-Access-Response. • Si toda la información de autenticación es correcta, el servidor envía al autenticador un mensaje RADIUS-Access-Accept, que autoriza al autenticador a otorgar acceso completo al cliente sobre el puerto, además de brindar la información inicial necesaria para efectuar la conexión a la red. • El autenticador envía un mensaje EAP-Success al cliente, y abre el puerto de acuerdo con las instrucciones del servidor RADIUS. Figura 3.2 Proceso de autentificación EAPoL RADIUS 33 En el caso del acceso inalámbrico, el servidor RADIUS despacha en el mensaje RADIUS-Access-Accept un juego de claves WEP dinámicas, que se usarán para cifrar la conexión entre el cliente y el punto de acceso. El servidor RADIUS se encarga de cambiar esta clave dinámica periódicamente (por ejemplo, cada cinco minutos), para evitar el ataque de rompimiento de la clave como sucede con WEP. 3.2 El Estándar Wi-Fi La Wi-Fi Alliance (anteriormente WECA, “Wireless Ethernet Compatibility Alliance”) es una organización internacional, sin ánimo de lucro, formada en 1999 para certificar la interoperabilidad de productos inalámbricos de redes de área local basados en la especificación del IEEE 802.11. Fue fundada por varias compañías fabricantes de productos inalámbricos entre las cuales figuran Agere, Cisco, Conexant, Dell, Intel, Microsoft, Nokia, Philips, Sony, Symbol Technologies and Texas Instruments. La expresión Wi-Fi (abreviatura de “Wireless Fidelity”) se utiliza como denominación genérica para los productos que incorporan cualquier variante de la tecnología inalámbrica 802.11. En un principio, la expresión Wi-Fi era utilizada únicamente para los aparatos con tecnología 802.11b, el estándar dominante en el desarrollo de las redes inalámbricas, de aceptación prácticamente universal, que funciona en una banda de frecuencias de 2,4 GHz y permite la transmisión de datos a una velocidad de hasta 11Mbps. Con el fin de evitar confusiones en la compatibilidad de los aparatos y la interoperabilidad de las redes, el término Wi-Fi se extendió a todos los aparatos provistos con tecnología 802.11 como: 802.11a, 802.11b, 802.11g. 34 Actualmente la Wi-Fi Alliance tiene más de 200 miembros alrededor del mundo, que representan a un nutrido grupo de relevantes empresas y más de 1.500 productos han recibido la certificación Wi-Fi® desde que el proceso de certificación empezase en marzo de 2000. El objetivo de los miembros de la Wi-Fi Alliance es enriquecer la experiencia de los usuarios a través de la interoperabilidad de sus productos. Figura 3.3 Logotipo y certificación Wi-Fi 3.2.1 Seguridad en el estándar WPA Debido a las vulnerabilidades que presentaba en un principio WEP, la IEEE comenzó a trabajar en el estándar 802.11i que sería el encargado de eliminar los problemas de seguridad que tenía WEP, pero esta publicación se atrasó hasta mediados del 2004. 35 Debido a la tardanza (WEP es de 1999 y las principales vulnerabilidades de seguridad se encontraron en 2001), Wi-Fi decidió, en colaboración con el IEEE, tomar aquellas partes del futuro estándar que ya estaban suficientemente maduras y publicar así WPA en el 2003. WPA es, por tanto, un subconjunto de lo que es IEEE 802.11i y que soluciona todas las debilidades conocidas de WEP y hasta ese momento se consideraba lo suficientemente seguro. WPA está destinado a garantizar la seguridad en las especificaciones IEEE 802.11b, 802.11a y 802.11g. Las principales características de WPA son la distribución dinámica de claves, utilización más robusta del vector de inicialización (mejora de la confidencialidad) y nuevas técnicas de integridad y autentificación. WPA incluye las siguientes tecnologías: • IEEE 802.1X. [15] Estándar del IEEE de 2001 para proporcionar un control de acceso en redes basadas en puertos. El concepto de puerto, en un principio pensado para las ramas de un “switch”, también se puede aplicar a las distintas conexiones de un punto de acceso con las estaciones. Las estaciones tratarán entonces de conectarse a un puerto del punto de acceso. El punto de acceso mantendrá el puerto bloqueado hasta que el usuario se autentifique. Con este fin se utiliza el protocolo EAP y un servidor AAA (Autentificación, Autorización y Auditoría) como puede ser RADIUS (Servicio de Autentificación de usuarios telefónicos remotos). Si la autorización es positiva, entonces el punto de acceso abre el puerto. El 36 servidor RADIUS puede contener políticas para ese usuario concreto que podría aplicar el punto de acceso (como priorizar ciertos tráficos o descartar otros). • EAP. EAP, definido en la RFC 2284, es el protocolo de autentificación extensible para llevar a cabo las tareas de autentificación, autorización y contabilidad. EAP fue diseñado originalmente para el protocolo PPP (Protocolo Punto a Punto), aunque WPA lo utiliza entre la estación y el servidor RADIUS. Esta forma de encapsulación de EAP está definida en el estándar 802.1X bajo el nombre de EAPOL (EAP over LAN). • TKIP (Temporal Key Integrity Protocol). Según indica Wi-Fi, es el protocolo encargado de la generación de la clave para cada trama. • MIC (Message Integrity Code) o Michael. Código que verifica la integridad de los datos de las tramas. WPA soluciona la debilidad del vector de inicialización (IV) de WEP mediante la inclusión de vectores del doble de longitud (48 bits) y especificando reglas de secuencia que los fabricantes deben implementar. Los 48 bits permiten generar 2 48 combinaciones de claves diferentes, lo cual parece un número suficientemente elevado como para tener duplicados. El algoritmo utilizado por WPA sigue siendo RC4. La secuencia de los IV, conocida por ambos extremos de la comunicación, se puede utilizar para evitar ataques de repetición de tramas (replay). 37 Para la integridad de los mensajes (ICV), se ha eliminado el CRC-32 que se demostró inservible en WEP y se ha incluido un nuevo código denominado MIC. Las claves ahora son generadas dinámicamente y distribuidas de forma automática por lo que se evita tener que modificarlas manualmente en cada uno de los elementos de red cada cierto tiempo, como ocurría en WEP. Para la autentificación, se sustituye el mecanismo de autentificación de secreto compartido de WEP así como la posibilidad de verificar las direcciones MAC de las estaciones por la terna 802.1X / EAP / RADIUS. Su inconveniente es que requiere de una mayor infraestructura: un servidor RADIUS funcionando en la red, aunque también podría utilizarse un punto de acceso con esta funcionalidad. WPA puede funcionar en dos modos: • Con servidor AAA, RADIUS normalmente. Este es el modo indicado para las empresas. Requiere un servidor configurado para desempeñar las tareas de autentificación, autorización y contabilidad. • Con clave inicial compartida (PSK). Este modo está orientado para usuarios domésticos o pequeñas redes. No requiere un servidor AAA, sino que se utiliza una clave compartida en las estaciones y punto de acceso. Al contrario que en WEP, esta clave sólo se utiliza como punto de inicio para la autentificación, pero no para el cifrado de los datos. El problema que tiene WPA en este momento es que las claves empleadas en las comunicaciones inalámbricas para solventar las vulnerabilidades de WEP, estaban bajo 38 sospecha desde el año pasado, en que Moskowitz publicó un documento que ya apuntaba algunas vulnerabilidades. Hoy la situación se ha agravado, al anunciarse la disponibilidad de una herramienta que permite explotar los defectos de aleatoriedad de las contraseñas más cortas o basadas en diccionario. La solución pasa por emplear mejores contraseñas y utilidades específicas como AOOS, SecureEZSetup y similares. 3.2.2 Seguridad en el estándar WPA2 Una vez publicado el estándar IEEE 802.11i en junio del 2004, la Wi-Fi Alliance comenzó un nuevo programa de certificación para WPA2, el cual ofrece una avanzada seguridad basada en el estándar 802.11i en su totalidad. La certificación WPA comenzó a estar disponible desde septiembre del 2004. WPA2 utiliza el nuevo sistema de cifrado AES el cual ha sido adoptado como el estándar oficial del gobierno de Estados Unidos, Departamento de Comercio y el Instituto Nacional de Estándares y Tecnología NIST. El sistema AES se define en el modo CCM (Contador con modo de encadenamiento de bloques cifrados) y soporta IBSS (Set de Servicios Básicos Independiente) para posibilitar la seguridad entre las STAs operando en modo ad hoc. El algoritmo de cifrado utiliza tamaños variables de clave (tamaños de 128, 192 o 256 bits). Al igual que WPA, WPA2 utiliza el entramado 802.1X/EAP como parte de la infraestructura que asegura la autentificación mutua centralizada y la administración dinámica de claves. También ofrece el sistema de “pre-shared key” para utilizarse en casas o oficinas pequeñas. Al igual que WPA, WPA2 fue diseñada para todas las versiones de los dispositivos 802.11, incluyendo 802.11b, 802.11a y 802.11g. 39 WPA2 ofrece una fácil transición desde WPA, esto permitirá una buena transición en las grandes empresas que no puedan fácilmente actualizarse en un corto periodo. 40 CAPÍTULO 4: Mecanismos de Seguridad en el Proceso de comunicación WLAN 4.1 Mecanismos de Seguridad en el proceso de autentificación 4.1.1 Protocolo de Autentificación Extensible (EAP) El protocolo de autentificación extensible EAP fue definido por la IETF en la especificación RFC2284. Inicialmente fue desarrollado para PPP (Protocolo de punto a punto) pero en el estándar IEEE 802.1X se extiende EAP a las redes de área local LAN. El principal objetivo de este protocolo es permitir adicionar fácilmente nuevos métodos de autentificación. El protocolo EAP ha sido optimizado principalmente para el transporte del método de autentificación pero no para ser por si mismo un método de autentificación. Entre sus principales características destacan la facilidad y la manejabilidad, debido a que se centralizan las decisiones de autentificación y autorización, además es un protocolo que económicamente es viable, dado que permite minimizar los costos de los AP (Puntos de Acceso), llevando a cabo el proceso de autentificación a través de un AS (Servidor de Acceso) de este modo el AP no percibe siquiera el protocolo de autentificación. El servidor de autentificación AS inicia todas las transacciones ya sean peticiones o protocolos de respuesta, las STAs no pueden recuperarse de los problemas ocurridos en los 41 AS o en los AP proporcionando protección contra ataques de denegación de servicio DoS a los AS. El AS le dice a la STA el protocolo de autentificación a usar; si el método de autentificación no es soportado por la STA, esta debe rechazar la petición. El AS envía el EAP-Success (autentificación satisfactoria); si falla la autentificación, la STA rompe la comunicación de inmediato. El protocolo EAP no proporciona protección criptográfica por lo que no existe protección contra EAP-Success falsificados. El protocolo confía en el método de autentificación utilizado para detectar todos los ataques. El protocolo EAP no posee una fuerte noción de la vinculación de las STAs con el AS, la autentificación mutua y la vinculación deben ser producidas por un método en concreto. El legado del estándar IEEE 802.1X no tiene una fuerte noción de una sesión, por lo que el protocolo EAP tiene implícitamente la misma debilidad en lo que respecta al establecimiento de una sesión. Por este motivo EAP se apoya en la noción de sesión que trae consigo el método de autentificación. Existen varias variantes del protocolo EAP, 13 según la modalidad de autenticación que se emplee. Se puede hablar de dos grupos de variantes: las que emplean certificados de seguridad, y las que utilizan contraseñas. Las variantes de EAP que emplean certificados de seguridad son las siguientes: 42 • EAP-TLS: Requiere de instalación de certificados en los clientes y en el servidor. Proporciona autenticación mutua fuerte (es decir, el servidor autentica al cliente y viceversa) y soporta el uso de claves dinámicas para WEP. La sesión de autenticación entre el cliente y el autenticador se cifra empleando el protocolo TLS (Seguridad en la Capa de Transporte). • EAP-TTLS: Desarrollada por Funk Software y Certicom. Proporciona servicios similares a EAP-TLS, con la diferencia de que requiere solamente la instalación de un certificado en el servidor. Esto garantiza la autenticación fuerte del servidor por parte del cliente; la autenticación del cliente por parte del servidor se efectúa una vez que se establece la sesión TLS, utilizando otro método tal como PAP, CHAP, MS-CHAP ó MS-CHAP v2. • PEAP: Desarrollado por Microsoft, Cisco y RSA Security. Funciona de manera parecida a EAP-TTLS, en el sentido de que solamente requiere del certificado de seguridad en el servidor. Provee protección a métodos más antiguos de EAP, mediante el establecimiento de un túnel seguro TLS entre el cliente y el autenticador. El empleo de certificados permite una autenticación fuerte entre cliente y servidor, sin embargo posee también varias desventajas: • La administración de los certificados de seguridad puede ser costosa y complicada, especialmente en los esquemas donde se necesitan certificados 43 en los clientes y en el servidor. Es necesario comprar los certificados a una autoridad de certificación (CA) conocida, o montar una CA propia. • El diálogo de autenticación es largo. Esto ocasiona que el proceso sea algo demorado, siendo especialmente molesto para usuarios que tienen que reautenticarse con mucha frecuencia (por ejemplo, usuarios en movimiento que cambien de un punto de acceso a otro). • La manipulación del certificado puede ser engorrosa para el usuario. En muchos casos se elige instalar el certificado en la terminal del usuario, con lo cual, si la terminal es robada y el certificado es el único nivel de seguridad que se posee, la seguridad de la red estaría en riesgo. Otra solución sería llevar el certificado en una tarjeta inteligente (smart card), lo que obligaría a instalar hardware adicional en las terminales para leer dichas tarjetas. Las variantes de EAP que utilizan contraseñas son las siguientes: • EAP-MD5: Emplea un nombre de usuario y una contraseña para la autenticación. La contraseña se transmite cifrada con el algoritmo MD5. Su gran inconveniente consiste en el bajo nivel de seguridad que maneja, ya que es susceptible a ataques de diccionario (un atacante puede ensayar a cifrar múltiples contraseñas con MD5 hasta que encuentre una cuyo texto cifrado coincida con la contraseña cifrada capturada anteriormente). Además, el cliente no tiene manera de autenticar al servidor (no se podría garantizar que 44 el cliente se está conectando a la red adecuada), y el esquema no es capaz de generar claves WEP dinámicas. Por estos problemas, EAP-MD5 ha caído en desuso. • LEAP: Esta variante es propietaria de Cisco. Emplea un esquema de nombre de usuario y contraseña, y soporta claves dinámicas WEP. Al ser una tecnología propietaria, exige que todos los puntos de acceso sean marca Cisco, y que el servidor RADIUS sea compatible con LEAP. • EAP-SPEKE: Esta variante emplea el método SPEKE (Simple Passwordauthenticated Exponential Key Exchange), que permite verificar que tanto cliente como servidor comparten una información secreta (en este caso, una contraseña) a través de un medio inseguro. Se ha comprobado que el método es muy seguro, aun con contraseñas cortas. Ofrece protección contra ataques de diccionario, así como el servicio de autenticación mutua sin necesidad de certificados. Muchos proveedores lo implementan por ser un método de autenticación robusto y sencillo. 4.1.2 El Estandar IEEE 802.1X Términos importantes en IEEE 802.1X • Suplicante (cliente): Es el dispositivo de acceso a la red que realiza la petición de los servicios de la LAN 45 • Autenticador: Es el punto de acceso a la red que posibilita la autentificación 802.1X. Los “switch” LAN y los puntos de acceso inalámbrico son los dispositivos más comunes. • Servidor de Autentificación: Es el servidor que realiza la autentificación, permitiendo o denegando el acceso a la red basada en usuario/contraseña. El estándar 802.1X especifica a RADIUS (Protocolo Servicio de Usuario de Acceso Telefónico de Autenticación Remota) como el servidor de autentificación que soporta EAP. RADIUS al igual que EAP son protocolos publicados por la IETF (Internet Engineering Task Force). • • RFC 2284 PPP Extensible Authentication Protocol (EAP) • RFC 2865 Remote Authentication Dial In User Service (RADIUS) • RFC 2869 RADIUS Extensions EAP es el protocolo utilizado entre el cliente y el autentificador. El estándar 802.1X especifica los métodos de encapsulación para transmitir los mensajes EAP en algún medio de transmisión físico. Entre los medios de transmisión existentes figuran el EAPoL (EAP sobre LAN) y el EAPoW (EAP sobre redes inalámbricas). • Puerto de acceso de entrada: Es el componente lógico del estándar 802.1X que intercambia los mensajes EAP entre el cliente y el autentificador. El estándar 802.1X fue creado para asegurar el acceso a la red de los dispositivos que se conectan a esta. Tradicionalmente la seguridad de las redes ha predominado en el 46 campo de los servidores y clientes, basándose en el registro (login) y autentificación para acceder a recursos específicos. Si la clave usuario/contraseña es correcta el usuario podrá ingresar a todos los servicios especificados por el administrador basándose en las políticas de seguridad establecidas. A pesar de que la autentificación es un método probado para asegurar los recursos de la red, esto no provee seguridad total como mecanismo para determinar el acceso no autorizado. Por este motivo muchos de los proveedores de equipo han implementado otras soluciones como las VLANs, las listas de control de acceso ACLs y filtrado de MACs. Todas estas soluciones son mecanismos efectivos para asegurar el acceso a la red, pero crean una gran dependencia en el criterio de seguridad utilizado, además de que este por lo general es propietario de cada fabricante. Para complementar los métodos existentes con el estándar 802.1X, los administradores pueden confiar en que el perímetro de la red está completamente seguro, dado que se confía en la interoperabilidad entre varios proveedores gracias al estándar. 4.1.2.1 Proceso de Autentificación Una vez que la autentificación basada en 802.1X es habilitada, una autentificación satisfactoria debe ser completada antes de permitir el tráfico en la red por parte del cliente, incluyendo el tráfico importante como peticiones DHCP a pesar de que la conexión está establecida entre el cliente y el autentificador (puerto del “switch”) Antes de la autentificación, para asegurarse que no se transmite tráfico no autorizado, antes de una exitosa autentificación, el autentificador PAE es establecido como 47 no controlado. Esto significa que los únicos mensajes que serán aceptados del cliente serán las peticiones EAP las cuales serán reenviadas al servidor de autentificación. Una vez activado el sistema (enchufado y conectado al “switch”), el cliente 802.1X transmitirá el mensaje EAP apropiado al autentificador (puerto del “switch”). El puerto del “switch” con autentificación 802.1X habilitada se pone en un estado no controlable, aceptando solamente mensajes EAP (todo otro trafico es descartado). Sobre el acuse de recibo del mensaje EAP, el “switch” enviará la petición al servidor de autentificación (RADIUS) sin cambiar su contenido. Aunque el contenido no es cambiado, la encapsulación debe ser traducida del mensaje original EAP a una petición RADIUS, por lo tanto los únicos servidores RADIUS con respaldo son los que dan soporte al protocolo EAP. Una vez recibido el mensaje RADIUS, el servidor de autentificación concederá o negará el acceso a la red. La respuesta será transmitida al “switch”, el cual determinará si el puerto se mantiene en un estado no controlable (acceso denegado), o cambia a un estado controlable. Si la autentificación falla, el autentificador (puerto del “switch”) se mantendrá en un estado incontrolable, y en algunos casos el puerto será deshabilitado (dependiendo de la implementación del proveedor). Aunque el cliente es un dispositivo que requiere autentificación, ambos, el cliente o el “switch” pueden iniciar el proceso. Esto es determinado por temporizadores los cuales son puestos en los clientes y en el “switch” 48 4.1.3 Autentificación mediante RADIUS El Protocolo de Servicio de Usuario de Acceso Telefónico de Autenticación Remota (RADIUS) no forma parte del estándar IEEE 802.11i, pero RADIUS es el protocolo por defecto back-end (programa que efectúa las acciones de fondo). Este protocolo fue desarrollado inicialmente por Livingston Enterprises Inc y se definió como un protocolo de autentificación y contabilidad en servidor de acceso. Las especificaciones sobre RADIUS se pueden encontrar en las publicaciones RFC 2865, RFC 2138, RFC 2866, RFC 2139. RADIUS realiza la comunicación entre el AS y el servidor RADIUS por medio del protocolo UDP (Protocolo de datagramas de usuario). Generalmente RADIUS es considerado como un protocolo no orientado a conexión. RADIUS es un protocolo cliente/servidor donde el cliente RADIUS es típicamente el AS y el servidor RADIUS es usualmente un proceso demonio que corre en una máquina con UNIX o Windows NT. El cliente pasa la información del usuario al servidor RADIUS y decide sobre la respuesta que será devuelta. Los servidores RADIUS reciben las peticiones de conexión de los usuarios, autentifican los usuarios y devuelven la información de la configuración necesaria para que el cliente (AS) pueda dar el servicio al usuario. El servidor RADIUS puede funcionar como un cliente proxy para otros servidores RADIUS u otros tipos de servidores de autentificación. La siguiente figura muestra el proceso de comunicación entre el usuario, el cliente y el servidor RADIUS. 49 Figura 4.1 Proceso de comunicación RADIUS 4.1.3.1 Proceso de comunicación: • El usuario inicia una autentificación con el AS • El AS solicita el nombre de usuario y la contraseña • El usuario responde • El cliente RADIUS envía el nombre de usuario y la contraseña cifrada al servidor RADIUS. • El servidor RADIUS responde con Aceptado (“Accept”) o Rechazado (“Reject”) • Un desafío (Challenge) • El cliente RADIUS actúa sobre los servicios y los parámetros de los servicios basándose en la respuesta (“Accept” or “Reject”). 4.1.3.2 Autentificación y Autorización: El servidor RADIUS puede soportar una gran variedad de métodos de autentificación. Cuando se proporciona el nombre de usuario y la contraseña por el usuario, puede soportar PPP, PAP, UNIX login y otros métodos más. 50 Típicamente el login del usuario consiste de una pregunta (Access-Request) por parte del servidor RADIUS en el AS y una respuesta correspondiente (Access-Accept or Access-Reject) por parte del servidor. El paquete de la petición de acceso (Access-Request) contiene el nombre de usuario, la contraseña encriptada, la dirección IP del AS y el puerto. Cuando el servidor RADIUS recibe la petición de acceso del AS, RADIUS comienza a buscar en la base de datos si el usuario se encuentra. Si el usuario no se encuentra en la base de datos, RADIUS inmediatamente envía el mensaje Access-Reject, el cual puede venir acompañado por un mensaje de texto indicando la razón del rechazo. En RADIUS la autentificación y la autorización se combinan. Si un nombre de usuario es encontrado y la contraseña es correcta, el servidor RADIUS envía el mensaje Access-Accept, incluyendo una lista de atributos que describen los parámetros a ser utilizados en la sesión. Estos parámetros típicamente incluyen: el tipo de servicio, el tipo de protocolo, la dirección IP para asignar al usuario, la lista de acceso en que aplica. La información de la configuración en los servidores RADIUS define lo que será instalado en los AS. La siguiente figura muestra la secuencia de autentificación y autorización en RADIUS. 51 Figura 4.2 Proceso de comunicación cliente/servidor RADIUS 4.1.3.3 Auditoría (“Accounting”) Las características de auditoría del protocolo RADIUS pueden ser utilizadas independientemente de la autentificación y la autorización. Las funciones de auditoría permiten que los datos sean enviados en el comienzo y el final de las sesiones, indicando la cantidad de recursos (tales como tiempo, paquetes, bytes y otros) utilizados durante la sesión. Las transacciones entre el cliente y el servidor RADIUS son autentificadas a través del uso de una clave secreta, la cual nunca es enviada a través de la red. Adicionalmente las contraseñas de los usuarios son enviadas de manera encriptada entre el cliente y el servidor RADIUS para eliminar la posibilidad de que alguien pueda determinar la contraseña de usuario. 52 4.2 Mecanismos de Seguridad en el proceso de Administración de Llaves El protocolo IEEE 802.1X se encarga de la administración de las llaves. Realiza funciones como la unión de la PMK a la STA y al AP, se asegura de que ambos (STA y AP) posean la PMK, se encarga de generar y sincronizar las llaves temporales PTK (“Temporal Key” compartida entre la STA y el AP) y de distribuir las llaves temporales del grupo GTK (“Group Key” entre las STAs y el AP) Figura 4.3 Proceso de la Administración de Llaves 53 Jerarquía de Llaves Llave Maestra Llave Maestra Compartida entre dos entidades Llave Transitoria Compartida entre dos entidades Llave de Confirmación de Llave (KCK) Llave de Cifrado de Llave (KEK) Llave Temporal (TK) Llave Transitoria de Grupo (GTK) Representa una decisión positiva de acceso Representa una autorización de acceder al medio 802.11 Colección de llaves funcionales Utilizada para unir la PTK al AP y la STA, también para probar la posesión de la PKM Utilizada para distribuir la GTK Utilizada para cifrar el tráfico de datos Llaves funcionales de grupo Figura 4.4 Jerarquía de Llaves 2.3.4.1 Cuatro pasos para la obtención de las llaves (“4-Way Handshake”) La PTK es derivada a partir de la PMK, lo cual garantiza que PTK es nueva si “Anonce” o “SNonce” son nuevas. El mensaje 3 es actual si “SNonce” es nueva. El mensaje 2 indica al AP que no hay “man-in-the-middle” y que la STA posee la PTK. El mensaje 3 indica lo mismo. Por su parte, el mensaje 4 no tiene ningún propósito en este momento, pero es necesario por la máquina de estados de 802.1X. 54 Del mensaje 2 al 4 se utiliza KCK como método de autentificación, las TKs instaladas después del mensaje 3. El mensaje 4 está protegido por la “suite” de cifrado de pares. Figura 4.5 “4-Way Handshake” 2.3.4.2 Llave de Grupo La GTK es encriptada utilizando la parte KEK de PTK, la autenticidad está protegida por la parte KCK de PTK. La llave de grupo está protegida contra repeticiones por el contador de repeticiones de EAPoL. El punto de acceso AP intercambia la GTK entre la key ID 1 y 2, se envía una nueva GTK en una nueva “key ID” a todas las STAs asociadas por lo que comienza utilizando una nueva “key ID”. “Gnonce” no tiene un rol importante en el protocolo, pero funciona para avisar que la llave de grupo ha cambiado para las STAs si se pone en la trama “beacon”. 55 Figura 4.6 Establecimiento de una llave de grupo GTK 4.3 Mecanismos de seguridad para proteger la transferencia de datos en las redes inalámbricas 4.3.1 Privacidad equivalente a una red cableada (WEP) El algoritmo WEP forma parte de la especificación 802.11, y se diseñó con el fin de proteger los datos que se transmiten en una conexión inalámbrica mediante cifrado. WEP opera a nivel 2 del modelo OSI y es soportado por la gran mayoría de fabricantes de soluciones inalámbricas. El algoritmo WEP cifra de la siguiente manera: • A la trama en claro se le computa un código de integridad (Integrity Check Value, ICV) mediante el algoritmo CRC-32. Dicho ICV se concatena con la trama, y es empleado más tarde por el receptor para comprobar si la trama ha sido alterada durante el transporte. 56 • Se escoge una clave secreta compartida entre emisor y receptor. Esta clave puede poseer 40 ó 128 bits. • Si se empleara siempre la misma clave secreta para cifrar todas las tramas, dos tramas en claro iguales producirían tramas cifradas similares. Para evitar esta eventualidad, se concatena la clave secreta con un número aleatorio llamado vector de inicialización (IV) de 24 bits. El IV cambia con cada trama. • La concatenación de la clave secreta y el IV (conocida como semilla) se emplea como entrada de un generador RC4 de números seudo-aleatorios. El generador RC4 es capaz de generar una secuencia seudo-aleatoria (o cifra de flujo) tan larga como se desee a partir de la semilla. • El generador RC4 genera una cifra de flujo, del mismo tamaño de la trama a cifrar más 32 bits (para cubrir la longitud de la trama y el ICV). • Se hace un XOR bit por bit de la trama con la secuencia de clave, obteniéndose como resultado la trama cifrada. • El IV y la trama se transmiten juntos. 57 Figura 4.7 Funcionamiento del algoritmo WEP en modalidad de cifrado En el receptor se lleva a cabo el proceso de des-cifrado: • Se emplean el IV recibido y la clave secreta compartida para generar la semilla que se utilizó en el transmisor. • Un generador RC4 produce la cifra de flujo a partir de la semilla. Si la semilla coincide con la empleada en la transmisión, la cifra de flujo también será idéntica a la usada en la transmisión. • Se efectúa un XOR bit por bit de la cifra de flujo y la trama cifrada, obteniéndose de esta manera la trama en claro y el ICV. • A la trama en claro se le aplica el algoritmo CRC-32 para obtener un segundo ICV, que se compara con el recibido. • Si los dos ICV son iguales, la trama se acepta; en caso contrario se rechaza. 58 Figura 4.8 Funcionamiento del algoritmo WEP en modalidad de des-cifrado El algoritmo WEP resuelve aparentemente el problema del cifrado de datos entre emisor y receptor. Sin embargo, existen dos situaciones que hacen que WEP no sea seguro en la manera que es empleado en la mayoría de aplicaciones: • La mayoría de instalaciones emplea WEP con claves de cifrado estáticas (se configura una clave en el punto de acceso y no se la cambia nunca, o muy de vez en cuando). Esto hace posible que un atacante acumule grandes cantidades de texto cifrado con la misma clave y pueda intentar un ataque por fuerza bruta. • El IV que se utiliza es de longitud insuficiente (24 bits). Dado que cada trama se cifra con un IV diferente, solamente es cuestión de tiempo para que se agote el espacio de 224 IV distintos. Esto no es problemático en una red casera con bajo tráfico, pero en una red que posea alto tráfico se puede 59 agotar el espacio de los IV en más o menos 5 horas. Si el atacante logra conseguir dos tramas con IV idéntico, puede efectuar un XOR entre ellas y obtener los textos en claro de ambas tramas mediante un ataque estadístico. Con el texto en claro de una trama y su respectivo texto cifrado se puede obtener la cifra de flujo; conociendo el funcionamiento del algoritmo RC4 es posible entonces obtener la clave secreta y descifrar toda la conversación. • WEP no ofrece servicio de autenticación. El cliente no puede autenticar a la red, ni al contrario; basta con que el equipo móvil y el punto de acceso compartan la clave WEP para que la comunicación pueda llevarse a cabo. Existen en este momento diversas herramientas gratuitas para romper la clave secreta de enlaces protegidos con WEP. El primer programa que hizo esto posible fue WEPCrack, que consiste en una serie de “scripts” escritos en lenguaje Perl diseñados para analizar un archivo de la captura de paquetes de un “sniffer”(espía de la red). La herramienta AirSnort hace lo mismo, pero integra las funciones de “sniffer” y rompedor de claves, y por lo tanto es más fácil de usar. Airsnort captura paquetes pasivamente, y rompe la clave WEP cuando ha capturado suficientes datos. 4.3.2 Protocolo de Clave Temporal de Integridad (TKIP) EL TKIP es una suite de cifrado que mejora el protocolo WEP en hardware pre- RSNA (Entiéndase hardware pre-RSNA es el construido basándose en el estándar 802.11). TKIP modifica WEP de la siguiente manera: 60 • El transmisor calcula el código de integridad de mensaje MIC (Message Integrity Code) cifrado a través del MSDU SA y DA, y los campos “Priority” y “Plaintex data”. TKIP añade el MIC calculado a la MSDU antes de fragmentarse en unidades de datos de protocolo MPDUs MAC (MAC “protocol data units”). El receptor verifica el MIC antes del des-cifrado, además chequea el Valor de comprobación de integridad (IVC “Integrity Check Value”) y defragmenta los MPDUs en un solo MSDU, y descarta todos los MSDUs con MICs inválidas. El protocolo TKIP proporciona protección contra ataques de falsificación. • Puesto que MIC tiene un diseño restringido, es posible para un atacante comprometer la integridad, por esto TKIP también implementa contramedidas. Las contramedidas delimitan la probabilidad de una falsificación exitosa y la cantidad de información que el atacante pueda leer acerca de la clave. • El protocolo TKIP utiliza un contador de secuencia TSC (TKIP “Sequence Counter”) para encadenar los MPDUs que envía. El receptor baja los MPDUs recibidos fuera de orden (no los recibe con secuencia de incremento) proporcionando de esta manera protección contra repeticiones. TKIP codifica el valor de TSC desde el emisor al receptor como una WEP IV o IV extendida. 61 • El protocolo TKIP usa una función criptográfica de mezcla para combinar la clave temporal, la TA y el TSC dentro de la semilla WEP. El receptor recobra el TSC a partir de la MPDU y utiliza la función de mezcla para calcular la semilla WEP que es necesaria para descifrar la MPDU. La clave producida por la función de mezcla está diseñada para vencer los ataques de claves débiles que se originaban contra la clave WEP TKIP mejora la encapsulación utilizada por WEP con varias funciones adicionales: • El cálculo de MIC para proteger el campo de datos y los correspondientes campos SA, DA y “Priority” de la MSDU. El cálculo del MIC es ejecutado en el orden de concatenación de SA, DA, campos de prioridad y el campo de los datos en la MSDU. El MIC es anexado al campo de los datos de la MSDU. • Si fuese necesario, se fragmenta la MSDU con una MIC dentro de una o más MPDUs. TKIP asigna un valor de TSC que se incrementa para cada MPDU, teniendo cuidado que todos los MPDUs generados por la misma MSDU tienen el mismo valor del vector de inicialización extendido IV. • Para cada MPDU, TKIP utiliza la función mezcla de clave para calcular la semilla WEP. 62 • TKIP representa la semilla WEP como WEP IV y la clave RC4 y la pasa con cada MPDU para la generación de la ICV y para cifrar el texto plano de la MPDU, incluyendo la MIC si está presente. Figura 4.9 Diagrama de encapsulación de bloque en TKIP El proceso de des-encapsulación de TKIP mejora a WEP por medio de los siguientes pasos: • Antes de que WEP des-encapsule una MPDU recibida, TKIP extrae el número de secuencia TSC y el identificador de clave a partir de WEP IV y el IV extendido. TKIP descarta los MPDU recibidos que violan las reglas de secuencia, si no se procede a utilizar la función mezcla para construir la semilla WEP. 63 • TKIP representa la semilla WEP como WEP IV y la clave RC4, y la pasa con la MPDU para la des-encapsulación con WEP. • Si WEP indica que el ICV ha sido verificado satisfactoriamente, la implementación reensambla el MPDU dentro de un MSDU. Si la defragmentación de la MSDU ha sido exitosa, el receptor verifica el TKIP MIC. Si falla la defragmentación, la MSDU es descartada. • El paso de verificación del MIC recalcula el MIC a partir del MSDU SA, DA, los campos de prioridad (“Priority”) y el campo de los datos (pero no el campo MIC). El resultado del MIC calculado es comparado bit a bit contra el MIC recibido. • Si el valor recibido y el cálculo del MIC son idénticos, el proceso de verificación es exitoso, y el TKIP debe enviar la MSDU a la capa siguiente superior (del modelo OSI). Si las MIC difieren, la verificación falla y el receptor debe descartar el MSDU y debe ocuparse de realizar las medidas en contra correspondientes. 64 Figura 4.10 Diagrama de des-encapsulación de bloque en TKIP 4.3.2.1 Formatos de MPDU con TKIP TKIP reutiliza el formato de las MPDUs utilizado en el estándar 802.11 (pre- RSNA). TKIP extiende las MPDUs en 4 bytes acomodándolos como extensión al IV WEP, designado como campo Extended IV, también se extiende el formato de la MSDU en 8 bytes acomodándolos como el nuevo campo MIC. TKIP introduce el campo Extended IV inmediatamente después del campo WEP IV y antes de los datos encriptados. TKIP adjunta el MIC al campo de datos de la MSDU. El MIC es entonces parte de los datos encriptados. Primero la MIC es anexada a los datos de la MSDU. Los bytes adicionados por MIC son considerados como parte de la MSDU para la fragmentación subsiguiente. 65 Figura 4.7 Construcción de la MPDU extendida El bit Ext IV en el campo keyID indica la presencia o ausencia de un IV extendido. Si el bit Ext IV es cero, sólo se transmite el IV no extendido. Si el ExtIV es uno, se incrementa en 4 bytes el IV. Para TKIP este bit debe estar en uno, y para WEP en cero. TSC5 es el byte mas significativo del campo TSC, y TSC0 es el menos significativo. Los bytes TSC0 y TSC1 forman el número de secuencia del IV y son usados con la segunda fase de mezcla en TKIP. Los bytes TSC2 a TSC5 son usados en la primera fase de mezcla (“key hashing”) y están en el campo Extended IV. 4.3.2.2 TKIP MIC Fallas en el diseño de WEP causaron deficiencias en la protección del tráfico de datos, lo cual producía que las tramas fueran vulnerables a ataques de espías de información (“eavesdroppers”). Entre las fallas más significativas de WEP es la falta de un mecanismo que combata la falsificación de mensajes y otros tipos de ataques similares. Para la defensa contra ataques activos, TKIP incluye a MIC llamado también Michael. MIC ofrece una débil defensa contra la falsificación de mensajes, pero constituye lo mejor que se 66 puede lograr con la mayoría del hardware. TKIP utiliza diferentes llaves MIC dependiendo de la dirección de la transferencia. Antes de definir los detalles de MIC, sería útil revisar el contexto en el cual este mecanismo opera. Entre los ataques activos habilitados por el diseño original de WEP podemos citar: • Ataques de cambio de bits • Modificación de datos mediante concatenación y truncamiento • Ataques de fragmentación de datos • Ataques de adivinar la clave mediante procesos iterativos • Ataques de imitación que modifican los campos SA y TA de las MPDU MIC hace que estos ataques se dificulten pero no elimina la posibilidad de que sucedan. Todos estos ataques permanecen en el nivel MPDU con el MIC. No obstante el MIC se aplica al MSDU, por lo que bloquea de manera exitosa los ataques a nivel de MPDU. TKIP aplica el MIC al MSDU en el transmisor y verifica el MSDU en el nivel receptor. Si MIC comprueba fallas en el nivel MSDU, la implementación debe descartar el MSDU e invoca las medidas a tomar en contra de esta situación. 67 Figura 4.8 Relación entre la MIC TKIP y el proceso IEEE 802.11 Esta figura representa una arquitectura donde el MIC es lógicamente anexado al MSDU. EL MIC es calculado sobre la DA y SA de la MSDU, MSDU “Priority” (espacio reservado para uso futuro) y los datos íntegros no encriptados de la MSDU. Los campos DA y SA y los tres bytes reservados y 1 byte del campo de “Priority” son los usados para calcular el MIC. El campo “Piority” debe ser 0 y reservado para uso futuro. Figura 4.9 Formato de la elaboración TKIP MIC TKIP anexa el MIC al final de la carga útil (“payload”) de la MSDU. El MIC es de 8 bytes en tamaño para Michael. La MAC del estándar 802.11 aplica entonces el proceso normal para transmitir esta MSDU con MIC como una secuencia de uno o más MPDUs. En otras palabras, la MSDU con el MIC puede ser particionada para consistir en dos MPDUs después de la fragmentación El MIC aumenta, pero no reemplaza el ICV WEP. Dado que MIC TKIP es de débil construcción, TKIP protege la MIC cifrándola, logrando así que los ataques de 68 falsificaciones se dificulten más. El WEP ICV ayuda a prevenir la detección de falsas fallas que puedan causar que se invoquen las medidas en contra. El receptor revierte este proceso reensamblando la MSDU y después de que la MSDU ha sido lógicamente reensamblada, la MAC IEEE 802.11 verifica la MIC antes de reenviar la MSDU a las siguientes capas del modelo de comunicaciones. Si la validación del MIC es exitosa, la MAC envía la MSDU. Si la validación falla, la MAC debe descartar la MSDU e invocar las medidas a tomar en contra. El cálculo de la MIC sobre las MSDUs en vez de las MPDUs incrementa la flexibilidad en la implementación en el hardware preexistente que opera sobre WEP. Se debe notar también que solamente MIC no puede proporcionar protección contra falsificación, así como tampoco puede defender contra ataques de repetición. Por consiguiente, TKIP proporciona la detección de repeticiones por la secuencia del TSC y la validación del ICV. 4.3.2.3 Medidas a tomar contra ataques Cuando se produce un fallo en la validación de la MIC, TKIP invoca las medidas en contra, esto porque MIC no ofrece una fuerte protección contra ataques activos. Los principales objetivos de las medidas en contra son: • Los eventos que producen fallas en la MIC deben ser tomados como asuntos relevantes de seguridad. Una falla en la MIC es por lo general un indicador de un ataque activo, y autoriza el monitoreo del sistema administrador. 69 • La tasa de fallas en la MIC debe mantenerse por debajo de dos por minuto. Esto implica que si se detectan dos fallas en menos de 60s se deben deshabilitar todas las recepciones por un periodo de 60s. Este retardo dificulta los ataques de muchos intentos en poco tiempo (ataques iterativos para adivinar contraseñas como los ataques de fuerza bruta). Como característica adicional, se cambian las llaves PTK (Pairwise Transient Key) y GTK (Group Transient Key). Luego de verificar la MIC el receptor debe verificar el FCS, IVC y el TSC con todas las MPDUs vinculadas. Cualquier MPDU que tenga el FCS inválido, un ICV incorrecto o un valor de TSC que es menor que o igual que el contador de repeticiones TSC debe descartarse antes de comprobar la MIC. Esto evita eventos de falla de la MIC innecesarios. Verificando el TSC antes que la MIC hace que se dificulten los ataques de DoS (Denegación de Servicio) basados en las medidas en contra. Mientras que los mecanismos FCS y ICV son suficientes para detectar ruido, estos son insuficientes para detectar ataques activos, debido que estos mecanismos proporcionan detección de errores y no protección de la integridad de los datos La STA (suplicante) utiliza la trama “Michael MIC Failure Report” para reportar una falla en la MIC al autentificador. Esta trama es una llave EAPoL (EAP over LAN) que está protegida con la llave PTK actual. La STA (suplicante) utiliza la parte KCK de la llave PTK para calcular la MIC IEEE 802.1X EAPoL. La primera falla de la MIC debe ser registrada, y un temporizador debe iniciarse para habilitar la ejecución de las medidas en contra. Si la falla es detectada por la STA 70 (suplicante), esta debe ser reportada al AP enviando la trama “Michael MIC Failure Report”. Si se produce otra falla en los próximos 60s respecto a la primera falla, la STA que posee una entidad IEEE 802.1X que aparenta ser un suplicante, debe ser desautentificado por sí mismo o desautentificar todas las STAs con una asociación segura, si la entidad 802.1X aparenta ser el autentificador. 4.3.3 Protocolo CTR con CBS-MAC (CCMP) CCMP está basado en CCM del algoritmo de cifrado AES. CCM combina CTR para la confidencialidad y CBC-MAC para la autentificación y la integridad. CCM protege la integridad del campo de datos de la MPDU y partes de la cabecera MPDU. El algoritmo AES es definido por la publicación FIPS PUB 197. Todos los procesos AES usados con CCMP utilizan 128 bits de llave y un tamaño de bloque de 128 bits. CCM se define en la publicación RFC 3610 de la IETF. CCM es un modo genérico que puede ser usado con cualquier algoritmo de cifrado orientado a bloques. CCM posee dos parámetros (M y L), y CCMP utiliza los siguientes valores para los parámetros CCM: • M = 8 indicando que el MIC es de 8 bytes • L = 2 indicando que el campo de “Length” es de 2 bytes, lo cual es suficiente para contener la longitud máxima de una MPDU. CCM requiere una llave temporal reciente para cada sesión. CCM también requiere un único valor para cada trama protegido por una llave temporal. CCMP utiliza un número 71 de paquete (PN) de 48 bit para este propósito. Si se reutiliza un PN con la misma llave temporal, se invalidan todas las garantías de seguridad. 4.3.3.1 Formato de la MPDU con CCMP El procedimiento con CCMP expande el tamaño original en 16 bytes, de los cuales 8 bytes son para el campo de la cabecera de CCMP y los otros 8 bytes para el campo MIC. El campo de la cabecera CCMP es construido a partir de los subcampos PN, el ExtIV y el Key ID. PN se representa como un arreglo de 6 bytes. PN5 es el byte más significativo de PN, y PN0 el menos significativo. Es importante notar que CCMP no utiliza el ICV WEP. El subcampo ExtIV (bit 5) del “byte Key ID” indica que el campo de la cabecera CCMP extiende la cabecera de la MPDU en 8 bytes, para CCMP el bit 5 de ExtIV siempre esta habilitado (1 logico). Figura 4.10 MPDU expandida en CCMP 4.3.3.2 Encapsulación en CCMP El proceso de encapsulación se muestra en la siguiente figura: 72 Figura 4.11 Diagrama de encapsulación de bloques CCMP CCMP encripta la carga útil de la MPDU que se encuentra en texto plano y encapsula el texto cifrado resultante utilizando los siguientes pasos: • Incrementa el PN (Número de Paquete) para obtener un nuevo PN para cada MPDU, por lo que el PN nunca se repite para la misma llave temporal. Note que las MPDUs retransmitidas no son modificadas en la retransmisión. • Utiliza los campos en la cabecera de la MPDU para construir los datos de autentificación adicionales (AAD) para CCM. El algoritmo CCM proporciona protección de la integridad para los campos incluyendo el AAD. • Se construye el bloque “CCM Nonce” a partir de PN, A2 y el campo “Priority” de la MPDU, donde A2 es la dirección 2 de la MPDU. El campo “Priority” tiene un valor reservado puesto en 0. 73 • Se coloca el nuevo PN y el identificador de llave dentro de los 8 bytes de la cabecera CCMP. • Se utiliza la llave temporal, AAD, Nonce y los datos MPDU para formar el texto cifrado y la MIC. Este paso es conocido como el creador del proceso CCM. • Se forma la MPDU encriptada combinando la cabecera original de MPDU, la cabecera del CCMP, los datos encriptados y la MIC. 4.3.3.3 Construcción de la AAD El formato de la AAD se muestra en la siguiente figura: Figura 4.12 Construcción de AAD La AAD es construida a partir de la cabecera de la MPDU. La AAD no incluye el campo “Duration” por que este puede cambiar su valor debido a la operación normal del estándar 802.11 (por ejemplo, la velocidad cambia durante la retransmisión). Por razones similares, varios subcampos en el campo FC (Frame Control) se enmascaran a cero. La construcción de la AAD se realiza de la siguiente manera: 74 Tabla 4.1 Características de los campos de AAD FC (Campo de Control de Trama) Subcampos bits se ponen en bits 4 5 bits de sub-tipos 6 0 bit de reintento bit 11 0 bit PwrMgt bit 12 0 bit de mas datos bit 13 0 bit de proteccion de trama bit 14 1 Campo de la dirección 1 de la MPDU Campo de la dirección 2 de la MPDU Campo de la dirección 3 de la MPDU A1 A2 A3 SC (Campo de Control de Secuencia) Subcampos bits se pone en bits de Numero de Secuencia bits 4-15 0 Numero de Fragmento no se modifica Campo de la dirección 4 de la MPDU Si se encuentra presente en la MPDU A4 Calidad de Servicio (2 bytes) QC Si se encuentra presente en la MPDU, además está reservado para uso futuro La longitud de la AAD es de 22 bytes cuando no está el campo A4 y 28 bytes cuando sí está. 4.3.3.4 Construcción del CCM Nonce El campo Nonce (momento presente) ocupa 13 bytes, como se muestra en la siguiente figura: 75 Figura 4.13 Construcción de Nonce El campo Nonce tiene una estructura donde: • El byte del campo “Priority” debe ser cero y reservado para uso futuro • El campo de la Dirección 2 A2 es de 6 bytes. Este debe ser codificado con los bytes ordenados como A2 byte 0 como el byte de “índice 1”, y A2 byte 5 como el “índice 6” • El campo PN ocupa 6 bytes. Los bytes de PN deben ser ordenados de modo que PN0 es el “índice 12” y PN5 el “índice 7”. 4.3.3.5 Construcción de la cabecera CCMP CCM es un modo genérico de cifrado para cifrar y autentificar y en la mejora del estándar 802.11, CCM es utilizado con bloque de cifrado AES. Son cuatro las entradas para el creador del proceso CCM: • Key: La llave temporal (6 bytes) • Nonce: (13 bytes) 76 • “Frame Body”: El cuerpo de la trama de la MPDU (1-2296 bytes, 2296 = 2312 - 8 (MIC) – 8 (cabecera de CCMP)) • AAD: (entre 22-30 bytes) El creador del proceso CCM proporciona autentificación e integridad del cuerpo de la trama y la AAD igualmente proporciona confidencialidad al cuerpo de la trama. La salida del creador del proceso CCM consiste en los datos encriptados y 8 bytes adicionales del MIC encriptado. 4.3.3.6 Des-encapsulación en CCMP La siguiente figura describe el proceso de des-encapsulación del proceso. Figura 4.14 Diagrama de bloques de la des-encapsulación CCMP CCMP decripta la carga útil (“payload”) del texto cifrado y desencapsula en texto plano la MPDU usando los siguientes pasos. 77 • La MPDU encriptada es segmentada para construir la AAD y los valores Nonce. • La AAD se forma a partir de la cabecera de la MPDU de la MPDU encriptada • El valor de Nonce se construye a partir de A2, PN y los bytes del campo “Priority”. • La MIC es extraída para ser usada en el chequeo de integridad. • El procedimiento del receptor CCM utiliza la llave temporal, AAD, Nonce, MIC y el texto cifrado de los datos de la MPDU para recuperar el texto plano así como también el chequeo de la integridad de la AAD y el texto plano de la MPDU. • La cabecera y el texto plano de datos de la MPDU recibida desde el procedimiento del receptor CCM debe ser concatenado para formar el texto plano de la MPDU. • El procedimiento de des-cifrado previene la repetición de las MPDUs, validando que el PN en la MPDU es mayor que el valor que se encuentra en el contador para la sesión. 78 4.3.3.7 Procedimiento del receptor CCM El procedimiento CCM del receptor debe utilizar los mismos parámetros que el procedimiento del que originó el CCM. Son cuatro entradas para el procedimiento CCM en el receptor: • Key: la llave temporal (16 bytes) • Nonce: (13 bytes) • Encripted frame body: el cuerpo de la trama encriptada de la MPDU recibida. La trama encriptada incluye un MIC de 8 bytes (9 – 2304 bytes). • AAD: (22 – 30 bytes) El procedimiento CCM del receptor verifica la autenticidad y la integridad del cuerpo trama y la AAD así como también se desencripta el cuerpo de la trama. El texto plano es devuelto sólo si la verificación de la MIC es exitosa. Hay una salida libre de errores en el procedimiento CCM del receptor: • Frame Body: el cuerpo de la trama en texto plano, el cual es 8 bytes más pequeño que el cuerpo de la trama encriptado. El proceso de des-encapsulación es exitoso cuando la MIC calculada es igual al valor de la MIC obtenido del des-cifrado de la MPDU. La cabecera original es concatenada con los datos en texto plano como resultado de un proceso CCM exitoso en el receptor para crear la MPDU de texto plano. 79 Para la detección de repeticiones, el receptor extrae el PN a partir de la cabecera CCMP, para la detección de repeticiones se utilizan las siguientes reglas: • El valor de PN enumera secuencialmente cada MPDU • Cada transmisor debe mantener un contador PN de 48 bits para cada PTKSA, GTSKA y STAKeySA. • El PN debe ser implementado en 48 bits, debe ser positivo e incrementarse monótonamente, se debe inicializar en 1 cuando la correspondiente llave temporal es inicializada o renovada. • El receptor debe mantener un set separado de contadores de repetición de PN para cada PTKSA, GTKSA y STAKeySA. El receptor inicializa estos contadores de repetición en cero cuando se resetea la llave temporal. El contador de repeticiones adquiere el valor de PN de las MPDUs aceptadas por CCMP. • Para cada PTKSA, GTKSA y STAKeySA, el receptor debe mantener un contador de repeticiones separado para cada MSDU IEEE 802.11 y debe utilizar el PN de cada trama para detectar la repetición de tramas, sujeto a la limitación del número de contadores de repeticiones soportados, los cuales se indican en el campo “RSN Capabilities”. La repetición de una trama ocurre cuando el PN extraído de la trama recibida es menor o igual que el valor actual del contador de repeticiones. El transmisor no debe utilizar las prioridades de MSDU sin asegurarse que el receptor soporta el número 80 requerido de contadores de repetición. El transmisor no debe reordenar las tramas dentro del contador de repeticiones, pero puede reordenar las tramas a través de los contadores de repetición. Una posible razón para reordenar las tramas es la prioridad de la MSDU. • El receptor debe descartar la MPDUs cuyos valores de PN no son secuenciales. El receptor debe descartar cualquier MPDU en la cual PN sea menor o igual que el contador de repetición. CAPÍTULO 5: Mecanismos de Seguridad alternativos que están fuera de los Estándares en las redes WLAN En los capítulos anteriores sólo se han tratado los mecanismos de seguridad establecidos en los estándares de la IEEE y la Wi-Fi Alliance. En este capítulo se abarcara algunos mecanismos de seguridad que fueron diseñados específicamente para las redes cableadas, pero que han dado muy buenos resultados en las redes inalámbricas. Entre los mecanismos que se trataran están las VPNs y el filtrado de direcciones MAC. Además se realizara una breve discusión de las vulnerabilidades de cada método. 5.1 Filtrado de direcciones MAC Este método consiste en la creación de una tabla de datos en cada uno de los puntos de acceso a la red inalámbrica. Dicha tabla contiene las direcciones MAC (“Media Access Control”) de las tarjetas de red inalámbricas que se pueden conectar al punto de acceso. Como toda tarjeta de red posee una dirección MAC única, se logra autenticar el equipo. Este método tiene como ventaja su sencillez, por lo cual se puede usar para redes caseras o pequeñas. Sin embargo, posee muchas desventajas que lo hacen impráctico para uso en redes medianas o grandes: • No escala bien, porque cada vez que se desee autorizar o dar de baja un equipo, es necesario editar las tablas de direcciones de todos los puntos de acceso. Después de cierto número de equipos o de puntos de acceso, la situación se torna inmanejable. 81 82 • El formato de una dirección MAC no es amigable (normalmente se escriben como 6 bytes en hexadecimal), lo que puede llevar a cometer errores en la manipulación de las listas. • Las direcciones MAC viajan sin cifrar por el aire. Un atacante podría capturar direcciones MAC de tarjetas matriculadas en la red empleando un “sniffer” (programa que espia la red), y luego asignarle una de estas direcciones capturadas a la tarjeta de su computador, empleando programas tales como AirJack6 o WellenReiter, entre otros. De este modo, el atacante puede hacerse pasar por un cliente válido. • En caso de robo de un equipo inalámbrico, el ladrón dispondrá de un dispositivo que la red reconoce como válido. En caso de que el elemento robado sea un punto de acceso el problema es más serio, porque el punto de acceso contiene toda la tabla de direcciones válidas en su memoria de configuración. Debe notarse además, que este método no garantiza la confidencialidad de la información transmitida, ya que no prevé ningún mecanismo de cifrado. 5.2 Las Redes Privadas Virtuales (VPN) Una red privada virtual (VPN) emplea tecnologías de cifrado para crear un canal virtual privado sobre una red de uso público. Las VPN resultan especialmente atractivas para proteger redes inalámbricas, debido a que funcionan sobre cualquier tipo de hardware inalámbrico y superan las limitaciones de WEP. Para configurar una red inalámbrica utilizando las VPN, debe comenzarse por asumir que la red inalámbrica es insegura. Esto quiere decir que la parte de la red que 83 maneja el acceso inalámbrico debe estar aislada del resto de la red, mediante el uso de una lista de acceso adecuada en un enrutador, o agrupando todos los puertos de acceso inalámbrico en una VLAN si se emplea “switching”. Dicha lista de acceso y/o VLAN solamente debe permitir el acceso del cliente inalámbrico a los servidores de autorización y autenticación de la VPN. Deberá permitirse acceso completo al cliente, sólo cuando éste ha sido debidamente autorizado y autenticado. Figura 5.1 Estructura de una VPN para acceso inalámbrico seguro Los servidores de VPN se encargan de autenticar y autorizar a los clientes inalámbricos, y de cifrar todo el tráfico desde y hacia dichos clientes. Dado que los datos se cifran en un nivel superior del modelo OSI, no es necesario emplear WEP en este esquema. 84 CAPÍTULO 6: Ataques que podrían sufrir las redes inalámbricas Vista la manera de romper la cifrado WEP ya no debería ser un problema para nosotros, por eso en la implementación de los ataques que vamos a ver a continuación no vamos a hablar de WEP ya que si la WLAN que estamos “auditando” tiene cifrado WEP ya disponemos de las herramientas necesarias para obtener la clave y por tanto, podremos realizar los distintos ataques tanto si existe cifrado WEP como si no. 6.1 Romper ACL’s basados en MAC Una de las medidas más comunes que se utilizan para asegurar una red inalámbrica es restringir las máquinas que podrán comunicarse con el Punto de Acceso haciendo filtrado por dirección MAC en éste. Para esto se suele crear una tabla en el punto de acceso que contiene todas las MACs de los clientes que están autorizados para conectar. Aunque esto pueda parecer una medida de seguridad efectiva, no lo es, ya que es muy fácil cambiar la dirección MAC que aparece en los paquetes que un cliente envía, y hacernos pasar por uno de los equipos que sí tienen acceso a la red. Para llevar a cabo el ataque basta con espiar durante un momento el tráfico y fijarnos en la MAC de cualquiera de los clientes, sólo hace falta que nos pongamos su misma MAC y ya habremos saltado la restricción. Esto es sencillo de implementar; por ejemplo en el sistema operativo Linux se puede realizar con el comando ifconfig dependiendo del tipo de tarjeta que tengamos. También existen otras utilidades para cambiar la MAC como por ejemplo setmac. Hay que tener en cuenta que si hay dos 85 máquinas en la red con la misma dirección MAC podemos tener problemas, aunque generalmente en las redes inalámbricas esto no suele ser un problema muy grave ya que el Punto de Acceso no puede distinguir que verdaderamente hay dos máquinas con la misma MAC. De todas formas, si queremos podemos “anular” a la máquina que le hemos “robado” la dirección MAC. Para hacer esto, debemos implementar un ataque de Denegación de Servicio, como el que veremos seguidamente. 6.2 Ataque de Denegación de Servicio (DoS) Para realizar este ataque basta con espiar durante un momento la red y ver cual es la dirección MAC del Punto de Acceso. Una vez que conocemos su MAC, nos la ponemos y actuamos como si fuéramos nosotros mismos el AP. Lo único que tenemos que hacer para denegarle el servicio a un cliente es mandarle continuamente notificaciones (management frames) de des-asociación o des-autenticación. Si en lugar de a un solo cliente queremos denegar el servicio a todos los clientes de la WLAN, mandamos estas tramas a la dirección MAC de broadcast. Existen varias herramientas para realizar este ataque, las más comunes para el sistema operativo Linux son: • wlan-jack: perteneciente a las utilidades air-jack, presentadas en la conferencia Black Hat 2002 en Las Vegas, se puede encontrar en http://802.11ninja.net. • dassoc: envía tramas de des-asociación, herramienta desarrollada por @stake (antes L0pht), se puede encontrar en http://www.atstake.com. 86 6.3 Descubrir ESSID ocultos Como hemos comentado anteriormente, para que un cliente y un AP se puedan comunicar, ambos deben tener configurado el mismo ESSID, es decir, deben pertenecer a la misma red inalámbrica. Una medida de seguridad bastante común es “ocultar” el ESSID, es decir, hacer que el AP no mande “BEACON FRAMES”, o en su defecto no incluya el ESSID en éstos. En este caso, para descubrir el ESSID deberíamos espiar y esperar a que un cliente se conectara, y veríamos el ESSID en la trama “PROVE REQUEST” del cliente (en el caso de que no se manden “BEACON FRAMES”), o en la trama “PROVE RESPONSE” del AP. Pero también podemos “provocar” la desconexión de un cliente, utilizando el mismo método que en el ataque DoS, pero mandando sólo una trama de desasociación o de des-autenticación en lugar de mandarlas repetidamente, es decir, nos ponemos la dirección física del AP y mandamos una trama de desasociación o de desautenticación a la dirección MAC del cliente (o a la de broadcast), entonces el cliente intentará volver a asociarse o autenticarse, con lo que podremos ver el ESSID en los “management frames”. Para implementar el ataque podemos usar la herramienta essid-jack, que también pertenece al paquete de utilidades air-jack para Linux (http://802.11ninja.net). 6.4 Ataque Man in the middle El ataque de “Man in the middle”, también conocido como “Monkey in the middle” consiste en convencer al cliente (la víctima) de que el host que hay en el medio (el atacante) es el AP, y hacer lo contrario con el AP, es decir, hacerle creer al AP que el atacante es el cliente. 87 Figura 6.1 WLAN antes del ataque Para realizar este ataque, primero debemos espiar para obtener: • El ESSID de la red (si está oculto, usaremos el método anterior) • La dirección MAC del AP • La dirección MAC de la víctima Una vez conocidos estos datos, utilizamos el mismo método que en el ataque DoS, para des-autenticar a la víctima del AP real, es decir, el atacante roba su MAC haciéndose pasar por el AP y manda tramas de des-autenticación a la víctima. La tarjeta wi-fi de la víctima empezará entonces a escanear canales en busca de un AP para poderse autenticar, y ahí es donde entra en juego el atacante. El atacante hace creer a la víctima que él es el AP real, utilizando la misma MAC y el mismo ESSID que el AP al que la víctima estaba conectada anteriormente, pero operando por un canal distinto. Para realizar esto la tarjeta wi-fi del atacante debe estar en modo master. 88 Por otra parte, el atacante debe asociarse con el AP real, utilizando la dirección MAC de la víctima. De esta manera hemos conseguido insertar al atacante entre la víctima y el AP, veamos como quedaría la WLAN después de realizar el ataque. Figura 6.2 WLAN después del ataque De esta manera todos los datos que viajan entre la víctima y el AP pasan a través del atacante. Como el ataque ha sido realizado a nivel de enlace (nivel 2), el atacante puede ver, capturar e incluso modificar las tramas en los niveles superiores del modelo OSI. Es muy fácil implementar este tipo de ataques utilizando el driver air-jack con la herramienta monkey-jack. Hay que tener en cuenta que muchas soluciones de seguridad están pensadas asumiendo que las capas 1 y 2 son seguras, esto como hemos visto es incierto para las redes inalámbricas y por tanto el uso de algún tipo de solución podría no ser adecuado para estas redes. Hay que ir con mucho cuidado sobre todo en implementaciones de VPN que no realizan las comprobaciones necesarias de autenticación para protegerse de ataques “Man in the middle” en redes inalámbricas. 89 6.5 Envenenamiento de la cache de las tablas ARP Este ataque sólo se puede llevar a cabo cuando el atacante está conectado a la misma LAN lógica que las víctimas, limitando su efectividad a redes conectadas con “switches”, “hubs” y “bridges”, pero no “routers”. La mayoría de los Puntos de Acceso 802.11b actúan como “bridges” transparentes de capa 2, lo que permite que los paquetes ARP pasen de la red inalámbrica hacia la LAN donde está conectado el AP y viceversa. Esto permite que se ejecuten ataques de envenenamiento de la cache de las tablas ARP contra sistemas que están situados detrás del Punto de Acceso, como por ejemplo servidores conectados a un “switch” en una LAN a los que se pueda acceder a través de la WLAN. Vamos a ver el ejemplo para entender mejor la idea: Figura 6.3 La red antes del ataque El servidor PC 1 se comunica con PC 3 a través del “switch”, si un atacante desde la WLAN envenena la tabla de ARP’s de PC 1 y de PC 3 podrá realizar un ataque del tipo 90 “Man in the Middle” situándose entre los dos “hosts” de la red con cables. Así es como se efectuaría la comunicación después del ataque: Figura 6.4 La red después del ataque El atacante manda paquetes ARP REPLY a PC 2 diciendo que la dirección IP de PC 1 la tiene la MAC del atacante, de esta manera consigue “envenenar” la caché de ARP’s de PC 2. Luego realiza la misma operación atacando a PC 1 y haciéndole creer que la dirección IP de PC 2 la tiene también su propia MAC. Como ARP es un protocolo sin estado “stateless”, PC 1 y PC 2 actualizan su caché de acuerdo a la información que el atacante ha inyectado a la red. Como el “switch” y el AP forman parte del mismo dominio de “broadcast”, los paquetes ARP pasan de la red inalámbrica a la red con cables sin ningún problema. Para realizar el ataque de envenenamiento ARP, existen múltiples herramientas en Internet, ya que este ataque no es específico de las redes inalámbricas, la más famosa es el “sniffer” Ettercap (http://ettercap.sourceforge.net). 91 Podríamos frenar este ataque creando dos VLAN’s en el “switch”, una para la boca a la que está conectado el AP y la otra para el resto de máquinas. Otra forma de frenarlo sería utilizando tablas de ARP estáticas. 92 CAPÍTULO 7: Definiendo la mejor alternativa para las redes inalámbricas de la Escuela de Ingeniería Eléctrica y el Decanato de Ingeniería. En las redes inalámbricas es necesario establecer medidas de seguridad superiores a las redes cableadas debido a las vulnerabilidades físicas que posee el medio inalámbrico. Una red inalámbrica puede ser atacada hasta de 10km de distancia, debido a que existen antenas que permiten este alcance, esto significa que se puede estar espiando la información que pasa por la red sin dejar ninguna evidencia. A partir de este escenario, se pueden definir las características necesarias para mantener el nivel de seguridad requerido para red. Para poder evaluar cual es la solución más recomendable dentro de las planteadas en este trabajo, es necesario compararlas. Además es necesario establecer puntos de referencia según las necesidades de seguridad de la red para de esta manera, ver cuales son los mecanismos que más se ajustan a dichas necesidades planteadas. Para establecer seguridad en un medio inseguro como las redes inalámbricas, es necesario establecer ciertos requisitos como: Privacidad: Esto implica asegurarse que la información no sea espiada, copiada o utilizada con fines que puedan perjudicar a su dueño. Esto se logra usualmente mediante algoritmos de cifrado. Autentificación: Esto implica que ambos puntos del enlace se aseguren de que la información que se intercambia realmente provenga del otro extremo, y que no venga de un tercer elemento. 93 Integridad: La integridad del mensaje es necesaria para asegurar que la información que llega no haya sido alterada. Controles de repetición: Esto es necesario para evitar ataques de repetición. Lo que se utiliza es una especie de contador para evitar que se inserten paquetes en la red, con números que no corresponden a la secuencia que se tenía. Tabla 7.1 Tabla comparativa de los mecanismos de seguridad en las redes inalámbricas WEP WPA WPA2 Filtrado de MAC VPNs Privacidad (Llaves simetricas) RC4 RC4 AES No tiene 3DES AES Blowfish y otros Autentificación Sistema Abierto y Llave Compartida WEP Sistema Abierto y TKIP Sistema Abierto y CCMP o TKIP Direcciones MAC registradas en la lista de acceso SSL/TLS PKI X509 IKE Integridad CRC-32 MIC CCM No tiene SHA-1 MD5 128 bits N/A Parametro Configurable Tamaño de llave Vida de la llave Integridad de la cabecera Administración de llaves 128 bits de cifrado de 40 o 104 bits 64bits de autentificación 24 bit IV 48 bit IV 48 bit IV N/A - ninguna Michael CCM N/A HMAC niguna basada en EAP basada en EAP N/A PKI y IKE Como se ha podido ver a lo largo del documento, el sistema de seguridad WEP no es lo suficiente seguro, existen muchas herramientas en Internet para lograr vulnerarlo. Lo 94 único que se necesita es una computadora, una tarjeta de red que soporte el modo monitor y uno de los tantos programas para quebrantarlo, el más conocido es kismet. Además de esto WEP no proporciona seguridad contra ataques de repetición como se muestra en la Tabla 7.1. Por estos motivos, WEP no puede ser considerado como opción ya que no cumple como mecanismo de seguridad efectivo. WPA es mucho mejor que WEP, pero es vulnerable si no se configura apropiadamente. La vulnerabilidad más conocida de WPA se presenta cuando las llaves de autentificación son muy cortas, ya que presenta vulnerabilidades ante ataques de diccionario. WPA2 está basado en el estándar IEEE 802.11i , hasta el momento no se le conoce ninguna vulnerabilidad. A diferencia de WPA y WEP se utiliza un mejor mecanismo de cifrado basado en AES, esta novedad es una gran mejora en el cifrado pero a la vez provoca que no haya compatibilidad hacia atrás. Las principales ventajas que poseen los mecanismos de seguridad estandarizados, radica en que sus implementaciones se realizan a partir de la capa 2 del modelo de comunicaciones OSI, esto significa que no es necesario implementar seguridad en las capas superiores del modelo de comunicaciones, esto a menos que se establezcan políticas de seguridad que establezcan restricciones a ciertos recursos. Otra ventaja es el estándar, esto quiere decir que todos los equipos que cumplan con el estándar tendrán implementado el mecanismo de seguridad a nivel del dispositivo. El principal problema de los mecanismos de seguridad basados en los estándares es que hasta hace poco se logró obtener un mecanismo que fuera realmente un buen elemento 95 de seguridad (WPA2). Esto provocó también que algunos de los mecanismos de seguridad anteriores (WEP y WPA) fueran incompatibles a nivel de hardware con WPA2, esto quiere decir, que si tengo varios equipos, comprados en distintos periodos de tiempo, es probable que vaya a tener equipos incompatibles con el estándar WPA2, y no vaya a poder implementar un buen sistema de seguridad. El filtrado de direcciones MAC está totalmente descartado a menos que se implemente en conjunto con otros mecanismos de seguridad. Esto debido a que muchas tarjetas tienen la posibilidad de cambiarse la dirección MAC. Las VPNs han sido desarrolladas con el objetivo de realizar una conexión segura a través de un medio inseguro como lo es Internet. Como el medio inalámbrico también es considerado inseguro, las VPNs se muestran como una buena opción para implementar la seguridad en las redes inalámbricas. Una de las principales ventajas de las VPNs es que la instalación se hace a nivel de software, esto permite que dé escalabilidad a los mecanismos de seguridad que se utilizan, a diferencia de los estándares donde un equipo WEP no puede utilizar los mecanismos de seguridad de WPA2. Otra ventaja es que las VPNs fueron desarrolladas basándose en el modelo cliente/servidor, esto proporciona la posibilidad de que todo el trafico que venga de un medio inseguro (medio inalámbrico e Internet), sea obligado a pasar por un solo lugar (servidor) en el cual se le pueden aplicar las medidas de seguridad correspondientes a las políticas de seguridad de la red. Intel y muchas otras importantes compañías que utilizan tecnología de punta han aumentado la productividad de sus empleados al implementar el uso de las redes inalámbricas basadas en VPNs. 96 El decanato de Ingeniería y la Escuela de Ingeniería Eléctrica cuentan con equipo inalámbrico viejo que solamente soporta seguridad bajo WEP. A este equipo no se le puede actualizar el firmware para migrar a WPA, por este motivo se tuvo que pensar en otros mecanismos alternativos. Debido a estas razones se concluyó que la mejor opción para asegurar la red y lograr una fácil administración era mediante VPN. 7.1 Diseño de la red basado en OpenVPN 7.1.1 Comprendiendo el funcionamiento de OpenVPN [21] Una VPN es un conjunto de herramientas, las cuales permiten que varias redes localizadas en distintos lugares se conecten de manera segura utilizando la red pública como medio de transporte. Las VPNs utilizan la cifrado para proveer protección contra espías (ataques pasivos) e intrusos (ataques activos). Normalmente las VPNs se utilizan para comunicar oficinas de una manera segura y con un costo bastante bajo comparado con el alquiler de líneas dedicadas a una compañía de comunicaciones. El concepto de VPN es crear un circuito dedicado, montarlo sobre la red insegura y utilizar criptografía para hacerlo seguro. Las VPNs se iniciaron con IPSec, el cual fue el primer esfuerzo en desarrollar un estándar para asegurar la red. La primera versión de IPSec salió en 1995 y de igual manera que los primeros desarrollos de criptografía fueron paralizados debido a la insuficiente capacidad de los procesadores en los “routers” en los que se implementó. Además, algunos 97 componentes de IPSec se siguen desarrollando hasta el momento, tal es el caso de IKE, por lo que IPSec se ha demorado mucho en su desarrollo. SSL se desarrolló inicialmente para proporcionar seguridad a nivel de aplicación en lugar de seguridad a nivel de red como IPSec. Las implementaciones tradicionales de IPSec requirieron gran cantidad de código del kernel, complicando que la implementación se extendiera a otras plataformas (Sistemas Operativos). Además IPSec se ha caracterizado por ser una producción compleja que requiere un aprendizaje lento para los usuarios nuevos. Esta complejidad ha provocado que se tomen en consideración otras soluciones. En contraste SSL ha madurado rápidamente, debido a que se ha expandido su uso en la red. SSL corre en el espacio del usuario, por lo que simplifica la implementación y la administración. Además, la maduración del sistema operativo Linux en la década de los noventas ha proporcionado una excelente plataforma de prueba para experimentar con los conceptos de red. A partir de estos experimentos surgieron las interfases tun y tap, las cuales proporcionan la capacidad de hacer un túnel. El primer controlador tun fue escrito por Maxin Krasnyansky. Este controlador es básicamente un adaptador virtual de red que se ve como el hardware de una red punto a punto en el sistema operativo, similar a una línea T1. Este adaptador virtual en lugar de poner los bits fuera del cable, los pone en el espacio de usuario. Un programa en el espacio de usuario puede abrir el dispositivo tun de igual manera que como lo hace con un archivo, de esta manera puede leer y escribir paquetes IP en el dispositivo. La interfaz tap trabaja de manera similar, sólo que a diferencia de la interfaz tun, emula una interfaz ethernet. 98 7.1.2 Funcionamiento básico de OpenVPN El funcionamiento de estas dos interfaces es muy simple. Supongamos que tenemos una interfaz tun en la máquina A, y otra en la máquina B. Supongamos también un programa simple que realice la siguiente función: • Copia los bits de la interfaz tun al “socket” de red de la computadora. • Copia los bits del socket de red en la interfaz tun. Si se corre el programa en las dos computadoras, se construirá un túnel simple, sin el componente de seguridad. Ahora a partir de la computadora A se puede hacer un “ping” a l dispositivo tun en B, y a partir de B se puede hacer un “ping” al dispositivo A. Dicho “ping” viajará a través de la conexión entre “sockets” y será encapsulado dentro de TCP o UDP. El único problema que se tiene hasta el momento es la seguridad. La conexión la podemos asegurar si enviamos la conexión (TCP o UDP) a través de un puerto seguro como lo facilita la herramienta SSL. De esta manera completamos la VPN. 99 Figura 7.1 Túnel OpenVPN Una de los asuntos más impresionantes de las redes basadas en el modelo OSI, es la capacidad de tomar un protocolo y encapsularlo dentro de otro. En el ejemplo anterior se encapsula IP dentro del puerto TCP y luego se utiliza SSL para asegurar la conexión TCP con el otro equipo remoto. De esta manera se encapsula el protocolo IP que incluye TCP y UDP dentro de TCP. El problema de encapsular TCP dentro de TCP, es debido a que TCP es un protocolo confiable (orientado a conexión), entonces se producen dos niveles de redundancia, la cual representa una menor eficiencia cuando el ancho de banda es limitado. Para solucionar este problema, se puede encapsular TCP dentro de UDP. Esto debido a que UDP es un protocolo de transporte no confiable (no orientado a conexión), por lo que se economiza ancho de banda en los procesos que utiliza TCP para asegurar la conexión. 100 Figura 7.2 Encapsulamiento en OpenVPN De esta manera los paquetes IP que pasan por los adaptadores tun o tap son encriptados y encapsulados dentro de una conexión UDP, y así enviados al equipo remoto a través de Internet. El equipo remoto los desencripta, autentifica y des-encapsula los paquetes IP para ponerlos dentro del adaptador virtual tun o tap. El modelo de espacio de usuario de VPN une un adaptador virtual tun con un adaptador virtual tun remoto, de esta manera se pueden aplicar sobre los adaptadores virtuales reglas de ruteo y de cortafuegos de igual manera como se hace sobre las interfaces ethernet. 7.1.3 Comparacion entre OpenVPN y las VPNs basadas en IPSec En este momento hay varias opciones libres “Open Source” que utilizan el modelo de espacio de usuario basado en tun y tap, entre ellas se encuentran OpenVPN, Vtun, Tinc, Cipe y muchas otras que se encuentran en desarrollo. En contraste, las soluciones IPSec como FreeSwan atacan el problema de una manera distinta. 101 En este momento hay mucha controversia acerca de la mejor opción. El espacio de usuario de las VPNs basadas en SSL (por ejemplo OpenVPN) es más portable y fácil de configurar. En contraste IPSec es más complejo, por lo que algunas veces se dificulta la comunicación entre implementaciones de distintos fabricantes. IPSec es una modificación compleja de la estructura de los paquetes IP. IPSec examina los paquetes que provienen de la interfaz IP, determina si existe una asociación de seguridad con el destino, y entonces trata automáticamente de cifrar los paquetes en un punto y descifrarlos en el otro punto de la conexión. La meta de IPSec es que simplemente funcione sin saber que se encuentra presente. IPSec ha probado ser inflexible ante los nuevos desarrollos como NAT y la utilización de direcciones IP dinámicas. Debido a la poca cantidad de direcciones de red publicas, se ha creado una gran cantidad de redes privadas que utilizan NAT para acceder a Internet a través de una única dirección IP. De manera similar en la utilización de direcciones IP dinámicas, se dan cambios de direcciones que han dificultado que IPSec tenga un buen desarrollo. El problema se encuentra en que IPSec considera las direcciones de red de origen y destino como parte de la carga útil, por lo que rompe la interoperabilidad con NAT. Además de estas limitaciones, IPSec ha sido criticado por problemas de seguridad. Toda VPN debería estar protegida contra ataques pasivos y activos. Por lo general el atacante pasivo es simplemente un espía que no posee habilidad para interrumpir o modificar los datos que pasan a través del canal entre los dos extremos de la conexión. Para este tipo de ataque la cifrado es un mecanismo efectivo. Los ataques activos tienen la 102 cualidad de que el atacante tiene la habilidad de entrar en el canal de comunicación y agregar o modificar los datos. Estos ataques son conocidos como “Man-in-the-middle”. Mientras que muchos piensan que la seguridad de las VPNs trata simplemente de cifrado, el principal problema por solucionar es el de la autentificación. La autentificación en el contexto de las VPNs involucra la firma de cada paquete con una parte segura, por lo que el receptor puede probar que el paquete es originado por un usuario legítimo. OpenVPN y IPSec utilizan la construcción HMAC para autentificar los paquetes, pero HMAC no es una solución 100% efectiva contra ataques activos, por lo que aun después de aplicarse HMAC es vulnerable a dos tipos de ataques activos: Ataques de repetición y los ataques de texto plano conocido. Ataques de Repetición: Suponga que un atacante es capaz de entrar dentro de la línea T1 de un banco a las 3:00 am cuando el tráfico es bajo. Por medio de la observación de los bits que fluyen a lo largo de la línea mediante una herramienta como “snort”, el atacante puede entrar dentro del sitio en Internet del banco y hacer un número pequeño de transacciones, observando como fluyen los paquetes encriptados sobre la línea T1. Después de un periodo de análisis, es capaz de ganar acceso a algunos paquetes encriptados que representan transferencias de dinero. Si el banco no tiene protección contra repeticiones, y el atacante realiza un envío repetitivo de los paquetes capturados es muy probable que al día siguiente se encuentren una gran cantidad de transferencias cuestionables. La solución a este problema es agregando una identidad o una marca de tiempo para cada paquete antes de firmarse. El receptor necesita mantener una cuenta, y asegurarse de no aceptar paquetes con la misma 103 marca de tiempo. Tanto OpenVPN como IPSec implementan protección de repeticiones utilizando el algoritmo “Sliding Window”. Volviendo al ejemplo del banco, supóngase que el intruso realizo 5 transferencias de diferentes cantidades de dinero. Mediante un análisis de la trama de texto cifrado de las transferencias que está realizando, se puede llegar a reconocer los bytes que representan la cantidad de dinero de las transferencias. Suponiendo que el símbolo $ es un entero de 32 bit. El atacante inserta algunos paquetes dentro de la línea con la cantidad de dólares alterada, el atacante no conoce la cantidad de dólares que será desencriptada en el banco, pero sí sabe que si intenta con varios valores, algunos de ellos serán retornados por ser muy grandes o destructivos. Obviamente este escenario es imposible que suceda en este momento, pero la importancia de este ejemplo es mostrar que el cifrado, aun siendo inviolable, no es suficiente como medida de seguridad ante un ataque activo. Por estos motivos es importante combinar el cifrado con la autentificación HMAC, tener IV variables y protección contra repeticiones, para la protección contra los ataques discutidos anteriormente. 7.1.4 Implementacion de OpenSSL en OpenVPN OpenVPN posee protección contra ataques pasivos y los ataques activos conocidos. La criptografía utilizada por OpenVPN son funciones de la librería OpenSSL. Se puede configurar para trabajar con llaves estáticas para una configuración sencilla, así como también se puede establecer una infraestructura de llaves públicas PKI. La PKI consiste en certificados separados (tan bien conocidos como llaves públicas), y llaves privadas para el 104 servidor y cada cliente. Además se crea un Certificado maestro de Autoridad CA y una llave privada que es usada para firmar cada certificado de los clientes y el servidor. Figura 7.3 Funcionamiento OpenVPN OpenVPN soporta autentificación bidireccional basada en certificados, lo que significa que el cliente debe autenticar el certificado del servidor y que el servidor debe autenticar el certificado del cliente, antes de establecer confianza mutua. Ambos cliente y servidor se autentificarán verificando primero que el certificado esté firmado por el Certificado maestro de Autoridad CA, y luego probando la información de la cabecera del certificado, como el nombre y el tipo de certificado. Este modelo de seguridad posee muchas características deseables desde las perspectivas de una VPN: • El servidor sólo necesita su propio certificado y llave. No necesita conocer los certificados de cada cliente que posiblemente se conecten a él. 105 • El servidor sòlo aceptará clientes que posean certificados firmados por la CA. Además, debido a que el servidor puede realizar la verificación sin necesidad de acceder a la llave CA, es posible para la llave CA (La llave más importante de toda la PKI) estar en una máquina diferente, aun sin que esta maquina tenga conexión a la red. • Si la llave privada es comprometida, se puede deshabilitar agregando su certificado a la lista de revocación de certificados CRL. La CRL permite que los certificados comprometidos sean seleccionados y revocados sin necesidad de reconstruir la PKI. • El servidor puede reforzar los derechos de acceso para un cliente en específico, basándose en algunos campos del certificado como el Common Name. Los protocolos SSL/TLS pueden ser utilizados para una autentificación inicial y un intercambio simétrico de llaves. La construcción HMAC es una contribución fuerte y elegante de la comunidad de la criptografía. Pero sigue siendo necesario que exista una llave secreta compartida en ambos extremos de la conexión segura. La principal innovación de la llave pública fue mostrar que los individuos pueden comunicarse de manera segura sin necesidad de la preexistencia de un medio seguro sobre el cual compartir las llaves. La criptografía de la llave pública resuelve el problema de proveer un medio seguro sobre el cual la llave compartida puede intercambiarse. El 106 verdadero cifrado ocurre con la llave simétrica compartida. El proceso de llave pública solamente nos da medios para compartir la llave electrónicamente sobre un medio inseguro. La criptografía de llave pública permite generar un par de llaves pública y privada. La llave privada no se debe dejar en el disco duro, la llave pública es publicada extensamente. Para comunicarse con alguien, lo único que se necesita es la llave pública de ese alguien. Una vez encriptado el contenido con la llave pública, solamente la llave privada puede desencriptarlo. La llave pública no prueba que la persona que se encuentra en el otro extremo del canal de comunicación es quien dice ser, el presentar la llave pública no prueba nada acerca de su identidad. Cuando una entidad necesita enviar un mensaje, esta creara un “message digest” (código de integridad) para el mensaje, luego firma el “message digest” cifrandolo con su llave privada. Luego el paquete entero es cifrado con la llave pública del destinatario para asegurarse que sólo él puede desencriptar el paquete. Cuando el destinatario recibe el paquete este lo des-cifra con su llave privada, luego desencripta el message digest con la llave publica del remitente, asegurándose de que realmente el que le está enviando el paquete es quien es (por poseer la llave privada). Finalmente el destinatario obtiene el message digest del paquete el cual compara con el desencriptado con la llave pública del remitente y ambos son iguales, quiere decir que el paquete no ha sido modificado. La criptografía de llave pública y la RSA fueron los pioneros en los conceptos de firmas seguras. De esta manera se puede firmar un archivo con la llave privada y publicar la llave pública, y cualquiera que reciba el archivo puede verificar que fue firmado con la 107 llave pública. La matemática del algoritmo dentro de la firma digital se asegura de que será prácticamente imposible realizar la firma sin tener la llave privada correcta. El Certificado de Autoridad CA es el resultado final en un largo acoplamiento en los desarrollos en criptografía aplicada que trata de resolver los problemas de autentificación. El CA tiene una llave súper secreta que se debe mantener bien resguardada. Esta posee un equipo de investigadores que verifican las identidades de los clientes. Estos entonces firman las llaves de los clientes con su súper llave secreta. La llave pública CA se torna en una comodidad pública, insertándose en las aplicaciones y el sistema operativo. El certificado “root” de la CA, conforma la raíz de una cadena de llaves públicas la cual puede ser usada para verificar la identidad de cada uno de los clientes de la CA. La CA resuelve el problema de autentificación. El CA es la base de la autentificación de una red segura. Para detalles de la configuración refiérase al anexo. 108 Figura 7.4 Esquema PKI OpenVPN trata de tomar ventaja de todas las capacidades que son posibles para el espacio de usuario VPN, entre las principales capacidades tenemos la portabilidad, un estilo familiar de “daemon”, no se requieren modificaciones al “kernel” y una capa de criptografía de lujo proporcionada por la librería OpenSSL. Además OpenVPN trabaja muy bien con direccionamiento dinámico y con NAT. Soporta una gran cantidad de sistemas operativos como Linux, Windows, Mac OS X, los tres BSDs y Solaris. 109 7.1.5 EL modelo de tres capas de OpenVPN Uno de los principales lemas de la seguridad informática es “La complejidad es el enemigo de la seguridad”. Una manera de reducir el impacto de la complejidad en la seguridad de todo el software, es forzar el tráfico de entrada a pasar a través de algún tipo de puente “gateway” seguro que sea más simple en las piezas de código que la misma aplicación que está debajo de el. Uno de los principales ejemplos acerca de esto es el “firewall”. Capa 1: Se utiliza una HMAC basada en autentificación TLS para prevenir que un atacante introduzca paquetes en el subsistema SSL/TLS. Capa 2: Se utiliza SSL/TLS para la autentificación bidireccional entre cliente y servidor Capa 3: Se degrada el nivel de privilegios del daemon OpenVPN para ayudar a evitar que la inyección de un código “exploid” (código para ganar acceso a derechos de administrador) sea satisfactoria. OpenVPN se expande al concepto de un “firewall”, utilizando la opción de autentificación TLS para enviar los paquetes entrantes a una prueba preliminar de firma digital antes de ser pasadas en el código SSL/TLS. 7.1.6 Comparacion entre Enrutamiento y Puenteo A pesar de todo, los principales problemas que tienen los usuarios con las VPNs tienen que ver más con asuntos de “networking” y del “firewall”, no con la capa de criptografía. Las dos principales técnicas de “networking” para VPN son ruteo “routing” y puenteo “bridging”. “Bridging” es una técnica para crear una red virtual ethernet de área 110 ancha, corriendo en una simple subred. El “Routing” resuelve el problema del área ancha utilizando subredes separadas y colocando rutas entre ellos. Entre las principales ventajas del “bridging” esta la posibilidad de que el “broadcasts” atraviese la VPN, esto permite al software que depende del “broadcasts” como Windows NetBIOS, el compartimiento de archivos y la búsqueda de vecinos de la red para trabajar. Además con el “bridging” no es necesario configurar las rutas. Puede trabajar con cualquier otro protocolo que pueda funcionar sobre ethernet, tales como IPv4 , IPv6 , Netware IPX, AppleTalk y otros. Entre las desventajas figuran la poca escalabilidad y que es menos eficiente que el “routing”. Las principales ventajas del “routing” son la eficiencia y la escalabilidad. La principal desventaja se presenta en los clientes Windows que deben utilizar un servidor WINS (como Samba) para lograr cruzar la red VPN con búsquedas de trabajo. El software que depende del “broadcasts” no podrá ver las máquinas en el otro lado de la VPN. Figura 7.5 Configuración en modo Ruteo 111 7.2 Diseño de la red OpenVPN Se diseñó un sistema basado en una PKI (Infraestructura de llave pública), la cual consta de un servidor por medio del cual se conectan todos los equipos inalámbricos de la red. A través del servidor pasa todo el tráfico de la red inalámbrica, por lo que se puede implementar un “firewall” para desarrollar las políticas de seguridad de la red del decanato. Como se puede ver una ventaja adicional de utilizar este modelo, es la capacidad de escalar hacia una red más grande a futuro, esto porque el modelo PKI lo permite. La figura 7.6 muestra el modelo propuesto para asegurar el medio inalámbrico de la red del decanato. La configuración se muestra en detalle en el apéndice. Figura 7.6 Diseño de la red con OpenVPN 112 El modelo consta de un servidor OpenVPN, que como se vio anteriormente se puede instalar bajo cualquier plataforma (Linux, Windows, Unix, MacOS, etc). A través de este servidor va a pasar todo el tráfico y se van a montar todos los servicios que va a disponer el cliente, entre los cuales podrían estar: Servidor Web (http), https, correo SMTP o POP3, DNS, SSH, Base de datos, Proxy, o NAT. Todos estos servicios van a regularse por medio de las políticas de seguridad que tenga la red. Una ventaja que se tiene con OpenVPN, es la característica de utilizar solamente un puerto (TCP o UDP) para todas las comunicaciones, el cual se selecciona en el archivo de configuración. Esto significa que todos los demás puertos pueden bloquearse en la interfaz de red real. Como todos los protocolos IP se encapsulan en un solo puerto UDP (también podría ser TCP), en la interfaz virtual se van a desencasular todos los protocolos IP, los cuales traen todos los puertos abiertos. Esto significa que se deben implementar “firewalls” para poder controlar este adaptador virtual según las políticas de seguridad de la red. Cada cliente debe solicitar al administrador de la red su llave y certificado, los cuales deben ser firmados por la Autoridad Certificadora CA. Además se debe instalar OpenVPN y configurar el archivo o agregar un archivo ya pre-configurado, el cual contenga todos los parámetros de configuración de la red. El cliente al igual que el servidor puede ser de cualquier plataforma. La configuración del equipo inalámbrico se hace mediante el sistema de autentificación abierta (Open System Authentication), esto debido a que no es necesario incluir otro nivel de seguridad el cual degradaría el ancho de banda. Se debe configurar la SSID y otras características quizás no esenciales como los “beacons”. La configuración del 113 equipo depende del fabricante por lo que no se ahondará más. Se le debe asignar una dirección IP al AP si este cuenta con mecanismos de capa 3 como ruteo y también a las tarjetas de red inalámbricas de los clientes. OpenVPN también tiene la capacidad de asignar IPs dinámicas mediante DHCP, pero esos detalles de la configuración se salen de los objetivos del proyecto. Para mas información al respecto diríjase a la página oficial de openvpn en http://openvpn.net. 114 CAPÍTULO 8: Conclusiones y recomendaciones 8.1 Conclusiones Se ha hecho referencia en todo el trabajo al estudio de los mecánicos de seguridad existentes para las redes inalámbricas. La palabra mecanismo nos dice que es un medio para lograr algo, y no un fin en sí mismo. Por este motivo, es importante recalcar que la seguridad de la red no va asegurarse únicamente mediante la utilización de un mecanismo de seguridad “perfecto” el cual posee cualidades que lo hagan ver como un sistema de seguridad irrompible. La verdadera seguridad va a surgir mediante un proceso en el cual intervienen tanto los mecanismos de seguridad utilizados como los administradores de la red y los usuarios. Este proceso se realiza conociendo las posibilidades de configuración que tenga la red, estableciendo las políticas de seguridad de la red, configurando los permisos y los recursos disponibles para los usuarios y promocionando la buena práctica de las medidas de seguridad por parte de los usuarios. A partir de los mecanismos de seguridad tratados en el proyecto, se puede apreciar el problema que presenta establecer una seguridad basada en un estándar, cuando se cuenta con equipo de varias generaciones. En cambio si se quiere implementar la seguridad en una red que se está realizando de cero, se puede verificar en la compra que el equipo soporte el nuevo estándar WPA2 y así explotar todas las ventajas de seguridad que ofrece este estándar. Como el objetivo principal de este trabajo fue proponer un esquema de seguridad para la red inalámbrica existente, se tuvo que recurrir a otras alternativas. 115 La mejor alternativa que se tuvo fue la implementación de VPN en la red inalámbrica. Esta opción nos solucionó el problema de diversidad de equipo inalámbrico (distintos estándares), además de proporcionarnos una seguridad de lujo, basada en los más modernos mecanismos de seguridad. Además debido a que es una implementación de software, se puede asegurar la escalabilidad en las mejoras de seguridad que surjan. Se opto por OpenVPN, una solución VPN con licencia GPL basada en la biblioteca OpenSSL. Esta decisión fue tomada debido a que las VPNs basadas en el estándar Industrial IPSec tienen muchos problemas de implementación en distintas plataformas, posee problemas de compatibilidad con DHCP y NAT y la curva de aprendizaje para entender el funcionamiento de IPSec es muy larga. 8.2 Recomendaciones Es importante tomar en cuenta que el mecanismo recomendado OpenVPN, no fue examinado a cabalidad. Solamente se vieron aspectos de funcionamiento e instalacion, por lo que quedo fuera la configuracion. Por este motivo se recomienda que se examine con más detalle los aspectos de configuración para evitar cualquier inconveniente con la implementación de OpenVPN. Además de un buen mecanismo de seguridad, es necesario profundizar en el funcionamiento de las redes y computadoras. Hay muchas opciones de configuración como permisos y puertos, que si no se establecen de manera correcta pueden hacer vulnerable a la red. 116 Es necesario también la configuración de un “firewall” para filtrar el tráfico de la red y así hacer cumplir las políticas de seguridad que se quieran establecer. Es recomendable realizar actualizaciones del software cada vez que sea posible para así disminuir la probabilidad de que se corran archivos que cedan permisos de súper usuario “exploids”. BIBLIOGRAFÍA Libros: 1. Muller, Nathan J. “Wireless A to Z”, McGraw-Hill, 2003 2. Fleck, Bob. “802.11 Security”, O'Reilly, 2002 3. Matthew, Gast. “802.11 Wireless Networks: The Definitive Guide”, O'Reilly, 2002 4. Flickenger, Rob. “Wireless Hacks”, O'Reilly, 2003 5. Aspinwall, Jim. Installing, “Troubleshooting, and Repairing Wireless Networks”, McGraw-Hill, 2003 6. Nichols, Randall K. “Wireless Security”, McGraw-Hill, 2002 7. Ohrtman, Frank. “Wi-Fi Handbook: Building 802.11b Wireless Networks”, McGraw-Hill, 2003 8. Miller, Stewart S. “Wi-Fi Security”, McGraw-Hill, 2003. 9. Akin, Devin. “CWAP Certified Wireless Analysis Professional Official Study Guide (Exam PW0-300)”, McGraw-Hill/Osborne, 2004. 10. Planet3 Wireless, Inc “Certified Wireless Network Administrator, Official Study Guide”, Planet3 Wireless , 2002. 11. Scott, Charlie. “Virtual Private Networks”, Second Edition, O'Reilly, 1999 117 118 Páginas web: 12. Walker, Jesse. “802.11i Overview”, http://csrc.nist.gov/wireless/S10_802.11i%20Overview-jw1.pdf 13. Madrid Molina, Juan Manuel. “Seguridad en redes inalámbricas 802.11”, http://www.icesi.edu.co/es/publicaciones/publicaciones/contenidos/sistemas_telema tica/3/jamdrid-seguridad_redes_inalambricas.pdf 14. ANSI/IEEE Std 802.11, 1999 Edition (R2003). “Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications”, http://standards.ieee.org/getieee802/802.11.html 15. IEEE Std 802.1X-2001. “Port-Based Network Access Control” , http://standards.ieee.org/getieee802/802.11.html 16. IEEE Std 802.11i-2004. “Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications” , http://standards.ieee.org/getieee802/802.11.html 17. Oliva Fora, Pau. “(In)seguridad en redes 802.11b” , http://pof.eslack.org/writings/In-Seguridad%20en%20redes%20802.11b.pdf 18. Chavarría Rodríguez, Róger, Murillo Hernández, Emilio. “Redes Inalámbricas de Área Local (WLAN) de Alta Velocidad” , http://www.eie.ucr.ac.cr/proyectos/proybach/pb0406r.pdf 19. Martínez Ponce, Daniel. “Seguridad en Redes WIRELESS Bajo Linux” , http://hackitectura.net/jornadas_telematicas/Charla_Seguridad_seco_baja.pdf 119 20. Intel Information Technology White Paper. “VPN and WEP, wireless 802.11b in a corporate environment” , http://www.intel.com/business/bss/infrastructure/security/vpn_wep.pdf 21. MacMichael, John. “802.11 Wireless Security Primer”, http://media.quands.com/2005/04/pdf/80211_presentation_MacMichael.pdf 22. Toda la information de OpenVPN, http://openvpn.net/ APÉNDICES A1. Creación de llaves RSA Para crear las llaves RSA se necesita editar el archivo vars. que se encuentran en el directorio: En el caso de Windows: C:\Archivos de programa\OpenVPN\easy-rsa En Linux: /usr/share/doc/openvpn/examples/easy-rsa Recomendación: Busque el directorio donde se encuentra vars El siguiente cuadro corresponde al contenido del archivo. ___________________________________________________________________ @echo off rem Edit this variable to point to rem the openssl.cnf file included rem with easy-rsa. set HOME=%ProgramFiles%\OpenVPN\easy-rsa set KEY_CONFIG=openssl.cnf rem Edit this variable to point to rem your soon-to-be-created key rem directory. rem 120 121 rem WARNING: clean-all will do rem a rm -rf on this directory rem so make sure you define rem it correctly! set KEY_DIR=keys rem Increase this to 2048 if you rem are paranoid. This will slow rem down TLS negotiation performance rem as well as the one-time DH parms rem generation process. set KEY_SIZE=1024 rem These are the default values for fields rem which will be placed in the certificate. rem Change these to reflect your site. rem Don't leave any of these parms blank. set KEY_COUNTRY=US set KEY_PROVINCE=CA set KEY_CITY=SanFrancisco set KEY_ORG=FortFunston set [email protected] ___________________________________________________________________ 122 Se debe editar los siguientes espacios: HOME=______: Se cambia para que apunte al directorio easy-rsa. Por ejemplo: HOME=C:\Archivos de programa\OpenVPN\easy-rsa KEY_CONFIG=______: Se direcciona al lugar donde se encuentra el archivo openssl.cnf. Por ejemplo: KEY_CONFIG=C:\Archivos de programa\OpenVPN\easyrsa\openssl.cnf KEY_DIR=______: Se direcciona al lugar donde se van a almacenar las llaves, certificados, etc. Si ya existe sera reemplazado. Por ejemplo: KEY_DIR=C:\Archivos de programa\OpenVPN\easy-rsa\keys KEY_SIZE=______: Indica el tamaño de la llave (la mejor opcion es poner 1024) .Puede ser tambien de 2048 pero baja la velocidad de la conexion. Por ejemplo: KEY_SIZE=1024 Los demas parametros son de datos per sonales: KEY_COUNTRY=__: Ejemplo: KEY_COUNTRY=CR KEY_PROVINCE=__: Ejemplo: KEY_PROVINCE=SJ KEY_CITY=_______: Ejemplo: KEY_CITY=Tibas KEY_ORG=_______: Ejemplo: KEY_ORG=Saprissa KEY_EMAIL=____: Ejemplo: [email protected] A.1.1 Creación del Certificado de Autoridad CA 123 Una vez modificado vars tiene que correr los siguientes archivos desde consola o el Símbolo del sistema como más se conoce en Windows. vars clean-all build-ca El archivo vars sirve para entregar los parámetros a los demás archivos El archivo clean-all. sirve para borrar el fólder donde están las llaves y crear uno nuevo con el mismo nombre que se estableció en el archivo vars. El archivo build-ca. va ha crear el Certificado de Autoridad CA, y la llave por medio de openssl. Este archivo creara los archivos ca.crt y ca.key en el directorio especificado por KEY_DIR en el archivo vars Cuando se genera el archivo se pedirá el Common Name. Por ejemplo en el howto utilizan “OpenVPN-CA”. Los demás parámetros del certificado se crean por medio del archivo vars. A.1.2 Creación del Certificado y la Llave del servidor Ejecute el siguiente archivo: build-key-server Al igual que con el Certificado de Autoridad, los parametros por defecto vienen dados por vars.bat. Cuando se pregunta el Common Name, se podria poner como en el howto server. A las otras dos preguntas se les responde yes [y/n]. 124 Creacion del Certificado y las Llaves de los clientes Ejecute el siguiente archivo: build-key client1 build-key client2 build-key client3 build-key client_n Si se desea que las llaves estén protegidas por password, se debe sustituir el comando build-key por build-key-pass Además debe asegurarse de que cada cliente tenga un nombre distinto. Creación de los parámetros Diffie Hellman Ejecute el siguiente archivo: build-dh Archivos de llaves Producidos: Durante la ejecución de los comandos anteriores, se van a generar las respectivas llaves en el directorio de las llaves especificado en vars. Se seguirá la convención de apache de usar la extensión de fichero .crt para denotar ficheros de certificados y la extensión .key para denotar ficheros de clave privada. Las claves privadas deben mantenerse protegidas siempre. Los ficheros con los certificados pueden publicarse libremente o compartirse. La siguiente tabla explica de los archivos relevantes 125 El ultimo paso en la generación de llaves es copiar todos los archivos a las maquinas que los necesitan, teniendo el cuidado de copiar los archivos secretos sobre un canal seguro. 126 A.2 Creación de los archivos de configuración Se recomienda utilizar los archivos de ejemplo como referencia. El archivo para el servidor se llama server.ovpn, el del cliente se llama client.opvn. El Linux son server.conf y client.conf A.2.1 Archivo del Servidor: En resumen estos son los comandos que aparecen en el ejemplo que viene en el HowTo: ###################### Configuración Servidor ######################### #Especificación de puerto, 1194 es el puerto oficial de openvpn port 1194 #tcp o udp como medio de encapsulación (defecto udp) proto udp #interfaz de red tun (para ruteo) dev tun #Localización de los certificados #El servidor y los clientes utilizaran el mismo archivo ca ca /etc/openvpv/keys/ca.crt #Certificado del servidor cert /etc/openvpv/keys/servidor.crt #Parametros de Diffie hellman dh /etc/openvpv/keys/dh1024.pem 127 #Configurando la subred #Configuración del modo servidor. Provee una subred VPN para derivar las #direcciones de los clientes. El servidor tomara la dirección 10.8.0.1 y las demás #disponibles para los clientes estarán server 10.8.0.0 255.255.255.0 #Mantiene un registro de las direcciones virtuales IP de los clientes en un archivo ifconfig-pool-persist ipp.txt #Ping cada 10 seg. Si no hay respuesta en 120 seg se asume que la conexión se callo keepalive 10 120 #Se habilita la compresion en la conexion, se debe instalar en #ambos servidor y cliente comp-lzo #Se degradan los privilegios despues de la inicializacion #Solo para sistema operativos diferentes a Windows user nobody group nobody #Esta opcion sirve para evita el acceso a ciertos #recursos (por falta de privilegios) cuando se reinicia persist-key persist-tun #Despliega un archivo de estatus, donde se muestran las conexiones actuales y las #truncadas. Se escriben cada minuto 128 status openvpn-status.log #Verbosidad verb 3 ################################################################### Con este archivo se creara una VPN usando una interfaz de red virtual TUN (para ruteo). Esta interfaz escuchara los clientes en el puerto UDP 1194 (puerto oficial de OpenVPN) y distribuye las direcciones virtuales para conectar los clientes a la subred 10.8.0.0/24 Antes de utilizar este archivo de configuración se debe editar el CA, los certificados, las llaves y los parámetros dh para que apunten a los archivos que se generen en la sección PKI anterior. En este punto la configuración del servidor es usable, sin embargo se puede mejorar la configuración. Se esta utilizando Ethernet bridging, se debe usar server-bridge y dev tap en lugar de server y dev tun Si se desea que el servidor OpenVPN escuche el puerto TCP en lugar del UDP. Para esto utilice proto tcp en lugar de proto udp. Si se desea utilizar otro rango de direcciones IP virtuales en lugar de 10.8.0.0/24, se debe modificar la directriz del server. Recuerde que el rengo de direcciones IP virtuales debe estar en el rango de las direcciones de red privadas y no debe estar usándose en la red La IANA (Internet Assigned Numbers Authority) ha reservado las siguientes direcciones de red IP para las redes privadas (especificado en RFC 1918). 129 No edite la directriz client-to-client si se desea que la conexión entre clientes se pueda realizar sobre la VPN. Por defecto, los clientes solo podrán llegar al servidor. Si se esta utilizando Linux, BSD o otro sistema operativo similar a Unix, se puede implementar seguridad si no se edita las directrices user nobody y group nobody. Si se desea tener múltiples instancias en la misma maquina, cada una utilizando un archivo de configuración diferente, se debe cumplir. Para cada instancia se utilizara un número de puerto distinto (TCP y UDP utilizan espacios de puertos distintos por lo que es posible utilizar TCP-1194 y UDP-1194) Si se utiliza Windows, cada configuración de OpenVPN necesita tener su propio adaptador TAP-Win32. Si se esta corriendo múltiples instancias de OpenVPN fuera del mismo directorio, se debe asegurar de editar las directrices que crean los archivos de salida, para que las múltiples instancias no reescriban los archivos de salida. Estas directrices incluyen log, log-append, estatus, y ifconfig-pool-persist. 130 A.2.2 Archivo del Cliente: En resumen, estos son los comandos que aparecen en el ejemplo: ###################### Configuración Cliente ###################### #Especifica que es un cliente y que se pondrán ciertas directrices del archivo de #configuración del servidor client #interfaz de red tun (para ruteo) dev tun #tcp o udp como medio de encapsulación (defecto udp) proto udp #El nombre del host IP y el puerto del servidor remote servidor.dominio.com #Se trata indefinidamente de resolver el nombre del host del servidor OpenVPN resolv-retry infinite #La mayoría de los clientes no necesitan unirse a números de puerto específicos nobind #Se degradan los privilegios después de la inicialización #Solo para sistemas operativos diferentes a Windows user nobody group nobody #Esta opción sirve para evita el acceso a ciertos 131 #recursos (por falta de privilegios) cuando se reinicia persist-key persist-tun #El servidor y los clientes utilizaran el mismo archivo ca ca /etc/openvpv/keys/ca.crt #Certificado del servidor cert /etc/openvpv/keys/cliente1.crt #Este archivo se debe mantener en secreto, es la llave del cliente key /etc/openvpv/keys/client.key #Se habilita la compresión en la conexión, se debe instalar en ambos #servidor y cliente comp-lzo #Verbosidad verb 3 ################################################################### Al igual que el archivo de configuración del servidor, primero se edita el CA, el certificado y los parámetros de llave que apuntan a las archivos generados en la sección PKI anterior. Debe notar que cada cliente debe tener su propio certificado y llave (key pair). Solamente el archivo CA es universal a lo largo del servidor OpenVPN y los clientes. 132 Luego debe de editar la directriz remote apuntando a la dirección IP del host y al número de puerto del servidor OpenVPN (Si su servidor OpenVPN corre en una única maquina detrás de un firewall/NAT-gateway, utilice la dirección IP publica del gateway, y el número de puerto con el cual ha sido configurado el gateway para enviar hacia el servidor OpenVPN). Finalmente asegúrese que el archivo de configuración del cliente es consistente con las directrices utilizadas en la configuración del servidor. Hay que asegurarse que las directrices de dev (tun o tap) y proto (udp o tcp) son consistentes. También asegúrese que comp-lzo y fragment, si es usada, estén presentes en ambos archivos (cliente y servidor) A.3 Probando la conectividad inicial de la VPN Iniciando el Servidor: Primero asegúrese de que el servidor OpenVPN será accesible desde Internet. De asegurarse que: • Deben de estar abiertos los puertos utilizados por OpenVPN en el firewall • Otra opción es establecer un regla de reenvió de puerto, para así reenviar el puerto UDP 1194 desde el firewall/gateway a la maquina en la que se encuentra corriendo el servidor OpenVPN. Además se debe de asegurar que la interfaz TUN/TAP no esta bloqueada por el firewall. 133 Para facilitar la localización de fallas, es recomendable iniciar el servidor de OpenVPN a partir de la línea de comandos (clic derecho en el archivo .opvn), en lugar de iniciarlo como un daemon o un servicio Un inicio normal debe verse algo asi: Sun Feb 6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL] built on Feb 5 2005 Sun Feb 6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key Sun Feb 6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Sun Feb 6 20:46:38 2005 TUN/TAP device tun1 opened Sun Feb 6 20:46:38 2005 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500 Sun Feb 6 20:46:38 2005 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2 Sun Feb 6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ] Sun Feb 6 20:46:38 2005 UDPv4 link local (bound): [undef]:1194 Sun Feb 6 20:46:38 2005 UDPv4 link remote: [undef] Sun Feb 6 20:46:38 2005 MULTI: multi_init called, r=256 v=256 Sun Feb 6 20:46:38 2005 IFCONFIG POOL: base=10.8.0.4 size=62 Sun Feb 6 20:46:38 2005 IFCONFIG POOL LIST Sun Feb 6 20:46:38 2005 Initialization Sequence Completed Iniciando el Cliente: Al igual que la configuración del servidor, lo mejor es iniciar el cliente OpenVPN a partir de la línea de comandos(click derecho en el archivo .opvn), en lugar de comenzar como un daemon o un servicio. Un inicio normal del cliente en Windows se vera de manera similar a la salida del servidor, y debe concluir con el mensaje Initialization Sequence Completed. Pruebe haciendo ping en la VPN desde el cliente, pruebe con: 134 ping 10.8.0.1 Si el comando ping funciona, ya tenemos la VPN funcionando. Si no funciona refierase al HowTo oficial de la pagina http://openvpn.net