Java 中的 ECDSA 缺陷对企业意味着什么

Oracle 修复了较新版本 Java 中的一个严重漏洞,攻击者可以利用该漏洞伪造安全证书、数字签名、双因素身份验证消息和授权凭证。该安全修复程序包含在上周发布的2022 年 4 月重要补丁更新中。

该问题 (CVE-2022-21449) 存在于 Java 版本 15、16、17 和 18 中实现椭圆曲线数字签名算法 (ECDSA) 的方式中。防御者应检查他们正在运行和更新的 Java 版本。不再支持 Java 15 和 16,该问题已在 Java 17.0.3 和 18.0.1 中修复。

1. 检查和更新:使用命令java -version(或Windows 上的java.exe -version )检查正在运行的 Java 版本。

值得手动检查,因为系统上可能同时安装了多个 Java 版本,因为可能存在不同版本的 Java 开发工具包 (JDK) 和 Java 运行时环境 (JRE)。

对于许多组织而言,该漏洞仅存在于最新版本中这一事实可能是个好消息,因为 Java 15 和更新版本的采用率仍然相当低。

2. 关注建议: Java 应用广泛,因此企业团队需要密切关注应用和设备制造商的建议,了解它们是否受到影响并根据需要进行更新。该漏洞不仅影响可通过 Internet 访问的 Java 服务器和客户端软件——任何依赖数字签名数据的设备都可能受到影响,即使它是内部设备。

ECDSA 的详细信息使用椭圆曲线加密来验证消息。ECDSA 中缺少完整性检查意味着攻击者可以通过提供一个完全用零填充的内存缓冲区来通过签名检查。发现该漏洞的 ForgeRock 研究员Neil Madden写道,这意味着攻击者可以轻松伪造 TLS 证书和握手,这将导致通信被拦截并可能被修改。攻击者无需尝试找出私钥来匹配有效的数字签名。

Madden 写道,该漏洞影响“现实世界中几乎所有的 WebAuthn/FIDO 设备”。“许多 OIDC 提供商也使用 ECDSA 签名的 JWT。”

早在 11 月,当 Madden 向 Oracle 报告该漏洞时,ForgeRock 为客户提供了两种解决方法 - 使用 Java 11 部署产品或配置 Java 虚拟机以使用 Bouncy Castle 作为首选加密提供商。

该漏洞仅存在于较新版本中这一事实可能意味着此漏洞的影响可能会减弱,因为 Java 15 和更新版本的采用率仍然相当低。2021 年 7 月发布的第五次开发者生态系统调查发现,只有 14% 的开发者使用 Java 15(调查时的最新版本)。使用最广泛的版本是 Java 8 (72%),其次是 Java 11 (42%)。Java 11 是长期支持版本。

尽管甲骨文将严重性评级定为 7.5(满分 10),但 Madden 表示,严重性应该是 10,“因为在访问管理上下文中对不同功能的影响范围很广。” 有人声称该缺陷是“年度加密漏洞” 。

Java 中的 ECDSA 缺陷对企业意味着什么

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注