谷歌开源测试套件,用于发现加密漏洞

开发人员可以使用Project Wycheproof来测试针对已知攻击库的密码算法,以发现潜在的弱点

谷歌开源测试套件,用于发现加密漏洞
未知的

使用密码库是困难的,并且一个实现错误就会导致严重的安全问题.为了帮助开发人员检查他们的代码实现错误,并找到密码软件库中的弱点,谷歌发布了一个测试套件项目Wycheproof

谷歌安全工程师丹尼尔·布莱申巴赫(Daniel Bleichenbacher)和泰·杜恩(Thai Duong)在发布该项目公告的帖子中写道:“在密码学中,细微的错误可能会带来灾难性的后果,而开源密码软件库中的错误重复得太频繁,而且被发现的时间太长。谷歌安全博客

Wycheproof以澳大利亚的Wycheproof山命名,这是世界上最小的山。Wycheproof为开发人员提供了一组单元测试,可以检测密码算法中的已知弱点,并检查预期行为。第一组测试是用Java编写的,因为Java有一个通用的加密接口,可以用来测试多个提供程序。

Bleichenbacker和Duong写道:“我们认识到软件工程师通过单元测试修复和防止漏洞,我们发现许多密码问题可以用同样的方法解决。”

该套件可用于测试诸如RSA、椭圆曲线密码学和认证加密等密码算法。该项目还提供了现成的工具来检查Java Cryptography Architecture的提供者,比如Bouncy Castle和OpenJDK中的默认提供者。工程师们表示,他们正在将测试转换为测试向量集,以简化将它们移植到其他语言的过程。

工程师说,该释放中的测试是低级别的,而不应直接使用,但它们仍然可以应用于测试算法,以测试算法针对公知的攻击。例如,开发人员可以使用WychePrick以验证算法是否容易受到数字签名方案中无效的曲线攻击或偏置的诸如偏置的。

到目前为止,该项目已被用于运行80多个测试用例,并确定了40多个漏洞,其中一个问题是DSA和ECDHC算法的私钥在特定情况下可以恢复。该算法的弱点在于库没有检查从外部来源接收到的椭圆曲线点。

“公钥的编码通常包含公钥点的曲线。如果在密钥交换中使用这样的编码,那么检查用于计算共享ECDH秘密的公共和密钥是否使用相同的曲线非常重要根据可用文档,一些图书馆未能完成此检查。

密码库可能很难实现,攻击者经常寻找弱密码实现,而不是试图打破加密的实际数学基础。有了Wycheproof,开发人员和用户可以针对大量已知的攻击检查他们的库,而不必去挖掘学术论文来找出他们需要担心的攻击类型。

工程师通过公共加密文学观察并实现了已知的攻击以构建测试套件。然而,开发人员不应该考虑套件全面或能够检测到所有缺点,因为始终被发现和披露了新的弱点。

“Wycheproof计划还没有完成。通过测试并不意味着库是安全的,它只是意味着它不会轻易受到Wycheproof项目试图检测到的攻击,”工程师们写道。

Wycheproof是在谷歌发布了一款帮助开发者发现开源软件编程错误的fuzzer两周后发布的。就像OSS-fuzz., Wycheproof的所有代码都可以在GitHub上找到。OSS-Fuzz仍处于测试阶段,但自从它被公开发布以来,已经通过了4万亿次测试,并在开源项目中发现了150个bug。

这个故事“谷歌开源测试套件寻找加密漏洞”最初是由信息世界

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。

版权©2016Raybet2

IT薪水调查2021:结果已经出来了