Palestra realizada no dia 25/03/2021 no evento The Developer's Conference TDC2021 Innovation sobre Proteção de dados sensíveis com a computação confidencial na nuvem
TDC2021 Innovation - Proteção de dados sensíveis com a computação confidencial na nuvem
1. Globalcode – Open4education
Proteção de dados sensíveis com a computação
confidencial na nuvem
Walter Silvestre Coan
walter.coan@gmail.com – walter.s@univille.br
www.waltercoan.com.br
2. Globalcode – Open4education
Walter Silvestre Coan
Microsoft MVP em Azure 2020/2021
Certificações
Azure Solutions Architect
Azure IoT Developer – Specialty
Azure Developer – Associate
Azure Administrator - Associate
Azure Fundamentals
MCT
MCSD – MCSA (C# e Web Apps)
AWS Academy Accredited Educator
AWS Certified Developer – Associate
AWS Certified Cloud Practitioner
Sun Certified Programmer em Java 5.0
Mestre em Ciência da Computação na área de Sistemas
Distribuídos e Redes de Sensores sem Fio - PUCPR
Pós-Graduado em Engenharia de Software - PUCPR
Bacharel em Informática - UNIVILLE
Professor no Bacharelado em Sistemas de Informação e do
Bacharelado em Engenharia de Software da UNIVILLE
walter.coan@gmail.com – walter.s@univille.br – www.waltercoan.com.br
5. Globalcode – Open4education
Em quem você precisa confiar?
• Fornecedor de Software
• Confio apenas em ambiente on-
premise, ou em software livre ou eu
mesmo construo meu software
• Provedor de Infraestrutura
• Confio no meu provedor de nuvem ou
gerencio meu próprio datacenter
• Fornecedor de Hardware
• Confio apenas em ambiente on-
premise, ou construo meu próprio
hardware
Com o uso de técnicas de computação confidencial, a
ideia é reduzir a necessidade de confiar em:
VM Admin Host Admin Acesso físico
ao hardware
Hypervisor
Host OS Kernel
6. Globalcode – Open4education
Proteção do ciclo de vida dos dados
• Proteção de dados em repouso
• Criptografar dados inativos quando
estão armazenados em contas de
armazenamento ou banco de dados.
• Proteção de dados em trânsito
• Criptografar dados que estão
transitando entre redes públicas e
privadas.
• Proteção de dados em uso (novo)
• Criptografar dados em uso enquanto
estão sendo armazenados na memória
RAM.
7. Globalcode – Open4education
Casos de uso da computação
confidencial
Proteção da privacidade durante análise de dados
Proteção de pagamento e Criptomoedas
Blockchain Ledgers confidenciais
Gerenciamento seguro de chaves
Bancos de dados seguros
8. Globalcode – Open4education
Casos de uso da computação
confidencial
Algoritmo de
Machine Learning
K1
K2
K3
Dados dos
Pacientes
K1
Dados dos
Pacientes
K2
Dados dos
Pacientes
K3
Sistema Operacional Hospedeiro
K1 K2 K3
Enclave
https://docs.microsoft.com/pt-br/azure/confidential-computing/use-cases-scenarios?WT.mc_id=AZ-MVP-5003638
9. Globalcode – Open4education
Confidential
Computing
Consortium
O Consórcio de Computação
Confidencial é uma comunidade
focada em projetos de proteção
de dados em uso e aceleração
da adoção de computação
confidencial por meio de
colaboração aberta.
https://confidentialcomputing.io/
10. Globalcode – Open4education
Ambientes de execução confiáveis
TEE – Trusted Execution Environment
• Deve ser provido pelo hardware
• Todos fluxo de dado que sai do TEE deve ser criptografado
• Deve ser capaz de verificar e assinar o conteúdo do TEE para produzir evidências verificáveis da
segurança
• Hardware root of trust
• Conjunto de mecanismos implementados no hardware que garantem que todos os
mecanismos de segurança, por exemplo armazenamento de chaves privadas.
• Cada hardware deve possuir uma identidade única
• Hardware específico para realizar operações de criptografia
• Bancos de e-fuses para armazenar chaves privadas para atestar sua integridade e a integridade
do software que será executado
• Isolamento
• Garantir que uma vez que o código verificado seja carregado para o TEE, deverá ser reservado
o acesso aos cores e cache de memória habilitados a trabalhar no TEE.
11. Globalcode – Open4education
Ambientes de execução confiáveis
TEE – Trusted Execution Environment
• Atestação
• Mecanismo que da confiança a computação confidencial
• Verificação de um conjunto de medições realizadas no hardware e que são assinadas com
chaves privadas armazenadas no e-fuses
• Verificação da assinatura do hash do código do boot
• Verificação da assinatura do hash do contexto inicial da memória ou de registradores
importantes da CPU
• Após a validação de todas essas informações o serviço de atestação confirma a integridade e
cria um novo conjunto de chaves que será utilizado para a comunicação de serviços externos
com o TEE.
12. Globalcode – Open4education
Intel SGX
Software Security Guard Extension
• Novo conjunto de instruções que
permite criar regiões privadas de
memória (enclave). Apenas o código
que roda dentro do enclave, é que
tem acesso a área de memória.
• Dados são visíveis na sua forma
original apenas dentro do enclave, e
são criptografados toda vez que são
armazenados em memória.
Azure DCv2-Series Virtual Machines Host
CPU
Hypervisor
Operating System
App App
Code
Data
13. Globalcode – Open4education
Intel SGX
Data
Untrusted Code Trusted Code
1
Create Enclave
2
Call Thrusted
3
Process Secret
4
Return
5
Normal Execution
Privileged System Code OS, VMM, BIOS, SMM
Call
Gate
14. Globalcode – Open4education
Azure Sphere
Secured MCUs
Uma nova categoria de
MCU’s chamado Azure
Sphere, produzidos por
empresas parceiras, com
tecnologia de segurança da
Microsoft, que fornece
conectividade, alto
desempenho e
características de segurança
no hardware.
Secured Operating System
Sistema operacional seguro
Azure Sphere OS que
combina as melhores práticas
da Microsoft e da comunidade
Open Source, criando uma
plataforma confiável para uma
nova experiência em IoT.
Secured by our Cloud
Service
Azure Sphere Security Service
protege cada dispositivo e os
clientes, detecta falhas de segurança
e responde de forma proativa.
15. Globalcode – Open4education
Azure Sphere
Azure Sphere utiliza a tecnologia ARM’s TrustZone
que permite a criação de ambientes independentes
de execução dentro de um único chip.
• Secure World – alto nível de privilégios
• Normal World – baixo nível de privilégios
Cada ambiente pode executar seu próprio sistema
operacional e aplicações
Azure Sphere Trusted Computing Base (TCB) é
composto por componentes eletrônicos e software
que roda no Secure World.
Parte do TCB está no Pluton Security System e
parte se estende ao Security Monitor que é
executado no Cortex-A7.
17. Globalcode – Open4education
VM Server
Open Enclave SDK
Enclave
Code
Data
Cliente
Azure Attestation
Service
1
2
3
4
1 – Cliente solicita chave ao serviço de
atestação do Azure
2 – Serviço faz as verificações
3 – Serviço retorna a chave para
comunicação
4 – Cliente acessa o Enclave
18. Globalcode – Open4education
Containers confidenciais
Possibilita que aplicações existentes, que estejam no formato de container,
possam fazer uso da tecnologia de computação confidencial sem alteração
do código fonte.
19. Globalcode – Open4education
Computação confidencial em uma
plataforma de saúde
https://docs.microsoft.com/en-us/azure/architecture/example-scenario/confidential/healthcare-inference?WT.mc_id=AZ-MVP-5003638
20. Globalcode – Open4education
Azure SQL Database Always
Encrypted With Secure Enclaves
https://techcommunity.microsoft.com/t5/azure-sql/always-encrypted-with-secure-enclaves-in-azure-sql-database/ba-p/2051544?WT.mc_id=AZ-MVP-5003638
Inside Azure Datacenter Architecture with Mark Russinovich - https://youtu.be/69PrhWQorEM?t=4522
21. Globalcode – Open4education
Computação confidencial para VM
https://azure.microsoft.com/en-us/blog/azure-and-amd-enable-lift-and-shift-confidential-computing/
23. Globalcode – Open4education
AMD SEV-SNP
VM
Data
Trusted
1
Call Function
2
Process Secret
3
Return
4
Normal Execution
Privileged System Code OS, VMM, BIOS, SMM