¿El NHS está equivocado con las contraseñas?

181

Un médico del NHS que conozco recientemente tuvo que hacer su cuestionario de capacitación obligatoria en línea, que hace muchas preguntas sobre la práctica clínica, la seguridad y la seguridad. Este mismo cuestionario se habrá enviado a todos los médicos en este fideicomiso del NHS.

El cuestionario incluía la siguiente pregunta:

  

¿Cuál de las siguientes opciones haría la contraseña más segura? Seleccione una:

     

a. 6 letras incluyendo mayúsculas y minúsculas.
  segundo. 10 letras una mezcla de mayúsculas y minúsculas.
  do. 7 caracteres que incluyen una mezcla de números, letras y caracteres especiales.
  re. 10 letras todas mayúsculas.
  mi. 5 letras todas en minúsculas.

Respondieron "b" y perdieron una marca, ya que la "respuesta correcta" aparentemente era "c".

Tengo entendido que como regla general, la extensión de la longitud de la contraseña agrega más entropía que la expansión del alfabeto. Supongo que el NHS podría argumentar que las personas normalmente forman contraseñas largas con palabras muy predecibles, lo que las hace fáciles de adivinar. Pero si obliga a las personas a introducir "caracteres especiales", también tienden a usarlos de manera muy predecible con la que los algoritmos de adivinación de contraseñas no tienen problemas.

A pesar de la divulgación completa, no soy un experto en contraseñas, principalmente recibí esta impresión de Randall Munroe (haga clic para discusión):

¿Estoy equivocado?

    
pregunta Robin Winslow 06.10.2016 - 22:31
fuente

9 respuestas

222

Por cualquier medida, están equivocados:

Siete ASCII imprimibles al azar: 95 7 = 69 833 729 609 375 contraseñas posibles.

Diez alfabéticos aleatorios: 52 10 = 144 555 105 949 057 024 contraseñas posibles, o más de 2000 veces más.

La longitud cuenta. Si está generando sus contraseñas de manera aleatoria, cuenta mucho más que cualquier otro método para hacerlas difíciles de adivinar.

    
respondido por el Mark 06.10.2016 - 23:01
fuente
89

La perspectiva teórica

Vamos a hacer los cálculos aquí. Hay 26 letras, 10 dígitos y digamos unos 10 caracteres especiales. Para empezar, asumimos que la contraseña es completamente aleatoria (y que no es más probable que se use un carácter en un grupo que un carácter en otro grupo).

El número de contraseñas posibles se puede escribir como C = s^n donde s es el tamaño del alfabeto y n el número de caracteres. La entropía de la contraseña se define como:

log2(C) = log2(s^n) = log2(s)*n

Permite insertar los números de la pregunta en esto:

     s    n   Entropy (bits)
A   52    6   34.2
B   52   10   57.0
C   72    7   43.2
D   26   10   47.0
E   26    5   23.5

En este escenario, C es solo la tercera mejor opción, después de B y D.

La perspectiva práctica

Pero todo esto está bajo el supuesto de aleatoriedad. Esa no es una suposición razonable de cómo las personas generan contraseñas. Los humanos simplemente no lo hacen de esa manera. Así que tendríamos que elegir otras suposiciones sobre cómo se generan las contraseñas y qué orden las intenta el atacante en su diccionario.

Una suposición no irrazonable sería que muchos diccionarios comienzan con palabras, y solo luego pasan a hacer sustituciones y agregar caracteres especiales. En ese caso, un solo carácter especial en una contraseña corta sería mejor que una palabra común realmente larga. Pero, por otro lado, si el atacante sabe que siempre se usa un carácter especial, primero intentará esas contraseñas. Y, por otra parte, tal vez el diccionario esté centrado en principios completamente diferentes (como la aparición en bases de datos filtradas).

Podría seguir especulando para siempre.

Por qué es la pregunta, no las respuestas, lo que está mal

El problema es que hay muchos principios sobre cómo se genera la contraseña para elegir, y arbitrariamente podría elegir uno para que casi cualquier respuesta sea la correcta. Por lo tanto, toda la pregunta no tiene sentido, y solo sirve para ocultar un punto importante que ninguna política de contraseñas en el mundo puede hacer cumplir: No son los caracteres que contiene una contraseña lo que la fortalece, es cómo se genera.

Por ejemplo, Password1! contiene mayúsculas, minúsculas, un número y un carácter especial. Pero no es muy aleatorio. ewdvjjbok por otra parte solo contiene minúsculas, pero es mucho mejor, ya que se se genera aleatoriamente .

Lo que deberían haber hecho

Si simplemente dejas de confiar en la memoria humana muy falible y limitada, el conjunto de caracteres y la longitud dejan de ser factores limitantes que debes sopesar unos contra otros. Puedes tener ambos en abundancia.

