通灵签名--你需要知道什么
2022年4月19日,尼尔-马登(Neil Madden)披露了Oracle Java 15至18,以及OpenJDK 15、17和18中的一个漏洞。该漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过这些签名的检查。
鉴于ECDSA签名的晦涩难懂,我们很容易看到有关这一漏洞的标题,并直接略过它们。然而,ECDSA签名实际上在保护整个互联网的系统方面发挥着关键的作用,如认证。
在我们深入探讨细节之前,如果你想亲身体验一下黑客是如何利用心理学签名的。请直接跳入我们的免费实验室--Missions,亲自体验一下。
ECDSA有什么大不了的?
你可能以前没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,是一种利用椭圆曲线的数学特性的密码学,提供了目前行业中最强大的一些密码学安全性。
这意味着它被用于很多重要的功能,比如。
- 签署SSL证书
- 加密通信期间的握手
- SAML
- JWT签名
- OpenID Connect的签名
这意味着ECDSA是许多保护系统的最敏感功能的一个关键部分。绕过签名检查的能力将有可能是相当大的破坏性。
该漏洞是如何被利用的?
不幸的是,ECDSA的数学原理有些复杂。但要知道的关键是,ECDSA签名包含2个信息:R和S。
这些数字是用来计算签名的有效性的。数值r是使用方程右边的r和s进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果r或s的值曾经是0,它们应该被丢弃。
但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个r和s都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

回顾一下,一个JWT被分成3个部分。
- 页眉(蓝色)
- 有效载荷(绿色)
- 签名(红色)
现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。

让我们改变我们的JWT以使用这个新的签名。注意,在JWTs中,不包括等号。

现在,我们的签名将r和s设置为0,在易受攻击的Java版本中,现在对于你指定的任何有效载荷,签名检查都会成功。
谁会受到影响,如何减轻影响?
该漏洞同时影响到Oracle Java和OpenJDK。这些漏洞包括
Oracle Java SE(以及旧的、不支持的版本)。
- 18
- 17.0.2
Oracle GraalVM企业版。
- 22.0.0.2
- 21.3.1
OpenJDK。
- 18
- 17.0.2
- 15.0.6
- 13.0.10
- 11.0.14
- 8u322
- 7u331
甲骨文和OpenJDK都发布了建议,并为该问题打了补丁,可以立即应用。
防御该漏洞的实践操作
在Secure Code Warrior ,我们努力为开发者提供最相关的信息和关键漏洞的实践练习,不管是像心理学签名这样的最新漏洞,还是已经存在多年的漏洞。
我们相信,为了真正地控制风险,有必要让开发人员了解防御机制,并从一开始就编写安全的代码。这就是为什么我们为你和受影响的团队创建了一个关于这个漏洞(以及许多其他漏洞)的逐步演练。
在演练中,你将能够按照指示利用JWTs中的Physic Signature,并看到对一个正常运行的应用程序的实时影响。
现在就试试吧。


2022年4月19日,尼尔-马登(Neil Madden)披露了Oracle Java 15至18,以及OpenJDK 15、17和18中的一个漏洞。该漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过这些签名的检查。
鉴于ECDSA签名的晦涩难懂,我们很容易看到有关这一漏洞的标题,并直接略过它们。然而,ECDSA签名实际上在保护整个互联网的系统方面发挥着关键的作用,如认证。
在我们深入探讨细节之前,如果你想亲身体验一下黑客是如何利用心理学签名的。请直接跳入我们的免费实验室--Missions,亲自体验一下。
ECDSA有什么大不了的?
你可能以前没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,是一种利用椭圆曲线的数学特性的密码学,提供了目前行业中最强大的一些密码学安全性。
这意味着它被用于很多重要的功能,比如。
- 签署SSL证书
- 加密通信期间的握手
- SAML
- JWT签名
- OpenID Connect的签名
这意味着ECDSA是许多保护系统的最敏感功能的一个关键部分。绕过签名检查的能力将有可能是相当大的破坏性。
该漏洞是如何被利用的?
不幸的是,ECDSA的数学原理有些复杂。但要知道的关键是,ECDSA签名包含2个信息:R和S。
这些数字是用来计算签名的有效性的。数值r是使用方程右边的r和s进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果r或s的值曾经是0,它们应该被丢弃。
但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个r和s都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

