我们公司的安全审计发现,我们的bcrypt哈希的前缀是"$2a$"。根据 [1] 和 [2],这可能表明使用了较旧的、易受攻击的 bcrypt 实现。
所以 - 这是我的问题:
- Spring Security 的 bcrypt 实现是否包含该漏洞?
- 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
-
您提供的链接是关于 BCrypt 的 C 实现中的一个漏洞。Spring Security 实现是 jBCrypt 的一个分支,jBCrypt 是用 Java 编写的不同实现。
-
查看源代码,从版本 3.2.5 开始,Spring Security 不支持"$2x$"和"$2y$"前缀。该实现不包含 C 漏洞,但它不能与当前基于 C 的实现(如 PHP)互操作。