Icônes SCW
héros bg sans séparateur
Blog

心灵签名-你需要知道的

Charlie Eriksen
Publié le 27 avril 2022
Dernière mise à jour le 9 mars 2026

2022年4月19日, Neil Madden 透露了一个漏洞 在 Oracle Java 15 到 18 以及 OpenJDK 15、17 和 18 中。漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过对这些签名的签名检查。

考虑到 ECDSA 签名的模糊性质,很容易看到有关该漏洞的头条新闻,然后直接跳过这些头条新闻。但是,ECDSA签名实际上在保护互联网系统执行身份验证等关键任务方面起着关键作用。

在我们深入探讨细节之前,如果你想亲身体验黑客如何利用心灵签名。直接跳到我们的 免费实验室-任务 亲自尝试一下。

ECDSA 有什么大不了的?

你以前可能没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,椭圆曲线数字签名算法是一种利用椭圆曲线的数学特性的密码学,提供了目前业界最强大的加密安全性。

这意味着它用于许多重要功能,例如:

  • SSL 证书的签名
  • 加密通信期间的握手
  • SAML
  • JWT 签名
  • OpenID 连接签名

这意味着,ECDSA 是许多保护系统的最敏感功能的关键部分。绕过签名检查的能力可能会造成相当大的毁灭性。

该漏洞是如何利用的?

不幸的是,ECDSA的数学有些复杂。但是要知道的关键是,ECDSA签名包含两条信息: r,s

这些数字用于计算签名的有效性。价值 r 是使用两者的计算的 “结果”(左侧) rs 在方程的右边。鉴于乘以 0 是个坏主意,ECDSA 规范明确指出,如果值为 r 要么 s 永远是 0,它们应该被丢弃。

但是ECDSA的Java实现却忘记了这一点。因此,它将接受两者的签名 rs 是 0,这将永远是正确的。我们可以用 JWT 的例子来演示这一点,展示它有多简单。使用 https://token.dev/,我们可以使用算法 ES256 生成令牌,类似于应用程序生成的代币:

使用算法 ES256 生成的代币