回顾一下,一个JWT被分成3个部分。
- 页眉(蓝色)
- 有效载荷(绿色)
- 签名(红色)
现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。

让我们改变我们的JWT以使用这个新的签名。注意,在JWTs中,不包括等号。

现在,我们的签名将r和s设置为0,在易受攻击的Java版本中,现在对于你指定的任何有效载荷,签名检查都会成功。
谁会受到影响,如何减轻影响?
该漏洞同时影响到Oracle Java和OpenJDK。这些漏洞包括
Oracle Java SE(以及旧的、不支持的版本)。
- 18
- 17.0.2
Oracle GraalVM企业版。
- 22.0.0.2
- 21.3.1
OpenJDK。
- 18
- 17.0.2
- 15.0.6
- 13.0.10
- 11.0.14
- 8u322
- 7u331
甲骨文和OpenJDK都发布了建议,并为该问题打了补丁,可以立即应用。
防御该漏洞的实践操作
在Secure Code Warrior ,我们努力为开发者提供最相关的信息和关键漏洞的实践练习,不管是像心理学签名这样的最新漏洞,还是已经存在多年的漏洞。
我们相信,为了真正地控制风险,有必要让开发人员了解防御机制,并从一开始就编写安全的代码。这就是为什么我们为你和受影响的团队创建了一个关于这个漏洞(以及许多其他漏洞)的逐步演练。
在演练中,你将能够按照指示利用JWTs中的Physic Signature,并看到对一个正常运行的应用程序的实时影响。
现在就试试吧。

2022年4月19日,尼尔-马登(Neil Madden)披露了Oracle Java 15至18,以及OpenJDK 15、17和18中的一个漏洞。该漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过这些签名的检查。
鉴于ECDSA签名的晦涩难懂,我们很容易看到有关这一漏洞的标题,并直接略过它们。然而,ECDSA签名实际上在保护整个互联网的系统方面发挥着关键的作用,如认证。
在我们深入探讨细节之前,如果你想亲身体验一下黑客是如何利用心理学签名的。请直接跳入我们的免费实验室--Missions,亲自体验一下。
ECDSA有什么大不了的?
你可能以前没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,是一种利用椭圆曲线的数学特性的密码学,提供了目前行业中最强大的一些密码学安全性。
这意味着它被用于很多重要的功能,比如。
- 签署SSL证书
- 加密通信期间的握手
- SAML
- JWT签名
- OpenID Connect的签名
这意味着ECDSA是许多保护系统的最敏感功能的一个关键部分。绕过签名检查的能力将有可能是相当大的破坏性。
该漏洞是如何被利用的?
不幸的是,ECDSA的数学原理有些复杂。但要知道的关键是,ECDSA签名包含2个信息:R和S。
这些数字是用来计算签名的有效性的。数值r是使用方程右边的r和s进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果r或s的值曾经是0,它们应该被丢弃。
但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个r和s都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

回顾一下,一个JWT被分成3个部分。
- 页眉(蓝色)
- 有效载荷(绿色)
- 签名(红色)
现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。

让我们改变我们的JWT以使用这个新的签名。注意,在JWTs中,不包括等号。

