¿Cuál sería un buen conjunto de criterios para considerar una contraseña segura? [duplicar]

1

Hoy en día vemos muchos sitios web con un "medidor de seguridad" para la contraseña.

En realidad creo que esta es una gran característica, ya que le da al usuario final la sensación de lo insegura que puede ser su contraseña. Me gustaría tener un dólar por cada vez que escuché a los usuarios finales que indiquen qué tan segura es la "contraseña" de su contraseña.

El problema con esos medidores es que pueden ser realmente poco confiables. Recientemente, acabo de descubrir uno que solo da seguridad por la cantidad de caracteres que ingresa. Eso significa que si usas cosas como: 111111111 o 123456789, se considera que es la contraseña segura definitiva.

Permite definir 3 niveles de seguridad. Malo, medio, bueno. ¿Cuál sería un buen conjunto de reglas para considerar una contraseña en cada grupo?

Es evidente que la longitud, la diversidad de caracteres (incluyendo mayúsculas, minúsculas, números grandes) son importantes, pero algunas de estas contraseñas aún serían vulnerables a los ataques de diccionario.

¿Cuál sería un buen conjunto de pruebas para cada nivel?

Esto puede ser objeto de discusión, ya que la amenaza y el riesgo dependen de la importancia de la información protegida por la contraseña. Una buena contraseña para iniciar sesión, digamos "foro de cocina casera" no es tan importante como el de banco. En aras de la respuesta, consideremos el sitio web promedio, como una tienda en línea o youtube, como referencia.

    
pregunta nsn 09.10.2015 - 13:13
fuente

3 respuestas

5

El concepto que está buscando se llama entropía de contraseña . La entropía es la medida de cuántas combinaciones diferentes es posible, y generalmente se mide en bits. La entropía depende de la longitud de su contraseña (concatene dos contraseñas y usted suma la entropía) y de cómo la genere.

Si su contraseña es una cadena aleatoria generada desde el conjunto de caracteres base64, cada carácter tiene 6 bits de entropía. Si elige aleatoriamente 5 palabras de una lista de 4086 palabras en inglés, cada palabra tiene 12 bits de entropía, y hay una entropía total de 60 bits. Por lo tanto, una contraseña de 5 palabras elegida como la anterior es tan segura como una cadena base64 de 10 caracteres (o una cadena hexadecimal de 15 caracteres), y algo más fácil de recordar.

Algunas cosas a tener en cuenta: un conjunto de caracteres base64 generalmente tiene letras en mayúsculas y minúsculas, números y otros 4 caracteres. 5 palabras no aleatorias (como una frase gramaticalmente correcta), en inglés típico, tienen 2.62

Terminaré más tarde.

    
respondido por el timuzhti 09.10.2015 - 13:30
fuente
5

La seguridad de la contraseña de 'programación' es realmente difícil: lo que quieres es un número que te diga qué tan difícil es para un atacante adivinar la contraseña.

Por lo general, una buena aproximación es observar la cantidad de contraseñas posibles que resultaría del uso del mismo algoritmo de generación, operando bajo el supuesto de que el atacante conoce el algoritmo de generación y que la contraseña se selecciona aleatoriamente entre todos los resultados posibles de este algoritmo.

Esto es fácil de obtener, si define el algoritmo usted mismo y le da al usuario una contraseña fija y generada. Luego puede hacer un cálculo a lo largo de las líneas de "10 caracteres seleccionados al azar de un conjunto de 62 caracteres" = 839299365868340224 posibilidades ~ 59.5 bits de entropía.

Desafortunadamente, muchos sitios permiten que el usuario elija la contraseña y luego las cosas se ponen difíciles. Ahora ni tú ni el atacante conocen el algoritmo de generación. El atacante tiene que conformarse con la siguiente cosa más inteligente: probar un par de algoritmos razonables y todas las contraseñas generadas para cada algoritmo (omitir duplicados). Con sensatez, el atacante comenzaría con algoritmos comunes (como "nombre de un miembro de la familia") y / o aquellos que generan solo un pequeño número de contraseñas posibles ("PIN de 4 dígitos").

