Acabo de heredar un proyecto donde todas las contraseñas del lado del servidor simplemente se convierten a base64 y se colocan en la base de datos. Sin sal, sin hash, nada. Solo un simple tipo de proceso db.Add(password.ToBase64)
.
¿Seguramente cualquiera que tenga en sus manos esos datos puede decodificarlo fácilmente? De ahí el enfoque habitual de sal / hash.
Cuestioné la decisión de usar cadenas base64 y me dijeron:
Respecto a la contraseña: si alguien ya está en su servidor, ya está amenazado independientemente del cifrado que elija. Es lo mismo, incluso cuando alguien penetra en su propia capa SSL.
Esto parece ignorar el hecho de que hackear un servidor no es la única forma de acceder a una base de datos. Podría ser tan fácil como pasar por la computadora sin vigilancia de alguien, tropezar con una copia de seguridad de la base de datos y ver las cadenas base64 de de manera deslumbrante , y luego convertirlas a contraseñas en bruto.
Sé que esta pregunta es probablemente demasiado abierta para el formato de uso habitual de StackExchange, pero el problema no parece estar muy bien cubierto aquí con la redacción de la pregunta que he usado. Es un tema muy importante, así que pensé en lanzarlo.
Para mí es absolutamente obvio que las contraseñas no deben ' No se almacena utilizando solo la conversión base64 , pero aún soy relativamente nuevo en todo esto, así que tal vez me haya perdido algo.
Gracias.