← Voltar para central legal

04b — Criptografia e Gestão de Chaves

Visão Geral

Esta seção detalha os controles criptográficos e de gestão de chaves para o stack Cataloga-ai, alinhados com LGPD Art. 46 (segurança técnica) e boas práticas de segurança da informação.

Stack em escopo:


1. Criptografia em Trânsito

1.1 TLS 1.3 — Configuração Supabase Self-Hosted

Objetivo: Garantir que todos os dados trafegando entre cliente-servidor e servidor-servidor usem TLS 1.3 com forward secrecy.

Nginx (se usado como reverse proxy no Supabase)

Arquivo: /etc/nginx/sites-available/supabase

Validação:

Caddy (alternativa mais simples)

Arquivo: /etc/caddy/Caddyfile

1.2 PostgreSQL — Conexões TLS Obrigatórias

Arquivo: /etc/postgresql/15/main/postgresql.conf

Arquivo: /etc/postgresql/15/main/pg_hba.conf

Validação:

1.3 Redis — TLS para Conexões

Arquivo: /etc/redis/redis.conf

Cliente Node.js (Vercel Edge Functions):

1.4 Vercel Edge Functions — HTTPS Nativo

Vercel força HTTPS por padrão. Checklist:

1.5 Certificate Pinning

Quando aplicar: Apps mobile nativos (iOS/Android) que se conectam à API.

Não aplicável para: Web apps (navegadores não suportam pinning custom de forma confiável).

Exemplo iOS (Swift):

Manutenção:

1.6 GPTMaker e WhatsApp Cloud API

GPTMaker: API externa — sem controle sobre TLS do lado deles. Validar certificado no cliente:

WhatsApp Cloud API (Meta): TLS 1.2+ garantido pela Meta. Checklist:


2. Criptografia em Repouso

2.1 PostgreSQL — Escolha de Estratégia

Opção A: Transparent Data Encryption (TDE) — Filesystem-Level

Recomendado para: Proteção contra acesso físico ao disco (ex: servidor comprometido, backup de disco roubado).

Ferramenta: LUKS (Linux Unified Key Setup)

Setup:

Prós:

Contras:

Opção B: pgcrypto — Column-Level Encryption

Recomendado para: Proteção granular de PII específico (CPF, e-mail, telefone).

Setup:

Gestão de chave:

Prós:

Contras:

Decisão Recomendada: TDE (LUKS) + pgcrypto para PII crítico

Raciocínio:

2.2 Redis — Encryption at Rest

Redis não possui encryption-at-rest nativo. Opções:

Opção A: LUKS no Volume Redis (recomendado)

Mesmo processo do PostgreSQL:

Opção B: Application-Level Encryption

Criptografar valores antes de gravar no Redis:

Decisão: LUKS (Opção A) é mais simples e performático.

2.3 Backups — Criptografia Obrigatória

PostgreSQL — Backup Criptografado com GPG

Crontab:

Restore:

Redis — Backup RDB Criptografado


3. Gestão de Secrets e Chaves

3.1 Escolha de Vault

Comparação

Decisão: Doppler (justificativa)

Vantagens:

Setup Doppler:

Vercel Function usando Doppler:

3.2 Hierarquia de Chaves (DEK/KEK)

Conceito:

Implementação no Cataloga-ai:

Uso no PostgreSQL:

3.3 Rotação de Chaves

3.3.1 Frequência Recomendada

3.3.2 Rotação Zero-Downtime — PostgreSQL DEK

Estratégia: Dual-encryption durante transição.

Automação via Doppler:

3.4 Revogação de Chaves Comprometidas — Runbook

Cenário: DEK vazada (ex: acesso não-autorizado ao Doppler, leak em logs).

Procedimento:

Tempo estimado: 30-60 minutos dependendo do volume de dados.

Comunicação ANPD: Se a chave vazada permitiu acesso real a PII, disparar protocolo de comunicação de incidente (ver 05-resposta-incidentes.md).


4. Dados Enviados ao GPTMaker

4.1 Avaliação de Risco

Contexto: GPTMaker processa prompts com contexto de clientes (ex: histórico de compras para gerar recomendações de upsell).

Riscos identificados:

Conclusão: Tratamento de alto risco — exige RIPD (ver 02-ripd.md) + DPA com GPTMaker + medidas técnicas de minimização.

4.2 Recomendações Técnicas

4.2.1 Anonimização Antes do Envio

Estratégia: Substituir PII por tokens opacos antes de enviar ao GPTMaker.

Exemplo:

Resultado:

4.2.2 Pseudonimização (Alternativa)

Se contexto semântico for necessário (ex: "cliente do setor farmacêutico"):

4.2.3 Controles de Minimização

Checklist obrigatório antes de enviar ao GPTMaker:

Implementação:

4.3 DPA (Data Processing Agreement) com GPTMaker

Cláusulas obrigatórias:

  1. Finalidade restrita: GPTMaker só pode usar dados para gerar resposta; não pode treinar modelos com dados do Cataloga-ai.
  2. Retenção: Logs devem ser deletados em 30 dias. Sem retenção indefinida.
  3. Subprocessadores: GPTMaker deve listar todos (ex: OpenAI, Anthropic, AWS) e notificar mudanças.
  4. Localização: Dados devem permanecer em servidores com adequação LGPD (Brasil, UE, ou com cláusulas contratuais padrão).
  5. Auditoria: Cataloga-ai pode auditar compliance do GPTMaker anualmente.
  6. Notificação de incidente: GPTMaker deve notificar em 24h qualquer vazamento.

Status: Solicitar DPA assinado antes de produção. Se GPTMaker não assinar, considerar alternativas (ex: hosting próprio do LLM via Hugging Face ou Replicate).


5. Monitoramento e Auditoria

5.1 Logs de Auditoria — Acesso a Dados Criptografados

Objetivo: Rastrear quem descriptografou qual PII e quando.

Implementação PostgreSQL:

Alertas:

5.2 Checklist de Validação Semestral


6. Custos Estimados


7. Responsabilidades


8. Próximos Passos

  1. Implementar TLS 1.3 em Supabase (SRE — prazo: 1 semana)
  2. Ativar LUKS em volumes PostgreSQL/Redis (SRE — prazo: 2 semanas)
  3. Setup Doppler e migrar secrets do Vercel (Backend — prazo: 3 dias)
  4. Implementar anonimização GPTMaker (Backend — prazo: 1 semana)
  5. Solicitar DPA GPTMaker (DPO — prazo: 2 semanas)
  6. Configurar auditoria de decriptografia (Backend — prazo: 1 semana)
  7. Teste de restore backup criptografado (SRE — prazo: 1 dia)

Documento mantido por: Cryptography Counsel (Paperclip)

Última atualização: 2026-04-25

Próxima revisão: 2026-07-25 (trimestral)