密码算法库模糊测试技术研究综述OA北大核心CSTPCD
Overview of Cryptographic Library Fuzz Testing Techniques
密码算法库是提供加密、解密、签名、验证等多种密码学相关功能的基础软件库.为了保证网络传输的安全性,很多系统软件都会使用密码算法库来实现数据的隐私性,以确保数据不被恶意窃取利用.但是,密码算法库的实现过程中往往会引入一些漏洞,这些漏洞会导致系统在使用库中的函数时出现内存崩溃或者加密逻辑失效等后果,对系统的安全性和可用性带来极大的影响.模糊测试是一种检测软件实现漏洞的有效技术,它通过生成大量的测试输入,观察被测软件的反馈,进而检测漏洞是否存在.这种技术已经被应用于密码算法库的漏洞检测中,并且发现了包括OpenSSL、SymCrypt、Crypto++等常用的密码算法库中的漏洞.本文通过总结对密码算法库进行高效测试的主要难点,分析了对密码算法库进行模糊测试的核心需求,并提出了密码算法库模糊测试工具所面临的主要挑战.接着,针对目前常用的6款面向密码算法库的模糊测试工具进行了剖析和评估.最后,根据目前的工具在漏洞挖掘能力、代码覆盖率和输入有效性等评估指标上的表现,提出了密码算法库模糊测试未来可能的研究方向和优化策略.
The cryptographic algorithm library is a fundamental software library that provides various cryptographic related functions such as encryption,decryption,signature,and verification.In order to ensure the security of network transmission,many system software use cryptographic algorithm libraries to protect data security,to ensure that data is not maliciously stolen or exploited.However,in the implementation process of cryptographic algorithm libraries,vulnerabilities are often introduced,which can lead to memory crashes or encryption logic failures when using functions in the library,greatly affecting the security and availability of the system.Fuzz testing is an effective technique for detecting software implementation vulnerabilities.It generates a large amount of test inputs,observes the feedback of the tested software,and then detects the vulnerabilities.This technology has been applied in cryptographic algorithm libraries,and many vulnerabilities have been discovered in commonly used cryptographic algorithm libraries such as OpenSSL,SymCrypt,and Crypto++.This paper analyzes the main difficulties in conducting efficient testing on cryptographic algorithm libraries,proposes the requirements for conducting fuzz testing on cryptographic algorithm libraries,and presents the main challenges faced by cryptographic algorithm library fuzz testing tools.This paper also analyzes and evaluates the 6 commonly used fuzz testing tools for cryptographic algorithm libraries.Finally,based on the performance of current tools in evaluating metrics such as vulnerability mining ability,code coverage,and input validity,this paper proposes some possible research directions and optimization strategies for fuzz testing of cryptographic algorithm libraries.
马福辰;周远航;陈元亮;颜臻;姜宇;孙家广
清华大学软件学院,北京100084
计算机与自动化
模糊测试密码算法库漏洞挖掘
software testingcryptographic libraryvulnerability detection
《密码学报》 2024 (003)
504-520 / 17
国家重点研发计划(2022YFB3104000)National Key Research and Development Program of China(2022YFB3104000)
评论