¿Cómo generar de forma segura contraseñas memorables? [cerrado]

4

TL; DR: ¿qué tan seguros son los generadores de contraseñas memorables, dado el hecho de que las contraseñas 'memorables' son un subconjunto del espacio total de contraseñas? ¿Qué tan grande es la entropía en contraseñas memorables en comparación con las contraseñas aleatorias?

Siempre que necesito nuevas contraseñas, utilizo algunas herramientas para generar esas contraseñas memorables preferibles, pero me he estado preguntando qué tan segura podría ser en realidad.

Usar el generador de números aleatorios xkcd es probablemente bastante malo, cat /dev/randomprobablemente bastante bueno, pero generar contraseñas memorables parece un poco más complicado.

Cada vez que un programa genera una contraseña memorable, solo usa un subconjunto del espacio total de contraseña disponible, y no me queda claro cuán grande es este espacio. Por supuesto, una contraseña larga debería ayudar en este caso, pero si la parte "memorable" del programa es demasiado predecible, sus contraseñas no son muy buenas al final.

Algunas herramientas que conozco:

  • pwgen : parece estar bien, pero las contraseñas no son demasiado memorables
  • Mac Password Assistant : genera contraseñas memorables, pero no me queda claro cómo funciona.

Actualización: Gracias por la información sobre la entropía de la contraseña teórica y la capacidad de memorización, pero también estaba buscando el aspecto práctico de generar estas contraseñas.

¿Cómo elijo una contraseña de este tipo en la práctica y específicamente: cuál es la entropía de pwgen o Mac Password Assistant (MPA)? Por ejemplo: ¿qué pasa si el AMP tiene una base de datos de palabras muy pequeña y genera contraseñas previsiblemente? Quizás esto es un poco pedante de mi parte, pero tenía curiosidad por saber si alguien podría arrojar algo de luz sobre esto.

Actualización II: aunque esta pregunta recibió una gran cantidad de respuestas sobre la generación de contraseñas, ninguna entra en la pregunta de cuán seguras son. La pregunta aún está abierta y esperando una respuesta.

Tim
fuente
Espera, getRandomNumberes malo?
ta.speot.is
Desafortunadamente, la mayoría de los sitios tienen límites de longitud para evitar la técnica, pero mejor que una "contraseña" es una "frase de contraseña" como "oldmotherhubbard" o "ahottimeintheoldtownightight". Estos son más caracteres para escribir, pero fluyen más naturalmente de los dedos y son más fáciles de recordar.
Daniel R Hicks

Respuestas:

2

Olvídese de cualquier "esquema inteligente" de componer contraseñas. Los hackers conocen todos los trucos ( leetspeak , concatenando palabras, agregando números, etc.) mediante el análisis de listas de contraseñas robadas. Información extendida en el episodio 366 de Security Now "Actualización de descifrado de contraseñas: La muerte de 'Clever'" (o lea su transcripción ).

Le sugiero que use un buen generador de contraseñas como LastPass (también discutido ampliamente en el episodio 256 de Security Now) para generar contraseñas aleatorias para usted. Los humanos son malos al azar (ya sea generándolo o detectándolo )

Si realmente desea contraseñas memorables, es posible que desee utilizar la técnica de pajar de contraseñas como alternativa a las combinaciones aleatorias difíciles de recordar. Aquí agrega una cadena repetitiva (123 123 123) a una cadena corta que contiene la entropía máxima (D0g!).

Cualquiera sea el método que elija, haga que sus contraseñas tengan al menos 12 caracteres . Las contraseñas de 8 caracteres ahora se pueden descifrar en 13 horas en una máquina de fabricación propia que cuesta $ 12000 (principalmente para las GPU)

Jan Doggen
fuente
Gracias, esto era algo que estaba buscando. Tu respuesta parece ser 'no puedes'.
Tim
9

¿Qué tan seguros son los generadores de contraseñas memorables?

Es fácil dar una opinión personal y cualitativa sobre esto, creo que es mejor buscar algunas respuestas cuantitativas que de alguna manera midan objetivamente el grado de seguridad.

Ver Wikipedia

Teniendo en cuenta que la entropía del inglés escrito es inferior a 1.1 bits por carácter, [2] las frases de contraseña pueden ser relativamente débiles. NIST ha estimado que la frase de paso de 23 caracteres "IamtheCapitanofthePina4" contiene una fuerza de 45 bits. La ecuación empleada aquí es: [3]

4 bits (primer carácter) + 14 bits (caracteres 2–8) + 18 bits (caracteres 9–20) + 3 bits (caracteres 21–23) + 6 bits (bonificación para mayúsculas, minúsculas y alfanuméricos) = 45 pedacitos

