# 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 (``, `` e ``). --- ## 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.