Como usuario, ¿es una buena práctica el uso de contraseñas encriptadas con MD5 en sitios web? [duplicar]

0

Descargo de responsabilidad: Esto es desde el punto de vista del usuario. Asumiremos que el sitio web de destino (por ejemplo, Paypal o Netflix) ya utiliza un fuerte algoritmo de hashing con sales (bcrypt de pbkdf2, por ejemplo) y acepta contraseñas de 32 caracteres.

Contexto: supongamos que Bob es un usuario que sabe algunas cosas acerca de las computadoras, pero no es un experto. Por ejemplo, entiende que usar contraseñas seguras es algo bueno, pero no puede recordar una larga lista de contraseñas complicadas. Por lo tanto, solo usa una contraseña segura en todos los sitios, una práctica que considera arriesgada.

Pero luego lo golpeó: ¡no tiene que recordar contraseñas seguras! En su lugar, puede recordar los sencillos y utilizarlos con una función simple para obtener contraseñas seguras. De esa manera, no tiene que preocuparse demasiado por las violaciones de la base de datos, ya que su contraseña almacenada requeriría que los clusters masivos de GPU se descifren en un tiempo razonable.

Esto funcionaría de esta manera:

  1. Ir al sitio web de destino.
  2. Introduce un nombre de usuario
  3. Hash su contraseña fácil de recordar con un algoritmo rápido para generar una contraseña larga
  4. Ingrese la contraseña con hash y autentíquese en el sitio web.

Pregunta : ¿Sería esto una práctica buena o incluso aceptable? ¿Es esto algo que podrías aconsejar a alguien que haga? ¿Por qué / por qué no?

Esto se basa un poco en una variante de seguridad a través de la oscuridad tal vez: el pirata informático solo tiene que saber que una contraseña simple estaba encriptada con MD5 para hacer que esto no fuera efectivo o incluso perjudicial (porque el usuario tenderá para usar contraseñas de encriptación más débiles). Como tal, esto no funcionaría a gran escala, es decir. no podrías decirle a millones de personas que hagan eso.

Gracias de antemano por tu aportación!

    
pregunta MadWard 22.07.2016 - 15:56
fuente

2 respuestas

5

No hay duda de que esta capa MD5 adicional es mejor que solo usar la contraseña original.

La pregunta es si estaría mejor usando un Administrador de contraseñas que simplemente genera contraseñas aleatorias y las almacena en forma cifrada.

Veo la elegancia de su solución a través de un Administrador de contraseñas.

  • Como la contraseña final se deriva, no se almacena, entonces su solución es portátil. No es necesario sincronizar contraseñas a través de Internet para múltiples dispositivos.

  • La contraseña 'fácil de recordar' desbloquea la contraseña 'real' para solo un sitio . Esto parece mejor que usar una contraseña maestra 'única' para desbloquear la contraseña 'real' para cualquier sitio , como lo haría normalmente un administrador de contraseñas.

Desde una perspectiva de violación del lado del servidor, esta es una práctica tan inusual (oscura) que los atacantes irán a objetivos más fáciles.

Sin embargo, es cierto que una contraseña verdaderamente aleatoria (de un Administrador de contraseñas) sería más segura que una de un simple hash MD5.

Le sugeriría que extendiera su solución un poco.

  1. Usa un hash más fuerte, no MD5. Probablemente debería usar PBKDF2, pero podría estar usando SHA-256 o SHA-1 si es más fácil para usted. Más fuerte también significa más lento. Entonces, si usas un hash rápido, deberías agregar repetición. (número de Rondas )

  2. Agregue un poco de Pepper , que se almacena con su programa de hashing, y tiene aproximadamente 72 bits de entropía.

Ingrese este mismo Pepper y la cantidad de Rondas para el algoritmo hash en todos sus dispositivos, para que todos puedan generar las mismas contraseñas. También guárdelo en un archivo en algún lugar para que siempre pueda volver a producir su esquema de hash en caso de que pierda la copia electrónica.

frente a un administrador de contraseñas

  • No tiene una contraseña maestra, por lo que no hay una pérdida del 100% cuando esa contraseña es robada junto con los datos de su dispositivo.

  • Si los datos de su dispositivo son robados, el Pepper se ve comprometido de inmediato porque se almacena en forma simple. Sin embargo, todavía tienen que adivinar su contraseña "fácil de recordar".

Habrá algunos obstáculos relacionados con requisitos de seguridad de la contraseña . Un Administrador de contraseñas podría almacenar una contraseña de estilo diferente para cumplir con el requisito particular, pero su programa hash funcionará de la misma manera para todos los sitios.

  • Ajusta tu programa de hashing para producir una letra mayúscula, una letra minúscula, un número y algún carácter especial. Esto se ajustará a las necesidades de la mayoría de los requisitos de seguridad de contraseñas que existen.
  • Podría ser necesario truncar el hash resultante, ya que algunos sitios tienen una longitud máxima. Esto no es un gran problema. Si solo tomas los primeros 20 caracteres del hash resultante, la fuerza no disminuye. Solo cuando llegas a unos 72 bits de entropía (18 caracteres hexadecimales o 12 Base64), el truncamiento se convierte en una debilidad notable.
respondido por el George Bailey 22.07.2016 - 16:49
fuente
2

Hay un principio general de que una función hash como MD5 no puede agregar entropía, lo que significa que si este método fuera una herramienta, un software del que las personas que intentan descubrir la contraseña se dieran cuenta, simplemente sería otra regla, otra paso en sus intentos, y solo les ralentizaría ligeramente.

Sin embargo, si este fue un método que Bob utilizó personalmente y no anuncia este método para generar su contraseña, puede ser que efectivamente agregue entropía a la contraseña, ya que aumentaría la longitud y posiblemente el conjunto de caracteres de la contraseña. resultado. Como usted dice, esto es seguridad a través de la oscuridad, no se basa en que nadie conozca el algoritmo de Bob. Si escribe este programa, digamos, lo tiene en su teléfono y nunca lo comparte con nadie.

Para Bob, esto es probablemente un beneficio. Para un usuario general, ciertamente no es una herramienta útil.

No me gusta mucho promocionar cualquier cosa que parezca de seguridad en la oscuridad, pero cualquier generación de contraseña "algorítmica" ("Elija 4 palabras de estas listas de palabras", "Haga un subconjunto aleatorio de estas transformaciones a esta palabra larga común") que puede funcionar razonablemente para generar contraseñas seguras, pero se descompone si el atacante conoce los detalles del algoritmo. Esto ciertamente no sería adecuado como método publicado y recomendado para elegir una contraseña.

    
respondido por el crovers 22.07.2016 - 16:14
fuente

Lea otras preguntas en las etiquetas