¿Estrategias para almacenar / recordar contraseñas muy largas?

2

Si el cifrado de prueba futura es, en teoría, posible Requerirá una contraseña larga.

¿Cuáles son algunas de las estrategias para almacenar o recordar por mucho tiempo? En este caso, rara vez se utiliza, ¿contraseña?

Por ejemplo, en un momento dado, Wikileaks compartió los cables diplomáticos crudos encriptados con la comunidad para evitar el cierre de la contraseña que luego se filtró. Si tengo razón, la contraseña era una cadena muy larga de caracteres aleatorios. ¿No está el almacenamiento de dicha contraseña de manera tan segura como un desafío como el almacenamiento del secreto?

¿Qué hay de usar un verso largo de una Biblia, la declaración de independencia o un texto "estático" similar que permanecerá sin cambios en 100 años? ¿Qué piensas de tal estrategia?

    
pregunta daniel.sedlacek 18.02.2013 - 13:20
fuente

4 respuestas

3

La virtud de una contraseña es hacer que los humanos la recuerden . Si desea almacenar la contraseña, entonces no está hablando de recordar; En ese momento puede olvidar este negocio de "frase de contraseña larga", que se convierte en una molestia. Almacene una clave aleatoria que no necesita ser tan larga (16 bytes serán suficientes en la práctica, el ultra-paranoico irá a 32 bytes, también conocido como 256 bits, que es probablemente el exceso de habilidad total ) .

Además, un largo versículo de la Biblia es una frase de contraseña muy pobre porque hay alrededor de 31000 versos en la Biblia , por lo que hacen 31000 frases de contraseña posibles: menos de 15 bits de entropía, lo cual es patético. Como de costumbre, no es la longitud lo que importa, sino la aleatoriedad; no es cuál es la contraseña, sino qué pudo haber sido .

    
respondido por el Thomas Pornin 18.02.2013 - 13:35
fuente
3

Te sorprendería la cantidad de entropía que puede tener una frase de contraseña relativamente corta.

Supongamos, por un minuto, que el cifrado simétrico de 128 bits fue suficiente para el período de tiempo que le interesa. Esa es una suposición bastante segura; para tener incluso una posibilidad en un millón de adivinar la clave correcta en 100 años (que es el marco de tiempo de su pregunta vinculada) se requeriría un sistema informático capaz de calcular aproximadamente 1.079e23 (eso es 108 hexillion ) claves posibles por segundo . Incluso dado el ritmo exponencial de la tecnología, es extremadamente improbable que incluso los gobiernos obtengan acceso a ese tipo de potencia de cómputo en los próximos 100 años. Por lo tanto, un hash de esa longitud debe considerarse adecuado.

Ahora, entiende que el hashing no aumenta la entropía; si solo hay 1 millón de posibilidades para una contraseña utilizada para generar una clave, entonces no importa si la longitud de la clave resultante es de 32 bits o 256; Todo lo que un atacante tiene que hacer, sabiendo el millón de posibilidades, es simplemente probar cada uno de ellos en lugar de forzar el espacio de teclas completo. Por lo tanto, para garantizar que la fuerza del cifrado no pueda ser esquivada al adivinar una contraseña débil, deberíamos tener una frase de contraseña que proporcione al menos 128 bits de entropía. Suponiendo un cálculo de entropía de aproximadamente 1,5 bits por letra al usar palabras comunes del diccionario de inglés, y un promedio de 6,5 letras por palabra del diccionario (al imponer un tamaño de palabra mínimo de 4 letras), la frase de contraseña resultante solo tendría que tener aproximadamente 13 palabras.

Eso es si las palabras elegidas fueran completamente aleatorias y, por lo tanto, al saber cada palabra anterior, todavía no tendrías ni idea de cuál sería la siguiente palabra. Sería difícil, pero no imposible, memorizar 13 palabras y transmitirlas a sus descendientes; puede formar un poema a partir de las palabras con un sistema inherente al incrustar las palabras reales de la frase de contraseña con el relleno. Si su frase de contraseña fuera en sí misma una oración significativa, tendría que ser más larga porque se reduciría el número de palabras que tendrían un significado después de cualquier combinación dada, reduciendo así la entropía de la frase. Probablemente podrías salirte con un párrafo de una obra literaria. Cuanto más oscuro, mejor; prácticamente cualquier obra de Shakespeare está disponible, al igual que cualquier texto sagrado como la Biblia, Qu'ran, Mahabharata, etc. Una declaración completamente original sería lo mejor. De cualquier manera, si haces que la oración tenga sentido, necesitas más palabras; probablemente más cerca de 20 o 25 palabras, sin contar las palabras con tres letras o menos.

    
respondido por el KeithS 18.02.2013 - 19:43
fuente
2

