谷歌开源测试套件,以发现密码漏洞

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

未知的

使用密码库非常困难,可能会导致一个简单的实现错误严重的安全问题。为了帮助开发人员检查代码的实现错误并发现加密软件库中的弱点,谷歌发布了一个测试套件项目Wycheproof

谷歌的安全工程师Daniel Bleichenbacher和Thai Duong在一篇文章中写道:“在密码学中,微小的错误可能会带来灾难性的后果,开源加密软件库中的错误重复得太频繁,而且长时间没有被发现。谷歌安全博客

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

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

该套件可用于测试RSA、椭圆曲线加密和身份验证加密等加密算法。该项目还提供了随时可用的工具来检查Java加密体系结构提供程序,比如Bouncy Castle和OpenJDK中的默认提供程序。工程师们说,他们正在将这些测试转换成测试向量集,以简化将它们移植到其他语言的过程。

这些工程师说,这一版本的测试是低级的,不应该直接使用,但它们仍然可以用于测试针对已知攻击的算法。例如,开发人员可以使用Wycheproof来验证算法在数字签名方案中是否容易受到无效的曲线攻击或有偏差的nonces的攻击。

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

“公钥编码通常包含公钥点的曲线。如果在密钥交换中使用这种编码,那么检查用于计算共享ECDH密钥的公钥和密钥是否使用相同的曲线是很重要的。一些库没有做到这一点,”根据可用的文档。

加密库的实现非常困难,攻击者经常寻找弱加密实现,而不是试图破坏加密背后的实际数学。使用Wycheproof,开发人员和用户可以针对大量已知的攻击检查他们的库,而不需要通过学术论文来找出他们需要担心的攻击类型。

工程师们查阅了公共密码文献,并实现了已知的攻击来构建测试套件。但是,开发人员不应该认为套件是全面的或者能够发现所有的弱点,因为新的弱点总是会被发现和发现。

“所见即所得项目绝不是完整的。通过测试并不意味着该库是安全的,它只是意味着它不容易受到Project Wycheproof试图检测到的攻击,”工程师们写道。

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

这篇文章,“谷歌开源测试套件发现密码漏洞”最初是由信息世界

加入网络世界社区吧足球竞猜app软件脸谱网LinkedIn对大家最关心的话题发表评论。

版权©2016足球竞彩网下载

工资调查:结果在