SCW 아이콘
영웅 배경, 구분선 없음
블로그

心灵签名-你需要知道的

찰리 에릭슨
게시됨 Apr 27, 2022
마지막 업데이트: 2026년 3월 9일

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

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

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

ECDSA 有什么大不了的?

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

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

  • SSL 证书的签名
  • 加密通信期间的握手
  • 증권 시세 표시기
  • 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,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

리소스 보기
리소스 보기

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

더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약
공유하기:
링크드인 브랜드사회적x 로고
저자
찰리 에릭슨
게시일: Apr 27, 2022

공유하기:
링크드인 브랜드사회적x 로고

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

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

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

ECDSA 有什么大不了的?

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

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

  • SSL 证书的签名
  • 加密通信期间的握手
  • 증권 시세 표시기
  • 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,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요

귀하의 허락을 받아 저희 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 매우 신중하게 취급되며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 "분석" 쿠키를 활성화하십시오. 완료 후에는 원할 때 다시 비활성화할 수 있습니다.

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

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

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

ECDSA 有什么大不了的?

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

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

  • SSL 证书的签名
  • 加密通信期间的握手
  • 증권 시세 표시기
  • 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,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

웹 세미나 시청
시작하자
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
찰리 에릭슨
게시일: Apr 27, 2022

공유하기:
링크드인 브랜드사회적x 로고

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

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

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

ECDSA 有什么大不了的?

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

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

  • SSL 证书的签名
  • 加密通信期间的握手
  • 증권 시세 표시기
  • 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,并实时查看其对正常运行的应用程序的影响。

现在就试试吧。

목록

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물