El proceso de juzgar la seguridad de la información almacenada en una base de datos de contraseñas se realiza suponiendo que un adversario (pirata informático) no solo sabe qué método de cifrado / cifrado está utilizando, sino también que ha robado una copia de su contraseña. base de datos. Sabiendo esas cosas, el hacker desea descubrir la contraseña para poder fingir que es un usuario válido.
En el problema descrito, asumimos que el pirata informático ha robado la base de datos y puede ver los valores de S e Y para cada usuario contenido en la base de datos. La diferencia entre los dos métodos es en qué consiste el valor de Y.
En el método 1, [contraseña] se combina con [sal] y, a continuación, ese valor se cifra con el código cifrado con la clave [contraseña].
En el método 2, [salt] se combina con [contraseña] y luego ese valor se cifra en clave de cifrado con la clave [salt].
El hecho de que la contraseña y el salt se mezclen de diferentes maneras en los dos ejemplos es irrelevante; El hecho crítico que debes notar es qué clave se usó para crear Y.
En el método 1, la clave utilizada para el cifrado es la contraseña. El pirata informático no sabe cuál es la contraseña, ya que se ha cifrado antes de almacenarla dentro de Y en la base de datos. En el método 2, la clave utilizada para el cifrado es S. El pirata informático sabe qué es S, ya que está justo ahí en la base de datos.
Si se usa el método 2, el pirata informático puede descifrar Y inmediatamente para descubrir la contraseña usando la palabra clave S. Si se usa el método 1, deberá romper el cifrado de Y sin conocer la clave de cifrado [contraseña]. Por lo tanto, el método 1 es una forma más segura de crear una base de datos de contraseñas.