Whenever a running program needs to do anything useful – such as write to a file or open a network connection – it has to temporarily hand control of the processor to the kernel to carry out the job. This mode switching between programs and the kernel are potentially time consuming. In order to be as efficient as possible, CPUs can attempt to guess what code is going to be run next, fetch it, and execute it. This is called “speculative execution.” Modern processors, like Intel’s, perform speculative execution.
In addition to supporting system operations, the kernel also typically hosts in its memory sensitive information such as cryptograhic keys, login credentials, cached files, etc… This kernel memory is normally protected from normal programs to protect this sensitive information via isolation.
Meltdown breaks security assumptions given by the CPU’s memory isolation capabilities. Meltdown – on Intel CPUs and the Arm Cortex-A75 – allows normal applications to read protected kernel memory, allowing them to steal passwords and other secrets. Spectre allows normal apps to potentially steal information from other apps, the kernel, or the underlying hypervisor. This happens because speculative execution can expose kernel memory when the CPU can allow operations to be performed speculatively without checking that these speculative executions would normally be forbidden.
Because of the Spectre and Meltdown design flaws, user programs with low privileges can read protected kernel memory. If an attacker can find a way to install a normal program on your computer, they could then be able to read passwords stored in the kernel memory, private encryption keys, files cached from the hard drive and more.
Encrypted computing technologies, such as homomorphic encryption, can protect against exploits that leverage the Spectre and Meltdown bugs. These types of solutions would be based on the same underlying technology Duality is developing for all its product offerings. More information to introduce homomorphic encryption can be found here. Sensitive information stored in memory, if always encrypted, would be of no value to an adversary, even if leaked. Although encrypted computing technologies would not protect all information from exploits that use these bugs, homomorphic encryption could protect sensitive encrypted information uploaded to a cloud for processing.