No soy un experto en seguridad, pero estoy tratando de entender las mejores prácticas actuales para adoptar una política de seguridad para un sitio web que contendrá información confidencial.
En lo que respecta a alguien que intenta acceder a las cuentas de usuario a través de la pantalla de inicio / inicio de sesión, estoy contento de estar familiarizado con la información suficiente para hacer de este un ejercicio inútil.
Sin embargo, también quiero protegerme contra la posibilidad de que la base de datos pueda ser hackeada y que un tercero esté en posesión de todas las contraseñas cifradas.
Es en este punto que no puedo ver ninguna ventaja real con el uso de cualquiera de los métodos de encriptación A5 de MD5, MD5 + Salt, AES en los casos en que la base de datos está pirateada y todas las claves necesarias para probar una contraseña contra cualquier contraseña almacenada. el hash se conserva en la base de datos.
¿No estaría más seguro si tomara un método de cifrado como MD5 y lo usara para cifrar la contraseña del usuario, y luego tomara la cadena cifrada y, a través del código, seleccione los primeros n caracteres del hash y pase eso? a través del cifrado MD5 y el almacenamiento de hash en la base de datos?
es decir, tomar la contraseña "contraseña"
El hash generado MD5 sería 5f4dcc3b5aa765d61d8327deb882cf99
Tomo, por ejemplo, los primeros 14 caracteres 5f4dcc3b5aa765 y los ejecuto a través del cifrado MD5 para obtener un nuevo hash 316e881b8519579949391d6f8424decb que almaceno en la base de datos.
Solo el código sabría cuántos caracteres se estaban utilizando para volver a cifrar el primer código hash. Cualquier pirata informático que no esté en posesión de los datos de la base de datos y del código fuente no podrá comparar los códigos hash utilizando un conjunto de reglas de diccionario, aunque puede haber identificado correctamente que se está utilizando el cifrado MD5.
Todos los métodos de encriptación que he investigado hasta ahora parecen almacenar las claves de encriptación en la base de datos que no parecen brindar mucha protección contra un pirateo de volcado de base de datos.
Es bastante posible que sea ingenuo aquí y no entiendo lo primero acerca de la seguridad, pero cualquier orientación de personas que lo hagan sería apreciada.