Hace seis años, Bitcoin aparecía por primera vez en un _paper_ de Satoshi Nakamoto. No fue hasta 2012-2013 cuando explotó entre el gran público de Internet, y desde entonces muchos se han subido al carro, ya sea porque creen que es el futuro, por el dinero o por el _hype_.
Y entre tanta moneda, algunos han pensado en algo más que el dinero. Es el caso de BitPay, que el pasado día uno proponía BitAuth, su solución para resolver el problema del usuario y contraseña aprovechando (por decirlo de alguna forma) la tecnología de Bitcoin.
BitAuth se basa en la criptografía asimétrica. En lugar de un nombre de usuario, nuestro identificador en un sitio web es un SIN (System Identification Number o Número de Identificación en el sistema). Y en lugar de una contraseña, lo que hacemos es firmar una petición a la página web con nuestra clave privada.
Alguno ya se habrá dado cuenta de que esto no es una idea novedosa. BitAuth es muy parecido a cualquier otro método de autenticación de clientes con clave pública/privada, como pueda ser SSH o algunas redes WiFi WPA-EAP. Vamos a ver cómo funciona un poco más en detalle.
El centro de BitAuth es el par de claves pública y privada. Ambas se generan usando ECDSA con la curva secp256k1, un detalle que no es especialmente relevante para entender cómo funciona BitAuth: simplemente lo menciono porque es lo único que hay en común con Bitcoin.
A partir de la clave pública se genera el SIN, tu identificador único y personal. La clave privada se queda en tu ordenador, cifrada con una contraseña que sólo deberías saber tú.
Cuando quieres registrarte o entrar en un sitio web, no tendrás que poner un usuario y contraseña. Como decíamos antes, el usuario es el SIN, y para que la web se asegure de que es tuyo y no de un impostor, el navegador firmará la petición con tu clave privada. Por si no os acordáis, en Genbeta ya explicamos en qué consistía la firma digital. El único requisito es que el servidor web tenga tu clave pública y SIN para verificar la firma, que los recibirá cuando te registres.
La principal ventaja de esto es que tu contraseña no sale en ningún momento de tu ordenador. Incluso aunque un sitio web sea _hackeado_, sería totalmente imposible que puedan obtener tu clave privada o contraseña y robar tu identidad (salvo que el atacante en cuestión haya roto el algoritmo de firma digital, en cuyo caso directamente podemos escondernos todos debajo de la mesa y llorar).
Los problemas de BitAuth
BitAuth parece una idea interesante, pero no está exenta de problemas. El primero es que no queda muy clara la diferencia entre BitAuth y otros sistemas ya implementados de autenticación con clave pública/privada, principalmente el de TLS, como comentaba arriba. ¿Para qué repetir fallos y adoptar otro sistema si no hay ventajas claras?
El siguiente problema es que se necesita una infraestructura de clave pública (PKI), como mínimo para gestionar revocaciones de clave e impedir que un atacante siga usando tu clave si ha sido comprometida. En el repositorio de BitAuth se comenta que también se podría usar como sistema de reputación, un sistema que verifique que el propietario de una clave, que dice ser Pepito Grillo, es realmente Pepito Grillo y no un impostor.
BitAuth propone usar un sistema descentralizado para almacenar esos datos, al estilo de la cadena de bloques de Bitcoin. Sin embargo, no se explica cómo se puede gestionar una revocación de una clave comprometida: ¿quién verifica que realmente la clave que quieres revocar era tuya? ¿Y cómo lo hace? ¿Qué hacemos si una revocación tarda media hora en entrar en la cadena de bloques?
Como podéis ver, la idea de BitAuth es interesante, sí, pero hay algunas lagunas importantes. Sea como sea, nunca viene mal tener más alternativas al usuario y contraseña para mejorar nuestra seguridad.
Vía | Bitpay
Ver todos los comentarios en https://www.genbeta.com
VER 2 Comentarios