现在,我们的签名将r和s设置为0,在易受攻击的Java版本中,现在对于你指定的任何有效载荷,签名检查都会成功。
谁会受到影响,如何减轻影响?
该漏洞同时影响到Oracle Java和OpenJDK。这些漏洞包括
Oracle Java SE(以及旧的、不支持的版本)。
- 18
- 17.0.2
Oracle GraalVM企业版。
- 22.0.0.2
- 21.3.1
OpenJDK。
- 18
- 17.0.2
- 15.0.6
- 13.0.10
- 11.0.14
- 8u322
- 7u331
甲骨文和OpenJDK都发布了建议,并为该问题打了补丁,可以立即应用。
防御该漏洞的实践操作
在Secure Code Warrior ,我们努力为开发者提供最相关的信息和关键漏洞的实践练习,不管是像心理学签名这样的最新漏洞,还是已经存在多年的漏洞。
我们相信,为了真正地控制风险,有必要让开发人员了解防御机制,并从一开始就编写安全的代码。这就是为什么我们为你和受影响的团队创建了一个关于这个漏洞(以及许多其他漏洞)的逐步演练。
在演练中,你将能够按照指示利用JWTs中的Physic Signature,并看到对一个正常运行的应用程序的实时影响。
现在就试试吧。
2022年4月19日,尼尔-马登(Neil Madden)披露了Oracle Java 15至18,以及OpenJDK 15、17和18中的一个漏洞。该漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过这些签名的检查。
鉴于ECDSA签名的晦涩难懂,我们很容易看到有关这一漏洞的标题,并直接略过它们。然而,ECDSA签名实际上在保护整个互联网的系统方面发挥着关键的作用,如认证。
在我们深入探讨细节之前,如果你想亲身体验一下黑客是如何利用心理学签名的。请直接跳入我们的免费实验室--Missions,亲自体验一下。
ECDSA有什么大不了的?
你可能以前没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,是一种利用椭圆曲线的数学特性的密码学,提供了目前行业中最强大的一些密码学安全性。
这意味着它被用于很多重要的功能,比如。
- 签署SSL证书
- 加密通信期间的握手
- SAML
- JWT签名
- OpenID Connect的签名
这意味着ECDSA是许多保护系统的最敏感功能的一个关键部分。绕过签名检查的能力将有可能是相当大的破坏性。
该漏洞是如何被利用的?
不幸的是,ECDSA的数学原理有些复杂。但要知道的关键是,ECDSA签名包含2个信息:R和S。
这些数字是用来计算签名的有效性的。数值r是使用方程右边的r和s进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果r或s的值曾经是0,它们应该被丢弃。
但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个r和s都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

回顾一下,一个JWT被分成3个部分。
- 页眉(蓝色)
- 有效载荷(绿色)
- 签名(红色)
现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。

让我们改变我们的JWT以使用这个新的签名。注意,在JWTs中,不包括等号。

现在,我们的签名将r和s设置为0,在易受攻击的Java版本中,现在对于你指定的任何有效载荷,签名检查都会成功。
谁会受到影响,如何减轻影响?
该漏洞同时影响到Oracle Java和OpenJDK。这些漏洞包括
Oracle Java SE(以及旧的、不支持的版本)。
- 18
- 17.0.2
Oracle GraalVM企业版。
- 22.0.0.2
- 21.3.1
OpenJDK。
- 18
- 17.0.2
- 15.0.6
- 13.0.10
- 11.0.14
- 8u322
- 7u331
甲骨文和OpenJDK都发布了建议,并为该问题打了补丁,可以立即应用。
防御该漏洞的实践操作
在Secure Code Warrior ,我们努力为开发者提供最相关的信息和关键漏洞的实践练习,不管是像心理学签名这样的最新漏洞,还是已经存在多年的漏洞。
我们相信,为了真正地控制风险,有必要让开发人员了解防御机制,并从一开始就编写安全的代码。这就是为什么我们为你和受影响的团队创建了一个关于这个漏洞(以及许多其他漏洞)的逐步演练。
在演练中,你将能够按照指示利用JWTs中的Physic Signature,并看到对一个正常运行的应用程序的实时影响。
现在就试试吧。
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。