¿Tener una cantidad mínima de dígitos mejora la seguridad de la contraseña?

8

Algunos sistemas de contraseñas impondrán al menos X de un tipo de carácter, uno común que veo es 'mínimo 3 caracteres numéricos'. Por lo que entiendo, simplemente permitir ciertas clases de caracteres, como los números, aumenta considerablemente el espacio de la contraseña (por ejemplo, (26 * 2) +10 posibilidades para cada carácter alfanumérico que distingue entre mayúsculas y minúsculas vs (26 * 2) solo para alfabético), así que no veo cómo tener un mínimo de 3 dígitos contribuye a mejorar la seguridad / entropía de las contraseñas.

Mi conjetura es que simplemente está ahí para hacer cumplir una variedad de contraseñas para que los usuarios no solo usen palabras simples del diccionario.

¿Mi pensamiento es correcto? ¿ passwordABC y password123 no son igualmente (des) confiables cuando el conjunto de caracteres disponible es el mismo? (Por supuesto, estos ataques artificiales probablemente serán probados y encontrados pronto por cualquier ataque)

¿O hay alguna razón técnica por la cual un mínimo de X dígitos, caracteres especiales, cuál es una buena política?

    
pregunta Alex 16.08.2012 - 15:27
fuente

7 respuestas

12

La seguridad de la contraseña no se trata realmente de lo que los usuarios tienen permitido para elegir, sino de lo que los usuarios realmente eligen .

El atacante intenta adivinar la contraseña que eligió el usuario, y lo hará probando primero las contraseñas más probables. "Lo más probable" aquí designa un tipo de estudio psicológico que realiza el atacante; en palabras sencillas, esto significa que el atacante intentará con los nombres de jugadores de fútbol / béisbol / hockey famosos porque muchos usuarios, a su izquierda, usan estos nombres como contraseña.

El usuario ideal selecciona su contraseña totalmente al azar, con una probabilidad uniforme en el espacio de las posibles contraseñas (es decir, todas las contraseñas que se pueden ingresar y que la máquina aceptará). Sin embargo, la mayoría de los usuarios no harán eso. Incluso si pueden usar dígitos en sus contraseñas, preferirán que no usen dígitos, si se les da la opción; porque los usuarios, como todos los demás, intentan maximizar su propia comodidad y eficiencia, por lo que desean contraseñas que sean fáciles de escribir y recordar. Una contraseña alfabética completa es más fácil de recordar que una contraseña de letras y números mixtos, y también es más fácil de escribir, especialmente en los teléfonos inteligentes (por ejemplo, el teclado visual básico de Android muestra letras y números en pantallas separadas).

Una restricción en un número mínimo de dígitos es un intento de hacer que los usuarios sean más aleatorios: les impide usar contraseñas alfabéticas completas porque, cuando técnicamente se les permite hacerlo, los usuarios confían en contraseñas de muy baja entropía (Los que son fáciles de adivinar). Al imponer la inclusión de algunos dígitos, un administrador del sistema puede empujar a los usuarios (ligeramente) fuera de su zona de confort y obligarlos a elegir una contraseña donde un nombre de jugador de fútbol simple no sea una contraseña válida.

Hecho con moderación y gusto , esto aumenta la seguridad al hacer que las contraseñas, en promedio, sean menos fáciles de adivinar. Sin embargo, no le dé demasiadas esperanzas: muchos usuarios agregarán "111" al final de su contraseña y terminarán con ella. El atacante también lo sabe. Además, cuantas más restricciones agregue, más probable será que el usuario se convierta en un enemigo . A la gente no le gusta que la echen de su zona de confort. Si los empujas demasiado, reaccionarán de manera bastante creativa, por ejemplo, escribiendo contraseñas hechas en un papel (oculto, según la Tradición inmemorial, debajo del teclado, y el atacante lo sabe, por supuesto). No se puede culpar a los usuarios por eso, pero el efecto neto es que la seguridad puede disminuir cuando se aplican restricciones bien intencionadas.

    
respondido por el Thomas Pornin 16.08.2012 - 19:22
fuente
6

Sobre el tema de los caracteres no alfabéticos en las contraseñas, hay un famoso cómic de XKCD. Lea también el hilo de seguimiento en este sitio . Tenga en cuenta que algunas de las respuestas no pasan por alto el punto; Recomiendo especialmente las respuestas por Thomas Pornin , AviD y Mike Hamburg .

)

Sin embargo, ese es solo un lado de la moneda. La mayoría de los usuarios no intentan una contraseña difícil de adivinar, prefieren atenerse a algo memorable, como el nombre de su primer hijo. Forzarlos a tener un dígito agrega un par de bits de entropía: seguro, muchos agregarán 1, pero algunos usarán su fecha de nacimiento. Los usuarios que escriben en un teclado móvil que requiere un cambio de modo entre las letras y los dígitos son especialmente propensos a poner los dígitos al final.

