Nuevas técnicas criptográficas protegen las contraseñas de guardianes poco confiables
Imagine llegar a su casa y en lugar de solo poner la llave en la cerradura, primero debe entregársela a un guardián para su verificación. El guardián tomaría su llave y la insertaría en una caja electrónica para confirmar que realmente es la correcta antes de que se pueda abrir la puerta. Eso sería molesto e inseguro; no querrá que ese guardián haga una copia de la llave mientras está fuera de su posesión. En cierto modo, esto es lo que hacemos cuando escribimos una contraseña en línea.
Un equipo de IBM presentó una investigación sobre el desarrollo de técnicas criptográficas novedosas para eludir al "guardián", aumentando la privacidad de todos los usuarios de Internet. Una de las soluciones consiste en permitir la verificación de identidad sin la necesidad de revelar la contraseña al guardián. En un protocolo más avanzado, la verificación se distribuye entre dos o más guardianes, ninguno de los cuales puede robar la identidad de un usuario por sí solo. Este trabajo también se está ampliando para proteger no solo las contraseñas digitales, sino también la biometría, como las huellas dactilares, que a veces se proporcionan como identificación. Es probable que estos protocolos avanzados aumenten la confianza de los usuarios en servicios como el comercio electrónico o la autenticación de dispositivos móviles.
La forma más común de iniciar sesión online con una clave es "contraseña sobre Seguridad de la Capa de Transporte” (TLS por sus siglas en inglés). Funciona enviando una contraseña de texto sin cifrar a los servidores de un proveedor de servicios web, a través de canales seguros. El usuario sabe que está usando TLS (o el certificado más antiguo de capa de conexión segura -SSL por sus siglas en inglés) cuando la URL del sitio web comienza con "https" -en lugar de "http"- o cuando aparece un candado en la barra de direcciones del navegador. Pero a pesar de que la contraseña viaja de forma segura al servidor, todavía existe la posibilidad de que pueda ser robada en su destino.
Si bien los usuarios pueden confiar en las empresas que les brindan servicios de Internet, el hecho de que necesiten revelar su contraseña en cada inicio de sesión representa una amenaza para la seguridad. ¿Puede el usuario de un sitio web estar realmente seguro de que su contraseña no terminará en las manos equivocadas, debido, por ejemplo, a un empleado deshonesto, software o hardware defectuoso?
Por lo general, no obstante, las contraseñas de los usuarios no se almacenan en texto sin cifrar en los servidores de las empresas, lo que proporciona un cierto grado de protección de la privacidad. En cambio, se crea un "hash" con la ayuda de una función matemática. Este hash, una especie de versión codificada de la contraseña, se almacena junto con el nombre de usuario en una base de datos. Pero cuando los atacantes entran en esa base de datos de contraseña, a menudo pueden averiguar la contraseña de texto sin cifrar a partir del hash.
Esto es lo que las nuevas técnicas criptográficas de IBM están intentando cambiar. El equipo desarrolló protocolos que utilizan Oblivious Pseudo-Random Functions (OPRF), técnicas matemáticas que permiten una forma más segura de verificar que una contraseña coincide con su codificación en la base de datos. A diferencia de TLS, el cálculo de la codificación con OPRF se realiza sin revelar la contraseña al proveedor de servicios de Internet.
Regresando a la analogía del hogar, el uso de OPRF significa que en lugar de que un usuario entregue las llaves, el guardián ofrece la caja electrónica al usuario para su verificación, quien inserta la llave, y al guardián solo se le muestra el resultado, confirmando (o negando) la identidad. Esto reduce el riesgo asociado con la confianza en el guardián.
Más guardianes, más seguridad
El equipo investigó las posibles vulnerabilidades de seguridad de los servidores que almacenan los hash vinculados a las contraseñas. Publicaron una investigación sobre un protocolo1 modificado y mejorado basado en la popular autenticación de inicio de sesión único (SSO, por sus siglas en inglés). Muchos sitios web confían en SSO cuando ofrecen a los usuarios la posibilidad de iniciar sesión a través de su cuenta personal con una empresa de redes sociales.
SSO elimina la necesidad de crear una contraseña adicional para cada nuevo servicio web. En la analogía, se trata de una situación en la que un usuario tiene varias casas (sitios web) pero solo un guardián (la única empresa de redes sociales que se utiliza para SSO) que maneja su llave para la verificación de identidad. Esto reduce el riesgo. Solo se debe confiar en un guardián para acceder. Sin embargo, ese guardián es también un único punto de falla; podría hacerse pasar por el usuario e ingresar a cualquier sitio web visitado anteriormente sin su conocimiento.
Entonces, el equipo de IBM eliminó ese único guardián y creó un protocolo SSO distribuido que usa al menos dos proveedores de redes sociales para la autenticación. Con este nuevo método, los usuarios nunca necesitan entregar su contraseña a un guardián. En cambio, ellos mismos calculan codificaciones de contraseñas, utilizando un protocolo OPRF, con la ayuda de los proveedores de redes sociales, que nunca aprenden la contraseña en el proceso. Luego, las codificaciones se fragmentan en piezas ininteligibles y cada una se almacena en el servidor de un proveedor.
Dado que ninguno de los proveedores de servicios tiene la codificación completa, ya no pueden averiguar la contraseña y, por lo tanto, no es posible hacerse pasar por el usuario. Y tampoco los atacantes que ingresan a la base de datos. La única forma en que estos guardianes distribuidos podrían robar la identidad de un usuario es si todos conspiraran para hacerlo juntos. Pero mientras solo uno de ellos sea honesto, las contraseñas y las identidades digitales están seguras.