Files
cybercore-signer/docs/compliance-testing.md

4.1 KiB

Guia de Testes de Conformidade ICP-Brasil e Validação Oficial no ITI

Procedimentos de Verificação Criptográfica Automatizada e Manual para Assinaturas PAdES e XAdES-BES


1. Visão Geral

O CyberCore Signer implementa assinaturas digitais em conformidade com as normas técnicas da Infraestrutura de Chaves Públicas Brasileira (ICP-Brasil), especificamente:

  • PDF (PAdES): Padrão ISO 32000-1 e ETSI TS 102 778, com envelope CMS desacoplado (/adbe.pkcs7.detached) e algoritmo SHA256withRSA (alinhado ao perfil AD-RB).
  • XML (XAdES-BES / XMLDSig): Padrão ETSI TS 101 903 e norma DOC-ICP-15.03, contendo propriedades qualificadas assinadas (<xades:QualifyingProperties>, <xades:SigningTime> e <xades:SigningCertificate>).

2. Suíte de Testes Automatizados (ComplianceSignatureSuiteTest)

A conformidade técnica do código é garantida de forma contínua pelo teste automatizado: modules/cybercore-core/src/test/java/br/com/cybercore/signer/core/compliance/ComplianceSignatureSuiteTest.java

O que o teste automatizado valida:

  1. Cadeia ICP-Brasil Simulada em Memória:
    • Cria uma hierarquia criptográfica completa (AC Raiz de Teste -> AC Intermediária -> Certificado Signatário com extensão OID e-CPF 2.16.76.1.3.1).
    • Garante que nenhum certificado real ou dado pessoal seja exposto em testes.
  2. PAdES (PDF):
    • Criação de documento PDF original.
    • Aplicação de selo visual conforme as coordenadas calculadas.
    • Verificação da integridade do /ByteRange cobrindo o PDF integral exceto os bytes de /Contents.
    • Validação criptográfica independente via Bouncy Castle CMSSignedData.verify().
    • Comparação do digest SHA-256 do documento contra o atributo assinado messageDigest.
  3. XAdES-BES (XML):
    • Assinatura de documento XML com geração de identificadores de referência (Reference URI).
    • Validação independente via motor nativo Java JSR-105 (javax.xml.crypto.dsig.XMLSignature).
    • Teste de inviolabilidade (Tamper Test): verificação de que qualquer modificação de um caractere nos dados de negócio invalida sumariamente o coreValidity.

3. Validação Manual no Verificador de Conformidade do ITI

O Instituto Nacional de Tecnologia da Informação (ITI) disponibiliza a ferramenta governamental oficial para validação de assinaturas digitais brasileiras:

👉 URL Oficial: https://verificador.iti.gov.br

3.1 Procedimento Passo a Passo para Teste Manual

  1. Gerar ou Exportar o Documento Assinado:

    • Através da interface gráfica do CyberCore Signer, assine um documento PDF ou XML utilizando seu certificado digital A1 ou A3.
    • O arquivo assinado resultante será gravado em disco (ex: contrato_assinado.pdf ou documento_assinado.xml).
  2. Submissão no Verificador do ITI:

    • Acesse https://verificador.iti.gov.br em qualquer navegador web moderno.
    • Clique em "Selecionar assinatura" e faça o upload do arquivo gerado pelo CyberCore Signer.
    • Clique no botão "Verificar conformidade".
  3. Interpretação do Relatório de Conformidade:

Cenário A: Assinatura com Certificado de Produção ICP-Brasil (Certisign, Serasa, Serpro, Valid, etc.)

  • Status Geral: APROVADO / CONFORME.
  • Validação Criptográfica: Íntegra (o hash bate e a assinatura RSA é autêntica).
  • Cadeia de Certificação: Confiável (ancorada até a AC Raiz da ICP-Brasil oficial).
  • Atributos do Signatário: Nome completo e CPF/CNPJ extraídos e validados na Receita Federal.

Cenário B: Assinatura com Certificados de Teste / Desenvolvimento (Gerados na Suíte)

  • Status Criptográfico: VÁLIDO (integridade matemática e estrutura PAdES/XAdES aprovadas).
  • Alerta de Cadeia: O verificador do ITI reportará: "Cadeia de Certificação Não Confiável / AC não credenciada na ICP-Brasil". Este é o comportamento correto e esperado, uma vez que certificados gerados em testes locais não pertencem à lista de certificados confiáveis (LCR oficial) publicada pelo ITI.