Recordar una frase de contraseña de alta entropía generada al azar en tu mente es bastante fácil ( xkcd relevante , aunque considero seguro para los ataques de cifrado sin conexión 100+ bits de entropía).

Compartir entre unas pocas personas de confianza ayuda a garantizar la redundancia, por lo que se mantiene en caso de que un autobús te golpee o desarrolle amnesia. Por supuesto, esto expande el grupo de personas que pueden filtrar la contraseña o verse obligados a filtrarla ( xkcd relevante ). Si tiene muchas contraseñas de este tipo, tiene sentido mantener una lista cifrada de estas contraseñas (solo se descifra localmente en máquinas confiables). Tiene sentido tener muchas contraseñas de este tipo, ya que nunca desea volver a utilizar las contraseñas, especialmente en varias entidades ( xkcd relevante ).

Para el cifrado a largo plazo a prueba de futuro, sugiero nuevamente recordar una frase de contraseña entre personas de confianza, documentar una función de derivación de claves y usar un estándar bien documentado para el cifrado como AES256 que esperaba que el tipo de ley de Moore aumentara el poder computacional Nada para atacar en el periodo de ~ 100 años.

Independientemente, no use una frase de contraseña más algún tipo de función de derivación de clave hecha en casa para generar un teclado de una sola vez (como la respuesta aceptada). El pad de una sola vez solo tiene garantía garantizada solo cuando el pad de un solo uso es realmente aleatorio y la salida de una función de derivación de clave hecha en casa NO es aleatoria. Cuando un pad de una sola vez posiblemente tenga patrones identificables (p. Ej., Generados a partir de un hash iterativo, una frase de contraseña dividida en algún patrón como esta respuesta ), estos patrones pueden ser explotados y potencialmente muy fácilmente. Esto es crear su propio cifrado y no debe hacerse a menos que sea un experto en criptografía que haya presentado su esquema a muchos otros expertos en criptografía y nadie haya hecho ningún progreso. Es mucho mejor usar algo como AES que hasta ahora ha demostrado ser resistente a los ataques, que hacer tu propio cifrado a toda prisa.

    
respondido por el dr jimbob 18.02.2013 - 21:28
fuente
1

Una forma es construir la contraseña a partir de una frase fácil, y recordar tanto la frase fácil como la propia contraseña.

Por ejemplo, tome una cadena de contraseña corta. Ejecute SHA-256 en él para obtener un hash. Ahora, corta el hash en dos mitades, y hash cada mitad. Ponga los dos hashes nuevos lado a lado. Cortar este hash en cuatro cuartos, hash cada uno, unirlos. Repita un par de veces más (hay que recordar cuántas veces). Ponga todos los hashes uno al lado del otro, y tendrá una contraseña muy larga y de apariencia aleatoria. Para generarlo, uno debe conocer la semilla inicial y el algoritmo exacto de generación. La semilla se puede hacer fácil de recordar, y también el algoritmo (el anterior no es demasiado difícil de recordar)

Tenga en cuenta que es solo un ejemplo, debe crear su propio algoritmo y mantenerlo en su cabeza . Nadie puede forzar tu cabeza bruscamente 1 (y, por lo tanto, es imposible que descubran tu algoritmo hash y probablemente no sepan que estás usando uno), así que solo tendrán que intentarlo. fuerza bruta directamente su archivo encriptado. Con una contraseña aparentemente aleatoria y larga, eso es difícil.

1 A menos que intenten obtenerlo a través de la ingeniería social, lo que sí es posible. Lo más simple que puede hacer: no hable sobre el algoritmo a nadie (ni a la cadena semilla). Comprende que eres el único que necesita saber alguno de estos. Además, si está utilizando la contraseña como contraseña para algún sitio (a diferencia de una clave de cifrado para un archivo), debe asegurarse de no caer en phishing o un ataque similar.

    
respondido por el Manishearth 18.02.2013 - 13:38
fuente

Lea otras preguntas en las etiquetas