Criptografia At Rest
Criptografia At Rest
1) Por que é que isso é necessário e o que é que nós estamos protegendo
Definição. A criptografia at rest é uma proteção de dados gravados em mídia (discos, snapshots, bacapes, objetos, logs, dampos de memória) para que o acesso não autorizado ao hospedeiro físico ou ao armazém «cru» não revele o conteúdo.
O que cobrimos:- Volumes de bloco/arquivo, armazenamento de objetos, bancos de dados, filas/keily, cash-dump, logs/trailers, cópias de segurança, exportação/importação, imagens de BM/contêineres, dampas de núcleo/processos, transação/swap.
- Cenários múltiplos: isolamento entre clientes/projetos/ambientes.
O que não cobrimos completamente é o roubo de sessões na memória, ataques ao processo vivo, vulnerabilidades do aplicativo, comprometimento de credenciais. Isto requer criptografia em voo, autenticação/autorização rigorosa, minimização de permissões e monitoramento (consulte artigos relacionados: autenticação e autorização, assinatura e verificação de solicitações).
2) Modelo de ameaças e objetivos de controle
Riscos típicos:- Perda/roubo de mídia (disco, fita, USB, dispositivo de desenvolvimento).
- Acesso não autorizado a bacaps/slots/logs.
- Abuso de privilégios ao nível da plataforma/hipervisor/buraco.
- Cruzamento de locações com erros de configuração.
- Arquivos temporários e dampos que entram em artefatos e imagens.
1. Privacidade dos dados na mídia.
2. Isolamento criptográfico dos inquilinos/ambientes.
3. A governabilidade das chaves (criação, armazenamento, rotação, revogação).
4. Auditável (quem e quando usou a chave).
5. Minimizar os riscos operacionais dos incidentes.
3) Princípios básicos da arquitetura
Criptografar tudo por omissão. Opt-out é proibido sem exceções de risco.
Hierarquia de chaves (envelope encrypition). Root/KEK → DEK (data encrypition keys) → objetos/arquivos/páginas da base de dados.
KMS/HSM como fonte de confiança. Geração e armazenamento do KEK em KMS/HSM, operações de envasamento/implantação de chaves são executadas no mesmo local.
Per-tenant/per-datse chaves. Granularidade para os requisitos de isolamento e rotatividade.
Separação de responsabilidades. Comandos de plataforma ≠ donos das chaves do locador; um mínimo de privilégios (PoLP).
Crypto-agility. Capacidade de migrar algoritmos/comprimento de chave com segurança.
Rotação como processo, não como evento. As chaves e os dados devem suportar a substituição.
4) Algoritmos e modos de criptografia
Para objetos/arquivos/registros: AES-256-GCM ou AES-256-SIV (AEAD autenticado).
Para blocos/volumes: AES-XTS-256/512 (proteção contra mudanças de blocos; não AEAD - usar acima dos formatos de arquivo com MAC onde a integridade é importante).
- TDE (Transparent Data Encryption) движка: Oracle TDE, SQL Server TDE, MySQL/InnoDB TDE и пр.
- Criptografia de campo/linha (FPE/criptografia definida) - para possibilidades de busca/joyn em campos criptografados; usar com cuidado.
- Geração e armazenamento de chaves: KEK - em KMS/HSM; DEK - A memória das aplicações é de curta duração, o armazenamento é apenas envolto.
5) Hierarquia de chaves e KMS/HSM
Níveis:1. Root key (estatutário, HSM/KMS). Não sai do perímetro HSM/KMS.
2. KEK (Key Encryption Key). Para o projeto/ambiente/locatário. Controla o ciclo de vida DEK.
3. DEK (Data Encryption Key). Para o objeto/arquivo/tabela/segmento. Curta, rotação sem parar.
Práticas:- Todas as operações de envasamento/implantação são via API KMS com áudio.
- Políticas: quem pode «usar» a chave ≠ quem pode «controlar» a chave.
- Distribuição geográfica de chaves: pin-to-region + dual-controle para interregiões.
- É possível um modelo «de dois» (dois operadores) para operações de alto risco.
- Para isolar um nível forte, os key-rings individuais por locador.
6) Rotação, crítica e complacência
Roteiro DEK: transparente e constante (rolling re-encrypition ao nível de objetos/páginas).
Rotação KEK: periódica (por exemplo, uma vez a cada 6-12 meses) + retirada imediata em caso de suspeita de comprometimento.
Rever o acesso através de políticas KMS; bloquear as operações unwrap = «cripto-destruição» instantânea de dados.
Registros de auditoria: quem, quando, com quais direitos usou as chaves; Guardar separadamente e também criptografar.
Regulamentos e normas: baseamos-nos nos requisitos da indústria (por exemplo, GDPR/PCI-Tolerantes/Reguladores Locais) e usamos criptomoulas certificadas (por exemplo, conformidade com os níveis de certificação).
7) Pattern por tipo de armazenamento
7. 1 Volumes de blocos/arquivos e contêineres VM/contêineres
Criptografia total (XTS) + gerenciamento de chaves com KMS (inicialização do volume durante a montagem).
Proteger swap, crash-dampos, diretórios tmp, camadas overlay de contêiner, imagens/AMI.
As imagens/snapshots são sempre criptografadas com um DEK individual.
7. 2 Armazenamento de objetos
Envelope encrypition: DEK único para o objeto; cabeçalhos/metadados - sem vazamentos de PII.
Controle de acesso à chave KMS por locatários e ambientes.
Criptografar servidor (SSE com KMS próprio) ou cliente-side (CSE) - escolher por um modelo de confiança.
7. 3 Bancos de dados
Incluir o TDE onde estiver disponível; as chaves de base de dados são atreladas ao KMS via plugin/extensn.
Para campos particularmente sensíveis, criptografia aplicada (AEAD) antes de entrar no banco de dados.
Registros de logs de transação, logs de arquivo, dump - criptografar separadamente, chaves individuais.
7. 4 Logs/trens/métricas
Formato de logs - sem dados sensíveis padrão (saneamento).
Arquivos de logs - chaves individuais e armazenamento TTL curto.
Acesso à leitura dos logs através de proxy com A&A e áudio.
7. 5 Cópias de segurança e mídia offline
Criptografar sempre no lado do cliente antes de gravar na fita/nuvem.
Guardar as chaves separadamente (out-of-band), escrow com controle separado.
Para casos de emergência, separa segredo (por exemplo, m-of-n) para restaurar acesso master.
8) Multiplicidade (multi-tenant)
A chave para o locador é KEK-per-tenant + DEK-per-datse.
Exclusão de políticas: espaços de nomes KMS, limites IAM, papéis IDP individuais.
Remoção a pedido do cliente: «cripto-apagar» - retirar o locador KEK e destruir o DEK.
Relatórios para o cliente: artefatos de conformidade, logs de acesso às chaves, confirmação de rotação.
9) Produtividade e operação
Acelerações de hardware (AES-NI/x86, ARMv8 Crypto Extensions).
Perfilando caminhos quentes: criptografando os limites I/O, evitando a dupla criptografia sem necessidade.
Pool de sessões KMS, armazenamento do DEK envolto na memória (com TTL e proteção contra dampos).
SLO/métricas: Latidão unwrap, proporção de objetos criptografados, erros de KMS, velocidade de backap.
10) Processo de implementação (reference runbook)
Passo 0 - Inventário de dados. Catalogar todos os armazéns e caminhos de fuga (tmp, dampos, exportação, baquetes analytics).
Passo 1 - design de hierarquia chave. Definimos os níveis KEK/DEK, granularidade, regiões, papéis.
Passo 2 - escolha de modos/bibliotecas. Algoritmos aprovados, criptobiotecas, políticas de versões.
Passo 3 - integração com o KMS/HSM. Geração/embrulho/auditoria, políticas IAM, geo-pinning.
Passo 4 - criptografia por gravação. Ativar por padrão a migração de dados existentes através do background reencript.
Passo 5 - rotação e cenários de emergência. Regulamentos, testes de key compromise, KMS não estão disponíveis.
Passo 6 - Monitoramento e auditoria. Dashboards, alertas, relatórios regulares de conformidade.
Passo 7 - treinamento e «secure coding». Guidas para engenheiros, proibir a retirada de segredos em logs/dampas.
11) Testes e verificação
Testes cripto-unit: correção AEAD (verificação de marcas de formatação), validação de falha de alteração de byte.
Failure-testes: desativação do KMS, versões antiquadas de chaves, revogação forçada do KEK.
Testes Red/Blue: tentativas de ler disco de «crude »/snapshot/backap.
Verificação de compatibilidade: migração de algoritmos/comprimentos de chave (crypto-agility).
Avaliação de bibliotecas: usar apenas criptomoedas testadas; captar versões.
12) Erros frequentes e como evitá-los
Criptografia dupla sem sentido. Mais latência e complexidade. Mantenha a camada que dá a granularidade e o isolamento desejados.
Armazenamento de chaves ao lado de dados. As chaves são sempre separadas, sob outro modelo de acesso.
Artefactos esquecidos. Arquivos temporários não criptografados, exportação de CSV, dampas de suporte. Ative o controle em CI/CD e Data Loss Prevision.
Falta de rotação. Faça a rotação parte da pipeline/cron em vez do procedimento manual.
Logs com dados sensíveis. Digite um contrato de logs e saneamento automático.
13) Mini-receitas (pseudocode)
Encriptação Envelope do objeto:
1) Request unwrap DEK from KMS by tenant KEK id dek = kms. unwrap(kek_id, wrapped_dek)
2) Generate fresh nonce/iv, encrypt payload (AEAD)
ciphertext, tag = aead_encrypt(dek, iv=random(), aad=metadata, plaintext=data)
3) Delete DEK from memory (zeroize), save {ciphertext, iv, tag, wrapped_dek}
Rotativo KEK sem interrupção:
For each object:
new_wrapped_dek = kms. rewrap(old_wrapped_dek, old_kek_id -> new_kek_id)
store(new_wrapped_dek)
We do not touch the data: we turn over only DEK
«Desinstalação Cripto» de um conjunto de dados:
kms. disable_key (tenant_kek_id) # Deny unwrap kms. schedule_destroy (tenant_kek_id, hold_period_days=7) # Optional hold
14) Folhas de cheque
Antes de começar em prod:- A criptografia padrão está ativada em todos os tipos de armazenamento.
- A hierarquia das chaves é descrita e implementada; os papéis e políticas IAM estão configurados.
- O KMS/HSM está integrado e a auditoria das operações-chave está ativada.
- A rotação DEK/KEK é automatizada; cenários de comprometimento foram trabalhados.
- Backaps, esmaltes, logs e dampos - criptografados; as chaves estão separadas.
- Alertas configurados para erros do KMS, desvios de marcas AEAD, participação de artefatos não criptografados.
- Os testes de indisponibilidade do KMS e a revisão das chaves foram concluídos.
- Relatório mensal sobre o uso de chaves e tentativas de acesso.
- Plano de crypto-agility e janela para migração indolor de algoritmos.
- Red-team periódico para extração de dados de mídia «crua».
15) Perguntas e respostas (FAQ)
A criptografia completa é suficiente?
O: Para riscos físicos - sim, mas para isolar locadores e rotação flexível é melhor envelope com DEK-para-objeto/conjunto.
Em: O que fazer quando a KEK é comprometida?
Ah: Retirar imediatamente o KEK para o KMS, transferir o novo, executar o rewrap de todos os DEK, verificar as revistas e realizar o RCA.
Em: Como criptografar os campos em que procuramos?
O: Usar circuitos determinados ou FPE apenas em rigorosas avaliações de risco (patterns). É melhor projetar as solicitações para que os campos sensíveis não exijam uma vista aberta indexada.
Precisamos de uma equipa para as chaves?
O'Crypto/KMS "é recomendado como um papel com direitos e procedimentos individuais.
- Gerenciamento de chaves e rotação
- Autenticação S2S
- «Assinatura e verificação de solicitações»
- OAuth2/OpenID do Connect no núcleo
- «Garantia de entrega de webhooks»