É possível criptografar uma máquina virtual ou contêiner para que o host não consiga ler nenhum de seus dados? [duplicado]

3

Eu estou querendo saber se seria teoricamente possível para um provedor de hospedagem em nuvem executar um aplicativo para um cliente em que o cliente não confia no provedor de hospedagem com os dados no aplicativo. O cliente enviaria uma imagem de máquina virtual (ou semelhante) e o host a executaria, mas não conseguiria ler nenhum de seus dados.

Isso parece impossível, porque o convidado precisa descriptografar os dados na memória para usá-los, e o host pode ler diretamente a memória da máquina virtual sempre que quiser.

Existe algum truque para contornar esse problema? Ou qualquer tipo de solução parcial que dificulte o acesso do host aos dados dentro da máquina virtual?

EDIT: Eu percebo que o convidado pode facilmente armazenar dados criptografados que nunca descriptografa, como um e-mail criptografado sendo passado de um usuário para outro. Eu estou querendo saber se os dados que o convidado pode ler podem ser ilegíveis para o host.

    
por gesgsklw 06.05.2016 / 00:06

2 respostas

1

Em suma, não.

Por definição, o host tem acesso a todos dos dados aos quais o convidado tem acesso. Isso inclui memória, disco, buffers de rede, cache de CPU, etc.

O convidado precisa manter a chave de decodificação disponível para poder ler blocos criptografados (normalmente na RAM), onde poderia ser facilmente lida pelo host.

Para repetir o comentário acima, se você não confiar no host, encontre outro host em que confia ou apenas hospede as coisas sozinho.

    
por 06.05.2016 / 01:29
0

Isso não é tão impossível quanto parece. Os sistemas Criptografia homomórfica permitem que operações computacionais sejam realizadas em dados criptografados sem descriptografá-los primeiro.

No entanto, não parece ser particularmente prático (pelo menos até agora) para uso geral. Por um lado, mesmo os criptosistemas homomórficos "totalmente" que foram desenvolvidos até agora apenas calculam a saída de circuitos binários em vez de, por exemplo, programas de computador - e enquanto os circuitos binários são totalmente genéricos, você tem que reformular qualquer computação que você queira nesse formato para executá-lo. E mesmo assim, não é muito eficiente: de acordo com o artigo da Wikipedia, "No final de 2014, uma reimplementação da avaliação homomórfica do circuito de criptografia AES usando HElib, relatou um tempo de avaliação de pouco mais de quatro minutos com 120 entradas, trazendo o tempo de amortização por entrada para cerca de 2 segundos. " Compare isso com o desempenho relatado para uma CPU Intel com aceleração AES: [este artigo] relata uma CPU Haswell de 2.60GHz acionando 663.8 MiB / s em AES-128-CBC, que (se eu tiver feito minha matemática correta) é sobre 90 milhões de vezes mais rápido que o cálculo criptografado homomorficamente.

    
por 07.05.2016 / 06:03