Si bien Thomas Pornin señala correctamente que la única forma de confiar en un host atacado es mediante el uso de cifrado totalmente homomórfico en la práctica, puede intentar evitar este requisito.
Un atacante potencial tiene control total de la CPU, la memoria y el disco. Por lo tanto, no es posible realizar ningún cálculo sobre datos valiosos en una máquina virtual que podría no estar bajo su control. Por otro lado a menudo no es necesario. Si desea utilizar su máquina virtual como base de datos o servicio de almacenamiento / respaldo, la máquina virtual nunca necesita acceso a información no cifrada. Puede almacenar archivos o entradas en una base de datos, almacenar hashes de los archivos cifrados o nombres de archivos y, por ejemplo, ordene por tamaño de archivo o recupere un archivo determinado donde el cliente proporciona el nombre del archivo como un valor de hash.
Tal esquema limita lo que puede hacer con sus datos, pero dado un buen cifrado es imposible que un atacante pueda robar sus datos. En el peor de los casos, pueden modificarlo, por lo que necesita firmas cifradas para evitar la manipulación de los datos.
Un ejemplo popular es boxcryptor , que utiliza un contenedor cifrado para almacenar archivos de forma segura en diferentes proveedores de la nube. Otra es duplicity , que permite realizar copias de seguridad cifradas mediante rsync y GnuPG.
Encriptando el almacenamiento de la máquina virtual en sí, por ejemplo, Truecrypt o Bitlocker no aumenta significativamente el nivel de seguridad. Podría frustrar un ataque si la máquina virtual está apagada, pero tan pronto como la ejecute, el sistema operativo necesitará la clave para acceder al volumen cifrado y, en ese momento, un atacante potencial también podrá obtener la clave.