¿Cuándo debería usarse un cifrado de contraseña y cuándo debería usarse una contraseña normal? [duplicar]

3

Me encontré con this discusión del artículo sobre cómo proteger una contraseña al agregar su propio esquema de" encriptación "a una palabra seleccionada y crear su contraseña.

Por ejemplo, si mi cifra era agregar cuatro ceros, cambia cada palabra del alfabeto con su letra inversa y adjúntala con mi número favorito.

Ejemplos

  • Google = 0000tlltov7
  • Pila = 0000hzxp7
  • etc ...

La idea aquí es simplemente recordar el cifrado, no la contraseña. El texto claro proviene del nombre del sitio web / empresa (Apple, Microsoft, Google) ... pero ¿es esta una mejor manera de crear contraseñas?

Claro, cada contraseña es única y extremadamente difícil de forzar, pero el esquema lo expone todo. Si un atacante descubriera mi esquema, sabría todas mis contraseñas. ¿Cuándo es mejor usar cifrados de contraseña? ¿Cuándo es mejor usar contraseñas normales?

    
pregunta Gavin Youker 06.12.2016 - 23:32
fuente

3 respuestas

0

Respuesta corta

Depende de su "cifrado".

La regla

Si el cifrado da como resultado un espacio de búsqueda que es tan grande como el espacio de búsqueda requerido para la fuerza bruta, su esquema es 100% efectivo.

Ejemplo

Para explicar esto, usemos un ejemplo trivial. Supongamos que hay un sitio web muy deficiente que requiere una contraseña alfabética de cuatro dígitos.

El espacio de búsqueda de fuerza bruta es 26 ^ 4 = 456976.

Mientras tanto, solo hay alrededor de 4000 palabras de cuatro letras, por lo que el espacio de búsqueda de ataques del diccionario predeterminado es solo 4000. Muy malo.

Ahora digamos que usa una transformación muy simple: tome cada letra y agregue una, así que A se convierte en B, B se convierte en C, etc. Para buscar el diccionario y esta transformación simple, el atacante ahora debe buscar un espacio de nombres que contenga 8,000 entradas. Esto es un poco mejor.

Ahora, el atacante no sabrá que estás agregando uno. Él puede sospecharlo. Pero puede que también tenga que marcar +2, -1 y -2. Son cuatro transformaciones que suman 16,000 secuencias. Sigue siendo pobre, pero mejor que 4,000.

Ahora, probablemente hay muchas posibles transformaciones que podrías hacer en tu cabeza. Mueve las manos una tecla a la derecha y toca. Una llave a la izquierda. Escribe la palabra al revés. Intercambiar vocales y consonantes. Etc, etc. Si hay 100 transformaciones, ahora el atacante tiene que buscar 400,000 secuencias posibles. Hey, esto se ve bastante bien.

En algún momento, el atacante dejará de buscar nuevas transformaciones porque dará como resultado un espacio de búsqueda mayor que el requerido para la fuerza bruta, 456976. En el momento en que sucede, tu esquema es 100% efectivo.

Si realmente quieres hacerlo seguro

Si realmente quieres hacerlo seguro, introduce un secreto. Por ejemplo, memorice un poema, luego asigne cada letra del alfabeto a una línea en ese poema y sustituya la primera letra de la línea por cada letra. Si el atacante no conoce el poema, pasará un buen rato escribiendo un programa para adivinarlo. A menos que él lea la misma literatura que tú, tal vez nunca lo descubra. Ahora, tal vez un pirata informático inteligente por ahí introducirá una base de datos de poemas en su algoritmo de búsqueda, pero al final terminará siendo más costoso computacionalmente que un simple ataque de fuerza bruta.

Conclusión

Si el ataque al diccionario es más caro que un ataque de fuerza bruta, el pirata informático usará un ataque de fuerza bruta. Ese es el mejor de los casos, ya que no hay forma de que un usuario final mitigue la fuerza bruta a través de la elección de la contraseña.

    
respondido por el John Wu 07.12.2016 - 00:45
fuente
2

