1.6 ¿Qué asegurar?
Dec 9 11:18:17 serverSsh sshd[455]: pam_unix(ssh:auth): check pass; user unknown
4. Sistemas de monitoreo
6.2. Seguridad en las comunicaciones inalámbricas.
El estándar 802.1 establece diversos mecanismos para conseguir entornos seguros. Los más habituales son:
● Wired Equivalent Protocol (WEP). ● Wired Equivalent Protocol 2 (WEP2). ● Open System Authentication
● Closed Network Access Control
6.2.1 Método de cifrado WEP
WEP, acrónimo de Wired Equivalent Privacy, fue el primer protocolo de encriptación introducido en el primer estándar IEEE 802.11 en el año 1999. Está basado en el algoritmo de encriptación RC4, con una clave de 40 bits, combinada con un vector de inicialización (a partir de ahora IV) de 24 bits para encriptar el mensaje, y su correspondiente checksum (Integrity Check Value, a partir de ahora ICV). También existen versiones de este algoritmo con claves de 128bits y de 256bits.
Mensaje Encriptado = [ Texto + checksum(Texto)] XOR [RC4(Clave + Vector de Inicialización)]
WEP es inseguro debido a su arquitectura, por lo que aumentar el tamaño de las claves de encriptación solo retrasaría el tiempo necesario para romperlo, en donde en el peor de los casos no superaría los 5 minutos. A continuación se enumeran y definen las deficiencias más reconocidas en la encriptación WEP.
6.2.2 Deficiencias de la encriptación WEP
El CRC32 o código de redundancia cíclica es el sistema utilizado para detectar si la información, en una transición de datos, está corrupta o dañada. Este método utiliza un polinomio generador G(x) de grado r con n bits de datos binarios (coeficiente del polinomio de orden n-1). A estos bits de datos se le añaden r bits de redundancia, de forma que el polinomio resultante sea divisible por el polinomio generador. El receptor verificará si el polinomio recibido es divisible por G(x) para asegurar que la transmisión fue correcta. El polinomio generador empleado por el comité de estándares de redes locales (IEEE-802) es el siguiente:
CRC-32: x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1
En el año 2001, un grupo de investigadores de la Universidad de California, en Berkeley, hicieron pública una vulnerabilidad, donde se demostraba que era posible interceptar y alterar transmisiones wireless que se apoyaran sobre el algoritmo WEP ya que el campo ICV (Integrity Check Value) es generado simplemente haciendo un CRC
de 32 bits del payload de la trama, el cual contiene dos serios problemas. En primer lugar, los CRC son independientes de la llave utilizada y del vector de inicialización. Y en segundo lugar, se conoce que los CRCs son lineales, lo que permite generar un ICV válido ya que el CRC se combina con una operación XOR que también es lineal, lo que permite hacer “bit flipping” modificando el mensaje y el ICV de forma conocida, y así poder armar un paquete válido modificado.
Otra de las deficiencias del protocolo está dada por el tamaño del campo del vector de inicialización, el cual tiene solo 24 bits de longitud sin encriptar. Matemáticamente demostrable es que esto equivale a 16 millones de paquetes generables en muy poco tiempo sobre una red con un tráfico constante. Esto genera que el vector de inicialización se repita frecuentemente lo cual permite la posibilidad de realizar ataques estadísticos donde dos tramas son encriptadas con el mismo vector de inicialización.
6.2.3 Prueba de laboratorio
Para comprobar la facilidad con que se pueden obtener las contraseñas de una red wireless cifrada con un método blando, se armó una red inalámbrica con un
Access Point marca Encore, configurado con un método de encripción WEP y una
contraseña de ingreso al anillo de catorce caracteres alfanuméricos; y dos Mac Mini en el laboratorio de sistemas de la UNLu. A su vez, se utilizó una laptop Compaq v3218la, con una placa de red wireless Broadcom BCM94311MCG con un sistema operativo
Ubuntu Festy y las herramientas instaladas para realizar las capturas y el análisis de las
mismas.
Se generaron archivos .cap con las capturas logradas detectando paquetes enviados desde una MacMini a la otra, utilizando la placa wireless en modo monitor.
Como se puede ver a continuación, con un ataque al archivo eth1-06.cap, de aproximadamente 350 megabytes, el aircrack tardó solo 1 segundo para retornar en texto claro la clave utilizada.
root@pablo-laptop:~# aircrack-ng -a 1 -c /home/pablo/capturas/eth1-06.cap Opening /home/pablo/capturas/eth1-06.cap
Read 530204 packets.
# BSSID ESSID Encryption 1 00:18:E7:14:8D:23 ESSID-privada WEP (261566 IVs)
Choosing first network as target.
Aircrack-ng 0.9
[00:00:01] Tested 54 keys (got 261566 Ivs) KB depth byte(vote) 0 0/ 1 6C( 48) 2A( 12) 42( 6) 20( 0) 22( 0) 25( 0) 26( 0) 29( 0) 2F( 0) 30( 0) 1 0/ 1 34( 52) 6A( 14) 7B( 4) 32( 3) 43( 3) 59( 3) 76( 3) 69( 2) 29( 0) 33( 0) 2 0/ 2 76( 58) 31( 36) 43( 12) 70( 12) 2E( 6) 3C( 6) 47( 5) 48( 5) 4C( 5) 59( 5) 3 0/ 1 69( 77) 3F( 6) 68( 5) 30( 4) 7B( 4) 00( 0) 21( 0) 43( 0) 44( 0) 49( 0) 4 0/ 1 64( 42) 50( 20) 46( 17) 7A( 15) 45( 13) 42( 6) 51( 6) 5E( 6) 60( 6) 57( 5) 5 0/ 1 34( 95) 32( 15) 6D( 13) 29( 8) 24( 6) 28( 6) 2F( 6) 40( 6) 54( 6) 21( 3) 6 0/ 1 65( 99) 2A( 18) 45( 12) 68( 11) 5E( 10) 26( 8) 27( 5) 29( 5) 4F( 5) 61( 5) 7 0/ 1 73( 51) 2A( 20) 70( 15) 7D( 15) 2B( 14) 67( 12) 44( 10) 65( 10) 38( 9) 39( 9) 8 0/ 1 62( 85) 4C( 36) 5C( 13) 71( 8) 3A( 5) 3C( 5) 73( 5) 75( 5) 3B( 4) 6E( 3) 9 0/ 2 65( 48) 52( 27) 5A( 23) 3C( 12) 73( 10) 5C( 8) 7C( 8) 3F( 6) 4C( 6) 4E( 6) 10 0/ 1 6C( 105) 28( 13) 25( 8) 23( 6) 20( 5) 36( 5) 59( 5) 5E( 5) 22( 3) 33( 3) 11 0/ 1 6C( 319) 23( 55) 3D( 50) 6D( 40) 60( 37) 6B( 36) 68( 35) 76( 35) 6E( 34) 4F( 33)
KEY FOUND! [ 6C:34:76:69:64:34:65:73:62:65:6C:6C:34 ] (ASCII: C0ntr4s3n14s ) Decrypted correctly: 100%
root@pablo-laptop:~#
6.2.4 Debilidades del algoritmo Key Scheduling de RC4
Scott fluhrer, Itsik Mantin y Adi Shamir demostraron que utilizando sólo la
primera palabra de un keystream, podían obtener información de la clave secreta compartida. Se buscan Ivs que causen ausencia de información de la clave en el keystream. A este suceso se lo denominó “resolved condition” o condición resuelta. Cada uno de estos paquetes solo tiene ausencia de un byte de la clave, y este byte debe ser adivinado exitosamente para que el próximo paquete pueda ofrecer información del siguiente byte. Wepcrack62 y Airsnort63 aprovechan esta debilidad para realizar ataques
sobre redes WEP. En el próximo capítulo se verá un caso de uso de este tipo de software donde se podrán analizar los tiempos sobre una red wireless securizada con encripción WEP.
6.2.5 Método de cifrado WPA
Para solucionar las limitaciones de seguridad que proporciona WEP, se recurrió a un subconjunto de la especificación 802.11i, el estándar de seguridad de las redes wireless, la cual será la versión definitiva cuando sea aprobada. La información sigue siendo cifrada utilizando el algoritmo RC4, con clave de 128 bits y un vector de
62 Wepcrack 63 Airsnort
inicialización de 48 bits, pero utiliza TKIP (Temporal Key Integriti Protocol), un protocolo que evita la reutilización de claves (una de las fallas de WEP) y agrega a esto, MIC (Message Integrity Check) para reforzar la verificación de integridad de los datos.
6.3. 802.11i
Es un WPA con “esteroides”, también llamado WPA2 posee mayor seguridad que su antecesor al implementar el cambio esperado reemplazando el algoritmo de encriptado RC4 (utilizados en WEP y WPA) por uno mucho más avanzado, el AES (o Advanced Encryption Standard). Este posee dos versiones, una personal que controla el acceso utilizando PSK (Pre-Shared Key), y la otra empresarial que utiliza la verificación de usuarios implementando el protocolo 802.1X que ofrece un proceso de variación dinámica de claves ajustado con otro protocolo denominado EAP (Extensible Authentication Protocol) donde el cliente se encuentra autenticado con una clave única que se va modificando automáticamente y es continuamente negociada por el servidor de manera transparente al usuario.