The security of the Internet rests on a small number of open-source cryptographic libraries: a vulnerability in any one of them threatens to compromise a significant percentage of web traffic. Despite this potential for security impact, the characteristics and causes of vulnerabilities in cryptographic software are not well understood. In this work, we conduct the first comprehensive analysis of cryptographic libraries and the vulnerabilities affecting them. We collect data from the National Vulnerability Database, individual project repositories and mailing lists, and other relevant sources for eight widely used cryptographic libraries. Among our most interesting findings is that only 27.2% of vulnerabilities in cryptographic libraries are cryptographic issues while 37.2% of vulnerabilities are memory safety issues, indicating that systems-level bugs are a greater security concern than the actual cryptographic procedures. In our investigation of the causes of these vulnerabilities, we find evidence of a strong correlation between the complexity of these libraries and their (in)security, empirically demonstrating the potential risks of bloated cryptographic codebases. We further compare our findings with non-cryptographic systems, observing that these systems are, indeed, more complex than similar counterparts, and that this excess complexity appears to produce significantly more vulnerabilities in cryptographic libraries than in non-cryptographic software.
翻译:互联网的安全取决于少数开放源码加密图书馆:其中任何一个图书馆都存在脆弱性,有可能损害网络流量的相当大比例。尽管存在这种潜在的安全影响,但加密软件中薄弱环节的特点和原因并没有得到很好理解。在这项工作中,我们对加密图书馆和影响这些图书馆的薄弱环节进行了第一次全面分析。我们从国家脆弱性数据库、单个项目储存库和邮寄名单以及8个广泛使用的加密图书馆的其他相关来源收集数据。我们最有趣的发现是,加密图书馆中只有27.2%的薄弱环节是加密问题,而37.2%的薄弱环节是记忆安全问题,这表明系统级的错误是比实际加密程序更令人担心的安全问题。在调查这些薄弱环节的原因时,我们发现有证据表明这些图书馆的复杂性与这些图书馆(在安全方面)之间有很强的关联性,从经验上展示了布满的加密代码库的潜在风险。我们进一步将我们的调查结果与非加密系统作了比较,我们发现这些系统确实比类似对应系统复杂得多,而且这种过分复杂的软件在非加密图书馆中似乎具有更大的脆弱性。