viernes, diciembre 07, 2007

Sé lo que tecleaste el último verano


¡Hola, chicos! Éste es mi teclado inalámbrico. Es negro y plateado, a juego con mis altavoces, monitor y ratón. Es ligero y resistente. Las teclas tienen un tacto y un umbral de pulsado agradable. Y las pilas duran mucho.

Al mismo tiempo es una antena que transmite en la frecuencia de 27 MHz todas mis teclas pulsadas hacia un dispositivo receptor conectado a la torre del ordenador. Pero claro, no sólo radia hacia ese dispositivo receptor, sino que en principio radia hacia arriba, hacia abajo, hacia el jardín y hacia la casa de enfrente. Pues bien, unos expertos en seguridad suizos han publicado esta semana (Þ Kriptopolis) algo que no acaba de sorprenderme: que la comunicación entre el teclado y el receptor ocurre siguiendo un procedimiento completamente inseguro y que, en principio, mi vecino puede estar espiando mis contraseñas cuando las tecleo, por no mencionar que debe también de haber leído los valiosos primeros capítulos de mis memorias mientras las redacté, en las que narro cómo el Dalai Lama, Steve Jobs y la canciller alemana vienen a mí diariamente en busca de consejo.


El mecanismo que usa Microsoft para asegurar la comunicación puede ser roto con los conocimientos que adquiere un niño de 12 años cuando lee El escarabajo de oro. Así funciona: Una clave de un byte aleatorio es fijada cuando se arranca el teclado (p. ej. 11001111). Luego se transmitirá por radio el resultado de hacer un OR exclusivo (XOR) de cada tecla pulsada con esa clave fija. Por ejemplo, cuando se pulsa "A" (10000001), se transmite "N" (10000001 XOR 11001111 = 01001110).

Una simple substitución de una letra por otra que, como Edgar Allan Poe demuestra en el cuento, puede ser rota con un análisis estadístico de la distribución de frecuencias de grupos de letras dentro de un lenguaje. Por ejemplo, si sé que la "N" es la letra que aparece con más frecuencia en la señal interceptada, y sé que el usuario generalmente teclea un texto en castellano, deduciré que la "N" corresponde a la "A" o a la "E", que son las letras que más se usan en ese idioma. Rápidamente se descubre así cuál era la clave de codificación. O de una manera menos novelística: el sistema puede ser roto también por la fuerza bruta, es decir, probando todas las claves posibles. Porque a fin de cuentas, una clave de un byte sólo permite 256 posibilidades distintas de codificar un mensaje y sólo una de ellas devolverá, tras el proceso de "descifrado", un texto con sentido en un lenguaje determinado.

Ciertamente, un teclado alimentado con pilas a 3 voltios no puede emitir una señal que llegue muy lejos, pero eso no es razón para despreocuparse. Lo mismo decían de Bluetooth y mira lo qué pasó. La solución a este problema no es, desde luego, utilizar el mismo mecanismo con una clave más larga. Existen muchas técnicas estandarizadas en el área de las comunicaciones para asegurar la privacidad de una comunicación, por ejemplo, el uso de un cifrado criptográfico.

¿Me tocará desempolvar mi viejo teclado PS/2 y guardar el inalámbrico en el armario? Es una decisión en la que hay que sopesar los riesgos y las comodidades. Con respecto al tema del espionaje de contraseñas, tengo que reconocer que nunca tecleo ninguna... simple y llanamente porque no me puedo acordar de todas ellas. Las tengo almacenadas en PasswordSafe, un programa para gestionar passwords, y uso "copiar y pegar" cuando las necesito, con lo que nunca salen de mi teclado. Para hacer online banking uso mi lector de tarjetas bancarias, que trae un teclado numérico incorporado (y no es inalámbrico). Sólo me incomoda entonces el riesgo de que el vecino vaya a leer furtivamente los próximos capítulos de mis memorias...

No hay comentarios: