CyberCore Signer
Agente Desktop Nativo de Assinatura Digital e Autenticação Criptográfica (A1 / A3 / PKCS#11) para Windows e Linux.
O CyberCore Signer é uma solução desktop desenvolvida em Java 25 LTS com interface gráfica moderna JavaFX e segurança criptográfica estrita JCA/JCE. Permite que aplicações web autorizadas solicitem assinaturas digitais, autenticação de sessão e validação de documentos utilizando certificados digitais padrão ICP-Brasil (A1 em arquivo e A3 em tokens/smartcards físicos) conectados ou instalados na máquina do usuário.
A comunicação local entre a página web e o agente utiliza o protocolo CCSP (CyberCore Signing Protocol) via HTTP localhost (127.0.0.1:21325), garantindo isolamento total de rede, consentimento visual explícito e preservação integral das chaves privadas na máquina local.
⚡ Quick Start
🌐 Para Aplicações Web (via SDK JavaScript)
Instale e utilize o SDK oficial @cybercore/signer-sdk para conectar sua aplicação web ao agente local em poucos passos:
import { CyberCoreSigner } from '@cybercore/signer-sdk';
// 1. Inicializar o cliente do assinador
const signer = new CyberCoreSigner({
applicationName: 'Portal Meu Negócio'
});
// 2. Obter certificados disponíveis na máquina do usuário
const certificates = await signer.getCertificates();
const cert = certificates[0]; // Seleciona o primeiro certificado disponível
// 3. Assinar o hash SHA-256 de um documento (a chave nunca sai da máquina!)
const result = await signer.sign({
certificateId: cert.id,
digest: '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=',
documentName: 'contrato_prestacao_servicos.pdf'
});
console.log('Assinatura gerada:', result.signature);
console.log('Certificado titular:', result.subject_name);
Para o manual completo com exemplos de login digital, assinatura de PDF e XML, consulte o Guia do SDK.
☕ Para Desenvolvedores Desktop
Requisitos
- Java Development Kit (JDK): Versão 25 LTS (OpenJDK, Temurin ou Corretto).
- Maven: 3.9+ (ou utilizar o
./mvnwembutido). - Sistema Operacional: Windows 10/11 ou Linux x86_64.
Compilação e Execução
# Compilar e gerar o JAR consolidado (Fat JAR sombreado):
./mvnw clean package -DskipTests
# Executar o agente no Linux / macOS:
./run.sh
# Executar o agente no Windows:
run.bat
# Executar com logs detalhados de diagnóstico:
java -jar modules/cybercore-app/target/cybercore-signer.jar --dev
🏛 Arquitetura do Projeto
O projeto é estruturado em módulos Maven desacoplados, garantindo isolamento entre regras criptográficas de baixo nível e a camada de interface gráfica:
modules/cybercore-core: Núcleo de regras criptográficas (JCA/JCE, SunPKCS11, X.509, PAdES com Apache PDFBox e Bouncy Castle, XAdES-BES/XMLDSig, carimbo de tempo TSA, LTV, fila FIFO de concorrência e validação de cadeias). Agnóstico de UI, sem nenhuma dependência de JavaFX.modules/cybercore-ui: Interface gráfica com o usuário construída em JavaFX 25, apresentando design moderno com alternância dinâmica Claro/Escuro (Dual-Theme), Dashboard, Gerenciador de Certificados, Designer de Selos Visuais SVG com Live Preview, Diálogos de Confirmação de Assinatura, PIN dialog e System Tray.modules/cybercore-app: Ponto de entrada da aplicação (CyberCoreApp), orquestrador dos serviços de ciclo de vida, diagnóstico pré-inicialização e servidor CCSP local.sdk/: SDK JavaScript oficial (@cybercore/signer-sdk) para integração simplificada de aplicações web modernas com o agente desktop.docs/: Documentação técnica abrangente contendo especificações do protocolo, arquitetura, segurança e manuais de integração.
📊 Matriz de Recursos e Conformidade
| Recurso | Padrão / Tecnologia | Descrição |
|---|---|---|
| Certificados A1 | PKCS#12 / .pfx / .p12 |
Leitura em memória volátil com destruição segura de senhas |
| Certificados A3 | Windows-MY (CryptoAPI/CNG) & PKCS#11 | Acesso nativo a tokens USB e smartcards (SafeSign, SafeNet, GD Burti, OpenSC) |
| Assinatura PDF | PAdES (ISO 32000-1 / ETSI TS 102 778) | Envelope CMS/PKCS#7, suporte a salvamento incremental e carimbo TSA |
| Selos Visuais PDF | Renderização Java2D de Alta Resolução (300 DPI) | Brasões vetoriais, upload de logos, controle de sigilo de CPF (LGPD) e pré-visualização interativa |
| Assinatura XML | XAdES-BES (ETSI TS 101 903 / DOC-ICP-15.03) | Suporte completo a NF-e, CT-e, MDF-e, eSocial e documentos envelopados |
| Assinatura Genérica | CMS / CAdES / P7S / P7M | Modalidades atachada (enveloped) e destacada (detached) |
| Login Digital | Challenge-Response ICP-Brasil | Autenticação web segura sem senhas tradicionais |
| Validação | Verificação Criptográfica Local | Auditoria de integridade de hashes, validade de certificados e signatários |
| Interface Desktop | JavaFX 25 com Dual-Theme | Modo Claro e Modo Escuro com comutação instantânea e atalhos na bandeja |
| Protocolo Local | CCSP/1 REST (127.0.0.1:21325) |
Bind estrito em loopback, proteção anti-replay via nonce e autorização de origens |
🔒 Princípios Fundamentais de Segurança
- A Chave Privada Permanece na Estação de Trabalho: A chave privada e os segredos (PIN do token A3 ou senha do arquivo A1) nunca saem da máquina do usuário nem trafegam pela rede ou saem em logs.
- Assinatura por Digest Descentralizada: Por padrão, a aplicação web calcula o hash SHA-256 do documento localmente e o CyberCore assina apenas o digest de 32 bytes, eliminando o tráfego desnecessário de arquivos inteiros.
- Consentimento Visual Explícito: Nenhuma operação de assinatura ocorre silenciosamente. Toda requisição exige autorização física do usuário em diálogo nativo do sistema operacional.
- Isolamento de Origem e Anti-Replay: Cada requisição web deve apresentar identificador de aplicação aprovado, nonce único com validação temporal (
expires_at) e cabeçalho de origem verificado. - Fila FIFO de Operações: O acesso a tokens físicos A3 é protegido por trava de concorrência (
signLock) serializada, prevenindo travamento ou corrupção de sessão nos chips criptográficos.
📚 Documentação Técnica Detalhada
Para detalhes completos sobre arquitetura, protocolos e manuais técnicos, acesse o Portal de Documentação ou consulte diretamente os links abaixo:
- 🌐 Protocolo CCSP/1: Contrato REST, endpoints, códigos de status e anti-replay.
- 📦 SDK Web JavaScript: Guia de integração e métodos da biblioteca oficial.
- 🏛 Arquitetura do Sistema: Módulos, threading e fluxo sequencial.
- 💳 Certificados A1, A3 e PKCS#11: Suporte a hardware, drivers e OIDs ICP-Brasil.
- 📄 Assinaturas PDF e Selos SVG: PAdES, renderização Java2D e selos visuais.
- 📑 Assinaturas XML (XAdES-BES): Padrão DOC-ICP-15.03 e notas fiscais.
- 🔑 Autenticação e Login Digital: Fluxo Challenge-Response via ICP-Brasil.
- ⚠️ Catálogo Estruturado de Erros: Tabela de erros
CcspErrorCodee códigos HTTP. - 🛡️ Modelo de Segurança e Privacidade: Diretrizes de isolamento, memória e LGPD.
- 🩺 Diagnóstico e Troubleshooting: Auto-teste e guia de resolução de problemas.
- 💿 Instalação e Empacotamento Nativo: Distribuição via
jpackagesem JRE pré-instalado. - ⚖️ Limitações Técnicas: Declaração de dependências conforme a Regra 23.
- 🛠️ Modo de Desenvolvimento: Parâmetro
--deve certificados de teste. - 🎨 Layout Dual-Theme e Assinatura em Lote: Design da UI e operações em lote.
📄 Licença e Propriedade
Copyright © 2026 CyberCore Systems. Todos os direitos reservados. Este software é proprietário e confidencial. O uso, distribuição ou modificação não autorizados são estritamente proibidos.