SCW图标
英雄背景无分隔线
博客

Signatures psychiques - ce que vous devez savoir

Charlie Eriksen
发表于 2022 年 4 月 27 日
最后更新于 2026年3月8日

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个信息:RS。 

这些数字是用来计算签名的有效性的。数值r是使用方程右边的rs进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果rs的值曾经是0,它们应该被丢弃。 

但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个rs都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

用ES256算法生成的令牌

回顾一下,一个JWT被分成3个部分。

  • 页眉(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。 

签名值的DER编码

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

使用DER编码签名的新JWT

现在,我们的签名将rs设置为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,并看到对一个正常运行的应用程序的实时影响。

现在就试试吧。

显示资源
显示资源

La vulnérabilité de Psychic Signature réside dans la cryptographie des signatures ECDSA, qui protège les systèmes pour des tâches critiques telles que l'authentification. Les pirates informatiques peuvent contourner toute vérification de signature grâce à cette vulnérabilité. Nous expliquerons ce que c'est et comment l'atténuer dans cet article.

您想了解更多吗?

了解更多

Secure Code Warrior 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Charlie Eriksen
2022年4月27日出版

分享到:
领英品牌社交x 标志

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个信息:RS。 

这些数字是用来计算签名的有效性的。数值r是使用方程右边的rs进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果rs的值曾经是0,它们应该被丢弃。 

但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个rs都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

用ES256算法生成的令牌

回顾一下,一个JWT被分成3个部分。

  • 页眉(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。 

签名值的DER编码

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

使用DER编码签名的新JWT

现在,我们的签名将rs设置为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,并看到对一个正常运行的应用程序的实时影响。

现在就试试吧。

显示资源
显示资源

请填写以下表格以下载报告

我们希望获得您的授权,以便向您发送有关我们产品和/或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会将其出售给其他企业用于营销目的。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用「Analytics」Cookie。完成操作后,请随时将其重新禁用。

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个信息:RS。 

这些数字是用来计算签名的有效性的。数值r是使用方程右边的rs进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果rs的值曾经是0,它们应该被丢弃。 

但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个rs都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

用ES256算法生成的令牌

回顾一下,一个JWT被分成3个部分。

  • 页眉(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。 

签名值的DER编码

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

使用DER编码签名的新JWT

现在,我们的签名将rs设置为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,并看到对一个正常运行的应用程序的实时影响。

现在就试试吧。

查看网络研讨会
开始
了解更多

点击下方链接,下载此资源的PDF文件。

Secure Code Warrior 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

显示报告预约演示
下载PDF文件
显示资源
分享到:
领英品牌社交x 标志
您想了解更多吗?

分享到:
领英品牌社交x 标志
作者
Charlie Eriksen
2022年4月27日出版

分享到:
领英品牌社交x 标志

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个信息:RS。 

这些数字是用来计算签名的有效性的。数值r是使用方程右边的rs进行计算的 "结果"(左边)。鉴于乘以0是一个坏主意,ECDSA规范明确要求,如果rs的值曾经是0,它们应该被丢弃。 

但是ECDSA的Java实现忘记了考虑这一点。因此,它将接受一个rs都是0的签名,这将永远是真的。我们可以用一个JWT的例子来证明这一点,显示它是多么容易。使用https://token.dev/,我们可以生成一个算法为ES256的令牌,类似于一个应用程序生成的令牌。

用ES256算法生成的令牌

回顾一下,一个JWT被分成3个部分。

  • 页眉(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

现在,如果我们想绕过签名检查,我们该怎么做呢?签名指定了r和s的值,并以DER格式进行编码。 

签名值的DER编码

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

使用DER编码签名的新JWT

现在,我们的签名将rs设置为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,并看到对一个正常运行的应用程序的实时影响。

现在就试试吧。

目录

下载PDF文件
显示资源
您想了解更多吗?

了解更多

Secure Code Warrior 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子