¿Existe algún método para generar contraseñas específicas del sitio que pueda ejecutarse en mi propia cabeza?

51

Hace poco estuve pensando en la seguridad de la contraseña. Mi objetivo es tener contraseñas en su mayoría al azar, que son diferentes para cada sitio. Pero también debería poder recordarlos (o volver a generarlos) sin la ayuda de ninguna nota o algo similar. Si utilizo contraseñas realmente aleatorias (generadas por un generador de contraseñas), solo puedo recordar algunas. Muchos menos que el número de cuentas web que tengo. Las contraseñas más simples a menudo son más fáciles de adivinar.

Pensé que un compromiso podría ser algunas reglas fáciles de aprender y alguna contraseña maestra secreta, para generar una contraseña desde el nombre del sitio. Digamos que tienes una contraseña para ebay y amazon. Este método debe generar dos contraseñas diferentes, para 'ebay' y 'amazon'. Pero también debería poder hacer el proceso en mi cabeza, sin el soporte de software o incluso papel y lápiz. Contraseñas de uso común que recordaré directamente. Pero los que rara vez se usan, y se olvidan, se pueden reconstruir con ese método. ¿Alguien sabe acerca de tal método?

EDIT : lo que pido debería mejorar la seguridad, al crear diferentes contraseñas para cada sitio / máquina / programa, pero también mantenerlas todas memorables. Una contraseña segura es buena, pero es incluso más probable que olvide las contraseñas del sitio, y si pierde su tienda o está dañada, tiene un problema. También TODAS las contraseñas pueden ser comprometidas a la vez! Y al final, mi contraseña local segura no está disponible, si estoy en la máquina de un amigo.

    
pregunta Mnementh 19.12.2010 - 18:14
fuente

11 respuestas

16

Pregunta intrigante. Aquí hay una nueva, ojala mejor, una lluvia de ideas. Caveat emptor.

Genera dos contraseñas aleatorias duras y buenas que ingreses en la memoria.

Tome las letras del nombre del sitio en secuencia. Si la letra es una vocal, use la letra correspondiente de la primera contraseña. Si es una consonante, use la letra correspondiente de la segunda contraseña.

Por ejemplo, Supongamos que sus contraseñas son (de apg) hicIrfyic9 y FritwoivAuv0. Para el sitio stackexchange , las dos primeras letras son una consonante, por lo que se usa la "Fr" de la segunda contraseña. La siguiente es una vocal, así que usas "c" de la primera contraseña. Sigue y obtendrás "FrctwfivA9".

Si realmente le preocupa que alguien encuentre varias de sus contraseñas y descubra el patrón, podría agregar algún método para rotar cada una de ellas de forma circular primero o algo, o cambiarlas a través del alfabeto, o lo que sea, pero es Fácilmente posible llegar a ser demasiado paranoico y confundido ...

Usted podría codificar esto en sus máquinas normales para su comodidad, pidiéndole que solicite las contraseñas subyacentes, pero aún así podrá usarlo en los quioscos, más lentamente, desde la memoria. No estoy convencido de que esta idea general valga la pena, pero quizás en algunas circunstancias.

    
respondido por el nealmcb 19.12.2010 - 21:33
fuente
11

Tengo una respuesta doble a esto -

Puede hacer esto, y un método común incluye una sección basada en el sitio web y una sección basada en el tiempo. Puede crear una contraseña como blahblahebay2010 y esto probablemente sería recuperable si lo pensara en un par de años. Hace lo que quieras.

Sin embargo, no lo recomendaría : no debe utilizar un sistema, lo que significa que su contraseña se puede resolver. Puede que no sea un gran objetivo, pero tal vez alguien querrá romper sus contraseñas ... así que si utiliza un algoritmo basado en el sitio web, reducirá drásticamente la fortaleza de la contraseña. En su lugar, use algo como Password Safe para almacenar todas sus contraseñas (que pueden ser muy largas, complejas, no memorables, etc.) y solo recuerde la única contraseña segura para protegerlos.

    
respondido por el Rory Alsop 19.12.2010 - 20:03
fuente
10

Si solo quiere contraseñas diferentes para los distintos sitios, simplemente agregue el nombre del sitio a una contraseña "básica" común. P.ej. recuerda la base "7g93hrew9" y luego sus contraseñas serán 7g93hrew9ebay, 7g93hrew9amazon, ...

Por supuesto esto no es satisfactorio. Este ejemplo está destinado a mostrar lo que realmente desea: no desea contraseñas "diferentes", desea contraseñas de modo que saber varias de ellas no permita adivinar la contraseña de otro sitio. Desde el punto de vista criptográfico, desea que su generador de contraseñas sea una pseudorandom function que toma como entrada el nombre del sitio y genera el sitio específico contraseña.

Existe alguna evidencia empírica de que no es factible construir un PRF que un humano pueda (razonablemente) computar en su cabeza. De hecho, si observa funciones hash criptográficas , las muy rápidas (MD4, MD5 ...) se han roto, el menos rápido (SHA-1) se ha debilitado un poco, y los fuertes (SHA-256) son más lentos. Al observar el número de operaciones elementales, puede ver un tipo de corte alrededor de 1000 operaciones para realizar un pequeño bloque de hashing. Un corte similar se observa en la competencia SHA-3 . Parece que hay una cantidad mínima de trabajo que se debe realizar para lograr la seguridad, y esa cantidad es al menos unos pocos cientos de operaciones, lo que es demasiado para un cerebro humano promedio.

Por lo tanto, me temo que no hay una buena respuesta a tu pregunta.

    
respondido por el Thomas Pornin 02.02.2013 - 21:19
fuente
8

use una tabula recta que combina un algoritmo simple que solo usa know con un token físico que solo tienes que hacer contraseñas todo el tiempo que quieras.

    
respondido por el Yaur 23.05.2011 - 05:11
fuente
2

Desde la perspectiva de "wetware", aquí hay un libro interesante que le gustaría leer:

El libro de memoria

Es uno de los libros clásicos sobre entrenamiento de la memoria. Lo he leído varias veces y creo que las técnicas son muy efectivas. Es lógico pensar que si puedes entrenar tu memoria a un nivel suficiente, puedes usar las contraseñas que desees sin dificultad. (Esto, al menos, parece funcionar para mí.)

El libro incluye un capítulo sobre la memorización de cadenas de caracteres aleatorias (o al menos, la versión en mi estante), por lo que podría ser muy útil.

También, personalmente, el alfabeto fonético de la OTAN también es útil. Por alguna razón, me parece que "Alpha" es más fácil de recordar que "A" (por ejemplo).

Espero que sea de ayuda.

    
respondido por el Chris Allen Lane 22.05.2011 - 20:56
fuente
2

¿Por qué ejecutar un algoritmo para derivar contraseñas específicas del sitio en tu cabeza, o recordar todas las contraseñas, cuando puedes usar un javascript simple para hacer eso?

Esto está fuera de tema si realmente quieres calcular cosas en tu cabeza, pero lo propondré de todos modos:

Para mis contraseñas, uso un javascript personalizado similar al disponible aquí: enlace

La idea general es crear una página web con un script o usar la versión móvil de la página anterior, no el bookmarklet (ver discusión más abajo).

El script aceptaría dos parámetros: una contraseña maestra y la url de un sitio web (en el caso del bookrmarklet obtiene la url automáticamente).

Luego realiza algunos cálculos criptográficos basados en esos parámetros (básicamente crea y hash, por ejemplo, base64-md5, en la concatinación de la contraseña maestra y la url, y lo hace 10 veces o tantas veces como quiera) y genera una Contraseña larga específica para el sitio, de alta entropía, que puede copiar y pegar en el campo de formulario.

Ni siquiera necesita verlo o recordar sus contraseñas, y no se almacenan en ningún lugar como en una caja fuerte para contraseñas, sino que se generan a tiempo. Solo recuerdas tu contraseña maestra y listo.

Ni siquiera sé qué contraseña utilizo para cada sitio, y estoy muy contento con eso.

    
respondido por el john 22.05.2011 - 21:08
fuente
1

