# Segurança

API aplica Helmet, CORS configurável e rate limit. Senhas devem usar Argon2; refresh tokens são armazenados somente como hash e rotacionados. PFX e senha são criptografados com AES-256-GCM por `Aes256GcmCipher`; a chave vem de ambiente e nunca do banco.

Arquivos fiscais devem ficar em storage privado. `DocumentStorageService` cifra o conteúdo com AES-256-GCM, cria chave aleatória por tenant/emissão/tipo, grava fora de diretórios públicos (`DOCUMENT_STORAGE_ROOT`, padrão `var/nfse-documents`) e mantém checksum SHA-256 do conteúdo original. Nunca registrar payload fiscal completo, PFX, senha, tokens ou chaves. Auditoria sanitiza campos sensíveis. Upload deve limitar tamanho, aceitar somente PFX/P12 e usar nome de storage gerado pelo servidor.

Backup, restauração e retenção seguem os procedimentos em [backup-restore-runbook.md](backup-restore-runbook.md) e [document-retention.md](document-retention.md). Os scripts de pré-checagem são intencionalmente não destrutivos.
