cifrado de clave simétrica vs hashing

5

Este es un documento fascinante: las 100 contraseñas principales de adobe breach

Tengo una pregunta sobre una parte de ella:

  

Sin embargo, gracias a que Adobe eligió el cifrado de clave simétrica sobre el hash,   seleccionando el modo ECB, y usando la misma clave para cada contraseña, combinada con un gran número de   plaintexts conocidos y la generosidad de los usuarios que nos dieron su contraseña en su contraseña   Sugerencia: esto no nos impide presentarle esta lista de las 100 contraseñas principales.   seleccionado por los usuarios de Adobe.

Entonces, debido a que en el pasado hemos permitido a los desarrolladores utilizar el cifrado de clave simétrica en lugar del hashing de contraseña, y aquí ven "usar la misma clave para cada contraseña" como un problema independiente, ¿cuál es el problema con el uso de la clave simétrica? cifrado para almacenar contraseñas? Entiendo que podría haber un impacto en el rendimiento porque el hash fue diseñado pensando en la velocidad.

    
pregunta San Jacinto 06.11.2013 - 21:20
fuente

3 respuestas

4

Técnicamente, si el hashing es rápido, eso es realmente peor (o al menos tan malo) como almacenar las contraseñas de forma reversible en la base de datos (siempre que se siga la administración correcta de la clave).

El problema con el uso de cifrado en lugar de hashes seguros (computacionalmente caro) es que se pueden revertir. A veces, esto puede ser necesario, por ejemplo, si la contraseña debe usarse para acceder a un sistema de terceros que no admite un token de acceso específico del sistema. Sin embargo, el problema es que si la clave de cifrado se ve comprometida, es posible descodificar todas las contraseñas de una sola vez.

Alternativamente, se puede usar una clave derivada de la contraseña como la clave para el cifrado simétrico de un valor que se puede validar y, dado que no usa una clave maestra que puede decodificar las contraseñas (y lo más probable es que la contraseña no lo sea). almacenado en absoluto en este caso) es un uso correcto del cifrado simétrico para la validación de la contraseña.

De manera similar, con un hash seguro que está correctamente salado, no hay una buena manera de atacar los valores fuera de línea para intentar determinar las contraseñas y no hay un punto único de falla que haga que todas las contraseñas sean accesibles.

El sistema de Adobe, por otro lado, no solo usó la misma clave para todas las contraseñas (lo que significa que si se comprometió esa clave, todas las contraseñas están disponibles de inmediato), pero tampoco hace que haya diferencias entre las diferentes instancias. La misma contraseña se codifica, por lo que puede indicar a todos los usuarios que tienen la misma contraseña. Se ha empeorado aún más porque tienen sugerencias de contraseña que revelan algunas de esas contraseñas repetidas.

    
respondido por el AJ Henderson 06.11.2013 - 22:18
fuente
5

¿Qué tienen de importantes las contraseñas? No hay forma de evitarlas. Los usuarios reutilizan contraseñas. Acéptalo Como proveedor de servicios responsable, debe comprenderlo y manejar con cuidado las contraseñas de sus clientes.

¿Por qué no almacenar contraseñas en texto simple? Debido a que las contraseñas se usan para la autenticación, la autenticación basada en contraseña no necesita la contraseña en texto simple. Las contraseñas son información confidencial y deben mantenerse en secreto.

¿Por qué no almacenar contraseñas en un formato reversible sin texto? Si un atacante compromete su sistema, tendrá acceso a la lógica de almacenamiento de su contraseña y revertirá la manipulación de la contraseña que estás usando. Esto convierte las contraseñas en texto plano.

¿Por qué no cifrar las contraseñas con una clave simétrica? Debido a que la lógica de inicio de sesión de su aplicación debe tener acceso a esa clave, lo que crea problemas de administración clave. En caso de una infracción, es muy probable que el atacante tenga acceso a la clave. Esto hace que las contraseñas sean reversibles.

¿Por qué no usar MD5 / SHA1? porque son súper rápidos. Súper rápido para ti significa súper rápido para que el atacante se resquebraje.

Entonces, ¿y ahora qué? hash seguro tus contraseñas usa un esquema fuerte, no reversible y lento como bcrypt . No hay alternativa para esto. Periodo.

Adobe se fue con la opción de cifrado simétrico, no solo eso, lo implementaron incorrectamente al utilizar el BCE. Así que tomaron algo malo y lo hicieron aún peor.

    
respondido por el Adi 06.11.2013 - 22:37
fuente
2

No hay nada de malo en almacenar contraseñas usando cifrado simétrico. Sin embargo, no se me ocurre ninguna razón por la que Adobe necesite recuperar su contraseña en cualquier momento.

El mayor problema es la gestión de claves. Lo que Adobe hizo fue usar 3DES con el modo ECB Y usar la misma tecla. El BCE es un problema ya que generará el mismo texto cifrado cuando dos usuarios usen la misma contraseña. Cuando se utiliza un hash de una contraseña o cuando se usa CBC para el cifrado simétrico, se usará un salt / IV que asegurará que cada texto cifrado resultante sea diferente. Esto significa que nunca obtendrá el mismo texto cifrado para la misma contraseña cifrada. Es el mismo problema que cuando las personas usan un algoritmo de hashing simple sin sal.

Otro problema con el BCE es que, cuando tiene suficiente texto sin formato, podría descifrar la clave de encriptación realizando un análisis utilizando texto sin cifrar frente a texto cifrado (en teoría).

    
respondido por el Lucas Kauffman 06.11.2013 - 21:33
fuente

Lea otras preguntas en las etiquetas