¿Qué es peor para la seguridad de la contraseña, una política de contraseña deficiente o ninguna política de contraseña?

74

Recientemente, vi la siguiente captura de pantalla en Twitter , que describe una política de contraseña obviamente terrible:

Me pregunto qué es peor para la fortaleza de la contraseña. ¿No tiene ninguna política de contraseñas o una política de contraseñas deficiente (como se describe en la captura de pantalla)?

    
pregunta Bob Ortiz 26.07.2016 - 15:56
fuente

10 respuestas

97

La pregunta es: ¿peor para qué?

Con la política que publicó, las posibles contraseñas son menos de 64⁸ (~ 2.8 * 10¹⁴). En la práctica, muchas contraseñas probablemente serán [a-z] * 6 [0-9] [caracteres especiales] (por ejemplo, aabaab1!) Y contraseñas similares.

Todas las contraseñas posibles con los mismos caracteres y longitud inferior a 8 son solo 64⁷ + 64⁶ + 64⁵ + ... que es ~ 4.5 * 10¹². Es mucho menos que las contraseñas con longitud 8, por lo que no aumenta mucho la seguridad para permitirlas. (Permitir contraseñas más largas obviamente aumentaría mucho la seguridad)

Sin ninguna política, muchas personas también usarán contraseñas malas, seguro. Pero un atacante no puede estar seguro de eso. También algunas personas usarán mejores contraseñas.

Sin una política, un atacante nunca puede estar seguro de lo difícil que es descifrar una contraseña. Si me das un DB de hashes de contraseña, podría intentar descifrarlo. Pero si no hay resultados, después de algún tiempo podría parar. Con la política vigente, puedo estar seguro de que después de 64 ^ 8 intentos tengo todas las contraseñas.

Yo diría que una política de contraseña incorrecta es peor. Pero depende del escenario de ataque.

Con un volcado de hashes de contraseñas, sin una política de contraseñas es muy probable que sea más fácil descifrar cualquier contraseña, pero es más difícil descifrar la mayoría de las contraseñas. Con una mala política como la que se da, es más fácil descifrar todas las contraseñas, pero un poco más difícil de descifrar la primera, lo más probable.

Si su preocupación es lo difícil que es descifrar su propia contraseña, sin ninguna política, puede usar una contraseña aleatoria segura de 20 caracteres si lo desea. Con la política vigente, se ve obligado a usar una contraseña insegura. (en la práctica, es más relevante cómo se almacenan las contraseñas, etc., pero eso está fuera del alcance aquí). Entonces, como usuario del sitio web / servicio, una política de contraseña incorrecta es mucho peor.

Si lo observa desde un punto de vista organizativo, una política de contraseña incorrecta es mucho peor que ninguna.

Ninguna política de contraseña significa, probablemente nadie lo pensó (no es muy bueno que no piense en seguridad, pero está bien ...)

Pero una política de contraseña incorrecta significa: Alguien lo pensó y se le ocurrió esa mierda. Esto significa que probablemente no tienen idea de la seguridad.

Al final, si puede implementar una política de contraseña incorrecta, también puede implementar una buena para que no haya ninguna excusa para una política de contraseña incorrecta. El solo hecho de cambiar la política a "Una contraseña debe tener al menos 8 caracteres" aumentaría mucho la seguridad y no es difícil de hacer.

    
respondido por el Josef 26.07.2016 - 16:42
fuente
39
  

Ahora me pregunto qué es peor para la seguridad de la contraseña. ¿No tiene una política de contraseñas o una política de contraseñas deficiente como en la imagen?

