Вопрос

Мое веб-приложение полагается на безопасность, управляемую контейнерами, и мне интересно, возможно ли вообще использовать соленые пароли.Насколько я могу судить, достаточно легко хранить переваренные пароли в базе данных, просто настроив область JDBC или DataSource, но нет способа добавить соль в эти переваренные пароли.

Есть какие-нибудь предложения?

Редактировать: кажется, мне просто нужно еще немного подумать, прежде чем задавать вопросы ;-)

Это просто вопрос выбора того, кто выполняет вычисление дайджеста (клиент или сервер), и соответствующей настройки Tomcat.

Это было полезно?

Решение

Если вы создаете и храните дайджесты, вы можете создавать и хранить соли одновременно.

Ваша таблица аутентификации будет содержать ....pwdDigest используйте varchar(64), -- или int256, если он у вас есть Хэшируйте значение int64, ....

Затем, в зависимости от используемого вами протокола аутентификации, вы либо отправляете hashSalt клиенту, когда получаете имя пользователя для шифрования на стороне клиента, либо используете его для хэширования пароля, если получаете его в чистом виде.

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

Другие советы

Tomcat 5.5 и 6.0 не поддерживают соленые пароли в JDBCRealms и DataSourceRealms.Это известная ошибка, и предложенный патч, кажется, работает нормально, но он еще не был принят.

Если вы не хотите применять исправление, вы можете, по крайней мере, использовать его в качестве примера реализации:

Ошибка 45871 - Поддержка соленых и переваренных патчей в DataSourceRealm

Шифрование на основе Passord в JCE использует salt в соответствии с PKCS # 5.Видишь http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.html#PBEEx для примера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top