Trate os dados e a criptografia com segurança
Use criptografia e TLS, gerencie as chaves e mantenha privados os dados guardados na nuvem.
- Explicar o que a criptografia em trânsito e em repouso protegem
- Acompanhar como o TLS autentica um servidor e combina as chaves
- Verificar a autenticidade de uma mensagem com um HMAC
- Explicar a responsabilidade compartilhada na nuvem e reconhecer permissões de armazenamento inseguras
Os sistemas modernos combinam dois tipos de criptografia:
- Simétrica (AES, ChaCha20): uma única chave compartilhada criptografa e decifra. Rápida - usada para os dados em si.
- De chave pública (assimétrica): um par de chaves. Qualquer um pode usar a chave pública; só quem tem a chave privada consegue decifrar ou assinar. Usada para combinar chaves e provar identidade.
A criptografia em trânsito (TLS, o S do HTTPS) protege os dados que trafegam por uma rede. A criptografia em repouso protege os dados guardados caso discos, backups ou bancos de dados caiam em mãos erradas. Nenhuma das duas decide quem pode ler os dados dentro do seu aplicativo - isso continua sendo trabalho da autorização.
Experimente
Até 15 XPUm handshake do TLS 1.3
Acompanhe passo a passo como o seu navegador se conecta a https://shop.example.com. Preveja as etapas marcadas.
Heartbleed: um vazamento de memória dentro de um software de TLS
A falta de uma verificação de limites no tratamento de heartbeat do OpenSSL podia deixar um par conectado ler até 64 KB da memória do processo por requisição. A falha estava numa implementação, não no protocolo TLS em si.
- 01Um par manda uma requisição de heartbeat com um tamanho declarado.
- 02As versões afetadas do OpenSSL não conferem esse tamanho com os dados enviados.
- 03A resposta pode incluir memória vizinha do processo.
- 04Os operadores atualizam o OpenSSL e avaliam se os segredos expostos precisam ser trocados.
Chaves e assinaturas
A criptografia só é tão forte quanto a gestão de chaves: guarde as chaves num serviço de gestão de chaves ou num módulo de segurança de hardware (HSM), restrinja quem pode usá-las, faça a rotação delas e planeje a recuperação. Criptografar um banco de dados e guardar a chave do lado dele protege muito pouco.
Para provar que uma mensagem veio de alguém que tem um segredo compartilhado e não foi modificada - digamos, o webhook de um provedor de pagamentos -, use um HMAC: um hash com chave. Compare os MACs com uma comparação de tempo constante (hmac.compare_digest), para que o tempo não vaze quantos caracteres bateram.
1import hashlib, hmac
2secret = b"shared-secret"
3tag = hmac.new(secret, b"amount=4200", hashlib.sha256).hexdigest()
4forged = hmac.new(secret, b"amount=1", hashlib.sha256).hexdigest()
5print(hmac.compare_digest(tag, forged))False
O armazenamento na nuvem ainda precisa de um dono
Um provedor de nuvem protege os seus data centers físicos e a infraestrutura do serviço, mas a sua equipe ainda decide quem pode ler os seus dados, quais objetos são públicos, como as chaves são gerenciadas e o que é registrado. A divisão exata depende do serviço. Isso é responsabilidade compartilhada, não uma transferência de todo o trabalho de segurança para o provedor. A explicação do Google Cloud mostra o modelo geral.
Para um bucket de documentos privados de clientes: negue o acesso público, dê ao aplicativo só as permissões de que ele precisa, revise as concessões a pessoas e a contas de serviço e registre os acessos. A criptografia em repouso é valiosa, mas não impede uma leitura autorizada ou permitida publicamente. Se um usuário precisar de um download temporário, uma URL assinada de curta duração pode limitar o acesso a um único objeto; trate a própria URL como um segredo até ela expirar. O guia de arquitetura de nuvem da OWASP explica os trade-offs do armazenamento público e das URLs assinadas.
Experimente
Até 15 XPRevise uma configuração de armazenamento na nuvem
Este é um resumo fictício de um console de administração para um bucket de documentos privados de clientes. Clique nas configurações que poderiam expor os dados.
Clique em todos os trechos suspeitos. São 3.
Prática: inspecione um certificado
Experimente
Até 15 XPPor que um navegador rejeitaria isto?
Você está se conectando a shop.example.com, e hoje é 05/11/2026. Clique na linha que explica o problema.
O que há de errado com este certificado?
Principais conclusões
A criptografia simétrica criptografa os dados rápido; a de chave pública combina as chaves e prova a identidade.
O TLS confere o certificado do servidor e protege a confidencialidade e a integridade em trânsito.
Proteja as chaves, use HMACs ou assinaturas para a autenticidade e compare MACs em tempo constante.
Os clientes de nuvem precisam configurar e auditar o acesso aos dados; a criptografia não substitui as verificações de permissão.
Quiz da aula
8 perguntas · aprovação com 6 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: escreva código em Python
Escreva código Python no editor e execute os testes com exemplos. O Python roda localmente no navegador usando WebAssembly.
Verifique as assinaturas de webhooks
A primeira linha é o segredo compartilhado. Cada linha seguinte é SIGNATURE PAYLOAD (o payload pode ter espaços). Imprima valid se a assinatura for igual ao HMAC-SHA256 em hexadecimal do payload com o segredo; caso contrário, invalid. Use hmac.compare_digest.
- Genuíno, adulterado, genuíno
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…