javascript - sintaxis - npm jshint
¿Es seguro el uso del generador de contraseñas Bookmarklet de SuperGenPass.com? (7)
Mi preocupación con SGP no es en realidad la transmisión sigilosa. Una vez que alguien sospecha que está usando SGP (es bastante obvio si tiene alguna forma de ver una de sus contraseñas), conoce el algoritmo exacto de cómo codifica sus contraseñas. Si un atacante puede obtener un único ejemplo de una contraseña generada por SGP y la url del sitio (por ejemplo, cualquier administrador para cualquier sitio con el que use SGP) tienen un buen punto de apoyo para descifrar toda su lista de contraseñas. Dado que la idea general con contraseñas maestras es permitirle usar algo ''simple'', pueden iniciar los juegos habituales de adivinanzas hasta que coincidan con el hash del sitio que conocen y si están completamente comprometidos.
Revisé las 981 líneas de código para la versión actual de http://supergenpass.com y no encontré nada, sin embargo, podría haberme perdido algo. Solo quiero confirmar que no transmite nada para poder usarlo y sugerirlo a otros. Ya uso KeePassX para almacenar contraseñas y otra información. Y me gusta la teoría detrás de usar SuperGenPass (y el script original) porque crea una contraseña única para cada sitio basado en el dominio y su contraseña maestra.
Aquí hay un enlace al archivo Javascript: http://supergenpass.com.nyud.net:8090/SGPv4.js
¿Es seguro el uso del generador de contraseñas Bookmarklet de SuperGenPass.com?
No, no transmite nada.
Obviamente, no le gustaría incluir el archivo directamente desde ese sitio. En ese caso, podría cambiarse en cualquier momento para registrar las contraseñas que se están entregando.
SuperGenPass no es seguro , si no puede confiar completamente en el sitio donde lo usa.
Como se indicó en otra respuesta, existe una grave vulnerabilidad de seguridad en SGP: http://akibjorklund.com/2009/supergenpass-is-not-that-secure .
Sin embargo, hay pasos que puede seguir para hacer que SuperGenPass sea más seguro. Esto se logra creando su propio bookmarklet personalizado. Puede hacerlo en este enlace: http://supergenpass.com/customize/?advanced .
1) Personalice su SGP a una longitud de contraseña predeterminada más larga (sugiero 11 - 15 ... por más tiempo y se encontrará con problemas en algunos sitios web que limitan la longitud de la contraseña).
2) Crea una contraseña sigilosa. Esto es muy importante para vencer la vulnerabilidad mencionada anteriormente. Esta función agrega automáticamente una "sal" al final de su contraseña maestra normal. Esta "sal" no está disponible usando la vulnerabilidad.
3) Si usa Chrome, puede obtener una extensión SGP (en lugar del bookmarklet). Debido a que Chrome ejecuta extensiones en su propio entorno, no es accesible desde el sitio web que está visitando y, por lo tanto, no es propenso a ataques.
*) Solo usuarios avanzados: edite el algoritmo hash en el bookmarklet. Luego tendrá su propia copia personal de SGP que solo generará hashes para usted.
Soy un investigador de criptografía y puedo afirmar con la máxima certeza que SuperGenPass es defectuoso, inseguro y dará a los usuarios una falsa sensación de seguridad si lo usan. Haciendo caso omiso de la evidente falta de seguridad en el propio esquema bookmarklet (mencionado anteriormente), aquí hay algunas razones criptográficas por las que nunca debe usar SuperGenPass:
MD5 está en desuso y lo ha estado durante algún tiempo. No se puede confiar en MD5 para ninguna forma de seguridad.
El autor afirma que SuperGenPass es resistente a las colisiones (lo cual es completamente falso, pero irrelevante), sin embargo, la seguridad básica del esquema de SuperGenPass se basa en la resistencia de PreImage. Parece que el autor no comprende esto y lo cita como "otras preocupaciones matemáticas". Esto puede ser fácilmente derrotado incluso en MD5 de 128 bits mediante el uso de tablas de arcoiris, y mucho menos la versión pirateada de 64 bits del autor. Mi estimación del tiempo que tardaría en descifrar una contraseña generada por SuperGenPass sería de aproximadamente 2 días en una PC doméstica, según el hardware actual de la computadora.
El autor de SuperGenPass afirma que la seguridad está asegurada debido a hashing un número indeterminado de veces. Esto es descaradamente falso ya que el ''indeterminismo'' es una función de la contraseña. De nuevo, las tablas de arcoiris derrotan fácilmente esto.
El autor no entiende completamente el propósito de una sal. La sal debe generarse aleatoriamente, no es un producto de alguna ''contraseña sigilosa'' definida por el usuario (lo que sea que eso signifique). En esta implementación, la "contraseña oculta" es meramente ofuscación y no proporciona seguridad criptográfica adicional. Para obtener más información, consulte [ http://en.wikipedia.org/wiki/HMAC#Design_principles]
No hay ninguna forma de fortalecimiento de clave, simplemente se concatena al dominio. De nuevo, esto puede ser derrotado con bastante facilidad por tablas de arcoiris.
Un problema adicional no criptográfico: al limitar al dominio, el autor no tiene en cuenta varias páginas en el mismo dominio (creo que [hostingprovider] .com / [usuario] o [usuario]. [Hostingprovider] .com páginas de estilo) . Si tiene una contraseña con un sitio allí, cualquier sitio que esté allí también puede suplantarlos sin problemas.
En conclusión, el autor efectivamente parece estar tratando de hacer un HMAC (Código de Autenticación de Mensajes basado en Hash) y aplicarlo a un dominio de sitio web, pero ha hecho un intento bastante arbitrario, de aficionados, con poca consideración por los principios criptográficos bien establecidos. Normalmente esto estaría bien, así es como aprendemos y no tendría problemas. Sin embargo, cuando se trata de la seguridad de otros usuarios, no está bien, ya que muchos usuarios utilizarán este método pensando que son seguros cuando en realidad no lo son. Claro, una cuenta de foro robada aquí o allá no es realmente tan importante, pero ¿y los bancos? ¿Tarjetas de crédito? Registros de salud? Teniendo en cuenta que la mayoría de los bancos de EE. UU. Tienen el SSN del usuario en el archivo, esto abre la puerta al robo de identidad.
El autor es extremadamente irresponsable y posiblemente criminalmente negligente al lanzar este software a los efectos de la seguridad de las contraseñas sin siquiera un intento superficial de que un experto en seguridad lo evalúe. Es extremadamente irresponsable escribir software y lanzarlo en base a la idea de ''pensar'' que es seguro, especialmente si no eres un experto en construcciones criptográficas o seguridad informática. Si a alguien le roban su contraseña mientras usa SuperGenPass, le insto a hablar con un abogado. Puede tener un caso civil contra el autor.
Implementé un generador de contraseñas llamado 1pass4all . Es más seguro que SGP porque está basado en SHA-2 en lugar de MD5, HMAC en lugar de la simple concatenación de dominio y contraseña maestra, base94 (todos los caracteres imprimibles) en lugar de base64. Además, admite iteración de sal y hash personalizable (para el estiramiento de la tecla). Además, 1pass4all puede tener en cuenta el nombre de usuario, lo que significa que la misma contraseña maestra en el mismo sitio web tendrá como resultado diferentes contraseñas siempre que los inicios de sesión difieran. Dirigiéndose a usuarios avanzados, 1pass4all también admite una sintaxis de contraseña especializada, para que puedan especificar nombre de usuario, dominio, longitud de contraseña, sal, iteración hash, conjunto de caracteres de contraseña, autodetección de nombre de usuario, inicio de sesión automático, etc. en el campo de contraseña ( en lugar de un formulario emergente) sobre la marcha.
Si tiene algún interés o pregunta, deje su mensaje en mi blog .