Los requisitos de seguridad de la contraseña que mencionaste hacen más daño que bien , especialmente la longitud máxima.

  1. Pueden estar usando una rutina de hash muy antigua e insegura. (por lo tanto una longitud máxima)
  2. En ciertas áreas, esto apoya la conveniencia sobre la seguridad.
    (ningún espacio es útil cuando se representa una contraseña en texto sin formato,
    no se distingue entre mayúsculas y minúsculas, por lo que no hay llamadas de soporte de bloqueo de mayúsculas
  3. Otros artículos son simplemente tontos.

Desglose detallado

  

Su contraseña debe:

     
  • Tengan exactamente ocho caracteres de longitud
  •   

La única vez que puedo ver esto como una solución razonable es cuando el sistema ejecuta un esquema de hash heredado que trunca todos menos los primeros 8 caracteres.

Por ejemplo, las contraseñas de las cuentas de usuario de Solaris 10 utilizaron dicho esquema de forma predeterminada, por lo que las contraseñas como [email protected] se truncaron a password . El valor predeterminado para Solaris 11 no tiene este defecto.

En este caso

  1. Los desarrolladores deberían estar trabajando en la migración a una mejor rutina de hash que admita longitudes de contraseña más allá de 8.

  2. Hasta que se lance dicha solución, la longitud máxima es sensata.

En cualquier otra situación, lo más seguro es que sea una estupidez tener una longitud máxima tan corta.

  
  • Incluya al menos una letra y un número.

  •   
  • Incluya al menos un carácter especial del siguiente conjunto: ...

  •   

Estos son una necesidad dada su corta longitud máxima. Estoy seguro de que puedes entender la necesidad de usar métodos tan primitivos para aumentar la entropía cuando se usa una contraseña corta.

  
  • Nota: la contraseña no distingue entre mayúsculas y minúsculas.
  •   

Si bien esto puede ser conveniente para el usuario (no se preocupe por el bloqueo de mayúsculas), nunca se recomienda ya que siempre disminuye la entropía de la contraseña. En este caso, se desalienta aún más debido a la presencia de una longitud máxima de 8 caracteres.

Esto debería solucionarse pero ¡ahora sería un problema para ellos porque los usuarios existentes ya están acostumbrados a la configuración insegura!

  

No contiene espacios

La única razón que veo para esto es si están presentando la contraseña en texto sin formato. (es decir, olvidé la contraseña, el correo electrónico o la búsqueda de asistencia técnica) Según la mayoría de los estándares, el diseño de software es deficiente (no es seguro).

Una mejor política es prohibir las búsquedas y solo permitir que se modifique. De hecho, es muy recomendable utilizar un Hash de contraseña fuerte (lento) como BCrypt que prohíba intrínsecamente las búsquedas como parte de su diseño central.

  
  • No comenzar con ? o !
  •   

Muy extraño, pero no es un asesino significativo de la entropía de contraseñas.

  
  • No comienza con tres caracteres idénticos
  •   

Meh, no estoy muy preocupado por esto, pero me pregunto por qué solo miran al principio. 3 caracteres idénticos / adyacentes en cualquier parte de una contraseña de 8 caracteres son más débiles de lo que podrían ser.

  
  • La contraseña debe ser diferente a sus 5 contraseñas anteriores.
  •   

Probablemente hay una pregunta dedicada de intercambio de pila de seguridad para este tema. Esta es una práctica común para la banca en línea y otros sistemas de autenticación.

Supongo que esto también se acompaña de un cambio programado obligatorio de la contraseña. Los resultados probables son:

  • Los usuarios escribirán su contraseña en lugar de usar su memoria,
  • O, los usuarios elegirán un patrón simple.

Sin embargo, si el cambio de contraseña no es obligatorio, entonces el único problema es

  • Uno debe continuar almacenando el valor hash de las contraseñas no utilizadas para que la comparación funcione.

y si bien eso no es un problema grave, está mal visto.

    
respondido por el George Bailey 26.07.2016 - 17:30
fuente
15

Una mala política como esta es peor que ninguna.

Esta política significa que las personas que normalmente usan '123' ahora tendrán una contraseña un poco más segura, pero aún es débil. También significa que las personas que usan algo como 'fzFEZ # 5 $ 3rt4564ezezRTyht' (generado aleatoriamente), o simplemente: 'cat j_umps sobre el wall412 pintado de color marrón' (entropía fuerte), ahora tendrán una contraseña mucho más débil.

Las personas que usan contraseñas débiles de todos modos también serán hackeadas en este caso (debido a esta política restrictiva y débil, y el atacante puede establecer reglas de ataque específicas). Pero las personas que normalmente usan contraseñas seguras también lo harán.

En otras palabras, es mucho menos seguro. Sin ninguna política, solo las personas que usan contraseñas débiles son vulnerables; ahora todo el mundo es vulnerable.

    
respondido por el O'Niel 26.07.2016 - 16:51
fuente
6

en mi opinión, tener ninguno sería mejor Una lista de razones son:

  • Estas políticas hacen que las personas tiendan a escribir las contraseñas y las adhieran a los monitores o similares. (¿Qué seguridad tiene una contraseña que el suministro?)
  • Estas reglas se deducen fácilmente y (al usar este tipo de cajas) incluso se anuncian a cualquier intruso potencial. (Al igual que le permitimos a la persona que queremos mantener fuera las 'reglas' de cómo son nuestras contraseñas para que solo tengan que hacer un conjunto limitado ...)
  • La entropía de una contraseña mejora significativamente haciéndola más larga. 8 es en estos días lo suficientemente trivial como para que un ataque pueda usar un dispositivo móvil para forzar una contraseña.
  • la regla para mezclar los casos y no verificarlos sugiere que la contraseña se inicie en forma de texto sin formato (incluso si el almacenamiento está cifrado, la mayoría de las veces la clave de cifrado se almacena con los datos, lo que efectivamente significa que hay almacenados en texto claro).
  • Para la mayoría de las aplicaciones, un esquema diferente permitiría una seguridad mucho mayor sin necesidad de una contraseña, como:
    • 2 Factor de autenticación.
    • Autenticación del dispositivo secundario.
    • autenticación de tarjeta inteligente.

Estas políticas parecen estar pensadas por alguien que no entiende completamente cómo las amenazas a una contraseña impactan su sistema. en su lugar, simplemente marcan "todas las casillas" por alguna razón.

dicho esto, puede haber una razón real por la que hicieron esto. algunas certificaciones y usos requieren algunos de estos para ser implementados (piense en el sector de la salud o en algún uso gubernamental).

    
respondido por el LvB 26.07.2016 - 16:50
fuente
4

Ninguna en absoluto es mejor que la que se muestra, específicamente debido al límite de 8 caracteres.

Los 8 combos de caracteres se pueden probar en un segundo con una GPU de la familia Titan y John the Ripper. Si bien no todas las políticas de contraseña son perjudiciales (la duración mínima es buena, una char especial + fuerza un alfabeto de crack más grande, sin palabras del diccionario, etc.), la que se muestra es una broma que no es muy divertida. En resumen, sí, eso es peor que nada porque no permitirá que los administradores de contraseñas o usuarios inteligentes se protejan mejor que la política predeterminada.

Las políticas nunca deben detener buenas contraseñas, solo terribles.

    
respondido por el dandavis 26.07.2016 - 16:53
fuente
3
  

¿Qué es peor para la seguridad de la contraseña, una política de contraseña deficiente o ninguna política de contraseña?

Eso depende de cuál sea la política de contraseña deficiente.

  • "Su contraseña debe ser 'letmein'" es una política de contraseñas deficiente que es definitivamente peor que no tener ninguna política, ya que evita que alguien tenga una buena contraseña.

  • "Su contraseña debe tener al menos dos caracteres" es una política de contraseñas deficiente que es definitivamente mejor que no tener ninguna política, ya que permite que cualquiera use una buena contraseña y evita algunas contraseñas incorrectas.

respondido por el David Richerby 27.07.2016 - 22:46
fuente
1

Ya hay una serie de buenas respuestas, pero siempre me gusta ver esto desde una perspectiva ligeramente diferente. Cuando está considerando cómo algo afectará los intentos de descifrar una contraseña, debe ver cómo intentarán hacer dicho resquebrajamiento. Básicamente esto se reduce a dos métodos. Fuerza bruta y adivinación "inteligente", así que echemos un vistazo a esos dos.

1) Fuerza bruta.

