Как правильно (безопасно) хранить пароли от сторонних сервисов в базе данных?
Пишу скрипт (плагин к WordPress), который должен время от времени стучаться на FTP/WebDAV/Ещё что-то под своим логином и паролем и бросать туда файл. Соответсвенно, брать логин и пароль скрипт будет из базы данных MySQL.
Вопрос в том, есть ли методы шифрования паролей в таких случаях? То есть, если удастся стащить базу, чтобы нельзя было получить доступ к этому FTP-серверу. Может, есть способы хранить эти пароли надёжнее, чем в базе данных?
Скрипт должен работать автономно, так что каждый раз вводить пароль ручками — не вариант.
В идеале хотелось бы решение средствами PHP и MySQL, но вполне устроят отсылки к общим принципам и алгоритмам. Только, пожалуйста, не совсем уж к азам информационной безопасности :-)
Вообще, для доступа к сторонним сервисам без хранения пароля придуман OAuth - посмотрите, может у каких-то из этих сервисов есть такое. Токен можно использовать потом и автономно, без юзера.
Зачем хэш? Мы хеш пароля используем как ключ для обратимого шифрования. Хороший метод, но мне не очень нравится привязка к не-умолчальному модулю. Хотелось ы вписаться в те требования, который выдвигает сам WordPress к системе.
Кстати, в качестве ключа так же можно использовать ту соль, которую сам WP хранит в своём конфиге и использует, если не ошибаюсь, для авторизации.
1. Сделайте коннект к промежуточному хосту (как прокси-хост), на нем пропишите соответствие login:pass (внутренний) -> host,login,pass,port (внешний)
2. Пропишите, что к промежуточному хосту доступ только с определенного IP (или сертификат).
3. Не открывайте доступ к этой связке хранения (файловая система, БД и т.д.)
Все это нужно делать обязательно на другом сервере (возможно виртуальная машина)
Если даже пароли украли - вы их смените в одно мгновение. (не меняя удаленные)
Если попытаются подключиться с украденными паролями, то доступ будет только с указанного IP. (ну и сертификат добавьте для более большей надежности)
--------------
Ну а по шифрованию - уже все и так здесь много полезного сказали.
Добавлю лишь: главное - защищайте "соль".