现实世界中的 Python 加密误用
软件工程
2021-09-03 v1 密码学与安全
摘要
背景:先前的研究表明,使用加密 API 的 Java 应用中高达 99.59% 至少误用一次该 API。然而,这些研究是在 Java 和 C 上进行的,而其他语言的实证研究尚属缺失。例如,一项针对 Python 加密任务的受控用户研究表明,68.5% 的专业开发者能为加密任务写出安全解决方案。目的:为理解该观察是否适用于真实世界代码,我们开展了一项关于 Python 中加密误用的研究。方法:我们开发了一个静态分析工具,覆盖 5 种不同 Python 加密 API 的常见误用。利用该分析,我们分析了来自 GitHub 的 895 个流行 Python 项目以及 51 个用于嵌入式设备的 MicroPython 项目。此外,我们将结果与先前研究的发现进行了比较。结果:我们的分析显示,52.26% 的 Python 项目至少存在一处误用。进一步,一些 Python 加密库的 API 设计有助于开发者避免误用加密函数,而这在针对 Java 和 C 代码的研究中要常见得多。结论:我们得出结论,良好的 API 设计对 Python 应用的加密误用具有积极影响。此外,我们对 MicroPython 项目的分析揭示了混合分析的重要性。
引用
@article{arxiv.2109.01109,
title = {Python Crypto Misuses in the Wild},
author = {Anna-Katharina Wickert and Lars Baumgärtner and Florian Breitfelder and Mira Mezini},
journal= {arXiv preprint arXiv:2109.01109},
year = {2021}
}
备注
6 pages, to be published in the proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM) (ESEM 21), October 11-15, 2021, Bari Italy