¿Las contraseñas más largas son más seguras? En otras palabras, ¿es obligatorio aplicar un límite mínimo de 15 caracteres para una contraseña, una buena idea? ¿Cuál es la perspectiva de los hackers en esto?

Una contraseña más larga es una contraseña más segura solo si tiene una mayor cantidad de entropía. Establecer un requisito de longitud mínima alta en realidad reducirá la cantidad de entropía en las contraseñas elegidas por el usuario al fomentar la repetición de teclas y los patrones de teclado. Como regla general, los usuarios elegirán las contraseñas más débiles permitidas. Un atacante también conocerá sus requisitos mínimos, por lo que no perderá tiempo adivinando contraseñas más cortas.

Es un error común acerca de ese cómic xkcd que la longitud es la parte que contribuye a la entropía. En realidad, la fuerza proviene de la aleatoriedad y el número de combinaciones posibles . Estas no son cosas en las que puede confiar en que los usuarios hagan por sí mismos. Una alternativa puede ser generar una frase de contraseña pequeña (dos palabras, tal vez) utilizando este enfoque y requerir que el usuario la proporcione además de su propia contraseña elegida. Puse esta idea en Security.StackExchange, para que pueda ver lo que otras personas piensan allí: ¿Es una buena idea dar a los usuarios una contraseña adicional que no controlan?

Otro punto destacado es que puede ser útil permitir a los usuarios escribir parte de su contraseña , especialmente si esa parte es más compleja de lo que pueden memorizar. Las personas pueden ser buenas para proteger un trozo de papel; colóquelo en su billetera y no lo comparta con nadie. Todavía no es una buena idea escribir la contraseña completa. El modelo de amenaza que se aplica a alguien que compromete físicamente su contraseña escrita es adivinar la contraseña en línea, por lo que la entropía requerida de la parte no escrita es considerablemente menor que la entropía total requerida para resistir el descifrado de contraseñas fuera de línea.

Finalmente, con respecto a los requisitos de complejidad de la contraseña y los verificadores de fortaleza, informe a sus usuarios, no los exaspere. Ofrezca a sus usuarios la mayor libertad posible para elegir buenas contraseñas: las limitaciones artificiales como la longitud mínima alta (o la longitud máxima baja), el uso de símbolos alfanuméricos más mixtos o caracteres prohibidos tienden a frustrar a los usuarios. En cambio, ayude a sus usuarios con requisitos mínimos y sugerencias educativas:

  • Requisitos moderados de longitud mínima. 8 personajes, tal vez.
  • Requiere 2 juegos de caracteres para evitar 12345 o palabras simples del diccionario.
  • Requiere un pequeño número de caracteres únicos (¿4?) Para evitar 1111aaaa
  • Recuerde a los usuarios que no deben reutilizar contraseñas entre sitios.
  • Aliente a los usuarios a escribir una parte de su contraseña. Si su contraseña “en todas partes” es Pancakes1, escriba “quora &&&&” y úselas juntas cuando inicie sesión.
  • Dé ejemplos de buenas contraseñas que incluyan frases largas (pero nada terriblemente complicado). Verifique que los usuarios no usen esos ejemplos literalmente.

Finalmente, usted, el propietario del sistema, tiene la mayor responsabilidad de fortalecer las contraseñas contra el craqueo sin conexión. Use hashes de contraseña fuertes y lentos como bcrypt. Audite y pruebe regularmente su sistema para encontrar problemas de seguridad. Notifique a los usuarios cuando usen una contraseña comprometida conocida asociada con su identidad (esto se puede hacer al iniciar sesión al también cambiar su contraseña con varios formatos y compararla con los datos de violación pública). Utilice la detección de anomalías para sugerir a los usuarios cuándo sus contraseñas pueden haber sido comprometidas (“La última vez que inició sesión desde Rumania”). Ofrece autenticación de 2 factores.

En este punto, tengo tantas cuentas en tantos servicios (y no me gusta usar identidades federadas como Google o Facebook) que no me molesto en tratar de encontrar algoritmos para ellos. Solo uso LastPass y lanzo cadenas de 24 caracteres al campo.

No soy un hacker, pero sugeriría que las políticas de contraseñas sean lo suficientemente agresivas para los administradores de contraseñas: 24 caracteres como mínimo, 4 signos de puntuación, 4 superiores, 4 inferiores, 4 números (y puede elegir los últimos 4) .