Cómo funciona la nueva autenticación en dos pasos de Twitter

Cómo funciona la nueva autenticación en dos pasos de Twitter
1 comentario Facebook Twitter Flipboard E-mail

Hace unos meses, Twitter anunció por fin que implementaría un sistema de autenticación en dos pasos. El problema es que, en lugar de usar la solución basada en OTP que usan otros como Google, Dropbox o Microsoft, hizo una solución propia basada en envíos de SMS.

Hoy han cambiado esa solución, pasando a algo más fácil de usar y más seguro, según ellos. La idea es usar las aplicaciones de Twitter para iOS y Android: aparece una notificación en tu móvil que te lleva a la aplicación, desde donde tendrás que pulsar un botón para poder iniciar sesión en tu navegador.

Un vistazo a…
CÓMO DESCARGAR VÍDEOS de Instagram, Facebook, Twitter o TikTok en tu MÓVIL

Twitter usa esta solución porque dicen que es más segura: las claves secretas no se comparten entre el cliente y servidor como en OTP: la clave sólo se almacena en el cliente (tu aplicación móvil) y por lo tanto no hay problema si comprometen el servidor.

La base de la autenticación en dos pasos es la firma digital de un número generado en el servidor.

Este protocolo funciona con un esquema de firma digital RSA (vimos en qué consistía la firma digital cuando hablamos de una vulnerabilidad de Android). Al activar la verificación en dos pasos, se genera un par de clave pública/privada: la privada se almacena en tu teléfono y la pública en el servidor de Twitter. Cuando intentas iniciar sesión, el servidor genera un número aleatorio (challenge) y lo envía a través de una notificación push a tu teléfono, que te pedirá aceptar o rechazar el inicio de sesión. Si pulsas aceptar, la aplicación firmará el _challenge_ con la clave privada, y enviará ese resultado al servidor de Twitter. Si la firma es correcta, la página del navegador se recargará y habrás iniciado sesión.

La seguridad de este método radica en que sólo tu clave privada puede generar una firma correcta, que se valide con la clave pública que tiene Twitter. No hay forma, tampoco, de obtener tu clave privada viendo sólo la firma digital del número.

Por otra parte, están los códigos de _backup_, los que te permiten iniciar sesión aunque hayas perdido el teléfono. Para generarlos, Twitter se ha inspirado en el algoritmo S/KEY, aprovechándose de las funciones _hash_ (SHA256 en este caso). La aplicación genera un número aleatorio y obtiene su _hash_ 10.000 veces. Envía ese resultado al servidor, y te pide guardar el número obtenido tras el _hash_ 9.999. Cuando pierdes el móvil, introduces ese número: el servidor genera una vez más su _hash_ y lo compara con el resultado que había enviado la aplicación en su momento. Si son iguales, te dejará entrar en tu cuenta.

La solución de Twitter no es multiplataforma.

De esta forma, incluso aunque alguien obtenga los códigos almacenados en el servidor, no podrá acceder a ninguna cuenta: es prácticamente imposible obtener el _hash_ número 9.999 a partir del número 10.000 (las funciones _hash_ son funciones de una vía).

En definitiva, Twitter ha decidido crear sus propias soluciones de autenticación en dos pasos para mantener las cuentas seguras incluso aunque se comprometan sus servidores. Parece un objetivo muy loable, pero creo que las desventajas (la solución no es multiplataforma, sólo funciona en las aplicaciones de iOS y Android y no podemos usar otras aplicaciones de autenticación en dos pasos) superan a la principal ventaja, que tampoco es que sea muy clara: si comprometen el servidor de Twitter, tendrán otros problemas más grandes que el hecho de que tengan los códigos de autenticación en dos pasos.

Vía | Twitter Engineering Blog En Xataka | Autenticación en dos pasos: qué es, cómo funciona y por qué deberías activarla | Contraseñas, invivibles pero insustituibles

Comentarios cerrados
Inicio