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/random
probablemente 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.
getRandomNumber
es malo?Respuestas:
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)
fuente
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
...
También Jeff Atwood de esta parroquia ha publicado sus pensamientos sobre este tema , concluyendo con
Actualizar:
Dado que varias personas se refieren a XKCD y XKCD proporciona explícitamente una URL para incrustar imágenes ...
fuente
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.
fuente
¿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.
fuente
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.
fuente
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.
fuente
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.
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 .
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í.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.
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:
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]
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
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.
fuente
H=3*log[base2]*200,000=55.83
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.
fuente