Usando esta directriz, para lograr la fuerza de 80 bits recomendada para alta seguridad (no militar) por NIST, una frase de contraseña debería tener 58 caracteres de largo, suponiendo una composición que incluya mayúsculas y alfanuméricas. Hay espacio para el debate sobre la aplicabilidad de esta ecuación, dependiendo del número de bits de entropía asignados. Por ejemplo, los caracteres en palabras de cinco letras contienen 2.3 bits de entropía, lo que significa que solo se necesita una frase de contraseña de 35 caracteres para lograr una fuerza de 80 bits. [4]

...

Las frases de contraseña difieren de las contraseñas. Una contraseña suele ser corta: de seis a diez caracteres. Dichas contraseñas pueden ser adecuadas para diversas aplicaciones (si se cambian con frecuencia, si se eligen utilizando una política adecuada, si no se encuentran en los diccionarios, si son lo suficientemente aleatorias, y / o si el sistema evita las conjeturas en línea, etc.) como:

  • Iniciar sesión en sistemas informáticos
  • Negociación de claves en un entorno interactivo (p. Ej., Utilizando un acuerdo de clave autenticado por contraseña)
  • Habilitar una tarjeta inteligente o PIN para una tarjeta de cajero automático (p. Ej., Donde los datos de la contraseña (con suerte) no se pueden extraer)

Pero las contraseñas generalmente no son seguras para usar como claves para sistemas de seguridad independientes (p. Ej., Sistemas de encriptación) que exponen datos para permitir que un atacante adivine las contraseñas sin conexión. Primero, por lo general son (y siempre deberían ser) mucho más largos (de 20 a 30 caracteres o más es típico), lo que hace que algunos tipos de ataques de fuerza bruta sean completamente impracticables. En segundo lugar, si se eligen bien, no se encontrarán en ningún diccionario de frases o citas, por lo que tales ataques de diccionario serán casi imposibles. En tercer lugar, se pueden estructurar para que sean más fáciles de recordar que las contraseñas sin necesidad de escribirlas, lo que reduce el riesgo de robo en papel. [Cita requerida]. Sin embargo, Si el autenticador no protege adecuadamente una frase de contraseña y se revela la frase de texto sin cifrar, su uso no es mejor que otras contraseñas. Por esta razón, se recomienda que las frases de contraseña no se reutilicen en sitios y servicios diferentes o únicos.

También Jeff Atwood de esta parroquia ha publicado sus pensamientos sobre este tema , concluyendo con

Las frases de contraseña son claramente más utilizables que las contraseñas "seguras" tradicionales. También es muy probable que sean más seguros. Incluso las frases de contraseña ingenuas del peor de los casos como "esta es mi contraseña" no son tan pirateables, al menos en comparación con sus equivalentes de una sola palabra, por ejemplo, "contraseña".

Más fácil para el usuario, más difícil para los piratas informáticos: eso es una obviedad total. He adoptado frases de contraseña en todos los sistemas que uso.


Actualizar:

Dado que varias personas se refieren a XKCD y XKCD proporciona explícitamente una URL para incrustar imágenes ...

XKCD

RedGrittyBrick
fuente
1
Las frases de contraseña son claramente más utilizables que las contraseñas "seguras" tradicionales. Estoy de acuerdo con ésto.
Sam Liao
2
No estoy de acuerdo con la lógica de que simplemente las palabras en cadena que existen en un diccionario mejorarán su contraseña ... Suponga que tiene 10 ^ 6 palabras en su diccionario y encadenar 4 juntas: eso produce un posible (10 ^ 6) ^ 4 combinaciones, o 10 ^ 24 combinaciones. Ahora, tome una contraseña de 12 caracteres (suponga que los caracteres válidos son todas letras, números y símbolos para esos números, lo que permite elegir entre 26 + 26 + 10 + 10 = 72 caracteres), y tenemos 72 ^ 12 ~ = 2 x 10 ^ 22 combinaciones, o aproximadamente 50 veces menos que encadenar 4 palabras en inglés juntas. Desde una perspectiva de seguridad, ¡son iguales !
Avance el
Además, si aumentó la longitud de su contraseña a 14-15 caracteres, es mucho mejor que una cadena de palabras juntas, y eso ignora el hecho de que ni siquiera he incluido todos los caracteres ASCII posibles que puede usar para crear una contraseña (hay al menos 10 más), lo que aumentaría aún más el número de combinaciones en mi comentario anterior.
Avance el
2

