¿Es segura la codificación de la concatenación de mi contraseña y el tipo de cuenta? [duplicar]

0

Concepto

El objetivo de un administrador de contraseñas es reducir el número de contraseñas que uno debe memorizar en una, y luego tener todas las demás contraseñas encriptadas bajo esa contraseña maestra. Mi solución apunta a resolver el mismo proceso sin el uso de ningún almacenamiento de datos.

Idea

Primero, genera una contraseña segura. Luego conconcipe el nombre de la cuenta al final de la misma y haga un hash del resultado, posiblemente en el estilo de cadena descrito en esta respuesta . El resultado final sería mi contraseña para esa cuenta.

Ejemplo

Usando una contraseña de ejemplo "GreenPlanetAboutStudentCaughtGoodbye" y mi cuenta de "StackExchange", pondría "GreenPlanetAboutStudentCaughtGoodbyeStackExchange" y usaría el resultado como mi contraseña.

Seguridad

El propósito del hashing es garantizar que incluso si un sitio web almacena mi contraseña en texto sin formato, solo esa contraseña se verá comprometida. Suponiendo que las cuentas permiten los 40 caracteres de un SHA-256, la entropía de las contraseñas sería max(256, entropy of initial password) .

Ventajas

  • No requiere cifrado
  • No requiere almacenamiento de datos
  • Las contraseñas solo se pueden perder si se olvida la contraseña maestra
  • Se puede utilizar en cualquier lugar

Desventajas

  • Depende de los sitios web que permiten una longitud de contraseña ilimitada (aunque uno podría recortar el hash para los sitios web que lo requieran)
  • Supone que todos los requisitos de caracteres especiales se cumplirán con la contraseña aleatoria (es muy probable, pero todavía existe la posibilidad de que no)

Pregunta

¿Mi idea suena (razonablemente segura)? ¿Hay algún defecto crítico que me esté perdiendo?

    
pregunta Sebastian 01.03.2018 - 05:09
fuente

1 respuesta

3

La idea es, en términos generales, segura. De hecho, se ha implementado varias veces antes. Sin embargo, existen algunos problemas con los que se encontrará cualquier enfoque de este tipo (y algunos más que un enfoque tan simple como este). En ningún orden en particular:

  1. Múltiples cuentas por sitio. El esquema, como se describe, no proporciona ninguna manera de diferenciar entre cuentas para el mismo sitio. Necesitarías pegar un nombre de usuario en alguna parte.
  2. Rotaciones de contraseña (obligatorias, o debido a un compromiso). No puede cambiar la contraseña generada sin cambiar la contraseña maestra. Si bien las rotaciones de contraseña obligatorias son cada vez menos comunes, aún existen en algunos lugares.
  3. Reglas de complejidad de contraseña. Los sitios tienden a tener una amplia lista de reglas de complejidad (ya menudo muy malas), algunas de las cuales son incompatibles entre sí (por ejemplo, un sitio insiste en "caracteres especiales", otro prohíbe todo lo que no sea alfanumérico). Esta herramienta no tiene manera de cumplir con restricciones como esa.
    • Hablando de eso, ¿cómo planeas exactamente codificar el resumen de hash? 256 bits es 32 bytes es 44 (si mantienes el = de terminación) caracteres base64 o 64 caracteres hexadecimales ... Ninguno de estos son los 40 caracteres que mencionas (estás pensando en SHA1 - un resumen de 160 bits - en hexadecimal codificación?)
  4. La contraseña maestra no se puede girar. Con los administradores de contraseñas normales, puede cambiar la contraseña maestra (si, por ejemplo, teme que alguien la haya registrado), y si bien es una buena idea cambiar también todas las contraseñas que lo protegía, probablemente tenga algo de tiempo para hacerlo. . Con este esquema, debe actualizar las contraseñas en todos sus sitios si desea cambiar la contraseña maestra.
  5. Carece de protección de fuerza bruta. Si bien la contraseña maestra que eligió es lo suficientemente larga como para estar segura (suponiendo que use algo de entropía similar), la mayoría de las personas escogerán contraseñas más predecibles que esa. Una sola ronda de cualquier hash rápido (incluidos todos los miembros de la familia SHA) sin nada más que una cadena predecible proporciona muy poca protección contra el forzamiento de la fuerza bruta en estos días; una tarjeta gráfica decente puede calcular miles de millones de hashes por segundo (y el hardware especializado puede hacer mucho más que eso) al intentar encontrar la contraseña original. Necesita, como mínimo, utilizar unos pocos miles de rondas de hash para ralentizar la búsqueda; También puede usar uno de los algoritmos más nuevos (como scrypt o argon2) que está diseñado específicamente para el hashing de contraseñas.
  6. Las contraseñas son difíciles de transcribir. Si necesita ingresar una contraseña en cualquier cosa que no le permita copiarla y pegarla, puede escribir con mucho cuidado.
  7. No hay forma de buscar cuentas almacenadas. Si bien esto puede ser una ventaja en caso de que su sistema se vea comprometido, es más frecuente que sea una desventaja. Si no sabe si tiene una cuenta para algún servicio, o si no sabe cuál es el "sal" de la cuenta (es "bankofamerica", "BankOfAmerica", "Bank of America", "BOA", "boa", "BofA", ...?) puedes pasar un tiempo intentando contraseñas incorrectas sin saberlo con seguridad.
  8. No hay forma de almacenar secretos asociados. Por ejemplo, un administrador de contraseñas le permite almacenar cosas como códigos de respaldo de múltiples factores o respuestas de "preguntas secretas"; este sistema no admite el primero en absoluto y el segundo solo de manera torpe (básicamente, utilizando la pregunta en sí como sitio / nombre de usuario / sal / lo que sea).
  9. No hay soporte para cambiar primitivos criptográficos o factores de trabajo. Si se rompe el SHA-256 y se le dice a todos que se muden a la familia SHA3, tiene que cambiar todas sus contraseñas. Si en dos años quiere duplicar el número de iteraciones que hace para dar cuenta de la Ley de Moore, tiene que cambiar todas sus contraseñas.

De todos modos, no decir que tal esquema sea realmente inseguro (aunque es posible que desee endurecer un poco la función de hashing), pero tiene muchas limitaciones y posibles dificultades.

    
respondido por el CBHacking 01.03.2018 - 05:54
fuente

Lea otras preguntas en las etiquetas