El hecho de requerir puntuación es más probable que agregue entropía, por cierto. Mientras que un . al final es un carácter de puntuación "obvio", algunos usuarios elegirán una frase de contraseña de dos palabras con una puntuación en el medio.

También hay un aspecto de teatro de seguridad: si documenta en su política de seguridad que las contraseñas deben tener un mínimo de X caracteres, incluyendo 1 dígito y 1 letra mayúscula , parece que está haciendo algo para mejorar la seguridad. Incluso si hay métodos mucho mejores con contraseñas en minúsculas.

    
respondido por el Gilles 18.08.2012 - 00:41
fuente
2

Tiene razón en que el objetivo de obligar a los usuarios a tener un número en una contraseña aumenta el conjunto de caracteres y, por lo tanto, la fuerza criptográfica, al igual que la aplicación de mayúsculas y caracteres especiales. Creo que imponer 3 dígitos en una contraseña es contraproducente, ya que la mayoría de los usuarios simplemente agregarán 3 números al final de una contraseña para simplificar las cosas. Si la mayoría de las contraseñas son passw123 o something567, en realidad reduce la complejidad al introducir un patrón.

    
respondido por el GdD 16.08.2012 - 15:35
fuente
2

Como usuario, existen dos reglas para el uso de contraseñas:

1). Nunca reutilice la misma contraseña con diferentes entidades (por ejemplo, no use la misma contraseña en su banco en línea como un foro web gratuito creado por alguna persona anónima). Cualquier sitio potencialmente registra las contraseñas en texto simple (incluso las contraseñas de otros sitios que se escriben accidentalmente) y potencialmente podría usar esas contraseñas para atacar a los usuarios de otros sitios. [1] .

2). Elija alta entropía contraseñas / frases de contraseña (preferiblemente generadas aleatoriamente y solo ligeramente modificadas) que no se encontrarán en un ataque de diccionario o en cualquier lista de contraseñas comunes.

Un sistema donde los usuarios almacenan localmente una lista cifrada con contraseña protegida por contraseñas generadas aleatoriamente sincronizadas entre todas sus computadoras es una excelente solución, pero no puede esperar que la mayoría de los usuarios hagan esto.

Como desarrollador, establece reglas de contraseña para un sistema, es un acto de equilibrio. Las reglas más estrictas generalmente significan una experiencia de usuario más difícil (UX). Si sus reglas son especialmente estrictas, los usuarios burlarán sus reglas de alguna manera. Lo escribirán en su computadora, lo guardarán en texto sin formato en su escritorio, dejarán de usar su servicio, se quejarán incesantemente a los más altos o usarán el mecanismo de restablecimiento de contraseña cada vez que inicien sesión (lo que puede terminar siendo) un enlace mucho más débil). Tal vez necesite un número en su contraseña, ellos toman una palabra común del diccionario y solo agregan un 1 al final. Necesita que las contraseñas se cambien cada tres meses y no se reutilicen, y el usuario final rota su contraseña para que sea Spring2012 , Summer2012 .

Por el contrario, no tener reglas significa que encontrarás muchos usuarios idiotas que elegirán una contraseña que se encuentra en una lista de las listas de contraseñas principales 100/1000.

Las reglas personalizadas son agradables, ya que puede establecer un mínimo de longitud / complejidad y, además, puede evitar la reutilización de la contraseña si sus reglas son bastante particulares (por ejemplo, no hay símbolos especiales, pero al menos dos números y una mayúscula / minúscula) . Sin embargo, debe asegurarse de que sus reglas personalizadas no excluyan las frases de contraseña seguras, que son una buena manera de lograr contraseñas memorables de alta entropía. Además, la invalidación de contraseñas débiles comunes puede ayudar a proteger su aplicación. Por ejemplo, si no permite que un usuario establezca una contraseña que sea una palabra del diccionario más un número al final, o una contraseña de una lista de contraseñas común, eso puede reforzar la seguridad. (Aunque, de nuevo, un atacante puede usar esa información para saber qué contraseñas no debe probar y sus usuarios pueden encontrar el mínimo que pasa sus reglas).

