测试加密方案中的缺陷?试试谷歌的这款工具(附下载地址)

摘要

来自谷歌的安全专家最近开发了一款测试工具Wycheproof,开发者可用它来发现加密方案中存在的缺陷。

这款工具中部署了一些比较常见的加密攻击。据说这套测试已经帮助谷歌安全专家发现加密库中超过40个安全BUG,并且他们也已经将问题呈报给了供应商。

测试加密方案中的缺陷?试试谷歌的这款工具(附下载地址)

Wycheproof有什么用?

Wycheproof由Google安全小组的成员开发和维护,但不是Google的官方产品。取名灵感来自于世界上最小的山——Mount Wycheproof,仅43米高,寓意开发这个工具是谷歌安全小组要实现的一个小目标。毕竟,越小的山越容易爬嘛~

Wycheproof的开发者在博客中提到:

要知道在密码学中,微妙的错误可能导致灾难性的后果。我们发现第三方加密软件库频繁落入已有的“陷阱”,这样很耗时间。 然而,健全的处理方法却很难实现,因为要理解如何安全地落实密码可能需要吃透几十年的密码学学术文献。我们知道软件工程师会通过单元测试的方式修复或防止产生漏洞,我们发现加密漏洞可以通过这样的方式来解决。

有了这些发现,于是我们开始开发Wycheproof项目。通过一系列单元测试,检测某些加密算法的已知弱点或是检查预期行为。 Wycheproof项目为大多数加密算法提供测试,包括RSA,椭圆曲线加密和认证加密。我们的密码学家系统地调查了文献,大多数已知的攻击已经落实到了工具中。Wycheproof有超过80个测试方案,搞定超过40个bug

但值得一提的是,通过了Wycheproof的测试并不代表这个加密库是安全的,只能证明它不容易受到Wycheproof测试项目的攻击。密码学家也在不断地发现新的攻击。不过,有了Wycheproof开发者或是用户就可以直接应用大量的已知攻击测试他们的加密库,而无需花费多年阅读学术论文或自己成为密码学专家。

下载地址

可以做的测试:

Wycheproof项目包括最流行的加密算法测试

AES-EAX

AES-GCM

DH

DHIES

DSA

ECDH

ECDSA

ECIES

RSA

可以检测加密库中的许多攻击,包括:

无效曲线攻击(Invalid curve attacks)

数字签名方案中的biased nonces

所有的Bleichenbacher攻击

还有更多 – Wycheproof拥有超过80个测试用例

使用说明

安装Bazel

安装 Java 密码扩展无限制权限策略文件,这个文件允许测试使用大型密钥。 否则会有很多“iilegal key size”异常。

检查测试

git clone https://github.com/google/wycheproof.git

测试最新稳定版本Bouncy Castle

bazel test BouncyCastleAllTests

测试其他版本。比如v1.52

bazel test BouncyCastleAllTests_1_52

测试所有已知版本

bazel test BouncyCastleAllTests_*

测试Spongy Castle,用Spongy Castle替换BouncyCastle

bazel test SpongyCastleAllTests

测试当前安装的OpenJDK

bazel test OpenJDKAllTests

使用时要注意的地方:

请注意,OpenJDKAllTests需要OpenJDK是您的默认JDK,如果您使用其他JDK,可能无法运行,其结果可能不正确。 如果您从Oracle或https://java.com下载了JDK,那么您可能使用的是Oracle JDK,它应该与OpenJDK兼容,测试应该能够正确运行。

有些测试需要很长时间才能完成。 如果要排除这些测试,请使用BouncyCastleTest,SpongyCastleTest或OpenJDKTest,它们会排除所有慢速测试(标有@SlowTest注释)。

每一次测试失败都有可能是安全隐患,想要了解更多关于测试失败的原因可以查看GitHub上的文档或者相应的测试项目的函数和注释。

*参考来源:github,FB小编bimeover编译,转载请注明来自FreeBuf.COM 

