Pular para o conteúdo principal

Conceitoavançado

Gestão de Chaves

Visão Geral

Criptografia moderna raramente falha no algoritmo. Ela falha na chave: quem tem acesso, onde ela está guardada, o que acontece quando precisa mudar, e o que acontece quando some.

Gestão de chaves é a parte difícil, e é a que costuma ser tratada como detalhe de implementação depois que a decisão de cifrar foi tomada.

Problema

Cifrar é a parte fácil — uma chamada de biblioteca. As perguntas que vêm depois é que determinam se a proteção existe:

Onde a chave fica? Quem pode usá-la? Como ela é rotacionada sem tornar ilegíveis os dados antigos? O que acontece se ela vazar? E se ela for perdida?

A última é a que causa mais dano acumulado: chave perdida é dado perdido, sem recurso. Nenhuma cópia de segurança dos dados ajuda se a chave não existe mais.

Conceitos Centrais

Cifragem envelopada resolve a maior parte

O padrão que estrutura quase toda gestão de chaves:

chave de dados cifra o dado — uma por objeto, arquivo ou registro
chave mestra cifra as chaves de dados — poucas, protegidas

O dado é cifrado com uma chave própria; essa chave é cifrada com a mestra e guardada junto do dado.

Três vantagens:

A chave mestra nunca toca o dado. Ela pode viver num módulo de segurança que não a exporta.

Rotacionar a mestra é barato. Basta recifrar as chaves de dados — pequenas — sem tocar nos dados.

O escopo do comprometimento é limitado. Uma chave de dados vazada compromete apenas o que ela cifrou.

Rotação sem recifrar tudo

Rotacionar a chave que cifra terabytes é inviável se exigir recifrar tudo.

Com envelopamento, os dados antigos permanecem cifrados com suas chaves de dados, e apenas o envelope muda. Os dados novos usam a chave mestra nova.

Isso exige que a versão da chave seja guardada junto do dado — para saber com o quê decifrar. É um detalhe pequeno cuja ausência torna a rotação impossível depois.

As chaves antigas não podem ser descartadas

Consequência direta do ponto anterior: enquanto existir dado cifrado com uma chave, a chave precisa existir.

Descartar uma chave antiga "porque rotacionamos" torna os dados dela ilegíveis permanentemente. Isso já aconteceu em sistemas reais, e a recuperação não existe.

O descarte só é seguro depois de recifrar tudo que dependia dela — ou quando o descarte é intencional, como em cifragem por titular para apagamento.

Módulo de segurança e serviço gerenciado

Módulo de segurança de hardware. A chave nunca sai em texto legível; operações acontecem dentro do dispositivo. Custo alto, exigência regulatória em alguns setores.

Serviço gerenciado de chaves. O provedor opera o módulo; você chama a API. Cobre a maioria dos casos com uma fração do custo e da operação.

Chave em arquivo ou variável. Aceitável apenas quando o modelo de ameaça justifica, e raramente justifica.

A recomendação prática: serviço gerenciado, salvo exigência específica. Ver serviços gerenciados.

Separação de deveres

Quem administra o armazenamento não deveria poder usar a chave. Quem pode usar a chave não deveria poder alterar a política dela.

Sem essa separação, a cifragem não protege contra o administrador — que é frequentemente a ameaça que se queria endereçar.

Na prática: políticas de chave e políticas de dados sob controle de papéis distintos, com o uso auditado.

Comprometimento e perda exigem planos diferentes

Comprometimento. A chave vazou. Resposta: rotacionar, recifrar o que for viável, e avaliar o que foi exposto. Exige saber o que aquela chave cifrava, que é informação que precisa existir antes.

Perda. A chave sumiu. Não há resposta técnica. A prevenção é cópia de segurança da chave — que é ela mesma um problema, porque a cópia precisa da mesma proteção.

Serviços gerenciados resolvem a perda com durabilidade e versionamento. Chaves autogeridas exigem procedimento explícito, tipicamente com custódia dividida entre pessoas.

Chave de assinatura merece tratamento à parte

Uma chave que assina tokens, artefatos ou atualizações tem uma propriedade diferente: comprometê-la permite forjar, não apenas ler.

Um atacante com a chave de assinatura de tokens emite tokens válidos para qualquer usuário, com qualquer permissão, e nenhuma verificação detecta.

Por isso essas chaves justificam proteção maior, rotação mais frequente e suporte a múltiplas chaves válidas — para que a rotação não invalide tudo de uma vez. Ver confiança na cadeia de suprimentos.

Modelo Mental

A segurança da criptografia é a segurança da chave. Todo o resto é detalhe de implementação.

Quando Usar

Gestão explícita é necessária sempre que houver cifragem. Prioridade quando:

  • Há cifragem no nível do campo.
  • Existe requisito regulatório sobre custódia.
  • Chaves são usadas para assinatura.
  • Há necessidade de apagamento por descarte de chave.
  • Múltiplos sistemas compartilham dados cifrados.

Quando Não Usar

Chave junto do dado cifrado.

Chave em código ou em repositório.

Rotação sem guardar a versão da chave junto do dado.

Descartar chave antiga antes de recifrar.

Sem separação entre administrar e usar.

Sem plano para perda. Otimismo não é estratégia.

