Confidential computing: como funciona e quando usar?
A proteção dos dados de usuários de um sistema é um dos requisitos prioritários quando estamos pensando em uma solução computacional. Além de ser essencial para agregar valor ao sistema criado, trata-se também de uma obrigação legal sujeita a penalidades em caso de falhas e vazamentos. Afinal, nenhum usuário deseja que seus dados fiquem facilmente acessíveis por terceiros, não é mesmo!?
Por outro lado, é cada vez mais comum adotar soluções de computação em nuvem (cloud computing) em nossos projetos. Temos uma grande variedade de serviços capazes de atender diferentes demandas com bom desempenho e custo acessível, dispensando a necessidade de manter uma infraestrutura física dedicada a sistemas comuns, como websites ou aplicativos.
Neste cenário, surge uma importante questão: como garantir que dados sensíveis dos usuários de uma plataforma que estamos desenvolvendo sejam processados em segurança utilizando serviços na nuvem?
A computação em nuvem possui uma solução especial para nos ajudar a lidar com esse tipo de situação, uma tecnologia conhecida como confidential computing (computação confidencial). Vamos entender melhor esse conceito ao longo deste artigo. Bora lá?
O que é confidential computing?
Podemos adotar diferentes soluções de criptografia para proteger dados, seja enquanto estão armazenados em dispositivos de armazenamento ou quando transportados na rede. Provedores de serviços de computação em nuvem já implementam tecnologias como criptografia em trânsito, criptografia de ponta a ponta e criptografia em repouso para essa finalidade. A confidential computing é uma solução de segurança que visa proteger os dados durante o seu processamento em um dispositivo.
Imagine que coletamos dados pessoais de vários usuários em um site e armazenamos na nuvem utilizando criptografia em repouso como mecanismo de proteção. Quando realizamos alguma atividade de processamento para obter, por exemplo, um relatório sobre o perfil, interesses e demandas dos usuários, precisaremos decriptografar parte dos dados armazenados, deixando-os vulneráveis durante o ciclo de processamento. E é nesse momento que a confidential computing pode entrar em ação!
Para mitigar vulnerabilidades como essas, a confidential computing utiliza um ambiente de execução confiável baseado em hardware (Trusted Execution Environment - TEE) para processamento do dados.
O TEE é uma região especialmente isolada dentro de um sistema computacional para proteção de dados e atividades de processamento, operando em um ambiente próprio menos suscetível a interferências externas e ataques. Em termos de hardware, o TEE pode ser projetado e implementado em uma área particular dentro de um processador ou mesmo como um chip.
Muitos ataques cibernéticos envolvem a exploração de vulnerabilidades de software. Ao incorporar medidas de segurança diretamente no hardware, é possível adicionar uma camada adicional de proteção, independentemente do estado do software em execução.
A proteção do TEE é realizada por meio do uso de chaves de criptografia embarcadas, assim como mecanismos de autenticação e acesso embarcados. Desse modo, apenas o código do aplicativo autorizado terá acesso às chaves. Qualquer outro código não autorizado, terá acesso negado às chaves.
Como a confidential computing funciona na prática?
Os dados são transferidos do dispositivo de armazenamento para o TEE, permanecendo criptografados até que o aplicativo autorizado encaminhe a instrução de descriptografia para processamento. Analise a imagem a seguir:
O último ícone de “Dados em uso”, representa o TEE que executará apenas o código autorizado, mantendo os dados descriptografados invisíveis para todo o sistema da infraestrutura computacional.
Assim, nem mesmo os provedores de serviço conseguem ter acesso aos dados durante o ciclo de processamento. Justamente por isso os TEEs são comumente conhecidos pelo termo “enclaves seguros”, pois garantem o processamento seguro de dados até mesmo em ambientes como a nuvem.
Como a TEE permite o isolamento do código, a confidential computing também pode ser utilizada para proteção de algoritmos proprietários, tais como lógicas de negócios, machine learning, aplicativos e funções de análise.
Vários provedores de serviço em nuvem já disponibilizam a confidential computing em seu catálogo de opções como uma solução para processamento de dados de modo seguro. A oferta vai desde o uso de soluções mais básicas adotando máquinas virtuais até a opção de módulos de segurança de hardware gerenciáveis. Assim, seus clientes podem processar dados confidenciais, manter rígido controle sobre dados para atender restrições legais ou contratuais e proteger algoritmos.
Ao utilizarmos um serviço baseado em confidential computing, podemos aproveitar as facilidades da computação em nuvem sem abrir mão da segurança e privacidade dos dados sensíveis dos usuários de nossos sistemas.
Conclusão
A confidential computing é uma solução estratégica de segurança para garantir a restrição de acesso aos dados de um sistema. Ela garante que nem mesmo o sistema operacional conseguirá visualizar os dados enquanto estão sendo processados devido ao isolamento do ambiente de execução baseado em hardware. Na prática, funciona como uma barreira de isolamento entre o enclave seguro e o restante do sistema. Dessa forma, podemos proteger até mesmo a lógica do algoritmo que está sendo usado no processamento.
Assim como outras tecnologias de segurança, a computação confidencial está em constante evolução para garantir o processamento seguro de dados de modo eficaz e eficiente.
Além disso, cabe ressaltar que a criptografia homomórfica também é uma alternativa para processamento de dados de modo confidencial, sendo baseada em técnicas que permitem o processamento de dados criptografados, gerando resultados igualmente criptografados. No entanto, seu desempenho computacional mais lento ainda é um entrave para sua vasta aplicação como solução de segurança no processamento de dados.