Pero para responder a su pregunta, la entropía de una contraseña de 8 caracteres que consta de cualquier número de dígitos, mayúsculas y minúsculas elegidas al azar es lg (62 8 ) ~ 47.6 bits (ignoremos simbolos). La entropía de una contraseña de 8 caracteres donde exactamente tres letras son dígitos es 44.3 bits ~ lg (56 * 52 5 10 3 ) (56 = 8 elija 3; el número de combinaciones de tres dígitos elegidos entre 8 posiciones), por lo que es un poco más débil. Si relaja la condición, debe ser de 8 caracteres y tener tres o más dígitos; entonces es todavía sólo 44.6 bits. Por lo tanto, al requerir d dígitos en una contraseña larga de N , la contraseña la debilita ligeramente en comparación con permitir cualquier símbolo, pero solo por un par de bits de entropía. Aunque, alternativamente, si compara una contraseña de 7 dígitos sin ningún requisito numérico lg (62 7 ) ~ 41.7 bits y agregue una elección forzada de un dígito insertado en el espacio al azar; la nueva contraseña es 80 veces (6.3 bits) más fuerte (diez opciones por dígito; 8 opciones por ubicación de dígito forzado).

    
respondido por el dr jimbob 18.08.2012 - 08:00
fuente
2

La respuesta corta es no .

Joseph Bonneau de la Universidad de Cambridge ha realizado una extensa investigación en el área de contraseñas elegidas por los usuarios. Su tesis doctoral, que se basa en un análisis de 70 millones de contraseñas reales, es una lectura obligatoria para cualquier persona interesada en el tema.

Lo siguiente es de las observaciones finales de un papel IEEE que escribió ( PDF) :

  

Como regla general para los ingenieros de seguridad, contraseñas   proporciona seguridad aproximadamente equivalente a cadenas aleatorias de 10 bits   contra un atacante en línea óptimo tratando algunos populares   Supongo que para gran lista de cuentas. En otras palabras, un atacante.   ¿Quién puede gestionar 10 conjeturas por cuenta, normalmente dentro de la   El ámbito de los mecanismos de limitación de velocidad, se comprometerá alrededor   1% de las cuentas, tal como lo harían contra 10 bits aleatorios   instrumentos de cuerda. Contra un atacante óptimo realizando sin restricciones.   Fuerza bruta y ganas de romper la mitad de todos los disponibles.   cuentas, las contraseñas parecen ser aproximadamente equivalentes a 20-   cadenas aleatorias de bits.

En otras palabras, una contraseña promedio elegida por el usuario tiene aproximadamente 20 bits de entropía.

No tengo conocimiento de ninguna investigación realizada en el área de adiciones de contraseñas seleccionadas por el usuario forzado, pero supongo que la gran mayoría de ellas sería una de las cuatro opciones: '123' prefijo, '123' sufijo, prefijo '111' y '111' sufijo '. Si es así, obligar a los usuarios a agregar tres dígitos a su contraseña, mientras les permite a los atacantes saber que lo están haciendo, en el mejor de los casos aumentaría la entropía promedio de 20 a 22 bits.

Ahora agregar 2 bits de entropía es algo bueno ya que multiplica el tiempo de ataque por un factor de cuatro. Pero obligar a los usuarios a hacerlo tiene un precio, tanto en la experiencia de usuario deficiente como en la complacencia del usuario falsa. Si ya está teniendo la molestia de obligar al usuario a usar una forma específica de contraseña, probablemente sea mejor ir y forzar una contraseña con alta entropía o, mejor aún, una contraseña generada por computadora.

    
respondido por el David Wachtfogel 19.08.2012 - 09:07
fuente
1

La respuesta corta a esta pregunta es Sí

La respuesta corta más larga a esta pregunta es la siguiente:

Una contraseña más larga, por ejemplo, password y / o password123456789 , es menos segura que quizás p1a2s3s4s5w6o7r8d90 o algo así como P@ssW0rdT@Day24 . Más aún, es completamente posible tener una contraseña alfanumérica segura que no distinga mayúsculas y minúsculas, que será tan segura como 'P@ssW0rdT@Day24

NINGUNO de los ejemplos que utilicé son realmente seguros porque son contraseñas de diccionarios.

Or is there some technical reason why a minimum of X digits, special chars, whatever is a good policy?

Hay toneladas de investigación en línea sobre este tema, no repetiré esa investigación.

    
respondido por el Ramhound 16.08.2012 - 15:33
fuente
0

La respuesta es No . Lo siento Ramhound.

Si tengo que usar al menos x dígitos, significa que se garantiza que los x caracteres de la contraseña son dígitos, de los cuales solo hay 10. Está reduciendo el espacio de búsqueda al hacer cumplir los específicos tipos de personajes Como atacante, con mucho gusto agregaré sus reglas de contraseña a mi herramienta de craqueo.

El razonamiento detrás de estos requisitos es forzar a los usuarios a no elegir "contraseña" como su contraseña. Hay mejores formas de hacerlo, pero esa es una discusión diferente.

    
respondido por el Tom 17.05.2018 - 10:35
fuente

Lea otras preguntas en las etiquetas