Módulo de hardware sem exigência que o justifique. Custo e operação altos.

Alternativas

  • Serviço gerenciado de chaves — o padrão razoável.
  • Cifragem transparente da plataforma — quando o modelo de ameaça é acesso ao meio. Ver criptografia.
  • Tokenização — o dado sai do sistema; a chave deixa de ser problema local.
  • Não cifrar e não guardar — a única forma de não ter chave para gerenciar.

Trade-offs

Serviço gerenciadoAutogerido
Durabilidade e disponibilidade do provedorSua responsabilidade
Auditoria prontaA construir
Custo por operaçãoCusto de operação
Dependência do provedorControle
EnvelopamentoChave única
Rotação barataRecifrar tudo
Comprometimento limitadoTotal
Complexidade adicionalSimples

Modos de Falha

Chave perdida. Dado irrecuperável.

Chave antiga descartada. Dados antigos ilegíveis.

Versão não registrada. Impossível saber com o que decifrar.

Chave junto do dado.

Chave de assinatura comprometida. Permite forjar.

Serviço de chaves indisponível. Nada decifra — o sistema para.

Sem inventário. Não se sabe o que cada chave cifra, e o comprometimento não pode ser avaliado.

Erros Comuns

Não guardar a versão da chave com o dado. Depois da primeira rotação, não há como saber qual chave decifra qual registro, e a rotação passa a exigir recifrar tudo de uma vez.

Não planejar rotação antes de cifrar. Rotacionar é fácil quando previsto e quase impossível quando não: sem versionamento e sem convivência de chaves, a troca vira uma janela de indisponibilidade sobre a base inteira.

Não manter inventário de chave para dado. Sem saber o que cada chave protege, não há como avaliar o impacto de um comprometimento nem decidir a ordem de resposta.

Guardar a chave no mesmo lugar que o dado. Anula a proteção — quem obtém acesso ao armazenamento obtém os dois.

Não separar administração de uso. Quem usa a chave para decifrar não precisa poder exportá-la nem apagá-la. Sem essa separação, o comprometimento da aplicação vira comprometimento do material criptográfico.

Tratar chave de assinatura como chave comum. O comprometimento de uma chave de cifra expõe dados; o de uma chave de assinatura permite forjar identidade e autorização — dano de natureza diferente e maior.

Exemplo Real

Uma instituição financeira cifrava documentos de clientes num armazenamento de objetos, com uma chave simétrica guardada em configuração da aplicação.

Três problemas apareceram ao longo de quatro anos:

Rotação impossível. A chave nunca foi rotacionada, porque rotacionar exigiria recifrar 14 milhões de documentos — estimado em três semanas de processamento e um custo alto de leitura e escrita. A chave tinha quatro anos.

Chave perdida, e sem versão para saber quais. Uma tentativa anterior de rotação parcial deixou cerca de 200 mil documentos cifrados com uma chave intermediária. Duas coisas deram errado, e vale separá-las: a chave tinha sumido — foi isso que tornou os documentos ilegíveis, até que alguém a encontrasse meses depois num repositório de configuração desativado. A falta de versão no metadado custou outra coisa: sem ela, mesmo com todas as chaves em mãos, classificar o acervo exigiu tentar decifrar cada objeto com cada chave conhecida.

Chave acessível a quem administrava o armazenamento. A mesma equipe podia ler os objetos e obter a chave. A cifragem não protegia contra o administrador, que era justamente a ameaça citada na justificativa do projeto.

A reformulação:

Envelopamento. Cada documento passou a ter chave própria, cifrada por uma chave mestra em serviço gerenciado. Rotacionar a mestra passou a ser uma operação de minutos.

Versão da chave gravada nos metadados de cada objeto. A migração exigiu tentar decifrar com cada chave conhecida para classificar o acervo — e foi assim que os 200 mil documentos foram identificados.

Separação de deveres. A política da chave mestra passou a ser controlada por um papel distinto do que administra o armazenamento, com uso auditado.

Inventário de chave para conjunto de dados, mantido automaticamente.

E uma descoberta durante a migração: a chave estava numa cópia de segurança da configuração, armazenada no mesmo armazenamento de objetos que ela protegia.

A lição registrada: a decisão de cifrar tinha sido bem tomada e bem justificada. Nada além dela foi decidido — e quatro anos depois o sistema tinha cifragem sem nenhuma das propriedades que a cifragem deveria entregar.

Conceitos Relacionados

Exercício Prático

Para cada chave criptográfica do seu sistema, responda: onde ela está, quem pode usá-la, quando foi rotacionada, e o que acontece se ela sumir agora.

A última pergunta costuma não ter resposta, e ela é a que produz perda permanente.

Perguntas de Entrevista

  • Como o envelopamento torna a rotação viável?
  • Por que a versão da chave precisa ser guardada com o dado?
  • Por que chave de assinatura merece tratamento diferente?

Para Aprofundar

  • NIST SP 800-57 — recomendações para gestão de chaves.
  • Ferguson, Niels; Schneier, Bruce; Kohno, Tadayoshi. Cryptography Engineering. Wiley, 2010.
  • Documentação de serviços gerenciados de chaves dos principais provedores.
Terminou de ler este documento?Seu progresso fica salvo apenas neste navegador.