Является ли реализация Springry BCrypt уязвимой?
Аудит безопасности в нашей компании показал, что префикс наших хеш-кодов bcrypt равен "$ 2a $". Согласно [1] и [2] это может указывать на то, что используется более старая, уязвимая реализация bcrypt.
Итак - вот мои вопросы:
- Содержит ли реализация bcrypt в Spring Security уязвимость?
- Поддерживает ли Spring Security префиксы "$2x$" и "$ 2y $"?
Рекомендации:
[1] http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html
[2] http://www.openwall.com/lists/oss-security/2011/06/21/16
1 ответ
Ссылки, которые вы предоставляете, касаются уязвимости в реализации BCrypt на C. Реализация Spring Security - это ответвление jBCrypt, которое отличается от Java.
Если посмотреть на исходный код, начиная с версии 3.2.5, Spring Security не поддерживает префиксы "$2x$" и "$2y$". Реализация не содержит уязвимости C, но она не совместима с текущей реализацией на основе C (например, PHP).