English

Cipherfix: Mitigating Ciphertext Side-Channel Attacks in Software

Cryptography and Security 2023-09-25 v2

Abstract

Trusted execution environments (TEEs) provide an environment for running workloads in the cloud without having to trust cloud service providers, by offering additional hardware-assisted security guarantees. However, main memory encryption as a key mechanism to protect against system-level attackers trying to read the TEE's content and physical, off-chip attackers, is insufficient. The recent Cipherleaks attacks infer secret data from TEE-protected implementations by analyzing ciphertext patterns exhibited due to deterministic memory encryption. The underlying vulnerability, dubbed the ciphertext side-channel, is neither protected by state-of-the-art countermeasures like constant-time code nor by hardware fixes. Thus, in this paper, we present a software-based, drop-in solution that can harden existing binaries such that they can be safely executed under TEEs vulnerable to ciphertext side-channels, without requiring recompilation. We combine taint tracking with both static and dynamic binary instrumentation to find sensitive memory locations, and mitigate the leakage by masking secret data before it gets written to memory. This way, although the memory encryption remains deterministic, we destroy any secret-dependent patterns in encrypted memory. We show that our proof-of-concept implementation protects various constant-time implementations against ciphertext side-channels with reasonable overhead.

Keywords

Cite

@article{arxiv.2210.13124,
  title  = {Cipherfix: Mitigating Ciphertext Side-Channel Attacks in Software},
  author = {Jan Wichelmann and Anna Pätschke and Luca Wilke and Thomas Eisenbarth},
  journal= {arXiv preprint arXiv:2210.13124},
  year   = {2023}
}

Comments

Jan Wichelmann and Anna P\"atschke contributed equally to this work