test(compliance): add independent conformance test suite for pades and xades and iti guide
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 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](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](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.
|
||||
Reference in New Issue
Block a user