Безопасное хранение паролей в MySQL, но все еще доступный PAM - PullRequest
1 голос
/ 09 ноября 2011

У нас есть приложение PHP, которое хранит пароли только с помощью функции MD5 (без соли).
OpenSSH настроен на использование pam-mysql для аутентификации пользователей из одной и той же базы данных.

Мы хотели бы перейти на использование хешированных паролей, и мы рассматриваем либо: 1. сделать это самостоятельно (что-то вроде md5($salt."$".$password) или hash("sha256", $salt."$".$password)), либо 2. использовать функцию cryp в php (которая использует crypt в ОС ( 3) если имеется).
Проблема в том, что я не нашел, поддерживает ли pam-mysql crypt (3) или какой-либо заменяющий модуль pam.

crpyt(3) использует предоставленный пользователем алгоритм и соль: crypt('password', '$5$saltstring$') для sha256, который возвращает $5$saltstring$OH4IDuTlsuTYPdED1gsuiRMyTAwNlRWyA6Xr3I4/dQ5. Любой язык, который использует библиотеку crypt(3), увидит эту строку и будет знать, что нужно использовать sha256 с заданным хешем и ожидать данный результат.

Достаточно ли первого метода или есть какой-нибудь модуль PAM, который поддерживает MySQL и crypt (3)?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Вы также можете использовать шифрование 3DES для повышения безопасности.

0 голосов
/ 09 ноября 2011

Используйте sha512, либо реализацию mysql, либо реализацию php. Если вы используете md5, вы используете известную небезопасную функцию, которая открывает перед вами ответственность.

...