La contraseña maestra es un tipo de algoritmo implementado por primera vez por Maarten Billemont para crear contraseñas únicas de forma reproducible. Se diferencia de los gestores de contraseñas tradicionales en que las contraseñas no se almacenan en disco ni en la nube, sino que se regeneran cada vez a partir de la información introducida por el usuario: su nombre, una contraseña maestra y un identificador único para el servicio al que está destinada la contraseña (normalmente la URL). [ 1 ]
Al no almacenar las contraseñas en ningún lugar, este método dificulta que los atacantes las roben o intercepten. Además, elimina la necesidad de sincronización entre dispositivos, las copias de seguridad de posibles bases de datos de contraseñas y los riesgos de filtración de datos . A esto se le conoce a veces como gestión de contraseñas sin sincronización .
Algoritmo
La implementación de Billemont implica los siguientes parámetros: [ 1 ]
- nombre : El nombre de usuario, utilizado como clave aleatoria . Se elige el nombre completo del usuario porque proporciona un nivel de entropía suficientemente alto y, al mismo tiempo, es poco probable que se olvide.
- master_password : La contraseña secreta para generar la clave maestra.
- site_name : Un nombre único para el servicio al que está destinada la contraseña. Normalmente, es el nombre de dominio sin formato.
- contador : Un número entero que se puede incrementar cuando el servicio solicita una nueva contraseña. Por defecto, es 1.
- password_type : El tipo de contraseña define la longitud y la constitución de la contraseña resultante, véase más abajo.
Generación de clave maestra
En la implementación de Billemont, la clave maestra es una clave secreta global de 64 bytes generada a partir de la contraseña maestra secreta del usuario y con un valor aleatorio (sal) que incluye su nombre completo. Este valor aleatorio se utiliza para evitar ataques basados en tablas arcoíris . El algoritmo scrypt , una función de derivación de clave intencionadamente lenta , se utiliza para generar la clave maestra y así hacer inviable un ataque de fuerza bruta .
sal = "com.lyndir.masterpassword" + longitud ( nombre ) + nombre clave_maestra = cifrar ( contraseña_maestra , sal , 32768 , 8 , 2 , 64 )Generación de semillas de plantilla
La semilla de plantilla es un secreto específico del sitio en formato binario, generado a partir de la clave maestra, el nombre del sitio y el contador mediante el algoritmo HMAC-SHA256 . Posteriormente, se convierte a una cadena de caracteres utilizando las plantillas de contraseña. La semilla de plantilla garantiza que cada contraseña sea única para el sitio web y para el usuario.
semilla = hmac_sha256 ( clave_maestra , "com.lyndir.contraseñamaestra" + longitud ( nombre_sitio ) + nombre_sitio + contador )Generación de contraseñas
La plantilla binaria se convierte a uno de los seis tipos de contraseña disponibles. El tipo predeterminado es la Contraseña de Máxima Seguridad ; se pueden seleccionar otros si la política de contraseñas del servicio no permite contraseñas de ese formato.
- Contraseña de máxima seguridad (20 caracteres ASCII imprimibles )
- Contraseña larga (14 caracteres ASCII imprimibles)
- Contraseña mediana (8 caracteres ASCII imprimibles)
- Contraseña corta (4 caracteres ASCII imprimibles)
- Contraseña básica (8 caracteres alfanuméricos)
- PIN (4 dígitos)
Implementaciones
Billemont también creó múltiples implementaciones de software libre del algoritmo Master Password, con licencia GPLv3 .: [ 2 ]
- Una aplicación para iOS . La implementación para iOS se lanzó por primera vez en 2012. [ 3 ]
- Una aplicación para Mac OS X
- Una aplicación para Android
- Una aplicación gráfica de escritorio escrita en Java.
- Una aplicación de línea de comandos escrita en C
- Un complemento de navegador para Firefox y navegadores basados en Chromium [ 4 ] [ 5 ]
- Un cliente web escrito en JavaScript . [ 6 ]
Referencias
- 1 2 Billemont, Maarten. "El algoritmo de la contraseña maestra" . Archivado del original el 9 de diciembre de 2017. Recuperado el 8 de mayo de 2015 .
- ↑ "Archivo de licencia del repositorio MasterPassword" . GitHub . Consultado el 15 de mayo de 2015 .
- ↑ Billemont, Maarten. "Versión 1.0.0" . GitHub . Consultado el 15 de mayo de 2015 .
- ^ Complemento Firefox de Masterpassword
- ^ Complemento de Chrome de Masterpassword
- ↑ Billemont, Maarten. "Página principal de la contraseña maestra" . Consultado el 15 de mayo de 2015 .
Enlaces externos
Sitio web oficial
- Algoritmos criptográficos
- Software de seguridad gratuito