Una forma de hacer esto es usar un administrador de contraseñas. Como Dan Lowe señaló en los comentarios, esa podría no ser una opción viable en un hospital. Una segunda alternativa es usar algún tipo de autenticación de dos factores (por ejemplo, un token de hardware o una tarjeta de acceso) que haga que la seguridad del primer factor (la contraseña) sea menos importante.

Esto es responsabilidad de los administradores del sistema, y no de los usuarios finales, de implementar. Deben proporcionar las herramientas que permitan a los usuarios finales realizar su trabajo de una manera práctica y segura. Ninguna cantidad de educación del usuario puede cambiar eso.

    
respondido por el Anders 06.10.2016 - 23:04
fuente
21

Me doy cuenta de que ya hay una serie de buenas respuestas, pero quiero aclarar un punto.

La pregunta no tiene respuesta ya que no especifica un conjunto de caracteres ni el método de selección de contraseña.

Primero, para abordar el segundo punto, simularemos que las contraseñas se generan de forma verdaderamente aleatoria dentro del dominio permitido, de lo contrario, ni siquiera podemos comenzar a razonar sobre el asunto.

Para nuestro otro punto, para dar ejemplos extremos, digamos que b implica letras solo en el alfabeto inglés, así que digamos 52 posibles símbolos. Esto proporciona aproximadamente 5,7 bits de entropía por carácter y, por lo tanto, alrededor de 57 bits de entropía en general.

Por otra parte, digamos (quizás de manera poco razonable) que la respuesta c implica cualquier punto de código Unicode completamente aleatorio que se considera un carácter (a diferencia de una lista de materiales, etc.). Actualmente hay aproximadamente 109,000 de estos a partir de Unicode 6. Esto significa aproximadamente 16.7 bits de entropía por carácter y un total de 117 bits de entropía.

Por otra parte, si la respuesta c se limitara solo a ASCII o quizás a ISO 8859-15 o algún subconjunto de estos, la conclusión opuesta se podría extraer fácilmente.

Por supuesto, esto es completamente irrazonable, pero resalta la interrupción de la pregunta y cómo se puede justificar razonablemente cualquiera de las respuestas. Para ser una pregunta sensata, debería formularse de manera mucho más rigurosa, lo que haría mucho más difícil para los usuarios con conocimientos técnicos o matemáticos limitados.

Al final, sugeriría que esta prueba es probablemente bastante inútil, ya que lo ideal sería que una organización no requiera que los usuarios memoricen los requisitos de contraseña, sino que los aplique tecnológicamente (el único requisito que puedo pensar es que aprender de memoria es útil no es reutilizar la misma contraseña en varios lugares).

    
respondido por el Vality 07.10.2016 - 01:20
fuente
14

¿Se equivoca el NHS sobre qué contraseñas son las más seguras en el caso ideal? Sí, absolutamente, y las otras respuestas han cubierto ese terreno bastante a fondo.

¿Se equivoca el NHS sobre qué contraseñas son las más seguras en un entorno NHS? Tal vez no.

¿Cómo podría ser peor una contraseña larga que ...?

Hay sistemas heredados que limitan artificialmente la longitud de una contraseña; por ejemplo, el hash de contraseña LANMAN / NTLMv1 de Windows antiguo limita la longitud a 14 símbolos, y el hash de contraseña UNIX basado en DES anterior lo limita a 8. Peor , la entrada de la contraseña en dicho sistema a menudo le permitirá ingresar una contraseña todo el tiempo que desee, e ignorar todo después de los primeros símbolos n .

De hecho, parece probable que NTLMv1 sea el esquema heredado particular que están ejecutando. Como @MarchHo señala, NTLMv1 divide su contraseña en dos mitades de hasta 7 caracteres cada una, y cada mitad se puede descifrar por separado. Entonces, si está utilizando NTLM con una contraseña alfanumérica de 10 caracteres, lo que realmente tiene es una contraseña alfanumérica de 7 caracteres y una contraseña alfanumérica de 3 caracteres. El primero es claramente peor que 7 caracteres del conjunto completo de símbolos, y el último se puede dividir en milisegundos en una PC de 10 años.

¿Por qué algo tan antiguo todavía sería de uso común?

Básicamente, porque funciona y sería caro actualizarlo.

Ahora, soy yo quien especula, pero: propongo que los entornos de atención médica en particular probablemente funcionen con sistemas heredados, debido a la naturaleza sensible de la atención médica. Es probable que los nuevos sistemas necesiten un análisis muy exhaustivo antes de ser aceptados como una solución, lo que significa que las actualizaciones de los sistemas de atención médica tienden a realizarse de manera lenta y con un gran costo.

