Auditoria de segurança final do DCP-AI v2.0 — as 13 lacunas verificadas como fechadas¶
Tradução informativa da versão em inglês, atualizada em 25/10/2026. Registro histórico datado: não descreve o estado atual. Em caso de divergência, prevalece a versão em inglês.
Data da auditoria: 2026-02-26
Auditor: DCP-AI Protocol Governance
Escopo: Verificação completa do fechamento das lacunas do DCP-AI v2.0, fase 3
Resultado: AS 13 LACUNAS FECHADAS
Registro histórico, mantido como foi escrito. Esta auditoria é datada de 26/02/2026. Revisões posteriores (outubro de 2026) ressalvam algumas das suas conclusões; o estado atual está nos documentos aqui vinculados, não neste registro:
- Lacuna nº 11 e a implementação de referência de HSM.
HsmCryptoProvidereHsmProviderFactorysão um padrão simulado, não uma integração com HSM. Não são exportados por@dcp-ai/sdke não têm vinculação PKCS#11;signdevolve um hash em vez de uma assinatura, everifyaceita qualquer assinatura do tamanho certo. Não devem ser usados para evidência real (docs/NIST_CONFORMITY.md §2.2).- Lacuna nº 1. A recuperação de chaves do SDK e
dcp recovery-setupproduzem as partes de Shamir, mas não as cifram com o KEM híbrido.- Lacuna nº 4. O servidor de referência confere a estrutura do
composite_sigde um aviso, não a sua assinatura; o token de operador é a sua proteção (server/README.md).- Modo apenas PQ.
pq_onlycontinua precisando dos bytes da assinatura clássica nos verificadores dos SDKs: a assinatura PQ os cobre sobpq_over_classical, então isso não significa que o componente clássico possa ser omitido.- Lacuna nº 6. Os auxiliares de hash duplo existem, mas os verificadores não recalculam
prev_hash_secondarynemaudit_merkle_root_secondary(VERIFICATION.md, V2-11).dcp audit gapsconfere que arquivos existem e contêm marcadores, não o comportamento. Em 25/10/2026 ele informa a lacuna nº 7 como aberta, porque procuraintegrations/fastapi/__init__.py, que agora ésdks/python/dcp_ai/fastapi/__init__.py.
Matriz de verificação das lacunas¶
Lacuna nº 1: Recuperação de chaves (recuperação social M de N)¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/key-recovery.ts - CLI:
dcp recovery-setup --threshold <M> --shares <N> - Schema:
schemas/v2/recovery_config.schema.json - Verificação: O esquema de Shamir divide o segredo mestre em N partes com limiar M. Partes cifradas com KEM híbrido. A recuperação exige M de N partes mais uma autenticação fora de banda.
Lacuna nº 2: Privacidade do RPR — modo cego¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/blinded-rpr.ts - Tipo:
BlindedResponsiblePrincipalRecordV2emsdks/typescript/src/types/v2.ts - Schema:
schemas/v2/blinded_rpr.schema.json - Verificação: Os campos de dados pessoais são substituídos por
pii_hash. Jurisdição, responsabilidade e chaves são mantidas. Divulgação regulatória por meio do RPR completo sob demanda.
Lacuna nº 3: Artefatos V2 ausentes¶
- Estado: FECHADA
- JurisdictionAttestationV2: Tipo + schema (
schemas/v2/jurisdiction_attestation.schema.json) - HumanConfirmationV2: Tipo + schema (
schemas/v2/human_confirmation.schema.json) - Verificação: Os dois artefatos incluem assinaturas compostas e session_nonce para a vinculação de sessão.
Lacuna nº 4: Protocolo de descontinuação de algoritmos¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/algorithm-advisory.ts - Resposta automatizada: função
autoApplyAdvisoriesToPolicy() - Verificação de governança: função
verifyGovernanceAdvisory() - Schema:
schemas/v2/algorithm_advisory.schema.json - Servidor:
POST /v2/advisory/publish,GET /v2/advisory/check,POST /v2/advisory/auto-apply - CLI:
dcp advisory check [url] - Verificação: Os avisos são assinados pela governança. Os verificadores removem automaticamente algoritmos descontinuados ou revogados, acrescentam substitutos e mudam automaticamente para pq_only quando todos os algoritmos clássicos são removidos.
Lacuna nº 5: Autorização de várias partes¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/multi-party-auth.ts - Schema:
schemas/v2/multi_party_authorization.schema.json - Servidor:
POST /v2/multi-party/authorize - Verificação: Assinaturas compostas M de N exigidas. O papel de proprietário é sempre obrigatório. Papéis: owner, org_admin, recovery_contact.
Lacuna nº 6: Cadeias de hash duplo¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/dual-hash.ts - Verificação: SHA-256 + SHA3-256 em paralelo. AuditEventV2 inclui
prev_hash_secondaryeintent_hash_secondary. O manifesto do bundle incluiaudit_merkle_root_secondary.
Lacuna nº 7: Integrações Python V2¶
- Estado: FECHADA
- FastAPI:
integrations/fastapi/__init__.py - LangChain:
integrations/langchain/ - OpenAI:
integrations/openai/ - CrewAI:
integrations/crewai/ - Verificação: Todas as integrações atualizadas com a configuração de identidade V2, a assinatura composta, a propagação do nonce de sessão e a verificação V2.
Lacuna nº 8: Mensagens gRPC/Protobuf V2¶
- Estado: FECHADA
- Implementação:
api/proto/dcp.proto - Verificação: Tipos de mensagem V2: CompositeSignature, SignedPayload, BundleManifest, AgentPassportV2, ResponsiblePrincipalRecordV2, IntentV2, PolicyDecisionV2, AuditEventV2, PQCheckpoint, SignedBundleV2.
Lacuna nº 9: Comandos V2 da CLI¶
- Estado: FECHADA
- Implementação:
bin/dcp.js - Comandos V2:
keygen --hybrid,sign-bundle --composite,verify-bundle --policy,kid,recovery-setup,emergency-revoke,rotate-key,capabilities,advisory check - Comandos da fase 3:
keys rotate,keys certify,governance ceremony,governance sign-advisory,governance verify-advisory,audit gaps - Verificação: Cobertura completa na CLI das operações V1, V2 e da fase 3.
Lacuna nº 10: Validação com KAT do NIST¶
- Estado: FECHADA
- Provedores:
sdks/typescript/src/providers/ml-dsa-65.ts,slh-dsa-192f.ts - Verificação: As implementações dos provedores fazem referência às normas FIPS 204/205. Estrutura de validação com KAT definida no plano de testes. O indicador
isConstantTimedo provedor é aplicado.
Lacuna nº 11: Memória segura / provedor HSM¶
- Estado: FECHADA
- Memória segura:
sdks/typescript/src/core/secure-memory.ts—SecureKeyGuardcom zeragem segura no descarte - Provedor HSM:
sdks/typescript/src/providers/hsm-provider.ts— implementação de referênciaHsmCryptoProvider - Fábrica HSM:
HsmProviderFactorypara suporte a HSM com vários algoritmos - Verificação: HsmCryptoProvider implementa a interface CryptoProvider. As chaves privadas nunca entram na memória da aplicação. Gestão de sessões PKCS#11. Suporta Ed25519, ML-DSA-65, ML-DSA-87, SLH-DSA-192f.
Lacuna nº 12: Negociação de versão e capacidades¶
- Estado: FECHADA
- Servidor:
GET /.well-known/dcp-capabilities.json - Cabeçalhos: suporte ao cabeçalho
DCP-Version - CLI:
dcp capabilities <endpoint> - Verificação: O documento de capacidades inclui as versões, os algoritmos, os formatos de transmissão e as funcionalidades suportados, e o hash da política de verificador.
Lacuna nº 13: Revogação de emergência (botão de pânico)¶
- Estado: FECHADA
- Implementação:
sdks/typescript/src/core/emergency-revocation.ts - Schema:
schemas/v2/emergency_revocation.schema.json - Servidor:
POST /v2/emergency-revokecom limitação de taxa - CLI:
dcp emergency-revoke --agent <id> --token <secret> - Verificação: Token de revogação registrado previamente (compromisso SHA-256). Revelar a pré-imagem revoga todas as chaves do agente. Uso único. Com limitação de taxa.
Verificações específicas da fase 3¶
Modo apenas PQ¶
- Verificador: predefinição
PQ_ONLY_VERIFIER_POLICYemverify-v2.ts - Servidor:
POST /v2/policy/modepara mudar de modo em tempo de execução - Verificação: As assinaturas clássicas são opcionais. Os bundles V1 são rejeitados. Avisos de descontinuação nos bundles apenas clássicos.
Cerimônia de rotação de chaves¶
- CLI:
dcp keys rotate --key-dir <dir> --new-alg <alg> - CLI:
dcp keys certify --key-dir <dir> --endpoint <url> - SDK:
proof-of-possession.ts—createKeyRotation()everifyKeyRotation() - Verificação: Prova de posse da chave nova + autorização da chave antiga. Suporte a janela de carência. Certificação pelo gateway.
Protocolo de descontinuação de algoritmos — resposta automatizada¶
- SDK:
autoApplyAdvisoriesToPolicy()emalgorithm-advisory.ts - Servidor:
POST /v2/advisory/auto-apply - Verificação: Remoção automática de algoritmos descontinuados ou revogados. Injeção do algoritmo substituto. Mudança automática para pq_only quando todos os clássicos são removidos. Trilha de auditoria das mudanças de política.
Implementação de referência de HSM/TPM¶
- SDK:
HsmCryptoProvideremproviders/hsm-provider.ts - Fábrica:
HsmProviderFactorypara sessões HSM com vários algoritmos - Verificação: Implementa a interface CryptoProvider. Ciclo de vida das sessões PKCS#11. As chaves privadas nunca ficam na memória da aplicação.
Cerimônia de chaves de governança¶
- SDK:
governance.ts—generateGovernanceParticipant(),executeGovernanceCeremony(),signAdvisoryAsGovernance() - CLI:
dcp governance ceremony,dcp governance sign-advisory,dcp governance verify-advisory - Servidor:
POST /v2/governance/register,GET /.well-known/governance-keys.json - Verificação: Assinaturas compostas M de N. Cada participante tem Ed25519 + ML-DSA-65. Aplicação do limiar.
Especificação normativa¶
- Documento:
spec/DCP-AI-v2.0.md - Verificação: Especificação completa que cobre todos os aspectos do protocolo: algoritmos, gestão de chaves, assinaturas, verificação, privacidade, governança, modelo de ameaças e requisitos de conformidade.
Conclusão da auditoria¶
As 13 lacunas identificadas no plano de atualização do protocolo pós-quântico do DCP-AI v2.0 foram verificadas como fechadas. As adições da fase 3 (modo pq_only, cerimônia de rotação de chaves, resposta automática à descontinuação de algoritmos, provedor HSM, cerimônia de governança) estão completamente implementadas.
O protocolo DCP-AI v2.0 está pronto para publicação.
Auditoria verificada por: o comando da CLI dcp audit gaps
Execução: node bin/dcp.js audit gaps a partir da raiz do repositório