Em 2019, um conjunto de fabricantes de processadores, fornecedores de serviços na nuvem e empresas de software (entre outros, Alibaba, AMD, Baidu, Fortanix, Google, IBM/Red Hat, Intel, Microsoft, Oracle, Swisscom, Tencent e VMware) juntaram-se para formar o Confidential Computing Consortium (CCC), sob os auspícios da The Linux Foundation.
O objectivo deste consórcio passava por definir de um conjunto de padrões para a tecnologia de computação confidencial e promover o desenvolvimento de ferramentas de código aberto para a utilização desta tecnologia. Os primeiros projectos deste consórcio foram o Open Enclave SDK e o Red Hat Enarx – ambos servem para ajudar no desenvolvimento de aplicações que funcionem sem grandes alterações, em todas as plataformas.
O papel da nuvem
A computação confidencial é uma tecnologia de computação na cloud (nuvem) que isola os dados confidenciais num enclave de CPU, que os protege durante o processamento. O conteúdo do enclave – os dados que estão a ser processados e as técnicas necessárias para os processar – são acessíveis apenas ao código de programação autorizado. Além disso, são invisíveis e desconhecidos para qualquer outra pessoa, incluindo o fornecedor de serviços de nuvem.
Como os líderes das empresas dependem cada vez mais de serviços de armazenamento e processamento híbridos na nuvem, e acessíveis ao público, a privacidade dos dados é imperativa. O principal objectivo é garantir que os dados que estão na nuvem estão protegidos e permanecem confidenciais. Isto é uma motivação-extra para a utilização de serviços na cloud mais acessíveis ao público, ao contrário dos serviços completamente privados, que têm de ser criados de raíz.
Há muito tempo que os fornecedores de serviços de nuvem oferecem opções de criptografia para ajudar a proteger dados em “repouso” (em armazenamento e em bases de dados) em “trânsito” (quando passam de um computador para outro, através de uma rede). A computação confidencial elimina a última vulnerabilidade possível dentro do sistema: quando os dados estão em uso, ou seja, durante o processamento ou tempo de execução.
Como funciona a computação confidencial
Antes que possam ser processados por um qualquer tipo de software, os dados devem ser desencriptados na memória. Isso introduz uma vulnerabilidade (durante e logo após o processamento, quando os dados estão na memória), através do comprometimento das credenciais de administração e de outras formas de exploração de vulnerabilidades.
A computação confidencial resolve estes problemas através da utilização de um ambiente de execução confiável baseado em hardware, ou TEE (Trusted Execution Environment, em português: ambiente de execução confiável), um enclave seguro dentro de um CPU, que isola a execução de código do resto do sistema. Este, é protegido por chaves de criptografia incorporadas; os mecanismos de certificação garantem que as chaves são apenas acessíveis ao código da aplicação autorizada. Se malware ou qualquer outro tipo de código não-autorizado tentar aceder às chaves (ou se o código autorizado for hackeado ou alterado de alguma forma), o TEE nega o acesso às chaves e cancela o processamento.
Desta forma, os dados confidenciais podem permanecer protegidos na memória até que a aplicação ordene ao TEE que os desencripte, para processamento. Enquanto os dados são desencriptados, e durante todo o processo de computação, tornam-se invisíveis ao sistema operativo (ou ao hipervisor, numa máquina virtual), a outros recursos do sistema, ao fornecedor de serviços de cloud e aos seus funcionários.