Esto es exactamente lo que suena. Intentan todas las contraseñas posibles. Este es el clásico que intenta cada pin desde 0000 hasta 9999 en un bloqueo numérico de 4 dígitos. Los factores clave aquí son el número de contraseñas posibles y el tiempo que se tarda en probar cada conjetura. En este caso, la regla de contraseña podría ser excelente y eliminar completamente la fuerza bruta como una opción viable debido al requisito de 8 dígitos. También puede ser completamente catastrófico si se utiliza un hash lo suficientemente débil y puede garantizar que todas las contraseñas posibles se descifren en un tiempo razonable para un atacante con suficientes recursos.

Dado que las reglas en este caso parecen sugerir fuertemente algo bastante antiguo en el back-end, es totalmente posible, si no es probable, que la contraseña esté encriptada con algo bastante débil como MD5 o SHA1 y que probablemente no tenga sal y las reglas podrían ser catastrófico Principalmente la longitud, pero también no es sensible a mayúsculas y minúsculas, lo que reduce los posibles caracteres en un ~ 30%. Actualmente tienen 26 caracteres + 10 números + 28 símbolos para 64 caracteres diferentes en una contraseña. Tendrían 90 caracteres si fueran sensibles a las mayúsculas y minúsculas.

Según algunas búsquedas rápidas, parece que si asumimos un atacante con una cantidad razonable de recursos y estamos usando uno de esos hashes débiles, parece muy probable que las reglas sean realmente catastróficas y, si no lo están, ahora Sin duda, están en peligro de volverse catastróficos en un futuro cercano, ya que la potencia de cómputo aumenta la tasa de craqueo. Es posible que se requiera una contraseña de más de 8 caracteres para que sea segura, pero en realidad no lo permiten.