Hay dos formas de romper una contraseña: la fuerza bruta y los ataques de diccionario (hay un tercer truco: agarrar la contraseña cifrada y descifrarla, pero ignoremos eso por ahora). La longitud generalmente dificulta los ataques de fuerza bruta, aunque un cracker de hardware dedicado o un cracker basado en GPU aceleraría las cosas significativamente.

Los ataques de diccionario dependen de personas que usan palabras. Sin embargo, 2 palabras lo harían más difícil (ya que tendrían que iterar a través de combinaciones de 2 palabras también, y tres palabras ... La sustitución también aumenta las posibilidades por las que tendrías que pasar).

Personalmente utilizo una frase de contraseña larga de varias palabras, con modificaciones por sitio web y diferentes sustituciones. También recuerdo a menudo las contraseñas como un número de teléfono, usando 8 dígitos, y recordándolos en pares, y luego volviéndolos a convertir. Las personas recuerdan los números de teléfono y se ocultan fácilmente. Combínalo con tener un conjunto de reglas personal y se vuelve más fácil.

Notaría que la mayoría de los hacks de contraseñas grandes ocurren en el extremo del servidor, y tener una contraseña segura no ayudaría allí, tener una contraseña única en el sitio lo haría.

Journeyman Geek
fuente
Y, por supuesto, también hay un cómic xkcd para frases de contraseña. Y hay una implementación de generador de trabajo que utiliza este método .
Bob
1

¿Es realmente necesario que todas las contraseñas sean memorables? Recomendaría tener solo dos frases de contraseña largas memorables diferentes: una para la clave maestra para alguna herramienta de mantenimiento de contraseñas multiplataforma y otra para la cuenta de correo electrónico principal, que hoy en día también funciona como otra clave maestra con la mayoría de los servicios que envían detalles y cartas de recuperación a la misma.

Con solo dos frases de contraseña para recordar, puede usar algunas frases de contraseña largas, lo que garantiza que son prácticamente imposibles de aplicar por fuerza bruta y que el resto de su contraseña será sólida gracias a la aleatorización verdadera permitida en toda su extensión por el sitio objetivo.

Oleg V. Volkov
fuente
Eso suena como una buena política de contraseña, pero mi pregunta estaba más dirigida a generar estas contraseñas en primer lugar.
Tim
@Tim, con esta política puede permitirse generar pocas contraseñas memorables, ganando fuerza a lo largo, sin temor a que las olvide.
Oleg V. Volkov
Me preocuparía la transmisión o las contraseñas entre sistemas, pero me gusta la idea.
TafT
0

Personalmente, creo que deberías aplicar tu propia lógica para crear contraseñas memorables. Digamos que puedes agregar dos palabras más números juntos. Luego haces variaciones de esto que dependen de algo que sabes o si se cumple cierta condición.

PD: Si es memorable para ti, no significa que sea fácil de descifrar.

Mariyan
fuente
0

Creé una herramienta gratuita llamada Pafwert que combina la aleatoriedad con una serie de técnicas para crear contraseñas seguras y fáciles de recordar. No todas las contraseñas que genera son SUPERfuertes, pero la mayoría lo son y es una excelente manera de estimular su creatividad.

Estos son algunos ejemplos de algunas contraseñas que generó y por qué las eligió:

www.cold-as-ice.gov (usa un patrón familiar, frase de argot) TittyCupcakes3 (usa palabras ofensivas para hacerlo más memorable) 5barde * barde5 (usa repetición) mucha carne de lagarto..2 (aliteración) D: \ otro \ 48 \ hours.txt (patrón familiar, nombre de película familiar) Ocho estado voluntario = (rima)

En general, hay alrededor de 150 patrones que utiliza con muchas variaciones de cada uno. Incluso puede ajustar los patrones usted mismo, hay una sintaxis de lenguaje de patrones bastante robusta.

Mark Burnett
fuente
Gracias, parece una herramienta útil, sin embargo, tengo algunas dificultades para confiar en un generador de contraseñas precompilado sin fuente;)
Tim
0

Para una organización, una política de contraseña es una buena y mala idea. Cualquier sistema de generación de contraseñas provocará un conjunto más pequeño que una contraseña verdaderamente generada aleatoriamente. Para ayudar con eso, el sistema de historias XKCD funciona bastante bien, ya que evitan elementos personales sobre el usuario que podrían ser conocidos o descubiertos.

Como un ejemplo que sugiere que los usuarios usan su nombre, con topillos sustituidos por números (a = 1, b = 2, etc.) generará algo que parece aleatorio para la persona promedio pero que es fácil de descifrar. La incorporación de otra palabra como título del trabajo, departamento o apellido de soltera de las madres se agregará a la abstracción, pero básicamente todavía tiene algo que un ataque disccional debería recoger. Sea como sea, ahora ha aumentado el tiempo de ataque del diccionario de los sustantivos propios en la cultura (occidental) + sustantivos propios con sub vocal.