Ahora, para obtener una comprensión numérica de la seguridad de la contraseña resultante, no puede simplemente mirar el número total de contraseñas posibles, sino que también debe tener en cuenta el orden en que un atacante las intentaría. Algo a lo largo del líneas de un promedio ponderado del número de contraseñas por algoritmo y la probabilidad de que se use ese algoritmo.

Hay un concepto estrechamente relacionado llamado complejidad de Kolmogorov: describe el contenido de información de una cadena como la longitud del programa más corto (en algún lenguaje de programación genérico) que puede recrear la cadena. Ejemplo: "aaaaa" y "abcdefghijklmnopqrstuvwxyz" tienen aproximadamente la misma complejidad de 3 si nuestro idioma permite decir cosas como "5 * a" y "a-z", mientras que "oabuf" tendría una complejidad de 5.

Un atacante inteligente intentaría contraseñas para aumentar la complejidad de Kolmogorov, por lo que estaría en casa si pudiera calcularlo. Desafortunadamente, no puedes .

En general, el mejor enfoque para la seguridad de contraseñas es brindar consejos útiles a los usuarios sobre cómo elegir una buena contraseña, consulte este estudio . Este documento recomienda el método de frase de contraseña: tome una oración y use las primeras letras de todas las palabras. Esto da buena memorabilidad y seguridad. Otro buen método es el método XKCD , también conocido como elemento básico de batería de caballo correcto (el cómic también ofrece una buena ilustración de mis comentarios sobre múltiples algoritmos arriba).

Dado que no puede calcular razonablemente la seguridad de la contraseña sin conocer el algoritmo, y generalmente no puede conocer el algoritmo, sugeriría abstenerse de tratar de hacerlo. Tener un medidor de fuerza de contraseña que no funcione enviará las señales equivocadas a sus usuarios (por ejemplo, la mayoría de los medidores de fuerza de contraseña subestiman enormemente la fuerza de las contraseñas de XKCD). En su lugar:

  • Dar consejos sobre cómo elegir una buena contraseña
  • No le dificulte el uso de una buena contraseña (por ejemplo, al tener límites arbitrarios en la longitud y el conjunto de caracteres; de todos modos, va a marcar la contraseña, ¿no?)
  • Use cracklib en el lado del servidor para eliminar las contraseñas catastróficamente malas.
respondido por el Henryk Plötz 09.10.2015 - 15:18
fuente
1

El problema con solo considerar la entropía es que no tiene en cuenta la posibilidad de adivinar basándose en información contextual (como el idioma, la cultura, la proximidad de los caracteres del teclado, etc.) solo en el forzamiento brutal sistemático.

El problema es similar a por qué las personas que juegan a la lotería no eligen una serie de números consecutivos como 1,2,3,4,5,6; instintivamente creen que esta es una combinación menos probable que ocurra a pesar de que la aleatoriedad, o el grado de entropía en el grupo de elección, es exactamente el mismo para cualquier secuencia elegida al azar. En la elección de la contraseña, esto resulta ser una buena intuición, pero para la lotería no lo es porque no hay una entrada contextual en la elección de los números ganadores extraídos de las bolas.

Un generador aleatorio podría crear la contraseña 'contraseña' si se le pide que elija 8 caracteres de 1 a 9, a-z, y algo de puntuación. Es poco probable (igual que cualquier otra combinación) pero podría suceder. Si lo hiciera, diría que esto era inseguro porque aunque un verdadero programa de fuerza bruta dividir todas las combinaciones tomaría mucho tiempo, un programa de descifrado de contraseñas sensato lo encontraría casi al instante (bueno, ¡si se basara en el idioma inglés de todos modos! )

Por lo tanto, las contraseñas deben elegirse en función de una medida razonable de la entropía, así como de otra información sensible al contexto, como los patrones comunes, etc.

Por lo tanto, la longitud y los juegos de caracteres más grandes (para proporcionar un espacio de búsqueda lo suficientemente grande) y la falta de patrones contextualmente relevantes / significativos es el camino a seguir.

El problema con los sistemas de medición en línea y los 'medidores de piratería' es que no conocen el contexto del uso de la contraseña, por ejemplo. ¡Si es para un sitio de cocina en el Reino Unido y elige GBBOnadya2WIN! puede que no sea seguro.

    
respondido por el David Scholefield 09.10.2015 - 16:28
fuente

Lea otras preguntas en las etiquetas