¿Es posible infringir de forma bruta todas las contraseñas de 8 caracteres en un ataque sin conexión?

2) Adivinación "inteligente"

En algún punto, el método de fuerza bruta se vuelve impráctico, llevaría meses probar todas las contraseñas, o imposible, se necesitarían milenios para probarlas todas, y las conjeturas "inteligentes" toman el control. Aquí es donde puede ver ataques de diccionario, ya sea palabras literales del diccionario o listas de contraseñas utilizadas anteriormente, y ataques basados en reglas. Los ataques basados en reglas toman el diccionario y comienzan a agregar o cambiar cosas para hacer diferentes variaciones de esas contraseñas. Agregar un número y un carácter especial al final de una palabra de seis letras para obtener una contraseña de 8 dígitos que cumpla con los requisitos de contraseña. Convierta la contraseña en "leet" convirtiendo la contraseña en p @ ssw0rd, que sería una contraseña válida pero rápidamente descifrada en este sistema, etc. Estas reglas pueden ser casi cualquier cosa que pueda imaginar que crea que tiene sentido y evoluciona constantemente a medida que aprendemos más sobre cómo las personas suelen elegir sus contraseñas basándose en filtraciones anteriores.

Suponiendo que el cracking llegó a este punto, las reglas de contraseña que dieron acabarían incorporadas a las reglas que el atacante usó para generar su posible contraseña. En este caso, sus reglas no son tan catastróficas, pero aún así conducirían a contraseñas posibles mucho menos válidas, por lo que aceleraría el descifrado. También es probable que lleve a algunas contraseñas muy predecibles con símbolos / números agregados al principio / final de la contraseña o como parte de una sustitución muy predecible.

    
respondido por el Evan Steinbrenner 29.07.2016 - 21:34
fuente
0

Voy a tomar una ruta diferente a todas las otras respuestas hasta ahora ... y diré que en algún momento, no importa. El algoritmo importa mucho más que las reglas de contraseña. Por ejemplo, alguien podría usar ROT13, terrible, sí.
O, mejorando un poco el uso de MD5.
O, mejor aún, SHA-1.
Tal vez entonces agreguen sal.
Tal vez utilice cripta ().
Tal vez luego agregue pimienta.
Aún así, un GPGUP puede quemar miles de millones de hashes de contraseña en un segundo. Entonces, ¿qué más?
SHA-2-512 con sal de 128 bits. Mucho mejor, aún así, GPGPU puede hacer muchas de estas cosas.
Cambiar a bcrypt. Mucho mejor. Ahora, estamos superando el punto en que un solo GPGPU puede simplemente quemarlos a todos rápidamente.
Cambie a PBKDF2, con sal y pimienta y 10,000 rondas.
Hasta eso no ha sido posible, y ahora una contraseña muy corta es "imposible de encontrar" ya que el algoritmo es muy lento.

