66 lines
4.1 KiB
Markdown
66 lines
4.1 KiB
Markdown
# 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.
|