This chapter covers:
- The issues that cryptography faces in highly-adversarial environments.
- The solutions that hardware offers to increase the attacker’s cost in such environments.
- How software mitigations can help against side-channel attacks.
Cryptographic primitives and protocols are often described as isolated building blocks, as if they were running in a blackbox far from any adversary. In practice, this is an unrealistic assumption that has often proven wrong. In the real world, cryptography runs in all kinds of environments, and is subject to all sorts of threats. In this chapter I’ll look at the more extreme scenarios, the highly-adversarial environments, and what you can do to protect your keys and your data in these situations. Spoiler alert: it involves using specialized hardware.
| Present-day computer and network security starts with the assumption that there is a domain that we can trust. For example: if we encrypt data for transport over the Internet, we generally assume the computer that’s doing the encrypting is not compromised and that there’s some other "endpoint" at which it can be safely decrypted. |
||
| -- Joanna Rutkowska Intel x86 considered harmful (2015) | ||