Aquí hay un tabla que podrían ayudar a explicarlo:

    Tries/sec
NTLM    350,000,000,000  
MD5     180,000,000,000  
SHA1     63,000,000,000  
SHA512Crypt     364,000  
Bcrypt           71,000    

Por lo tanto, una contraseña sucia con hash con bcrypt es mejor que una excelente con hash con MD5.

    
respondido por el MikeP 28.07.2016 - 05:29
fuente
0

Realmente se reduce al usuario final. A mi modo de ver, si usted como empresa / sitio web no es responsable si la cuenta de alguien se ve comprometida, es mejor renunciar a una política de contraseña formal, al menos restrictiva.

Siempre he opinado que el usuario debería ser responsable de su propia seguridad, ya que comprende las implicaciones de cosas como contraseñas débiles.

Por supuesto, la última parte es clave, ya que si el usuario no conoce nada mejor, debe obligarlo a tener una contraseña más segura que la que quiere usar. Pero una política de contraseña solo debe alentar contraseñas más seguras y no limitar la seguridad de la contraseña, como lo ilustra su ejemplo.

Me he encontrado con esto personalmente con el sitio web de mi universidad. Mi contraseña alfanumérica de longitud considerable no cumplía con la política de contraseña, lo que desalentaba algunos caracteres especiales (pero no todos). El resultado fue una contraseña intencionalmente más débil, ya que para mí fue más difícil recordar una contraseña que no he comprometido intencionalmente en la memoria.

Y especialmente en ese caso, sospecho que la "política de contraseña" fue más una excusa para evitar algunos análisis de cuerdas / saneamiento en el backend que una forma legítima de fomentar una mejor seguridad.

Finalmente, las políticas de contraseña, si se implementan, deben cambiar con el tiempo. Es decir, lo que podría haberse considerado como una contraseña segura en la década de 1990 ya no lo es en 2016, cuando el consumidor promedio puede aprovechar la computación en la nube o los clústeres de GPU para generar una cantidad enorme y cada vez mayor de potencia de computadora en sus contraseñas. p>     

respondido por el Verbal Kint 03.08.2016 - 16:02
fuente
0

Si los usuarios eligieran contraseñas al azar, las políticas de contraseñas empeorarían la seguridad al limitar la elección de posibles contraseñas, pero los usuarios no las seleccionan al azar. El objetivo de una buena política de contraseñas debe ser presionar a un usuario para que tome más decisiones y, por lo tanto, elija una contraseña más segura sin limitar el espacio de la contraseña.

Esta política tiene aspectos buenos y malos.

  

tener exactamente 8 caracteres de longitud

Una longitud mínima es buena, una longitud máxima es mala.

  

Incluya al menos una letra y al menos un número.

Esto es bueno, impulsa a los usuarios a elegir tanto un componente basado en letras como un componente basado en números.

  

La contraseña no distingue entre mayúsculas y minúsculas.

Esto reduce significativamente el tamaño del conjunto de contraseñas. Por otro lado, la mayoría de las personas no usan mayúsculas a menos que sean forzadas de todos modos y cuando las usan, tienden a hacerlo de manera predecible.

  

Incluir al menos un carácter especial

Otra vez, bien, empuja al creador de contraseñas a hacer otra elección.

  

¿Espacios y reglas prohibidos en? y!

Dudo que esto haga mucha diferencia.

  

caracteres repetidos prohibidos al inicio

Probablemente sea algo bueno, significa que el usuario no puede simplemente rellenar la contraseña con repeticiones de una sola letra.

En general, diría que si tiene usuarios despistados, esta política es probablemente mejor que nada, pero si sus usuarios tienen una idea de contraseñas decentes, probablemente hará más daño que bien.

    
respondido por el Peter Green 27.07.2016 - 14:39
fuente

Lea otras preguntas en las etiquetas