Java密码学在野外的应用

2020-09-04 05:43:11

下载PDF摘要:[背景]先前的研究表明,开发人员经常误用加密API。[目的]我们进行了一次探索性的研究,以了解加密API在开源Java项目中是如何使用的,存在哪些类型的误用,以及开发人员为什么会犯这样的错误。[方法]我们使用静态分析工具对数百个依赖于Java CryptographyArchitecture的开源Java项目进行了分析,并手动检查了一半的分析结果来评估整体结果。我们还联系了这些项目的维护人员,在每个项目的GitHub存储库上创建了一个问题,并与开发人员讨论了误用问题。[结果]我们了解到85%的密码API被误用,但并不是每一次误用都会造成严重的后果。开发人员反馈显示,Crypto API文档中的安全警告很少,开发人员可能会忽略源自第三方代码的误用,应该考虑使用Crypto API的上下文。[结论]我们的结论是,使用Crypto API对于开发人员来说仍然是有问题的,但盲目地将这种误用归咎于他们可能会导致错误的结论。