Entonces, si sabe que hay sistemas de uso común que se comportan de esta manera y no puede corregirlos, entonces lo mejor que puede hacer es decirles a sus usuarios que elijan una longitud- n contraseña utilizando el mayor grupo de símbolos posible.

En general: ¿está seguro de que sus contraseñas no están truncadas?

Desafortunadamente, esto también tiene implicaciones para el caso general, especialmente para nosotros a quienes les gustan nuestras contraseñas largas. ¿Qué tan seguros estamos de que no podemos iniciar sesión en nuestra cuenta en enlace con solo la primera palabra o dos de nuestra frase de contraseña? Tan malo como usar el conocido "correcthorsebattery estaple" es, el uso accidental de "correcto" sería aún peor. Para estar seguro en sus contraseñas no es suficiente asegurarse de que genera suficiente entropía. También debe asegurarse de que el sistema en el otro extremo no esté tirando la mayor parte del mismo.

    
respondido por el Jander 08.10.2016 - 09:40
fuente
8

Hay algunos problemas con esa pregunta. Una de ellas es que no indica cómo se eligen las contraseñas, pero creo que el enfoque más lógico es asumir que las contraseñas se eligen al azar pero satisfaciendo las condiciones respectivas, así que usaré esa convención para mi respuesta. Tenga en cuenta que el cómic de Randall claramente no comparte esta suposición, pero la pregunta no especificó de qué manera se elige una contraseña, por lo que creo que podemos ir por lo mejor, lo que es posible, y eso es elegir una contraseña al azar. Además, la prueba probablemente no se basa en el cómic de Randall.

El ritmo clave de la opción b es bastante fácil de calcular si asumimos que se usa el alfabeto inglés. Sí, más suposiciones, lo sé. Pero como la prueba parece ser en inglés y no muy complicada, creo que podemos hacer esa suposición.

Hay 26 letras minúsculas en el alfabeto inglés y tantas letras mayúsculas, lo que hace un total de 52. Así que hay 52 ^ 10 ≈ 1.45 * 10 ^ 17 elementos en el espacio clave de la opción b .

La opción c es mucho menos específica que la opción b . Sin embargo, dado que asumimos que se usa el alfabeto inglés, que está a favor de la opción c , también podemos suponer que solo se usa ascii para los caracteres especiales, que está a favor de la opción b . Realmente, si asumimos más caracteres especiales que ascii, debemos asumir más letras que las que hay en ascii ya que ä podría decirse que es una letra en alemán. Eso hace que el espacio clave de la opción b sea aún mayor en comparación con el de la opción c . *

Lo mejor que podemos hacer para la opción c si nos limitamos al alfabeto ascii es usar cada carácter imprimible (excluyendo el espacio en blanco) en nuestro alfabeto (nota: uso diferente y más general de la palabra "alfabeto") . Son 94 caracteres, lo que le da a la opción c un espacio clave de 94 ^ 7 ≈ 6.48 * 10 ^ 13 elementos.

Dado que uno de nuestros supuestos para abordar la pregunta es que la contraseña se elige al azar con las restricciones respectivas y que la regla es igual a elegir una contraseña al azar del espacio de clave respectivo, una contraseña elegida con la opción b es posiblemente más difícil para adivinar, ya que hay varios órdenes de magnitud más opciones para probar al descifrar la contraseña.

De hecho, si asumimos que los costos de descifrar una contraseña mediante la fuerza bruta son aproximadamente lineales al tamaño del espacio clave, descifrar una contraseña elegida mediante la opción b es 52 ^ 10 / (94 ^ 7) ≈ 2'229 veces más difícil que descifrar una opción elegida a través de la opción c , lo que demuestra claramente que la respuesta supuestamente correcta a esta pregunta es incorrecta.

* Esto es bastante fácil de probar matemáticamente, pero este StackExchange carece de soporte de LaTeX y probablemente lo entenderás mejor a través de una descripción textual de todos modos.

La única opción de ventaja c que sobre la opción b es su alfabeto más grande (de nuevo, un uso más general de la palabra "alfabeto"). Sin embargo, la opción b hace mucho más que eso al elegir una contraseña más larga. Si le agregamos más y más caracteres (como ü , à , Ø , Æ , etc.), estamos haciendo que los alfabetos sean más iguales en tamaño, lo que genera la ventaja de c sobre b disminuirá, mientras que la ventaja de b sobre c no se verá afectada.

    
respondido por el UTF-8 06.10.2016 - 23:06
fuente
7

Me encantan las preguntas de entropía:

La respuesta corta:

Sí, usted es "técnicamente" correcto al tener más entropía (el mejor tipo de correcto).

La respuesta larga

La entropía es factorizada en gran parte por dos cosas. Número de símbolos que puede usar una contraseña y longitud. En el escenario del NHS, sería lógico que los "caracteres especiales" sean símbolos disponibles para usar en la respuesta de 10 caracteres y, por lo tanto, cuanto más larga sea la contraseña, mayor será la entropía y, en teoría, más segura.

SIN EMBARGO, tenemos que tratar con personas y somos perezosos. La pregunta es tratar de hacer que las personas incluyan caracteres especiales en su contraseña porque obliga a que ocurra la entropía.

Sin él, el cómic de Randall es matemáticamente correcto, mientras que es descarado, pero cualquier SysAdmin que piense en correcthorsebatterystapler es una buena contraseña porque necesita ser abofeteado, porque eso ha estado en mis tablas del arco iris por un tiempo.

Para ser justos, creo que tomar cuatro palabras del diccionario y unirlas es un buen concepto (que es lo que llamamos una frase de contraseña), sin embargo, las personas, como he dicho, son perezosas y es probable que caigan en los patrones comunes.

    
respondido por el Shane Andrie 06.10.2016 - 22:51
fuente
6

Tanto la prueba citada como sus argumentos en contra están equivocados, fundamentalmente porque la entropía es una medida de aleatoriedad de una contraseña, no de la longitud, no del tamaño del alfabeto. El esquema de cómics XCKD que usted cita es seguro al nivel de seguridad de 44 bits reclamado si y solo si las 44 casillas grises debajo de "grapa correcta de la batería de caballo" representan los resultados de tiradas de monedas (o un uniforme similar, sucesos aleatorios independientes) que se utilizaron para seleccionar las contraseñas. Si un humano escogió las palabras, todas las apuestas están desactivadas.

Ya que ni el NHS ni usted hablan de este factor crítico, es imposible decir algo concreto acerca de la seguridad de las contraseñas, excepto que si no se eligen de manera uniforme y aleatoria, es probable que sean débiles.

  

Tengo entendido que, como regla, la extensión de la contraseña agrega más entropía que la expansión del alfabeto.

Si d es el tamaño del alfabeto y n es la longitud de la contraseña, entonces una contraseña elegida de manera uniforme al azar tiene log2(d) * n bits de entropía. Por lo tanto, duplicar el tamaño del alfabeto agrega n bits de entropía; al agregar un símbolo adicional a la contraseña se agregan log2(d) bits. Entonces todo se reduce a los valores concretos de d y n ; Realmente no tiene mucho sentido tener una regla general como la que está proponiendo, ya que solo podemos calcular los aumentos directamente.

    
respondido por el Luis Casillas 06.10.2016 - 22:42
fuente
2

Aquí está la cosa, nos guste o no, esta pregunta no es sobre el laboratorio, o matemáticamente contraseñas más seguras. Se trata de hacer que las personas "piensen" en sus contraseñas cuando las elijan.

a. Es incorrecto porque solo tiene letras.
segundo. está mal porque solo tiene letras
do. es correcto porque es lo suficientemente largo e incluye "caracteres especiales"
re. Está mal porque solo tiene letras.

O en otras palabras, las contraseñas que usan solo letras son malas.

Ahora, es cierto que puede crear una contraseña más segura usando solo letras si es lo suficientemente larga o lo suficientemente aleatoria. Surly "asefhesesnh" es mejor que "p4ssw0rd!", Pero para ser sincero, es un entendimiento más allá de la mayoría de las personas en el público objetivo de esta prueba.

En cambio, es "mejor" hacer que los usuarios entiendan que deben elegir una contraseña que sea "más larga" y que tenga letras, números y caracteres especiales.

En otras palabras, C es correcto cuando se habla de una amplia gama de usuarios con diferentes niveles de habilidades técnicas, creando sus propias contraseñas. Claro que la matemática podría estar fuera, pero no importa. Ningún proveedor, se sentará allí y descifrará la entropía de la contraseña, pero pueden contar el número de $ en una contraseña.

    
respondido por el coteyr 10.10.2016 - 20:11
fuente
0

La opción b te da 52 posibilidades por personaje.

Para que c sea mejor, cada uno de los 7 caracteres debe tener más de 52 10/7 = al menos 283 posibilidades.

Esto significa que los conjuntos de caracteres ASCII o ANSI occidental no serán suficientes. Tendrían que permitir el conjunto de caracteres Unicode (o algunas páginas de código ANSI asiáticas muy arcanas) para que la opción c sea mejor.

Obviamente es una pregunta mal formulada. Hay 62 números y letras (mayúsculas + minúsculas), por lo que la respuesta correcta sería:

c si 'caracteres especiales' significa que puedo usar caracteres Unicode o cualquier otro conjunto de caracteres que contenga al menos 221 caracteres no alfanuméricos (es decir, 'especiales'), de lo contrario b.

    
respondido por el RocketNuts 11.10.2016 - 11:07
fuente

Lea otras preguntas en las etiquetas