I was taking a look into the paper PHANTOM: Practical Oblivious Computation in a Secure Processor. The introduction says,
Confidentiality of data is a major concern for enterprises and individuals who wish to offload computation to the cloud. In particular, cloud operators have physical access to machines and can observe sensitive information (data and code) as it moves between a CPU and physical memory. In response to such attacks, commercial interest in protecting off-chip data has begun to grow.
To protect against such attacks, prior work has proposed secure processors that automatically encrypt and integrity-check all data outside the processor – whether in DRAM or non-volatile storage. Although secure processors encrypt memory contents, off-the-shelf DRAMs require that memory addresses be transmitted over the memory bus in cleartext. An attacker with physical access can snoop the memory bus and observe the locations of RAM accessed and in turn learn sensitive data such as encryption keys or information about user-level programs and guest VMs in a virtualized server.
The assumption of a secure processor looks kind of far-fetched to me.
- If the processor is hosted at cloud, why is even the on-chip data being considered to be secure given that the hardware is in complete control of the cloud service provider?
- If the cloud service provider is untrusted, what is the guarantee that they will run the program on a secure processor, not an ordinary one?