Oracle昨天推送了一个安全更新,修复了一个允许攻击者伪造某些类型的SSL证书和握手、双因素身份验证信息和生成的授权凭证的漏洞来自一组广泛使用的开放标准。这使攻击者可以轻松地对文件和其他数据进行数字签名。该漏洞影响Java15及更高版本中ECDSA(椭圆曲线数字签名算法)的实现。ECDSA是一种使用椭圆曲线加密原理对信息进行数字认证的算法。ECDSA相对于RSA或其他加密算法的一个关键优势是它生成的密钥更小,因此非常适合用于包括基于FIDO的2FA、SMAL和OpenID在内的标准。该漏洞的CVEID为CVE-2022-21449,最初由ForgeRock安全研究员NeilMadden发现。他在漏洞描述中写道:如果你在这些安全机制中使用ECDSA签名,并且如果你的服务器在2022年运行2020年4月重要补丁更新(CPU)之前的任何Java15、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年Java15发布。该BUG于去年11月被发现并报告给Oracle,Oracle于2018年11月修复。4月重要补丁更新(CPU)。甲骨文在通用漏洞评分系统中将该漏洞的严重程度评为7.5分(满分10分),但Madden根据他自己的评估将其评为10分。除了Madden认为该漏洞非常严重之外,另一位安全专家ThomasPtacek甚至将该漏洞评为“年度加密漏洞”。目前Java15及以上版本并没有像早期版本的Java那样被开发者广泛使用。安全公司Snyk在2021年的统计数据显示,当时Java15仅占12%的份额。本文转自OSCHINA本文标题:Oracle修复Java“年度加密漏洞”,影响Java15及以上