回想一下,一个 JWT 分为 3 个部分:

  • 标题(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

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

DER 对签名值进行编码

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

使用 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,我们努力为开发人员提供有关关键漏洞的最相关信息和动手练习,无论是诸如心理签名之类的最新漏洞,还是已经存在多年的漏洞。

我们认为,要真正控制风险,必须让开发人员从一开始就了解防御机制并编写安全代码。这就是为什么我们为您和受影响的团队创建了针对该漏洞(以及许多其他漏洞)的分步演练。

在演练中,您将能够按照说明在 JWT 中利用 Physic Signature,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Psychic Signature 漏洞存在于 ECDSA 签名的加密中,它可以保护系统执行身份验证等关键任务。黑客可以利用此漏洞绕过任何签名检查。我们将在这篇文章中解释它是什么以及如何缓解它。

Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
Auteur
Charlie Eriksen
Publié le 27 avril 2022

Partager sur :
marques LinkedInSocialLogo x

2022年4月19日, Neil Madden 透露了一个漏洞 在 Oracle Java 15 到 18 以及 OpenJDK 15、17 和 18 中。漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过对这些签名的签名检查。

考虑到 ECDSA 签名的模糊性质,很容易看到有关该漏洞的头条新闻,然后直接跳过这些头条新闻。但是,ECDSA签名实际上在保护互联网系统执行身份验证等关键任务方面起着关键作用。

在我们深入探讨细节之前,如果你想亲身体验黑客如何利用心灵签名。直接跳到我们的 免费实验室-任务 亲自尝试一下。

ECDSA 有什么大不了的?

你以前可能没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,椭圆曲线数字签名算法是一种利用椭圆曲线的数学特性的密码学,提供了目前业界最强大的加密安全性。

这意味着它用于许多重要功能,例如:

  • SSL 证书的签名
  • 加密通信期间的握手
  • SAML
  • JWT 签名
  • OpenID 连接签名

这意味着,ECDSA 是许多保护系统的最敏感功能的关键部分。绕过签名检查的能力可能会造成相当大的毁灭性。

该漏洞是如何利用的?

不幸的是,ECDSA的数学有些复杂。但是要知道的关键是,ECDSA签名包含两条信息: r,s

这些数字用于计算签名的有效性。价值 r 是使用两者的计算的 “结果”(左侧) rs 在方程的右边。鉴于乘以 0 是个坏主意,ECDSA 规范明确指出,如果值为 r 要么 s 永远是 0,它们应该被丢弃。

但是ECDSA的Java实现却忘记了这一点。因此,它将接受两者的签名 rs 是 0,这将永远是正确的。我们可以用 JWT 的例子来演示这一点,展示它有多简单。使用 https://token.dev/,我们可以使用算法 ES256 生成令牌,类似于应用程序生成的代币:

使用算法 ES256 生成的代币

回想一下,一个 JWT 分为 3 个部分:

  • 标题(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

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

DER 对签名值进行编码

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

使用 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,我们努力为开发人员提供有关关键漏洞的最相关信息和动手练习,无论是诸如心理签名之类的最新漏洞,还是已经存在多年的漏洞。

我们认为,要真正控制风险,必须让开发人员从一开始就了解防御机制并编写安全代码。这就是为什么我们为您和受影响的团队创建了针对该漏洞(以及许多其他漏洞)的分步演练。

在演练中,您将能够按照说明在 JWT 中利用 Physic Signature,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation afin de vous envoyer des informations concernant nos produits et/ou des sujets liés à la sécurité informatique. Nous traiterons toujours vos informations personnelles avec la plus grande confidentialité et ne les vendrons jamais à d'autres entreprises à des fins commerciales.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour soumettre le formulaire, veuillez activer les cookies analytiques. Une fois terminé, vous pouvez les désactiver à nouveau si vous le souhaitez.

2022年4月19日, Neil Madden 透露了一个漏洞 在 Oracle Java 15 到 18 以及 OpenJDK 15、17 和 18 中。漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过对这些签名的签名检查。

考虑到 ECDSA 签名的模糊性质,很容易看到有关该漏洞的头条新闻,然后直接跳过这些头条新闻。但是,ECDSA签名实际上在保护互联网系统执行身份验证等关键任务方面起着关键作用。

在我们深入探讨细节之前,如果你想亲身体验黑客如何利用心灵签名。直接跳到我们的 免费实验室-任务 亲自尝试一下。

ECDSA 有什么大不了的?

你以前可能没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,椭圆曲线数字签名算法是一种利用椭圆曲线的数学特性的密码学,提供了目前业界最强大的加密安全性。

这意味着它用于许多重要功能,例如:

  • SSL 证书的签名
  • 加密通信期间的握手
  • SAML
  • JWT 签名
  • OpenID 连接签名

这意味着,ECDSA 是许多保护系统的最敏感功能的关键部分。绕过签名检查的能力可能会造成相当大的毁灭性。

该漏洞是如何利用的?

不幸的是,ECDSA的数学有些复杂。但是要知道的关键是,ECDSA签名包含两条信息: r,s

这些数字用于计算签名的有效性。价值 r 是使用两者的计算的 “结果”(左侧) rs 在方程的右边。鉴于乘以 0 是个坏主意,ECDSA 规范明确指出,如果值为 r 要么 s 永远是 0,它们应该被丢弃。

但是ECDSA的Java实现却忘记了这一点。因此,它将接受两者的签名 rs 是 0,这将永远是正确的。我们可以用 JWT 的例子来演示这一点,展示它有多简单。使用 https://token.dev/,我们可以使用算法 ES256 生成令牌,类似于应用程序生成的代币:

使用算法 ES256 生成的代币

回想一下,一个 JWT 分为 3 个部分:

  • 标题(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

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

DER 对签名值进行编码

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

使用 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,我们努力为开发人员提供有关关键漏洞的最相关信息和动手练习,无论是诸如心理签名之类的最新漏洞,还是已经存在多年的漏洞。

我们认为,要真正控制风险,必须让开发人员从一开始就了解防御机制并编写安全代码。这就是为什么我们为您和受影响的团队创建了针对该漏洞(以及许多其他漏洞)的分步演练。

在演练中,您将能够按照说明在 JWT 中利用 Physic Signature,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

Visionner le webinaire
Commençons.
En savoir plus

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez consulter le rapport.Veuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter les ressources.
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Charlie Eriksen
Publié le 27 avril 2022

Partager sur :
marques LinkedInSocialLogo x

2022年4月19日, Neil Madden 透露了一个漏洞 在 Oracle Java 15 到 18 以及 OpenJDK 15、17 和 18 中。漏洞在于ECDSA签名的加密技术,它允许攻击者完全绕过对这些签名的签名检查。

考虑到 ECDSA 签名的模糊性质,很容易看到有关该漏洞的头条新闻,然后直接跳过这些头条新闻。但是,ECDSA签名实际上在保护互联网系统执行身份验证等关键任务方面起着关键作用。

在我们深入探讨细节之前,如果你想亲身体验黑客如何利用心灵签名。直接跳到我们的 免费实验室-任务 亲自尝试一下。

ECDSA 有什么大不了的?

你以前可能没有听说过ECDSA。它是椭圆曲线数字签名算法的简称,椭圆曲线数字签名算法是一种利用椭圆曲线的数学特性的密码学,提供了目前业界最强大的加密安全性。

这意味着它用于许多重要功能,例如:

  • SSL 证书的签名
  • 加密通信期间的握手
  • SAML
  • JWT 签名
  • OpenID 连接签名

这意味着,ECDSA 是许多保护系统的最敏感功能的关键部分。绕过签名检查的能力可能会造成相当大的毁灭性。

该漏洞是如何利用的?

不幸的是,ECDSA的数学有些复杂。但是要知道的关键是,ECDSA签名包含两条信息: r,s

这些数字用于计算签名的有效性。价值 r 是使用两者的计算的 “结果”(左侧) rs 在方程的右边。鉴于乘以 0 是个坏主意,ECDSA 规范明确指出,如果值为 r 要么 s 永远是 0,它们应该被丢弃。

但是ECDSA的Java实现却忘记了这一点。因此,它将接受两者的签名 rs 是 0,这将永远是正确的。我们可以用 JWT 的例子来演示这一点,展示它有多简单。使用 https://token.dev/,我们可以使用算法 ES256 生成令牌,类似于应用程序生成的代币:

使用算法 ES256 生成的代币

回想一下,一个 JWT 分为 3 个部分:

  • 标题(蓝色)
  • 有效载荷(绿色)
  • 签名(红色)

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

DER 对签名值进行编码

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

使用 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,我们努力为开发人员提供有关关键漏洞的最相关信息和动手练习,无论是诸如心理签名之类的最新漏洞,还是已经存在多年的漏洞。

我们认为,要真正控制风险,必须让开发人员从一开始就了解防御机制并编写安全代码。这就是为什么我们为您和受影响的团队创建了针对该漏洞(以及许多其他漏洞)的分步演练。

在演练中,您将能够按照说明在 JWT 中利用 Physic Signature,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

Table des matières

Télécharger le PDF
Veuillez consulter les ressources.
Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles