16 de enero de 2007

CAPTCHA, o el milagro de la criptografía.



CAPTCHA es un acrónimo para "Completely Automated Public Turing test to tell Computers and Humans Apart", o lo que es lo mismo: una prueba de seguridad automatizada y pública que pretende distinguir si el individuo examinado es humano o no. Se utiliza en diferentes sitios y servicios web para impedir la entrada de robots maliciosos (spam, por ejemplo), y consiste en la muestra de un mensaje que (supuestamente) sólo puede ser entendido por un usuario humano. Estos mensajes codificados pueden tener diferentes formas: reconocimiento de caracteres borrosos o distorsionados, reconocimiento del habla en un tono familiar o poco formal, cuentas matemáticas expresadas en lenguaje ordinario o mediante imágenes, etc.

Este intento de proteger la información de aquellos que no están destinados a recibirla no es nada nuevo: la historia de la criptografía se remonta a los orígenes de la civilización y la escritura; la escritura jeroglífica, en el antiguo Egipto, es un ejemplo de ello. Los hebreos también acuñaron sus propios criptogramas con códigos de sustitución, envolviéndolo todo en un ambiente de misticismo y cálculos cabalísticos con el fin de disuadir a los profanos en su intento de descifrar los textos. Dichos mensajes cifrados se utilizaban para tratar temas que supondrían un escándalo político, social o religioso si hubieran sido tratados en público.

En el periodo clásico, según Herodoto, los griegos ocultaban textos en la cera o tatuados en la cabeza de esclavos, cuyo cabello cubriría posteriormente el mensaje. Estas prácticas no son propiamente criptográficas, pues no pretenden hacer un mensaje ilegible, sino ocultar la existencia del mensaje, lo que es conocido como "estenografía". A Julio César, emperador romano, se le atribuye la escritura de ciertos tomos sobre criptografía militar, ahora desaparecidos, así como la creación del Código César, un cifrado consistente en desplazar un número determinado de posiciones las letras en un alfabeto.

La criptografía militar alcanzó su cénit durante los años más oscuros del Siglo XX: La Segunda Guerra Mundial. La Wehrmacht (el ejercito de la Alemania Nazi) poseía una flota de U-boot, o navíos submarinos, muy superior a la de sus adversarios. Dicha flota submarina era efectiva contra los buques de superficie de los aliados, y lo que es peor: eran realmente difíciles de detectar. Estos submarinos empleaban la famosa máquina "Enigma" para transmitir mensajes cifrados; sin el libro de códigos y una máquina similar, a los aliados les hubiera costado décadas romper las claves de los alemanes. Incluso teniendo los códigos y una máquina enigma, el código es susceptible de cambiar, retrasando todavía más el proceso.

Es aquí cuando entra en la historia Alan Turing, matemático británico y padre de las modernas ciencias de la computación. El grupo liderado por él creó, en 1943, la primera computadora digital programable, llamada Colossus (quizá por su desmesurado tamaño), y a parte de ayudar a los aliados a desencriptar los mensajes de los alemanes, permitió al matemático realizar conjeturas sobre cómo se desarrollarían las máquinas de computación que supondrían, años más tarde, la revolución tecnológica de nuestra sociedad. Turing vivió en sus propias carnes el desarrollo desmesurado de las máquinas de calcular debido a ese juego del engaño y los mensajes cifrados. Quizá esto fue lo que le impulsó a publicar su famoso artículo "Computing machinery and intelligence", en el que se expone la posibilidad de crear una inteligencia no natural implementada en una máquina (Inteligencia Artificial), así como un curioso juego de "engaño y descifre" conocido como el "Test de Turing", en el que un interrogador intenta averiguar si su interlocutor es un hombre o una máquina. La función de la máquina destinada a pasar la prueba sería la de descifrar lo expresado por el interrogador, así como codificar una respuesta que sea adecuada para continuar con el engaño.

Con los métodos modernos de seguridad electrónica, las máquinas son las encargadas de realizar dicho interrogatorio. A esto se le suele llamar "Test de Turing inverso". Al principio de la década de los 90, Internet era un medio cada vez más popular, pero pocos tenían acceso a él. Era el terrirorio de los "hackers", los gurús de la informática. Gente con ideas muy dispares y aficiones que rozan la ilegalidad. Esta afición por saltarse las reglas es lo que llevó a los hackers a crear la llamada "jerga élite", o "1337", que es, simplemente, una sustitución de los caracteres alfabéticos ordinarios por una serie de símbolos o números que se le asemejen. Así, la "E" se convierte en "3" y la letra "A" podría ser "4", ó "/-\", o cualquier otra cosa entendible por un humano y que evitase que una máquina dedicada a registrar estas conversaciones entendiese el mensaje. Algo así como un CAPTCHA primitivo.

Hoy día, muchos CAPTCHA son descifrados por robots, pero otros surgen en respuesta. Esto hace avanzar a los robots tanto como a la seguridad, debido a que los CAPTCHA están basados en problemas abiertos de la inteligencia artificial. Las computadoras nos han ayudado a realizar cálculos que eran inimaginables hace unos siglos, como estas hercúleas tareas de criptografía. Pero nosotros también las hemos ayudado a ellas, mejorándolas para hacerlas más aptas. Turing sabía que este juego de comprender el mensaje oculto llevaría a las máquinas más allá: por eso propuso su Test de la imitación. De momento, nosotros hemos conseguido engañar a las máquinas. La pregunta es: ¿Serán las máquinas capaces de engañar a los humanos algún día?

No hay comentarios: