101 lines
4.0 KiB
Markdown
101 lines
4.0 KiB
Markdown
# 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.
|