Generalmente estoy en contra de reglas demasiado estrictas o complejas para aceptar contraseñas (reglas como "Debe contener al menos un carácter en mayúscula, un número y un símbolo" y cosas por el estilo, vea también XKCD # 936: ¿Contraseña corta y compleja, o frase de contraseña larga del diccionario? ). Por lo general, prefiero calcular una métrica solidez (basada en caracteres especiales incluidos y la longitud) y si está por encima de un umbral de entrega, acepto la contraseña, no importa si es fuerte porque es un texto en minúscula liso de 32 caracteres o porque tiene 10 caracteres pero también contiene dígitos en caracteres chinos).
Me gusta este enfoque porque es fácil para los usuarios finales y, asumiendo que los usuarios bien educados elegirán frases de contraseña , Tiendo a considerar sus contraseñas razonablemente seguras.
Sin embargo:
-
Los usuarios pueden usar oraciones increíblemente comunes ( mi nombre es adriano o cosas así). Tan pronto como estén disponibles las buenas estadísticas (tal vez incluso estén disponibles ahora, pero no lo sé), un atacante que obtuvo la lista de contraseñas con hash puede usar esas estadísticas para adivinar las frases de contraseña.
-
No puedo estar seguro de la seguridad de otros sitios y me gustaría evitar que los usuarios reutilicen la misma contraseña para todos los sitios en los que tienen un registro.
Pensé en pedirles que incluyan una palabra aleatoria dada en su contraseña, algo como: Escriba su contraseña, asegúrese de incluir la palabra "honey" en ella . ¿Es razonable? AFAIK no debería hacer hashing débil con la palabra / patrón repetitivo porque la palabra se elige al azar de un diccionario lo suficientemente grande (y específico del idioma).
Sí, simplemente pueden agregar la palabra requerida al texto existente (por ejemplo, "mi nombre es adriano, cariño" ) pero desde el punto de vista del cracker no debería importar porque la palabra es aleatoria y eventualmente los separadores adicionales también mejorarán la seguridad.