Aquí hay algunas buenas respuestas, pero como regla general, si puede pensar en un algoritmo para hacerlo en su cabeza, es probable que el algoritmo ya sea parte de los conjuntos de herramientas de explotación existentes. :-)

    
respondido por el Zaakiy Siddiqui 23.08.2016 - 04:51
fuente
0

No recomiendo hacer algo como esto, pero para patadas y risas aquí hay un método.

Contraseña = Concatenar ((C - longitud (y) - longitud (x)), PascalCase (x), repetir (".", (longitud (y)% 2) +1))

Donde:

C = constante de número > 3 dígitos
y = el texto significativo de la url para el sitio
x = palabra que asocias con el sitio

Ejemplo:

C = 1234
y = security.stackexchange
x = oscuridad

Contraseña = Concatenar ((1234 - 22 - 9), "Oscuridad", ".")

Contraseña = 1203Obscurity

Una debilidad obvia es que debes recordar una palabra que asociarías con el sitio. Y antes de que alguien lo comente en mi ejemplo, no estoy diciendo que security.se sea oscuro. Estoy señalando que la oscuridad! = Seguridad. Y no, no uso esto para mis contraseñas.

    
respondido por el sdanelson 19.12.2010 - 21:00
fuente
0

Puede usar una contraseña débil encriptada usando la URL del sitio como un PSK. Podría duplicar el cifrado fácilmente, pero a los atacantes les sería muy difícil obtener su contraseña, ya que primero tendrían que descifrar el acceso, pero el inicio de sesión encripta su contraseña y luego forzará el PSK del cifrado que obtendrían una vez que lo hubieran descifrado. Tomaría un tiempo increíblemente largo.

    
respondido por el KnightOfNi 27.02.2014 - 22:42
fuente
0

esto puede ser un poco difícil de hacer si no estás acostumbrado a poner valores de gráfico, pero se puede arreglar para esa intención el nombre del sitio convertido a binario luego suma cada ejemplo "1" Sitio: facebook Contenedor: 01100110 01100001 01100011 01100101 01100010 01101111 01101111 01101011 suma: 43442665 el truco es lo que viene después, como intercambiar pares con voces y demás, fac4b66k, o si sabe bien el hex, simplemente convierta cada letra a hex (66 61 63 65 62 6f 6f 6b) y úsela con un poco de sal no necesita convertir todo, solo una parte para usar como swap o base desde algún pase

    
respondido por el Thanatos The Hellfire Dawn 15.08.2016 - 09:37
fuente
0

En 2014 Manuel Blum presentó un algoritmo que se puede calcular en la mente y que es adecuado para generar contraseñas. enlace ( Criptografía mental y buenas contraseñas )

Descripción: Tu secreto es una asignación de letras a dígitos y una asignación de dígitos a dígitos. Es importante que sean bastante "aleatorios". Se requiere un esfuerzo inicial para aprender estas asignaciones de memoria, pero luego, generar una contraseña solo involucra aritmética de módulo 10.

Extracto:

  

Llame a su asignación de letras a dígitos f. Es posible que tenga, por ejemplo, f (a) = 8, f (b) = 3, f (c) = 7, etc. Dado que hay más letras que dígitos, algunas letras se asignarán al mismo dígito.

     

Sea g la función que envía cada dígito al siguiente en su permutación. Entonces, si su permutación fue 0298736514 entonces g (0) = 2, g (2) = 9, g (9) = 8, etc.

     

Ahora aquí es cómo usa el método para generar contraseñas.

     
  1. Convierta el nombre de su cuenta en una secuencia de n letras.

  2.   
  3. Convierte esta secuencia de letras en una secuencia de dígitos usando tu mapa f. Llame a esta secuencia de dígitos a0a1a2 ... an.

  4.   
  5. Calcule b1, el primer dígito de su contraseña, agregando a1 y a, tomando el último dígito y aplicando la permutación g. En símbolos, b1 = g ((a1 + an) mod 10).

  6.   
  7. Calcule los dígitos siguientes mediante bj = g ((bj-1 + aj) mod 10).

  8.   

Vea el comentario de Gnurf en la página vinculada para conocer algunas desventajas con este método y la mayoría de los otros métodos.

    
respondido por el David Andersson 23.08.2016 - 03:55
fuente

Lea otras preguntas en las etiquetas