Informe - Escuela de Ingeniería Eléctrica

Anuncio
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
Descargar