Preguntas y respuestas relativas a la seguridad en redes inalámbricas
Fui invitado a dar una conferencia de Seguridad en Redes Inalámbricas al 27
Simposium Internacional de Sistemas Computacionales y Tecnologías de la
Información, organizado por el Tecnológico de Monterrey. A falta de llevar una
presentación preparada, me comprometí a responder a todas las preguntas que me
hicieron por escrito los asistentes.
Aquí están, pues, las respuestas.
Si quieres agregar algo a esta página, ya sea enviarme una pregunta
adicional, ampliar una respuesta, o lo que sea, mándame un correo.
Preguntas relativas al software libre
- ¿Qué
diferencia hay entre software libre y gratuito?
- ¿Qué tan
confiable es su sistema si está programado en un sistema operativo que
cualquier persona puede modificar?
- ¿Cuál será
el sistema operativo más seguro?
- ¿Qué
ventajas da Linux o Unix contra Windows Server 2000? ¿Es seguro?
- Actualmente,
¿Qué desarrollos ha habido en Linux para el Internet Móvil?
Preguntas relativas a la seguridad en general
- ¿Qué
medidas podemos tomar para tener una red segura?
- ¿Qué
programa me ayudaría a encontrar contraseñas de usuarios de Internet
- ¿Con qué
programa puedo proteger mejor mis redes?
- ¿Qué
páginas Web recomienda para adentrarnos más y aprender sobre seguridad?
- ¿Cómo
estructuraría un buen cifrado para que sea segura la red?
Preguntas relativas a la seguridad en redes inalámbricas
- ¿Cómo
se conectó a la red del Tec?
¿Cómo puedo conectarme a una red inal´mbrica
con una PC (laptop)? ¿Se tiene que hacer alguna configuración?
- ¿Para qué
son las antenas?
- ¿WEP
es la mejor opción en cuanto a la seguridad en redes, o hay alguna mejor?
- ¿A
qué se debe que gran parte de las organizaciones que utilizan redes
inalámbricas no cuentan con la seguridad necesaria en ellas?
- ¿No
es posible tener una WLAN con varias llaves privadas para cada usuario y con
un algoritmo como RSA o más avanzado que permita una alta seguridad al
usuario, o incluso es fácil desencriptar usando estos algoritmos?
Bibliografía empleada la preparación de esta plática
Investigaciones formales
- Using
the Fluhrer, Mantin and Shamir Attack to break WEP (revision 2), Addam
Stubblefield, John Ioannidis, Aviel D. Rubin, agosto 2001
- Securing
Ad Hoc Networks, Lidong Zhow, Zygmunt J. Haas, 1999
- Your
802.11 Wireless Network has No Clothes, Willam A. Arbaugh, Narendar
Shankar, Y. C. Justin Wan, marzo 2001
- (In)Security of
the WEP algorithm, Nikita Borisov, Ian Goldberg, David Wagner, 2001
- WEP
Encryption, ORiNOCO Technical Bulletin 027/A, septiembre 1999
- Exploiting
and protecting 802.11b Wireless NetworksCraig Ellison, septiembre 2001
- Wireless
LANs Unsafe at any key size; An analysis of the WEP encapsulation,
Jesse R. Walker, octubre 2000
- Why
Cryptosystems Fail, Ross Anderson, 1994
Notas de prensa
Otros documentos
Bibliografía útil que no tuve a tiempo para la plática
- Building
Wireless Community Networks - Implementing the Wireless Web, Rob
Flickinger, noviembre 2001 (ed. O'Reilly, ISBN 0-596-00204-1)
- The Arrl Uhf/Microwave
Experimenter's Manual: Antennas, Components and Design, American Radio
Relay League (ISBN 0-87259-312-6)
- Telex Wireless
Antennas - WLAN/WISP FAQs, Telex Communications Inc. marzo 2002
- Proyecto AirSnort,
herramienta libre para recuperar llaves de WLAN monitoreando el tráfico
- Proyecto WEPCrack,
implementación del ataque descrito por Fluhrer, Mantin y Shamir para descubrir
llaves WEP
- Introduction
to Spread Spectrum, Randy Roberts, Key Telemetring Products
- ITCom Wireless
LANs, Universidad de Michigan, 2001
- Non-Cellular Wireless
Communication Systems, tesis doctoral de Jack P.F. Glas (ISBN
90-5326-024-2)
- Combating
WEP Weakness: Securing WLANs with IPSec, Robert Doud, Commsdesign.com,
marzo 2002
- Redes libres en
la Ciudad de México, mantenido por La Mancha de la Calabaza que Ladra
- Detecting
802.11 Discovery Apps, y la discusión al respecto en Slashdot
y en OpenBSD
Journal.
- FAQ
on wireless technologies
- Wireless Attacks and
Exploits menciona diferentes ataques simples que se pueden realizar
para causar negaciones de servicio, ataques de hombre en el medio, y da ligas
a amplificadores de señal
Preguntas relativas al software libre
- ¿Qué diferencia hay entre software libre y gratuito?
Esta tan
común y desafortunada confusión se debe a que en inglés la palabra para
definir libertad y gratuidad es la misma -- free. En español,
afortunadamente, tenemos dos conceptos muy sencillos y fáciles de diferenciar:
- Gratuito significa que no cuesta nada. Es un término aplicable al
valor monetario de, en este caso, el programa. Por ejemplo, el navegador
Opera y el cliente de correo
Eudora son software gratuito,
que subsanan su costo por medio de la inserción de publicidad. De hecho,
también el navegador Internet Explorer y el
cliente de correo Outlook Express de
Microsoft son software gratuito.
- Libre significa que nos da libertad. ¿Qué tipos de
libertad?
para una explicación más a profundidad, puedes visitar los
sitios de la Free Software Foundation, la Open Source Initiative, el proyecto Debian. Hay importantes
diferencias entre los puntos de vista de los organismos que menciono, pero
todos ellos concuerdan en las siguientes libertades básicas:
- Libertad de utilizarlo: Un programa libre no debe estar
restringido para su uso a ningún sector de la población, ni con ningún fin
específico. Por ejemplo, restringir el libre uso de un programa a ser
empleado sólamente en entornos académicos o prohibir que sea utilizado con
fines militares lo descalificaría como software libre.
- Libertad de aprender de él: Es muy importante para un
programador aprender de lo que hicieron otros programadores, Esto le evita
duplicar esfuerzos, le permite aprender de los errores de terceros, le da
la posibilidad de incluir el código hecho por alguna otra persona en sus
programas en vez de tener que reescribir la solución a problemas que ya
han sido resueltos.
- Libertad de modificarlo: Si un programa hace algo muy parecido
a lo que necesito, ¿Por qué no ha de hacer exactamente lo que
necesito? Es muy importante tener la libertad de modificar un programa
adaptándolo a mis necesidades, extendiendo su funcionalidad, incluyendo
fragmentos o la totalidad de él en algún otro programa mío, etc.
- Libertad de redistribuirlo: Redistribuir software libre
no es ilegal. Tenemos, por el contrario, todo el derecho de
redistribuirlo como más nos guste. Podemos dar copias del programa en su
estado original, podemos redistribuirlo modificado. El programa, si bien
fue hecho por su autor para satisfacer cierta necesidad, y probablemente
él haya sido retribuído económicamente por crearlo, no tiene restricciones
para su posterior redistribución y usufructo.
Hay una gran
cantidad de licencias libres, que aplican probablemente de diferente manera
alguno de estos criterios. Las más conocidas son:
- GPL y similares: La licencia GPL fue creada por el Proyecto GNU, que busca crear un sistema
operativo completo libre, objetivo que ya ha sido cubierto con creces. La
característica principal de esta licencia es que cubre al programa y a toda
obra derivada de él, asegurándose que el código libre se mantendrá por
siempre libre.
El núcleo de Linux,
la colección de
compiladores GCC, el editor Emacs, el lenguaje Perl, la base de datos MySQL, las utilidades básicas
de los sistemas Linux, y una muy gran cantidad de aplicaciones están
protegidas con la licencia GPL.
- BSD y similares: Esta es una licencia de caracter académico, y
toma su nombre del software desarrollado en la Universidad de California en
Berkeley, donde fue hecha una muy buena parte del Unix que conocemos hoy en
día. Esta licencia exige únicamente que en trabajos derivados se dé crédito
a los autores originales, no imponiendo ninguna restricción a la manera en
que estos puedan ser redistribuídos -- Es inclusive posible su inclusión en
software no libre. De hecho, en casi todos los sistemas operativos
comerciales (incluídos los principales Unixes y Windows) la implementación
del protocolo TCP/IP es la hecha por los investigadores de la Universidad de
California.
El servidor de Web
Apache, el servidor de XWindow
XFree, el lenguaje PHP, la base de datos PostgreSQL, la mayor
parte de los sistemas operativos FreeBSD, OpenBSD y NetBSD, y muchos otros proyectos están
liberados bajo licencias BSD.
- Dominio público: Si bien poca gente lo utiliza, el liberar código
al dominio público también lo calificaría como software libre. Al liberar
algo al dominio público lo hacemos libre de cualquier tipo de licencia o
restricción.
No hay proyectos importantes liberados al dominio público.
En resumen, el software gratuito no necesariamente es libre. El
software libre es gratuito en el sentido de que no es necesario pagar por
redistribuirlo. Sin embargo, el desarrollo del software libre sí cuesta
dinero, al igual que cualquier desarrollo profesional. Este costo se cubre al
liberar lo que fue programado específicamente para un proyecto y puede servir
para los demás, al hacer un programa o biblioteca de funciones que muy
probablemente nos pueda servir a futuro en otros desarrollos, etc.
La
comunidad del software libre tiene una ética muy clara y muy marcada. Muchas
veces hacemos desarrollos simplemente por hobby, por creerlos necesarios o
porque son una buena idea, no para recibir una remuneración por ellos.
Por
último, es importante agregar que los usuarios y desarrolladores del software
libre no promovemos ni apoyamos la piratería - Defendemos que el modelo
de desarrollo que seguimos es superior, y que es mucho mejor utilizar código
libre a utilizar programas propietarios, tanto para el desarrollador como para
el usuario o cliente. Sin embargo, si queremos que nuestras licencias sean
respetadas, tenemos que respetar a las licencias que otros decidan elegir.
- ¿Qué tan confiable es su sistema si está programado en un sistema
operativo que cualquier persona puede modificar?
Este es un error de
concepción muy común, y me da gusto haber recibido esta pregunta.
El que
el código fuente esté disponible y que cualquier pueda meterle mano y
redistribuirlo no significa que los cambios que haga cualquiera sean admitidos
en el proyecto principal. Yo puedo, por ejemplo, modificar una copia de los
fuentes de Linux e intentar redistribuirla con mis modificaciones malignas.
Sin embargo, mis modificaciones no serán aceptadas obviamente por los
mantenedores oficiales del núcleo, y por tanto no llegarán a las
distribuciones, mecanismo por el cual casi todos los usuarios nos hacemos de
nuestras copias del sistema. Podrí intentar distribuirlo yo mismo, sin embargo
por medio de firmas criptográficas (MD5 checksum, típicamente) cualquiera
puede confirmar que los paquetes que tenemos sean legítimos. Además, si yo
distribuyo una copia modificada, tendré que hacerlo entre mis conocidos,
dañando únicamente mi propio prestigio.
Por último, no es indispensable
contar con el código fuente de un programa para distribuirlo modificado -
Tomemos, por ejemplo, los programas típicos en Windows - Probablemente sean
miles de archivos, y cada uno de ellos ocupa al menos decenas de megabytes.
Estos paquetes no contienen ningún tipo de verificación criptográfica. Agregar
un archivo al paquete, un binario que envuelva a uno de los binarios
legítimos, modificando parte de su conducta o su interacción con el mundo, no
es en absoluto difícil.
- ¿Cuál será el sistema operativo más seguro?
El proyecto OpenBSD ha creado el sistema operativo
mundialmente reconocido como el sistema más seguro del mundo.
El equipo de
desarrollo de OpenBSD nació de una escisión del proyecto NetBSD, un sistema Unix libre y
multiplataforma. El motivo de la separación fue precisamente el énfasis en la
seguridad - Theo de Raadt, líder del proyecto, prefirió por sobre de agregar
nuevas capacidades al sistema el llevar a cabo una árdua auditoría del código
fuente, erradicando no únicamente las vulnerabilidades de seguridad que fueran
encontrando, sino que todos los errores detectados, e inclusive todas las
malas prácticas de programación.
De este tan difícil esfuerzo surgió el
sistema operativo OpenBSD, el cual desde su liberación en 1996 no ha tenido
ni una sóla vulnerabilidad que proporcione privilegios de administrador
a un atacante remoto en la instalación por default.
El grupo de
programadores de OpenBSD ha continuado el desarrollo de su sistema
orientándolo hacia la seguridad. El exitoso proyecto OpenSSH, una
implementación completamente libre y no cubierta por patentes del protocolo
Secure Shell (ssh) disponible para prácticamente todos los sistemas
operativos, fue lidereado por varios programadores de OpenBSD. OpenBSD es
también el primer sistema operativo en proporcionar soporte a aceleradoras
criptográficas en hardware.
- ¿Qué ventajas da Linux o Unix contra Windows Server 2000? ¿Es
seguro?
La primera ventaja, en la que no voy a abundar pues ya mucho he
hablado en esta sección, es que Linux y los BSDs son libres, en tanto que
Windows no lo es.
Una segunda ventaja es la trayectoria histórica de los
grupos o empresas que impulsan a cada sistema: Unix es un sistema operativo
creado hace ya más de 30 años, y los cambios importantes que ha sufrido desde
su creación son muy pocos. Existen numerosas implementaciones, tanto libres
como propietarias, de Unix, y todas ellas conforman con las líneas básicas del
estándar POSIX, y utilizar uno u otro no es demasiado diferente. Microsoft
diseñó la primera versión de Windows en 1985, y en cada cambio mayor de
versión, hay muy fuertes cambios tanto ante el usuario como ante los
programadores, que tienen que aprender una nueva serie de APIs y olvidar los
anteriores. Microsoft ha comprado o sacado del negocio a toda empresa que
pudiera hacerles competencia, y son dueños de la única implementación
existente de Windows. Pueden, por tanto, hacer lo que quieren sin preservar
continuidad en el sistema.
A lo largo de los años, Microsoft ha sido muy
poco responsable respecto a la seguridad. En el ciclo de vida de sus productos
de rango servidor (NT Server, W2k, XP Professional) sólo hay cinco o seis
actualizaciones (Service Packs), cada una de las cuales mide varios
megabytes, y parcha varias decenas de vulnerabilidades y otros
problemas. Esto, en contraposición a un gran número de pequeños parches
específicos a uno u otro paquete, disponibles a los pocos dís de haber sido
descubierto el problema.
Por último, la granularidad de la instalación es
muchísimo mayor en los sistemas libres. Cuando hago una instalación de un
sistema libre tengo varios miles de paquetes que puedo decidir instalar.
Algunos de estos paquetes medirán sólamente un par de kilobytes, mientras que
otros serán de decenas de megabytes. Puedo elegir si instalar o no entorno
gráfico, motor de bases de datos, servidores de diferentes tipos, etc. Esto no
sólo reduce la carga que en determinado momento tiene nuestro servidor, sino
que lo mantiene más seguro -- Todo código introduce posibles vulnerabilidades,
y entre menos código tengamos instalado, más seguro será nuestro sistema. En
un sistema Unix podemos elegir mucho mejor qué instalar y qué no.
- Actualmente, ¿Qué desarrollos ha habido en Linux para el Internet
Móvil?
Hay un gran empuje en Linux hacia los dispositivos empotrados y
el cómputo móvil, demasiados como para listarlos aquí. Sin embargo, te doy un
par de ligas, esperando que te sean de utilidad:
Preguntas relativas a la seguridad en general
- ¿Qué medidas podemos tomar para tener una red segura?
¿Cómo
podemos hacer una red segura?
Asegurar una red no es un proceso simple,
y no existe una receta simple para hacerlo. Sin embargo, los siguientes puntos
básicos siempre nos ayudarán:
- Seguridad física: El primer paso para considerar una red segura
es asegurarla físicamente - Tanto para evitar intrusiones como para asegurar
la conectividad. El no permitir que la red crezca sin un plan, crear una
infraestructura apta para llevar el cableado, atenerse completamente a los
estándares propuestos por los fabricantes, el mantener la claridad y
limpieza en todos los puntos importantes de nuestro cableado constituyen lo
necesario para decir que tenemos cableado estructurado. El cableado
estructurado nos evita negaciones de servicio, ya que es más difícil que
haya pérdida de señal o interferencia eléctrica con buen cableado.
No
podemos dejar de lado, claro está, el mantener un claro registro de dónde
tenemos instalados puntos de red, a quién pertenecen, la
direcci&oacut;en MAC (dirección física del adaptador de red) de los
dispositivos que ahí conectemos, y siempre que sea posible no instalar
puntos en espacios públicos, ya que para un intruso es muchas veces mucho
más fácil conectarse a través de la red local que buscar el acceso
remotamente.
Si tenemos una red inalámbrica es mucho más difícil asegurar
físicamente nuestra red. De todos modos, utilizando las capacidades de
cifrado de las redes inalámbricas, como las que menciono aquí,
ubicando nuestros puntos de acceso tan al centro de nuestras instalaciones
como sea posible para evitar "derramar" señal, y en general utilizando el
sentido común al instalar nuestra red, podremos evitar exponernos de
más.
Recuerden que una red inalámbrica puede ser muy conveniente y
económica, pero si es instalada sin el cuidado necesario, puede ser nuestra
mayor vulnerabilidad. Les sugiero fuertemente no instalar redes inalámbricas
sin antes haber hecho un estudio en el que concluyan que las ventajas son
superiores a los riesgos.
- Seguridad perimetral: Una vez que tenemos confianza en nuestra
instalación de red, tenemos que definir perímetros de seguridad, los cuales
serán divididos por uno o varios firewalls. La configuración más simple
consiste en sólamente poner un firewall entre nuestra red local y nuestra
salida a Internet, permitiendo únicamente la entrada y salida a las
conexiones autorizadas. Sin embargo, esta configuración es muy simplista.
Para una red importante y de complejidad mediana, les recomiendo fuertemente
tener delimitados cuando menos los siguientes perímetros:
- Servidores de uso interno
- Servidores de uso externo
- Red local
- Red inalámbrica
El poder controlar granularmente el acceso
entre áreas les dará una gran flexibilidad para definir las reglas de
filtrado de paquetes, incrementando fuertemente la seguridad de su red. Es
importante recordar que la mayor parte de ataques, tanto intencionales como
no intencionales, que sufre cualquier organización tienden a venir del
interior de la misma.
- Monitorear constantemente la red: Parte importante de la
seguridad en una red consiste en monitorearla activamente. Hay muchas
condiciones que pueden llevarnos a fallas, y muy fáciles de corregir -o por
lo menos diagnosticar- si contamos con herramientas de monitoreo. Podemos
utilizar herramientas libres como MRTG, que
nos da un reporte gráfico -diario, semanal, mensual y anual- de los datos
que le configuremos.
Otro aspecto importante a monitorear es los intentos
de ataque que estemos recibiendo, para saber de qué protegernos, cuáles son
nuestros principales riesgos, quién está intentando atacarnos, por qué
medios, y qué es lo que buscan. Para ello, podemos instalar sistemas de
detección de intrusos (IDSs, por sus siglas en inglés). El IDS más poderoso
y popular hoy en día es libre, y se llama Snort. Hay varios proyectos que agregan
capacidades a Snort, como ACID, Hogwash y Demarc.
- Mantener las computadoras al día: La instalación de nuestra red
puede haber sido muy segura. Podemos tener firewalls delimitando cada área
específica. Sin embargo, si no mantenemos actualizados nuestros sistemas
operativos, programas y herramientas, nuestra red no podrá ser considerada
segura. Es muy frecuente, en software tanto libre como propietario, que sean
encontradas fallas de programación que pueden traducirse en agujeros de
seguridad - un administrador de redes responsable debe mantener sus sistemas
con los parches al día, para no sufrir ataques prevenibles.
- ¿Qué programa me ayudaría a encontrar contraseñas de usuarios de
Internet
¿Cómo capturó los datos de los usuarios conectados al
servidor del Tec?
La mayoría de las redes inalámbricas hoy en día están
basadas en la especificación 802.11b de la IEEE, que es equivalente a una red
Ethernet normal, sobre un medio inalámbrico, por lo que la respuesta a esta
pregunta no se limita únicamente a redes inalámbricas.
En una red Ethernet,
el medio de comunicación (sea el cable o el espacio en el espectro
electromagnético) es compartido entre todas las computadoras que conforman un
segmento. Esto significa que cuando cualquier computadora quiere enviar
un paquete a cualquier otra, tiene que cerciorarse primero que ninguna otra
computadora esté utilizando la red - Si te interesa investigar más acerca de
cómo funciona una red Ethernet, busca información acerca del mecanismo de
resolución de conflictos CSMA/CD (Carrier Sense Multiple Access /
Collision Detect).
Bueno... A lo que iba - En una red Ethernet, todo el
tráfico generado por cualquiera de las computadoras llega a todas las demás.
Normalmente, las interfaces de red de una computadora est´n configuradas para
no enviar al procesador interrupciones innecesarias. Basta configurar la
tarjeta de red para que entre en modo promiscuo (con la bandera
promisc en ifconfig en los sistemas libres derivados de Unix) para que
todo el tráfico de red sea procesado por el kernel.
Hay varios programas
que nos permiten volcar la información que recibimos con la interfaz de red en
modo promiscuo, muy útiles para depurar el funcionamiento de una red. Estos
programas se conocen como sniffers, dado que olfatean lo que
ocurre en la red y me lo reportan de la manera que yo prefiera. Uno de los más
simples y comunes, que fue el que utilicé en la demostración que hice en la
red del ITESM, es tcpdump. Hay muchos más, pero todos se basan en el
mismo principio de operación. Utilicé tcpdump pues viene como parte de varios
sistemas operativos y es el de más simple uso, si bien pueden especificársele
parámetros que me permiten especificar a detalle el modo de operación.
- ¿Con qué programa puedo proteger mejor mis redes?
Proteger una
red implica proteger a cada uno de sus componentes. Hay una gran cantidad de
puntos que hay que tomar en cuenta al proteger una red, algunos de los cuales
ya mencioné en los incisos anteriores. Para mayor recomendaciones al respecto,
les sugiero consultar los sitios que comento en esta
pregunta, o mandarme un correo.
- ¿Qué páginas Web recomienda para adentrarnos más y aprender sobre
seguridad?
- Sitios generales
- Centros de atención a incidentes
- Sitios underground
- Congresos y seminarios importantes
- Seguridad en Cómputo,
organizado por la UNAM año con año, con inicios muy humildes en 1994. Es
el congreso de seguridad más importante en el mundo de habla hispana
- SANS El Instituto SANS da cursos
especializados a responsables de seguridad. Sus encuentros se llevan a
cabo varias veces por año y en diferentes continentes -- en el 2001 hubo
cuatro encuentros, dos de ellos en Estados Unidos, uno en Inglaterra y uno
en Australia. Tienen disponible material de sus cursos en este sitio.
- USENIXUSENIX es una organización
techo que organiza congresos de todo tipo relacionados con la
administración de sistemas en todo el mundo. De sus congresos, el más
importante relacionado con seguridad es LISA.
- ¿Cómo estructuraría un buen cifrado para que sea segura la
red?
Me permito reformular esta pregunta, dado que un buen
cifrado no puede ser estructurado - Al menos no por mí, el
administrador de la red. La pregunta, entonces, se convierte en cómo
elegir un buen cifrado para dar seguridad a nuestra red.
Es
importante llevar el cifrado a todos los niveles. No podemos confiar
únicamente en cifrado al nivel que nos ofrece WEP, pues sería lo mismo que
confiar en la confidencialidad que nos da una red Ethernet tradicional.
Si
en su red van a desarrollar o implementar aplicaciones sobre Web, les sugiero
hacerlas sobre canal cifrado - Prácticamente todos los navegadores actuales
manejan comunicación sobre SSL, y del lado del servidor, también casi la
totalidad de los servidores -tanto libres como propietarios- manejan este
cifrado. Queda a ustedes la decisión de si comprar un certificado de identidad
de alguna autoridad certificadora (como Verisign o Thawte) o firmar ustedes mismos su
certificado - aquí tengo una
justificación para no acudir a autoridades certificadoras.
Bases de datos
como PostgreSQL permiten manejar
todas las comunicaciones sobre canal cifrado con SSL.
Para manejar sesiones
remotas en servidores, sugiero fuertemente utilizar Secure Shell,
específicamente la implementación OpenSSH, programada por el grupo de
desarrolladores de OpenBSD.
En caso de que el protocolo que ustedes
requieran, o un programa cliente o servidor que lo implementen, no manejen
cifrado nativamente, siempre pueden "envolverlo" con STunnel, programa que crea un túnel SSL
para la comunicación de manera casi transparente para los programas.
El
correo puede ser protegido fácilmente con PGP, con su implementación libre GnuPG. PGP nos permite, claro, además crear
llaveros de confianza, dando a un medio tan poco confiable como el correo
electrónico garantís de integridad, confidencialidad, autenticidad e
irrefutabilidad.
Buena parte de estos programas están basados en una
biblioteca de cifrado SSL. La más común es OpenSSL, la cual deriva de SSLeay.
Los invito a
revisar un documento que realicé para el Congreso de Seguridad en Cómputo 2000
realizado por el Departamento de
Seguridad en Cómputo de la DGSCA, UNAM. Este documento habla acerca de la Infraestructura de llaves
públicas (PKI - Public Key Infrastructure), parte fundamental de todas
estas implementaciones.
Preguntas relativas a la seguridad en redes inalámbricas
- ¿Cómo se conectó a la red del Tec?
¿Cómo puedo conectarme a
una red inalámbrica con una PC (laptop)? ¿Se tiene que hacer alguna
configuración?
La red inalámbrica del Tec es, por diseño, una red
abierta. Esto tiene mucha lógica - Es una red para uso público en una
universidad, cuya razón de ser es dar conectividad a los alumnos. En esta
pregunta hablo de las organizaciones que no activan cifrado en sus redes
inalámbrica - Obviamente, el Tec no tiene por qué activar cifrado, pues esto
entorpecería el objetivo de uso público de la red del Tec.
Una vez hecha
esta aclaración...
Para conectarse a una red inalámbrica que no implementa
cifrado WEP basta con ponerle la tarjeta de red inalámbrica a una portátil
cualquiera. Típicamente en sistemas Unix no es necesario siquiera configurar
los controladores de la tarjeta. Basta con esperar a que el servidor DHCP,
típicamente existente en redes inalámbricas, nos asigne una dirección, y
podemos comenzar a utilizar la red.
Dejando de lado el ejemplo del Tec, si
hablamos de una red genérica, en la que sí hay WEP configurado, lo que
necesitamos hacer es configurar a nuestra tarjeta de red con una de las llaves
de uso de la red. ¿Cómo podemos hacer esto? Depende del sistema operativo y
tipo de tarjeta que empleemos. Por ejemplo, en Linux podemos especificar el
ESSID y la llave de cifrado WEP utilizando el programa iwconfig.
- ¿Para qué son las antenas?
Tanto los Access Points como las
tarjetas de red están equipados con pequeñas antenas, aptas para un par de
cientos de metros en condiciones ideales, lo cual en el mundo real se traduce
a varias decenas de metros, por la sombra proyectada por las construcciones,
interferencias externas, etc.
Estos equipos, sin embargo, están diseñados
para permitirnos montar redes mucho más amplias. Pueden servir como
infraestructura muy económica entre edificios separados por más de quince
kilómetros - Nuevamente, en condiciones ideales.
Para aumentar el alcance
de los equipos, estos pueden conectarse a diferentes tipos de antenas. Existen
antenas de alta ganancia unidireccional, de muy diferentes tipos (colinear,
helicoidal, Yagi, semiparabólicas, etc.). Hay también antenas
omnidireccionales, para aumentar tanto el radio de cobertura de un dispositivo
inalámbrico como para aumentar la resistencia a interferencia. En esta página podrán
encontrar información mucho más detallada acerca de los tipos de antena,
cuándo conviene cada una de ellas y cómo construirlas en casa.
Estas
antenas se pueden comprar prefabricadas, o se pueden hacer artesanalmente.
Esto es un interesante y divertido experimento, que seguro les enseñará mucho.
Hay instrucciones para hacer esto en las diferentes redes de aficionados que
dan cobertura inalámbrica -conocidas como Guerrilla.net- a diferentes ciudades en
todo el mundo (incluyendo a Tampico en nuestro país, y con la Ciudad de México
en proyecto) - Una lista de estas redes en los Estados Unidos está aquí. Estas antenas
típicamente se hacen ya sea con tubos PVC o similares, logran una ganancia muy
similar a la de una Yagi profesional, a una fracción del precio.
- ¿WEP es la mejor opción en cuanto a la seguridad en redes, o hay alguna
mejor?
WEP no es una buena opción, sin embargo, es la única opción que
tenemos compatible con todo el hardware disponible actualmente. Hay una
opción, sí, compatible con WEP, pero -como explica este
artículo, sufre de los mismos problemas que WEP.
La WECA (Wireless
Ethernet Compatibility Alliance) definió un mecanismo destinado a reemplazar a
WEP sin requerir modificaciones al hardware existente - TKIP (Temporary Key
Integrity Protocol) hace un tanto más complejo el trabajo de quien desee
romper la seguridad adivinando las llaves, pero definitivamente no es
suficiente, ya que sigue siendo vulnerable al mismo tipo de ataques. Cabe
mencionar que TKIP fue diseñado desde el principio únicamente como una medida
paliativa temporal a las debilidades de WEP, haciendo el máximo uso posible
del hardware ya disponible en los miles de tarjetas inalámbricas ya
disponibles.
La IEEE recomienda el uso de AES (Advanced Encryption
Standard), que será pronto un estándar de cifrado en todo tipo de productos,
pero actualmente este nivel de cifrado requiere mucho mayor trabajo matemático
del que puede realizar un dispositivo tan simple como una tarjeta de red, y
seguramente elevará el precio de venta del hardware que lo implemente, que se
espera que aparezca a principios del 2003.
Una buena solución, como lo
indica este
artículo, es el uso de cifrado en capas superiores, específicamente en la
capa de red (IP), requiriendo el uso del estándar IPSec para el uso de nuestra
red inalámbrica. Si bien este es el mejor mecanismo para implementar verdadera
seguridad, sigue teniendo la desventaja de significar una carga adicional al
CPU - El cifrado que realiza IPSec es matemáticamente muy complejo. Sin
embargo, de entre todas las opciones que tenemos, es sin duda la más completa
y confiable.
- ¿A qué se debe que gran parte de las organizaciones que utilizan redes
inalámbricas no cuentan con la seguridad necesaria en
ellas?
Desafortunadamente, por simple omisión. La seguridad en muchas
organizaciones, inclusive organizaciones muy grandes, es relegada, dándole muy
baja prioridad o hasta ignorándola por completo. Es desafortunadamente
demasiado común ver grandes organizaciones en las que no se han tomado ni las
más básicas precauciones relativas a la seguridad - Y a nadie sorprende cuando
reportan pérdidas millonarias por un ataque.
¿Por qué es tan común que,
siendo tan importante y tan simple, la seguridad es relegada? En mi opinión,
esto no puede calificarse más que de negligencia. Si bien no me es posible
justificar que una organización no invierta en la seguridad adecuada para su
red, sí puedo entender que hasta que no tengan un primer incidente importante
no contraten a un equipo dedicado a seguridad. Sin embargo, el no configurar
los aspectos más básicos de seguridad en una red inalámbrica, los cuales
pueden ser implementados sin costo adicional, no puede calificarse más que de
negligencia.
- ¿No es posible tener una WLAN con varias llaves privadas para cada
usuario y con un algoritmo como RSA o más avanzado que permita una alta
seguridad al usuario, o incluso es fácil desencriptar usando estos
algoritmos?
Claro que sí. Un dispositivo puede tener configuradas hasta
cuatro llaves, y podrá hablar con cualquier otro dispositivo que tenga una de
estas llaves o que no esté utilizando cifrado, a menos que sea configurado
explícitamente para no aceptar comunicaciones no cifradas.
Cabe mencionar
que, como lo menciona este
artículo, configurar dos dispositivos, por más que ambos cumplan con el
estándar 802.11b, para que interoperen correctamente con WEP puede ser mucho
más difícil de lo que debería, por la falta de homogeneidad en las interfaces.