Parece poco probable que esto no se haya preguntado aquí antes, pero no pude encontrar un buen duplicado.

Los administradores de contraseñas, cuando se combinan con contraseñas largas generadas al azar, operan con un enfoque que me gusta llamar "ponga todos sus huevos en una canasta, y guarde esa canasta realmente realmente ". La longitud y la aleatoriedad de las contraseñas protegen contra los ataques de fuerza bruta y diccionario, y la aleatoriedad también evita los ataques de intercambio de contraseñas donde un sitio almacena su contraseña de forma insegura. El principal vector de ataque, por supuesto, es un atacante que obtiene acceso a su base de datos del administrador de contraseñas, momento en el que obtiene acceso a cada cuenta suya.

Si puede recordar todas estas contraseñas largas generadas aleatoriamente, entonces no hay una base de datos que pueda infringir, y estará mejor. Sin embargo, la mayoría de las personas no pueden hacer esto.

Como alternativa, puede usar un algoritmo para generar de forma reproducible una contraseña a pedido para un sitio (se describen varias opciones en ¿Cuál es su manera de crear buenas contraseñas que realmente puedan ser recordadas? ). Estos conservan el beneficio de no tener una base de datos que no se pueda romper. La pregunta, entonces, es si el beneficio de evitar o no la base de datos de contraseñas supera los inconvenientes de pasar de las contraseñas generadas aleatoriamente a un esquema reproducible.

Si el esquema es obvio al mirar un texto sin formato (por ejemplo, siteName + accountName ), entonces una infracción en un sitio inseguro abre su conjunto completo de cuentas a cualquier atacante que vea su contraseña. Esto es obviamente bastante horrible desde una perspectiva de seguridad. La mayoría de los esquemas no son tan obvios, pero está apostando al atacante para que no pueda realizar ingeniería inversa, ya sea una buena apuesta o no, está sujeto a debate, y depende de su específico esquema también. Vale la pena señalar que las posibilidades de éxito de la ingeniería inversa aumentan drásticamente a medida que un atacante obtiene acceso a contraseñas de texto simple desde múltiples sitios.

Otro problema con los esquemas de contraseñas reproducibles es que no proporcionan una manera fácil de cambiar su contraseña para un sitio; son reproducibles y, para generar una nueva contraseña, deberá integrar una información adicional (algunos tipo de "ronda"), que luego necesita almacenar o memorizar.

Tanto el uso del administrador de contraseñas como los esquemas de contraseñas reproducibles son degradaciones de seguridad de la opción ideal de memorización de contraseñas. También son mucho mejores que lo que hace la mayoría de las personas, que es usar la misma contraseña insegura en muchas cuentas. Cuál es "mejor" depende mucho de las características específicas de su administrador de contraseñas y del esquema con el que lo está comparando, y de los ataques que le preocupan.

    
respondido por el Xiong Chiamiov 07.12.2016 - 00:01
fuente
1

Respuesta corta: mal consejo.

No hagas eso. Una sola contraseña, recuperada de por ejemplo. un hackeo de la base de datos de contraseñas que publicara la lista de contraseñas, rompería inmediatamente su seguridad. Es totalmente despreciable recomendar algo como esto.

E incluso sin eso, un atacante probablemente haría ambas cosas: un ataque de diccionario simple basado en contraseñas comunes y un ataque de diccionario un poco más avanzado basado en modificaciones del nombre de usuario, el nombre del sitio, el cumpleaños del usuario, etc.

  

¿Sería mejor crear contraseñas seguras para cada sitio web diferente o usar un cifrado universal, tal vez una mezcla de ambos de alguna manera?

Obviamente, sí. Una contraseña aleatoria no se puede asegurar al encriptarse, así que solo use una fuente aleatoria de caracteres como generador de contraseña. Bajo Linux, dd if=/dev/urandom bs=1 count=256|md5sum es un buen generador de contraseñas (urandom le da a exactamente las mismas cosas que / dev / random) .

    
respondido por el Marcus Müller 06.12.2016 - 23:47
fuente

Lea otras preguntas en las etiquetas