iVault: Architectural Code Concealing Techniques to Protect Cryptographic Keys
摘要
Memory corruption bugs remain a significant concern in applications developed using memory-unsafe languages, such as C/C++. Adversaries can exploit these bugs and perform arbitrary read and write operations. These arbitrary reads can target cryptographic keys, severely compromising their secure operation. In this paper, we introduce iVault a lightweight approach to securely store private and secret cryptographic keys. iVault encodes cryptographic keys within the machine instruction immediates and leverage architectural mechanisms to protect the .text segment from being disclosed. We assess iVault in terms of performance and code size expansion, and we show that it represents a viable solution for safeguarding cryptographic keys.