广告也精彩

来自谷歌的安全专家最近开发了一款测试工具Wycheproof,开发者可用它来发现加密方案中存在的缺陷。

这款工具中部署了一些比较常见的加密攻击。据说这套测试已经帮助谷歌安全专家发现加密库中超过40个安全BUG,并且他们也已经将问题呈报给了供应商。

测试加密方案中的缺陷?试试谷歌的这款工具(附下载地址)

Wycheproof有什么用?

Wycheproof由Google安全小组的成员开发和维护,但不是Google的官方产品。取名灵感来自于世界上最小的山——Mount Wycheproof,仅43米高,寓意开发这个工具是谷歌安全小组要实现的一个小目标。毕竟,越小的山越容易爬嘛~

Wycheproof的开发者在博客中提到:

要知道在密码学中,微妙的错误可能导致灾难性的后果。我们发现第三方加密软件库频繁落入已有的“陷阱”,这样很耗时间。 然而,健全的处理方法却很难实现,因为要理解如何安全地落实密码可能需要吃透几十年的密码学学术文献。我们知道软件工程师会通过单元测试的方式修复或防止产生漏洞,我们发现加密漏洞可以通过这样的方式来解决。

有了这些发现,于是我们开始开发Wycheproof项目。通过一系列单元测试,检测某些加密算法的已知弱点或是检查预期行为。 Wycheproof项目为大多数加密算法提供测试,包括RSA,椭圆曲线加密和认证加密。我们的密码学家系统地调查了文献,大多数已知的攻击已经落实到了工具中。Wycheproof有超过80个测试方案,搞定超过40个bug

但值得一提的是,通过了Wycheproof的测试并不代表这个加密库是安全的,只能证明它不容易受到Wycheproof测试项目的攻击。密码学家也在不断地发现新的攻击。不过,有了Wycheproof开发者或是用户就可以直接应用大量的已知攻击测试他们的加密库,而无需花费多年阅读学术论文或自己成为密码学专家。

下载地址

可以做的测试:

Wycheproof项目包括最流行的加密算法测试

AES-EAX

AES-GCM

DH

DHIES

DSA

ECDH

ECDSA

ECIES

RSA

可以检测加密库中的许多攻击,包括:

无效曲线攻击(Invalid curve attacks)

数字签名方案中的biased nonces

所有的Bleichenbacher攻击

还有更多 – Wycheproof拥有超过80个测试用例

使用说明

安装Bazel

安装 Java 密码扩展无限制权限策略文件,这个文件允许测试使用大型密钥。 否则会有很多“iilegal key size”异常。

检查测试

git clone https://github.com/google/wycheproof.git

测试最新稳定版本Bouncy Castle

bazel test BouncyCastleAllTests

测试其他版本。比如v1.52

bazel test BouncyCastleAllTests_1_52

测试所有已知版本

bazel test BouncyCastleAllTests_*

测试Spongy Castle,用Spongy Castle替换BouncyCastle

bazel test SpongyCastleAllTests

测试当前安装的OpenJDK

bazel test OpenJDKAllTests

使用时要注意的地方:

请注意,OpenJDKAllTests需要OpenJDK是您的默认JDK,如果您使用其他JDK,可能无法运行,其结果可能不正确。 如果您从Oracle或https://java.com下载了JDK,那么您可能使用的是Oracle JDK,它应该与OpenJDK兼容,测试应该能够正确运行。

有些测试需要很长时间才能完成。 如果要排除这些测试,请使用BouncyCastleTest,SpongyCastleTest或OpenJDKTest,它们会排除所有慢速测试(标有@SlowTest注释)。

每一次测试失败都有可能是安全隐患,想要了解更多关于测试失败的原因可以查看GitHub上的文档或者相应的测试项目的函数和注释。

*参考来源:github,FB小编bimeover编译,转载请注明来自FreeBuf.COM 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: