Despite its ever-increasing impact, security is not considered as a design objective in commercial electronic design automation (EDA) tools. This results in vulnerabilities being overlooked during the software-hardware design process. Specifically, vulnerabilities that allow leakage of sensitive data might stay unnoticed by standard testing, as the leakage itself might not result in evident functional changes. Therefore, EDA tools are needed to elaborate the confidentiality of sensitive data during the design process. However, state-of-the-art implementations either solely consider the hardware or restrict the expressiveness of the security properties that must be proven. Consequently, more proficient tools are required to assist in the software and hardware design. To address this issue, we propose SoftFlow, an EDA tool that allows determining whether a given software exploits existing leakage paths in hardware. Based on our analysis, the leakage paths can be retained if proven not to be exploited by software. This is desirable if the removal significantly impacts the design's performance or functionality, or if the path cannot be removed as the chip is already manufactured. We demonstrate the feasibility of SoftFlow by identifying vulnerabilities in OpenSSL cryptographic C programs, and redesigning them to avoid leakage of cryptographic keys in a RISC-V architecture.
翻译:尽管安全问题的影响日益加剧,但在商业电子设计自动化(EDA)工具中,安全性并未被纳入设计目标。这导致软硬件设计过程中的漏洞被忽略。具体而言,允许敏感数据泄露的漏洞可能因泄露本身未引发明显的功能变化,而在标准测试中被忽视。因此,亟需在设计过程中通过EDA工具阐明敏感数据的机密性。然而,现有实现要么仅考虑硬件层面,要么限制了需证明的安全属性的表达能力。为此,我们提出SoftFlow——一种能够判定给定软件是否利用了硬件中存在的数据泄露路径的EDA工具。基于我们的分析,若软件未被证明会利用泄露路径,则可保留该路径。这在以下场景中尤为必要:若移除该路径会显著影响设计的性能或功能,或因芯片已制造完成而无法移除。我们通过识别OpenSSL加密C程序中的漏洞,并重新设计程序以避免在RISC-V架构中泄露加密密钥,验证了SoftFlow的可行性。