Un equipo multidisciplinario de neurocientíficos y criptógrafos de Estados Unidos desarrollaron un sistema de contraseña que se asegura de mantener la clave en secreto… incluso para quien la posee.
El sistema criptográfico, llamado Serial Interception Sequence Learning (SISL), fue ideado por Hristo Bojinov de la Universidad de Stanford y amigos de Northwestern y del SRI, y está basado en el aprendizaje implícito, un proceso mediante el cual se puede absorber nueva información sin estar realmente consciente de ello.
Mediante un juego de computadora especialmente diseñado para aprender el password, parecido a Guitar Hero, el sistema ‘guarda’ la información en una zona específica del cerebro a la que no se puede accesar por voluntad propia, pues queda en el subconsciente esperando ser utilizada.
Antes de iniciar, el juego crea una secuencia aleatoria de 30 letras escogidas entre S, D, F, J, K, y L, sin caracteres repetidos. Hay seis botones, y cuando comienza, el usuario tiene que presionar el botón de la letra correspondiente cuando el círculo llega a la parte inferior.
La sesión dura aproximadamente 45 minutos, y el 80% de las pulsaciones de teclas realizadas están utilizandose para inconscientemente introducirte la contraseña de 30 caracteres. Un password tan largo como ese es millones de veces más seguro que un password promedio capaz de ser recordado.
Quizá a algunas personas no se les venga de inmediato a la mente las ventajas de poseer un password imposible de recordar de manera consciente, pero habrá quienes desearán que esto hubiera sido posible antes de tener que entregar la contraseña por orden de un juez.
Si no puedes recordar un password, no hay manera de que alguien lo obtenga mediante coacción o tortura, y será verdad cuando digas “lo siento, no puedo recordarlo”.
Hackers astutos pueden robar los secretos de una computadora midiendo el tiempo que tardan las transacciones de almacenamiento de datos o midiendo su consumo de energía. Nueva investigación muestra como detenerlos.
Larry Hardesty, MIT News Office. Original (en inglés).
En los últimos 10 años, investigadores de criptografía han demostrado que aún la computadora aparentemente más segura es espantosamente vulnerable a un ataque. El tiempo que le toma a una computadora guardar datos en memoria, fluctuaciones en su consumo de energía e incluso ruidos que emite pueden traicionar y dar la información para un asaltante astuto.
Ataques que usan dichas fuentes indirectas de información son llamados ataques de canal alterno, y el alza en popularidad de la computación en la nube los hace una amenaza aún mayor. Un atacante tendría que estar muy motivado para instalar un dispositivo en tu pared para medir el consumo de energía de tu computadora. Pero comparativamente es más fácil cargar un poco de código en un servidor en la nube para escuchar otras aplicaciones que está ejecutando.
Afortunadamente, mientras que ellos han estado investigando ataques de canal alterno, los criptógrafos también han estado investigando maneras de detenerlos. Shafi Goldwasser, la profesora de Ingeniería Eléctrica y Ciencia Computacional en el MIT (Massachusetts Institute of Technology – Instituto Tecnológico de Massachusetts), y su antiguo estudiande Guy Rothblum, quien es ahora un investigador en Microsoft Research, recientemente publicaron un largo reporte en el sitio web de Electronic Colloquium on Computational Complexity (Coloquio Electrónico sobre Complejidad Computacional), describiendo un acercamiento general para mitigar ataques de canal alterno. En el Simposio sobre la Teoría de la Computación (STOC – Symposium on Theory of Computing) de la Asociación para la Maquinaria Computacional en mayo, Goldwasser y sus colegas presentarán un artículo demostrando como la técnica que ella desarrolló con Rothblum puede ser adaptada para proteger información procesada en servidores web.
Adicionalmente a prevenir ataques en información privada, dice Goldwasser, la técnica también podría proteger dispositivos que usan algoritmos propietarios para que no se pueda usar la ingeniería inversa por piratas o competidores en el mercado – una aplicación que ella, Rothblum y otros describieron en la conferencia AsiaCrypt del año pasado.
Hoy en día, cuando una computadora personal está en uso, usualmente está ejecutando programas múltiples – dice, un procesador de palabras, un navegador, un visor de archivos PDF, quizá un programa de correos u hojas de cálculo. Todos los programas están almacenando datos en la memoria, pero el sistema operativo de la laptop no permite que ningún programa vea los datos almacenados por otro. Los sistemas operativos funcionando en servidores en la nube no son diferentes, pero un programa malicioso podría lanzar un ataque de canal alterno simplemente enviando sus propios datos a la memoria una y otra vez. Por el tiempo que toma el almacenamiento y la recuperación de datos, podría inferir lo que otros programas están haciendo con precisión sorprendente.
La técnica de Goldwasser y Rothblum oscurece los detalles computacionales de un programa, ya sea que esté ejecutándose en una laptop o un servidor. Su sistema convierte un cálculo dado en una secuencia de módulos computacionales más pequeños. Los datos alimentados al primer módulo son cifrados, y en ningún punto durante la ejecución del módulo son descifrados. La salida todavía cifrada del primer módulo es alimentada al segundo módulo, que la cifra en una manera diferente, y así sucesivamente.
Las formas de cifrado y los módulos están diseñados para que la salida del módulo final sea exactamente la salida de la computación original. Pero las operaciones realizadas por los módulos individuales son enteramente diferentes. Un atacante de canal alterno podría extraer información sobre como los datos en cualquier módulo dado son cifrados, pero eso no le permitirá deducir cual es la secuencia de módulos completa. “El adversario puede tomar mediciones de cada módulo”, dice Goldwasser, “pero no podrán aprender nada más de lo que podrían de una caja negra.”
El reporte por Goldwasser y Rothblum describe un tipo de compilador, un programa que toma código escrito en una forma inteligible a los humanos y lo convierte en un set de instrucciones de bajo nivel inteligibles a una computadora. Ahí, los módulos computacionales son una abstracción: La instrucción que inaugura un nuevo módulo no se ve diferente de la instrucción que concluyó el último. Pero en el artículo de STOC, los módulos son ejecutados en diferentes servidores en una red.
De acuerdo a Nigel Smart, un profesor de criptología en el departamento de ciencia computacional en la Universidad de Bristol en Inglaterra, el peligro de los ataques de canal alterno “ha sido conocido desde finales de los 90”.
“Se hizo mucha ingeniería para tratar de prevenir que esto fuera un problema”, dice Smart, “una enorme cantidad de trabajo de ingeniería. Eso es mucho dinero en la industria”. Mucho de ese trabajo, sin embargo, se ha basado en prueba y error, dice Smart. El estudio de Goldwasser y Rothblum, por otro lado, “es un estudio con muchas más bases, analizando preguntas básicas y profundas sobre que es posible”.
Además, dice Smart, trabajo previo en ataques de canal alterno tendían a enfocarse en la amenaza impuesta a dispositivos móviles, como celulares y tarjetas inteligentes. “Me parece que lo más probable que ocurra en el futuro es lo que se habla sobre servidores”, dice Smart. “No se de nadie fuera del MIT que esté estudiando eso”.
Smart advierte, sin embargo, que el trabajo de GoldWasser y sus colegas es improbable que se convierta en aplicaciones prácticas en el futuro cercano. “En seguridad, y especialmente en criptografía, toma un largo tiempo pasar de una idea académica a algo que realmente sea utilizado en el mundo real”, dice Smart. “Están estudiando lo que podría ser posible en un tiempo de 10 o 20 años”.
Un nuevo giro en trabajo pionero hecho por criptógrafos del MIT (Massachusetts Institute of Technology – Instituto Tecnológico de Massachusetts) hace casi 30 años podría llevar a mejores maneras de estructurar contratos.
Larry Hardesty, MIT News Office. Original (en inglés).
En 1993, los investigadores criptógrafos del MIT Shafi Goldwasser y Silvio Micali compartieron el primer premio Gödel para la ciencia computacional teórica por su trabajo en pruebas interactivas – un tipo de juego matemático en el que un jugador intenta extraer información confiable de un interlocutor no confiable.
En su innovador artículo de 1985 sobre el tema, Goldwasser, Micali y el doctor Charles Rackoff de la Universidad de Toronto propusieron un tipo particular de prueba interactiva, llamada prueba de cero-conocimiento, en la que un jugador puede establecer que él o ella conoce alguna información secreta sin llegar a revelarla. Hoy en día, pruebas de cero-conocimiento son utilizadas para asegurar transacciones entre instituciones financieras y varias compañías nuevas han sido fundadas para comercializarlas.
En el Simposio sobre Teoría Computacional de la Asociación de Maquinaria Computacional en Mayo, Micali, el profesor de Ingeniería en el MIT, y el estudiante graduado Pablo Azar presentarán un nuevo tipo de juego matemático al que están llamando una prueba racional; varía las pruebas interactivas dándoles un componente económico. Cómo las pruebas interactivas, las pruebas racionales pueden tener implicaciones para la criptografía pero también podrían sugerir nuevas maneras de estructurar incentivos en contratos.
“Mientras que estre trabajo es sobre asimetría de información”, añade Micali. “En la ciencia computacional, pensamos que información valiosa es el resultado de un largo cálculo, un cálculo que no puedo hacer yo mismo”. Pero los economistas, dice Micali, modelan el conocimiento como una distribución de probabilidad que precisamente describe un estado de la naturaleza. “Era claro para mi que ambas cosas tenían que converger”, dijo.
Una prueba interactiva clásica involucra dos jugadores, a veces nombrados Arturo y Merlín. Arturo tiene un problema complejo que necesita resolver, pero sus recursos computacionales son limitados; Merlín, por otro lado, tiene recursos computacionales pero no es confiable. Una prueba interactiva es un procedimiento por medio del cual Arturo le hace a Merlín una serie de preguntas. Al final, aunque Arturo no puede resolver el problema por sí mismo, puede decir si la solución que Merlín le ha dado es válida.
En una prueba racional, Merlín sigue siendo no confiable, pero es un actor racional en el sentido económico: Cuando es enfrentado con una decisión, siempre elegirá la opción que maximice su recompensa. “En la prueba interactiva clásica, si haces trampa, eres atrapado”, Azar explica. “En este modelo, si haces trampa, obtienes menos dinero”.
Conexión de complejidad
Investigación en pruebas interactivas y pruebas racionales cae bajo la categoría de la teoría de complejidad computacional, que clasifica problemas computacionales de acuerdo a qué tan difíciles son de resolver. Las dos clases de complejidad mejor conocidas son P y NP. A grandes rasgos, P es un grupo de problemas relativamente fáciles, mientras que NP contiene algunos problemas que, hasta donde se sabe, son muy, muy difíciles.
Problemas en NP incluyen la factorización de grandes números, la selección de una ruta óptima para un vendedor que viaja, y los llamados problemas de satisfacibilidad, en los que uno debe encontrar condiciones que satisfagan conjuntos de restricciones lógicas. Por ejemplo, es posible idear una lista de asistencia para una fiesta que satisfaga la expresión lógica (Alicia O Bob Y Carol) Y (David Y Ernie Y NO Alice)? (Si: Bob, Carol, David y Ernie van a la fiesta, pero Alice no). De hecho, la gran mayoría de los problemas difíciles en NP pueden ser replanteados como problemas de satisfacibilidad.
Para tener un sentido de como funcionan las pruebas racionales, considera la pregunta de cuántas soluciones tiene un problema de satisfacibilidad – problemas aún más difíciles que encontrar una sola solución. Supón que el problema de satisfacibilidad es una versión más complicada del problema de la lista de la fiesta, uno que involucra 20 invitados. Con 20 invitados, hay 1,048,576 posibilidades para la composición final de la fiesta. ¿Cuántas de esas satisfacen la expresión lógica? Arturo no tiene suficiente tiempo para probarlas todas.
¿Pero que sucede si Arturo en su lugar subasta un boleto en una lotería? Incluso escribirá una lista perfectamente aleatoria de asistentes a la fiesta – Alice si, Bob no, Carol si y así sucesivamente – y si satisface la expresión, le dará a quien tenga el boleto $1,048,576. ¿Cuánto ofrecerá Merlín por el boleto?
Supon que Merlín sabe que hay exactamente 300 soluciones para el problema de satisfacibilidad. Las posibilidades de que la lista de la fiesta de Arthur sea uno de ellas son 300 en 1,048,576. De acuerdo al análisis econométrico estándar, una posibilidad de 300 en 1,048,576 vale exactamente $300. Así que si Merlín es racional, apostará $300 por el boleto. De esa información, Arturo puede deducir el número de soluciones.
Knockout a la primera ronda
Los detalles son más complicados que eso, y por supuesto, con muy pocas excepciones, nadie en el mundo real quiere poner un millón de dólares para aprender la respuesta a un problema matemático. Pero el resultado del artículo de los investigadores es que con pruebas racionales, pueden establecer en una ronda – “¿Qué ofreces?” – lo que podría requerir millones de rondas usando pruebas interactivas clásicas. “La interacción, en la práctica, es costosa”, dice Azar. “Es costoso enviar mensajes por una red. Reduciendo la interacción de un millón de rondas a una provee ganancias significativas en tiempo”.
“Pienso que es otro caso donde pensamos que entendemos que es una prueba, y hay un giro, y obtenemos algún resultado inesperado”, dice Moni Naor, la presidenta en el Departamento de Ciencia Computacional y Matemáticas Aplicadas en el Instituto Israelí de Ciencia Weizmann. “Lo hemos visto en el pasado con pruebas interactivas, que resultaron ser muy poderosas, mucho más poderosas de lo que normalmente piensas que lo son pruebas que escribes y verificas”. Con pruebas racionales, dice Naor, “tenemos otro giro, si asignas alguna racionalidad teórica al demostrador, entonces la prueba es otra cosa en la que no pensamos en el pasado”.
Naor advierte que el trabajo está “solo en el comienzo”, y que es difícil decir cuando dará resultados prácticos, y lo que podrían ser. Pero “claramente, vale la pena estudiar”, dijo. “En general, la combinación de la investigación en complejidad, criptografía y teoría de juego es prometedora”.
Micali está de acuerdo. “Pienso que esta es una buena base para futuras exploraciones”, dijo. “Justo ahora, la hemos desarrollado para problemas que son muy, muy difíciles. ¿Pero que hay de los problemas que son muy, muy simples?”. Sistemas de prueba racional que describen interacciones simples podrían tener una aplicación en crowsourcing, una técnica mediante la cual tareas computacionales que son fáciles para los humanos pero difíciles para las computadoras son distribuidas por Internet a ejércitos de voluntarios que reciben pequeñas recompensas financieras por cada tarea que completan. Micali imagina que podrían incluso ser usadas para sistemas biológicos, en los que organismos individuales – o células iguales – pueden ser pensados como productores y consumidores.
CryptDB, un software de base de datos que los investigadores del MIT presentaron en octubre en el Simposio de Principios de Sistemas Operativos, permite a los usuarios enviar peticiones a una base de datos SQL cifrada y obtener resultados sin descifrar la información almacenada. CryptDB anida los datos en varias capas de cifrado, cada una de las cuales tiene una llave diferente y permite un diferente tipo de operación simple en los datos cifrados. No trabaja con todos los tipos de cálculos, y no es el primer sistema en ofrecer este tipo de operación sobre datos cifrados, pero podría ser el único práctico, ya que un esquema previo que permitía operaciones en datos cifrados multiplicaba el tiempo de procesamiento por un factor de un billón. Este solo agrega un 15% a 26% al tiempo de operación.
Esto es una necesidad para poder manejar datos delicados de empresas o gobiernos en la nube, ya que permitiría proteger los datos de ser robados y hasta de administradores curiosos al resolver el problema que existe con los datos cifrados de que no se puede hacer ninguna operación sobre ellos sin descifrarlos previamente, lo que vuelve imposible el poder procesar datos en computadoras remotas donde no existe confianza y que sin embargo son utilizadas para almacenar esta información.
A este tipo de cifrado se le conoce como “cifrado homomórfico completo”, y fué teórico hasta el año 2009 cuando Craig Gentry logró crearlo pero con esa desventaja de multiplicar el tiempo de operaciones hasta un nivel impráctico. Ahora los científicos del MIT patrocidanos por Google y Citigroup, parecen haber creado esta implementación práctica. Con este tipo de cifrado, una persona puede cifrar sus datos en cadenas de texto o en números indescifrables, pero sobre los que se pueden realizar operaciones, y obtener un resultado, también cifrado. Este resultado descifrado coincidiría con el resultado de hacer la misma operación sobre los datos si hubieran estado descifrados.