Google开放源测试套件用于DEVS查找加密错误
使用加密库很难,并且一个实施错误可能会导致严重的安全问题。为帮助开发人员检查其执行错误的代码并找到加密软件库中的缺点,谷歌已发布了一个测试套件作为Project WycheProof的一部分。
“在加密学中,微妙的错误可能会有灾难性的后果,并且开源加密软件库中的错误太久重复并保持了太长,”谷歌安全工程师丹尼尔布莱因··布尔希纳巴赫和泰国··德·········布尔因··布尔希亨贝赫和泰国··德··德··德··德·博客。
[也关于InfoWorld:19个开源GitHub项目,用于安全专业人员。/发现如何使用InfoWorld安全报告时事通讯保护系统。]以澳大利亚“S Mount Wycheproof,世界上最小的山脉”名为,WycheProof为开发人员提供了一系列单元测试,可检测加密算法中已知的缺点并检查预期行为。第一组测试是用Java编写的,因为Java具有常见的加密接口,可用于测试多个提供程序。
“我们认识到软件工程师修复和防止具有单元测试的错误,我们发现可以通过相同的方式解决许多加密问题,”Bleichenbacker和Duong写道。
该套件可用于测试此类加密算法作为RSA,椭圆曲线密码和经过身份验证的加密等。该项目还具有即用的工具来检查Java加密架构提供程序,例如Bouncy Castle和OpenJDK中的默认提供程序。工程师表示,他们正在将测试转换成测试向量,以简化将它们移植到其他语言的过程。
工程师说,该释放中的测试是低级别的,而不应直接使用,但它们仍然可以应用于测试算法,以测试算法针对公知的攻击。例如,开发人员可以使用WychePrick以验证算法是否容易受到数字签名方案中无效的曲线攻击或偏置的诸如偏置的。
到目前为止,该项目已被用来运行超过80个测试用例,并确定了40多个漏洞,包括在特定情况下可以恢复DSA和ECDHC算法的私钥的一个问题。算法中的弱点是存在,因为图书馆没有检查他们从外部所接收的椭圆曲线点。
“公钥的编码通常包含公钥点的曲线。如果在密钥交换中使用此类编码,则要检查用于计算共享ECDH机密的公共和密钥是否使用相同的曲线是很重要的。根据可用文档,某些库未能完成此检查。
加密图书馆可能很难实现,攻击者经常寻找弱加密实现,而不是试图打破加密的实际数学。通过WycheProof,开发人员和用户可以针对大量已知攻击检查他们的库,而无需挖掘学术论文,以了解他们需要担心的攻击。
工程师通过公共加密文学观察并实现了已知的攻击以构建测试套件。然而,开发人员不应该考虑套件全面或能够检测到所有缺点,因为始终被发现和披露了新的弱点。
“项目Wycheproof绝不是完整的。传递测试并不意味着图书馆是安全的,这只是意味着它并不容易受到投影Wycheproof尝试检测的攻击的影响,“工程师写道。
谷歌发布了一个模糊机后,WycheProof两周来帮助开发人员在开源软件中发现编程错误。像OSS-Fuzz一样,Github上的所有WycheProof的代码都可以使用。OSS-Fuzz仍处于Beta,但它已经通过了4万亿测试用例,并且自公开宣布以来,开源项目中未发现150个错误。
这个故事,“Google Open-Sources测试套件用于查找加密错误”最初由Infoworld发布。