ThomasSoftwareEngineer se convierte en Th4m1sS4ftw1r22g3n22r
Parece aleatorio pero no es muy aleatorio para un programa de software. Ciertamente, no para alguien que sepa que el usuario es un ingeniero de software llamado Thomas.

Si agrega a lo anterior una colección de tiendas que la gente podría incorporar, algunas cosas memorables pero oscuras podrían ser: - Recuerdos de la infancia - Enamoramientos secretos - Némesis - Primeros autos - Matrículas de automóviles - Narrativas de un libro que les gusta Esto podría crear algo un poco más largo y para contraseñas más largas es casi siempre mejor. Thomas tenía un Astra como su primer automóvil y lo condujo a un vado en un río .

ThomasAstrafordriver
De nuevo, son solo 4 palabras del diccionario, pero comienzan a ser memorables. Podría aumentar la entropía al incluir el año en que obtuve el automóvil o que lo rompí.
ThomasAstra2005fordriver2006
Podría avanzar más en la entropía eligiendo algún símbolo para usar como espacio, _ y - son bien conocidos, pero son mejores que nada y se puede elegir cualquier cosa permitida.
Thomas # Astra # 2005 # para # conductor # 2006
Ahora eso es memorable, tiene una alta entropía y debería tomarle a alguien un poco de tiempo para adivinar. Al igual que con todas las contraseñas buenas, me llevará algún tiempo aprender a escribirlas rápidamente, pero si puede escribir fácilmente una contraseña, probablemente no sea una buena.

Ahora, no recomendaría que use o escriba una contraseña que realmente le interese en cualquier navegador, por lo que es posible que desee usar otras similares en lugar de una real, pero ... https://www.grc.com/haystack.htm El sitio web anterior proporciona una agradable era ver el tamaño del espacio de búsqueda para una contraseña. No mide la fuerza, pero le da una idea de que la longitud es importante, ya que utiliza mayúsculas, números y símbolos:

Tamaño de espacio de búsqueda de contraseña
ThomasSoftwareEngineer 5.76 x 10 ^ 37
Th4m1sS4ftw1r22g3n22r 4.44 x 10 ^ 37
ThomasAstrafordriver 2.13 x 10 ^ 34
ThomasAstra2005fordriver2006 1.56 x 10 ^ 50
Thomas # Astra # 2005 # para # conductor # 2006 1.86 x 10 ^ 65

Otras cosas que he escuchado recomendar es que tome las contraseñas de los usuarios y las ejecute a través de un servidor local, seguro y potente con una herramienta para descifrar contraseñas que realiza ataques de diccionario y de fuerza bruta. Si puedes descifrar la contraseña en una semana, entonces alguien más puede hacerlo. Cuando la rompa, caducará la contraseña y le pedirá al usuario que cree una nueva, posiblemente proporcionándole accesos.

--endit para responder la pregunta o "¿Cuánto menos seguro que realmente al azar" --- Lo había puesto como un comentario, pero encaja mejor como una adición a la respuesta. Continuando con mis ejemplos anteriores:

La seguridad de estas contraseñas de varias palabras en comparación con las contraseñas de caracteres verdaderamente aleatorios depende de cómo desee tratar las palabras del diccionario. Si utilizamos calcs de entropía como se explica aquí: [ http://blog.shay.co/password-entropyfont>[1]

H = Llog2N donde L es la longitud de la contraseña y N es el tamaño del alfabeto

Podemos hacer las cosas de dos maneras. Si elegimos tratar cada palabra del diccionario como un símbolo en el alfabeto, ThomasSoftwareEngineer es solo L = 3 pero ¿qué es N? Bueno, Google y OED dicen que hay alrededor de 200,000 palabras en el idioma inglés, por lo que obtenemos: H = 3 * log [base2] * 200,000 = 52.83, que es similar a una contraseña de caracteres 9-alfanuméricos. Si luego permite la sustitución de algunas vocales con números, duplicará el tamaño de su alfabeto a aproximadamente 400,000 para que se convierta en H = 3 * log [base2] * 400,000 = 55.83 El cómic XKCD usa 4 palabras de diccionario en lugar de 3, esto nos lleva de un Entropía de 52.8 para 3 palabras (sin números) a: H = 4 * log [base2] * 200,000 = 70.44 70.4 es aproximadamente la misma entropía que una contraseña alfanumérica de 12 caracteres (H = 12 * log [base2] * 62 = 71. 45) entonces la pregunta es ¿puedes recordar 12 números y letras al azar, así como puedes recordar 4 palabras en inglés no relacionadas? Obviamente, una contraseña más larga (más palabras) siempre será mejor y debe evitar las palabras cortas (ya que las palabras de 4 * 3 letras son solo 12 caracteres alfa, lo que es una entropía de 68.4).

Así que aquí están las entropías que obtienes para cada estilo de contraseña: Contraseñas numéricas (N = 10) Entropía (H) Longitud (L) Tamaño del alfabeto (N) 9.965784285 3 10 13.28771238 4 10 16.60964047 5 10

Case Insensitive Alphabetic Passwords (N = 24)
13.7548875  3   24
18.33985    4   24
22.9248125  5   24

Case Sensitive Alphabetic Passwords (N = 52)
17.10131915 3   52
22.80175887 4   52
28.50219859 5   52

Case Sensitive Alpha-Numeric Passwords (N = 62) 
17.86258893 3   62
23.81678524 4   62
29.77098155 5   62

Case Sensitive Alpha-Numeric Passwords with symbols on a QWERTY keyboard (N = 94)   
19.66376656 3   94
26.21835541 4   94
32.77294426 5   94

Passwords formed using a random selection of 200,000 words from the English Language (N=200000)     
52.82892142 3   200000
70.4385619  4   200000
88.04820237 5   200000

As above but assuming you know 20,000 words (N=20,000)
42.86313714 3   20000
57.15084952 4   20000
71.4385619  5   20000

Nota: 20,000 palabras es el número estimado que un usuario con educación en inglés sabrá, por lo que tal vez sea una mejor opción para adivinar qué elegirán las personas. Aún así, muestra que 3 palabras comunes crean una contraseña que es mejor que una contraseña totalmente aleatoria de 5 caracteres de un teclado QWERTY.

TafT
fuente
Gracias. Aunque los tamaños de espacio de búsqueda que enumera son correctos para contraseñas verdaderamente aleatorias, al final son palabras del diccionario y la entropía es mucho menor. Mi pregunta es: ¿cuánto menos?
Tim
Supongo que eso depende de cómo quieras tratar las palabras del diccionario. Si usamos calcos de entropía como se explica aquí: blog.shay.co/password-entropy "H = Llog2N donde L es la longitud de la contraseña y N es el tamaño del alfabeto" Podemos hacer las cosas de dos maneras. Si elegimos tratar cada palabra del diccionario como un símbolo en el alfabeto, ThomasSoftwareEngineer es solo L = tres, pero ¿qué es N? Bueno, Google y OED dicen que hay alrededor de 200,000 palabras en el idioma inglés, por lo que obtenemos H = 3 * log [base2] * 200,000 = 52.83, que es similar a una contraseña de caracteres 9-alfanuméricos.
TafT
Si luego permite la sustitución de algunas vocales con números, duplicará el tamaño de su alfabeto a aproximadamente 400,000 para que se conviertaH=3*log[base2]*200,000=55.83
TafT
-1

Como no has seleccionado una respuesta, aquí valen mis dos centavos:

¿Estrategias para compartir contraseñas para múltiples usuarios como esposo esposa?

Seleccione un nombre de cuenta que siempre usará.

La contraseña se construye así:

Elija una contraseña "raíz" para los primeros 8 caracteres. Tres caracteres son letras minúsculas. Dos caracteres son letras mayúsculas. Los caracteres restantes son números y símbolos en el teclado.

Estos 8 caracteres siempre se usan en la contraseña. Luego, decides dónde vas a poner tres personajes adicionales. Al principio o al final de los ocho que originalmente se te ocurrieron. Una vez que sepa si van a ser un prefijo o un postfix, debe decidir cuáles son.

Esto se basa en el sitio web o servicio al que se está conectando. Si se estaba conectando al sitio web de AT&T, agregaría att o ATT a su contraseña original de 8 caracteres.

He estado haciendo esto durante 15 años y NUNCA tuve una falla de seguridad por eso. Puede consultar mi perfil para ver mis credenciales si está preocupado.

Puede modificar el sistema según sea necesario. Utilice siempre un 3 en lugar de E (sustitución simple). Siempre haga la parte basada en la ubicación (el prefijo / postfix de tres letras) al revés, o con mayúsculas variables.

Tengo más de 200 cuentas, NO CONTRASEÑAS ESCRITAS O ALMACENADAS EN NINGÚN LUGAR, y nunca he olvidado una.

Everett
fuente
Supongo que la gente está demasiado asustada para explicar el -1. Un poco inútil sin una explicación.
Everett