Oracle 修复 Java “年度加密漏洞”

点击“开发者技术前线”,选择“星标”

让一部分开发者看到未来


fc279c055947fa7b9fb800d5ae452ad9.png


作者:oschina

来源:oschina.net/news/192162/signatures-in-java

甲骨文于昨日推送了安全更新修复了一个漏洞,该漏洞允许攻击者伪造某些种类的 SSL 证书和握手、双因素认证信息,以及由一系列广泛使用的开放标准产生的授权凭证。这使得攻击者可以轻松地对文件和其他数据进行数字签名。

该漏洞影响了 Java 15 及以上版本中对 ECDSA(椭圆曲线数字签名算法)的实现。ECDSA 是一种利用椭圆曲线密码学原理对信息进行数字认证的算法。与 RSA 或其他加密算法相比,ECDSA 的一个关键优势是它生成的密钥较小,非常适合用于包括基于 FIDO 的 2FA、SMAL 和 OpenID 等标准。

这个漏洞的 CVE ID 为 CVE-2022-21449,最初是由 ForgeRock 安全研究员 Neil Madden 所发现的,他在漏洞说明中写道:

如果你在这些安全机制中使用 ECDSA 签名,并且如果你的服务器在 2022 年 4 月关键补丁更新(CPU)之前运行任何 Java 15、16、17 或 18 版本,攻击者就可以轻而易举地完全绕过它们。如今几乎所有的 WebAuthn/FIDO 设备(包括 Yubikeys)都使用 ECDSA 签名,许多 OIDC 提供商也在使用 ECDSA 签名的 JWT。

Madden 指出,上述这些受影响的 Java 版本主要是因为它们未能检查 ECDSA 中的两个关键变量,以确保它们是非零的。

ECDSA 签名依赖于一个伪随机数,通常表示为 K,用于推导两个额外的数字 R 和 S。要验证签名是否有效,必须检查涉及 R 和 S 的等式。当等式两边相等时,签名才有效。为了使过程正常工作,R 和 S 都不能为零。

这是因为如果值都是 0,等式两边将始终相等,签名也就一直有效。这意味着只需提交一个空白签名即可成功通过验证检查。

这个 bug 是由相关代码从 C++ 改写成 Java 时引入的,漏洞最早可以追溯到 2020 年 Java 15 发布的时候。该 bug 在去年 11 月就已被发现并报告给了甲骨文,而甲骨文在推出的 4 月关键补丁更新(CPU)中修复了该问题。

甲骨文在通用漏洞评分系统(Common Vulnerability Scoring System)中将该漏洞的严重性评级为 7.5(满分 10 分),但 Madden 根据他自己的评估,认为该漏洞的严重性评级为 10 分。除了 Madden 认为该漏洞十分严重,另一位安全专家 Thomas Ptacek 更是将该漏洞评为 “年度加密漏洞”(crypto bug of the year)。

aae9f9a12f287c30b049ee5b5653c698.png

目前 Java 15 及以上版本并没有像 Java 早期版本那样被开发者广泛使用。安全公司 Snyk 在 2021 年统计的数据显示,当时 Java 15 仅占了 12% 的份额。

 
 
— 完 —
 
 

 
 
最近写了一套 6000 页的 Java 学习手册,以及珍藏四本 Java 人必读4大神器,分享到知乎已经 3 万赞了!
整个资料包内容专注 Java技术,包括 Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、大数据、Nginx、Git、Docker、GitHub、Servlet、JavaWeb、IDEA、Redis、算法、面试题等相关内容。图文并茂,附有源码,还送一波电子书。内容包括但不限于:
每篇文章图文并茂,附有源码。还有电子书合集
如果你想获得完整PDF可以通过以下方式获得

52b288ddbfefa6d38d07a1ccda1367af.png

扫码加微信进群,内推和技术交流,大佬们零距离

历史推荐

Windows就是个笑话

Java 19将推出的两个新特性

为什么不会 C++ 不能算合格的专家程序员?

腾讯推出高性能 RPC 开发框架

5fb73d57086dc0b715cf508677c2e893.png

afe51c6149e1accbff3c8a25eb27aeaa.gif

a7e11cb3f240838259f35f763832dbe3.png

好文点个在看吧!

d8f7307d030a774d1e6bd41f2a6587cb.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值