Как бы вы реализовали соленые пароли в Tomcat 5.5 - PullRequest
2 голосов
/ 15 октября 2008

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

Есть предложения?

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

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

Ответы [ 3 ]

3 голосов
/ 17 октября 2008

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

Ваша таблица аутентификации будет содержать .... pwdDigest varchar (64), или int256, если у вас есть hashSalt int64, ....

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

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

3 голосов
/ 13 ноября 2008

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

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

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

0 голосов
/ 16 октября 2008

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

...