# CyberCore Signer > **Agente Desktop de Assinatura Digital e Autenticação Criptográfica (A1 / A3 / PKCS#11) para Windows e Linux.** O **CyberCore Signer** é uma solução desktop em Java 21 LTS com JavaFX que permite que aplicações web autorizadas solicitem assinaturas digitais, autenticação de sessão e carimbos do tempo utilizando certificados digitais ICP-Brasil (A1 em arquivo e A3 em tokens/smartcards físicos) instalados ou conectados na estação de trabalho do usuário. A comunicação local entre a página web e o agente utiliza o protocolo **CCSP (CyberCore Signing Protocol)** via HTTP/WebSocket localhost autenticado e seguro. --- ## 🏛 Arquitetura do Projeto O projeto é estruturado em módulos Maven: * **[modules/cybercore-core](modules/cybercore-core)**: Núcleo de regras criptográficas (JCA/JCE, SunPKCS11, X.509, PAdES, XMLDSig, carimbo de tempo TSA, LTV e validação de cadeias). Não possui dependência de interface gráfica. * **[modules/cybercore-ui](modules/cybercore-ui)**: Interface gráfica com o usuário construída em JavaFX (Dashboard, Gerenciador de Certificados, Diagnóstico Criptográfico, Diálogo de Confirmação de Assinatura, PIN dialog e System Tray). * **[modules/cybercore-app](modules/cybercore-app)**: Ponto de entrada da aplicação (`CyberCoreApp`), orquestrador dos serviços de ciclo de vida e servidor CCSP local. * **[sdk/](sdk)**: SDK JavaScript oficial (`@cybercore/signer-sdk`) para integração de aplicações web com o agente desktop. * **[docs/](docs)**: Documentação técnica detalhada de arquitetura, protocolo, segurança e casos de uso. --- ## 🚀 Requisitos * **Java Development Kit (JDK):** Versão 21+ LTS (OpenJDK, Temurin, Corretto, etc.). * **Maven:** 3.9+ (ou utilizar o wrapper `./mvnw` incluído no projeto). * **Sistema Operacional Alvo:** Windows 10/11 ou Linux (x86_64). --- ## 🛠 Compilação e Empacotamento ### 1. Compilação do JAR Executável Para compilar e gerar o JAR consolidado (com todas as dependências sombreadas e assets): ```bash ./build-jar.sh ``` Ou diretamente via Maven: ```bash ./mvnw clean package -DskipTests ``` O artefato consolidado será gerado em: `modules/cybercore-app/target/cybercore-signer.jar` ### 2. Execução Local Para iniciar o agente em ambiente de desenvolvimento: ```bash # No Linux / macOS: ./run.sh # No Windows: run.bat ``` ### 3. Empacotamento com Runtime Nativo (`jpackage`) Para criar a distribuição com Java Runtime embutido (sem exigir JDK pré-instalado pelo usuário final): ```bash ./scripts/package-jpackage.sh ``` --- ## 🔒 Princípios de Segurança e Privacidade 1. **Chave Privada Preservada:** A chave privada e os segredos (PIN de token A3 e senha de certificado A1) nunca saem da máquina do usuário nem trafegam pela rede. 2. **Assinatura por Digest:** Por padrão, a aplicação web calcula o hash/digest (ex: SHA-256) do documento e o CyberCore assina localmente apenas o digest, minimizando o tráfego de dados sensíveis. 3. **Confirmação Explícita:** Toda operação de assinatura exige consentimento e autorização visual do usuário antes da aplicação da chave. 4. **Isolamento de Origem e CCSP:** O agente atende apenas origens web autorizadas, protegendo contra abusos via CSRF ou requisições locais não autenticadas. --- ## 📚 Documentação Técnica Consulte a pasta [docs/](docs) para especificações completas: * [Protocolo CCSP (CyberCore Signing Protocol)](docs/CCSP.md) * [Arquitetura e Fluxo do Sistema](docs/architecture.md) * [Certificados A1 e A3 (PKCS#11 / MSCAPI)](docs/a1-a3-certificates.md) * [Assinatura de Documentos PDF (PAdES / LTV / TSA)](docs/pades.md) * [Assinatura de Documentos XML (XMLDSig)](docs/xml-xmldsig.md) * [Autenticação e Sessão Criptográfica](docs/authentication-login.md) * [Diagnóstico e Resolução de Problemas](docs/diagnostics.md) * [Segurança e Tratamento de Erros](docs/security.md) * [SDK Web JavaScript](docs/sdk.md) * [Guia de Instalação](docs/installation.md) --- ## 📄 Licença Propriedade de **CyberCore Systems**. Todos os direitos reservados.