Как безопасно хранить пароль в сеансе PHP (для повторного использования с API)

#php #session #encryption #zend-framework #password-protection

#php #сеанс #шифрование #zend-framework #защита паролем

Вопрос:

Ситуация:

У меня есть две системы: Java-API, требующий проверки учетных данных пользователя / пароля по LDAP, и интерфейс для этого API, написанный на PHP. Интерфейс, вероятно, должен сохранять комбинацию пользователя и пароля в сеансе.

Предложение:

Я бы использовал реализацию блочного шифрования, такую как Zend Crypt (<2.5) [1] с AES, и использовал простые сеансы PHP (возможно, на основе файлов).

Вопрос:

1.) Является ли шифрование пароля единственным выбором?

2.) Какой режим шифрования / режима вы бы предложили в отношении хорошего компромисса между безопасностью и скоростью

Хэширование пароля НЕ является вариантом, поскольку API требует простого пароля.

[1] https://framework.zend.com/manual/2.4/en/modules/zend.crypt.block-cipher.html

Комментарии:

1. лучшей альтернативой является использование oauth2 вместо пары имя пользователя / пароль. отправка имени пользователя / пароля в каждом запросе, даже если он зашифрован, вызывает проблемы с безопасностью

2. вам не нужен оригинальный пароль, просто хэш

3. Также вы можете использовать веб-токен JSON — github.com/tymondesigns/jwt-auth

4. Я не могу просто хэшировать пароль, потому что для последней цепочки требуется простой пароль.

5. Есть ли у вас какой-либо выбор здесь, чтобы использовать что-то другое, кроме открытого текстового пароля? Получить токен LDAP или что-то в этом роде? Или ваш интерфейс должен сохранять пароль открытого текста, чтобы использовать серверную часть (в этом случае: какой ужасный сервер)?