Hola chicos que he leído sobre la salazón de contraseñas, pero esto puede sonar un poco extraño. Pero, ¿cómo almaceno y aseguro la sal? Por ejemplo, en una arquitectura de neumáticos múltiples, digamos que utilizo el GUID de la máquina cliente para generar mi sal, luego el usuario queda restringido a una sola máquina, pero si uso sal aleatoria, debe almacenarse en algún lugar. Hace unos días vi una aplicación de muestra donde el hash y la sal se generaban en el sistema cliente siempre que se creaba un nuevo usuario y luego la contraseña salada y el hash se transmiten al servidor donde se almacenan en el servidor SQL. Pero si sigo este método y la base de datos se ve comprometida, las contraseñas y los valores de sal para cada contraseña estarán disponibles para la persona X. Entonces, ¿debería saltear/encriptar las contraseñas y recibir sal en el servidor? ¿Cuál es la mejor práctica de salazón?¿cuál es la mejor manera posible de salar y almacenar sal?
Respuesta
Almacenar la sal sin cifrar en la base de datos junto a las contraseñas hash no es un problema.
El propósito de la sal no es ser secreto. Su objetivo es ser diferente para cada hash (es decir, aleatorio) y lo suficientemente largo como para vencer el uso de rainbow tables cuando un atacante tiene en sus manos la base de datos.
Consulte esto excellent post sobre el tema por Thomas Ptacek.
edit @ZJR: incluso si las sales fuesen completamente públicas, seguirían derrotando el beneficio de las tablas rainbow. Cuando usted tiene una sal y HASHED de datos, lo mejor que puede hacer para revertir es la fuerza bruta (siempre que la función hash es criptográficamente seguro)
edit @ n10i: Véase el artículo de Wikipedia para secure hash function. En cuanto al tamaño de la sal, la popular implementación de bcrypt .gensalt() usa 128 bit.
Por favor tome un momento para leer esta descripción muy buena de sales y hash
- 1. ¿Cuál es la mejor manera de almacenar datos de tendencia?
- 2. salazón de sal MD5 - dónde almacenar sal
- 3. Salar correctamente y usar PHPass
- 4. La mejor manera de almacenar la contraseña en sql
- 5. cómo almacenar la contraseña sal
- 6. ¿Cuál es la mejor manera de almacenar y recuperar NSMutableArrays multidimensionales?
- 7. ¿Cuál es la mejor manera de cargar y almacenar imágenes en el sitio?
- 8. ¿Cuál es la mejor manera de almacenar la configuración específica de la aplicación en los rieles?
- 9. ¿Cuál es la mejor manera de almacenar información de la versión de Subversion en EAR?
- 10. ¿Cuál es la mejor manera de almacenar un valor monetario en la base de datos?
- 11. ¿Cuál es la mejor manera de almacenar cadena de conexión en DLL de .NET?
- 12. Cuál es la mejor manera de almacenar la duración en MySQL
- 13. ¿Cuál es la mejor manera de almacenar la Biblia en SQL?
- 14. La mejor manera de almacenar variables globales
- 15. La mejor manera de almacenar etiquetas jerárquicas
- 16. ¿Cuál es la mejor manera de almacenar un objeto ActiveRecord en memcached?
- 17. ¿Cuál es la mejor manera de almacenar datos de área para una aventura de texto?
- 18. ¿Cuál es la mejor manera de almacenar un conjunto de Delphi en un conjunto de datos?
- 19. ¿Cuál es la mejor manera de almacenar información de zona horaria en mi base de datos?
- 20. ¿Cuál es la mejor manera de almacenar variables de clase en PHP?
- 21. ¿Cuál es la mejor manera de almacenar archivos multimedia en una base de datos?
- 22. Cuál es la mejor manera de almacenar datos XML en un archivo de Excel
- 23. ¿Cuál es la mejor manera de almacenar valores múltiples para $ .data() de jQuery?
- 24. ¿Cuál es la mejor manera de almacenar valores de fecha en formato de cadena?
- 25. ¿Cuál es la mejor manera de almacenar/calcular los puntajes de los usuarios?
- 26. ¿Cuál es la mejor manera de almacenar variables de configuración en PHP?
- 27. ¿Cuál es la mejor manera de almacenar datos como 'Favoritos' en una aplicación de Android?
- 28. ¿Cuál es la mejor manera de almacenar un valor de URL usando MySQL?
- 29. ¿Cuál es la mejor manera de almacenar archivos grandes en Plone 3?
- 30. ¿Cuál es la mejor manera de almacenar datos históricos en SQL Server 2005/2008?
yo diría que el propósito de la sal no es ser ** ** pública, tampoco. – ZJR
¿puede explicar "la función hash es criptográficamente segura". lo siento, soy nuevo en la criptografía. también en su respuesta usted mencionó "el tiempo suficiente para vencer el uso de las tablas del arcoíris" ¿cuánto tiempo debería durar la sal, para ser lo suficientemente larga? – Neel