Segurança e Arquitetura — Assinador Projudi-PR
O Assinador Projudi-PR é uma aplicação nativa para macOS que substitui o atual AssinadorTJPR baseado em Java, mantendo total compatibilidade com o protocolo de assinatura digital do sistema Projudi do Tribunal de Justiça do Estado do Paraná (TJPR).
A solução foi desenvolvida para resolver os significativos problemas de usabilidade e segurança que os usuários de macOS enfrentam ao utilizar o assinador atual, que depende do Java 8 — uma tecnologia descontinuada e sem suporte de segurança desde março de 2019.
O AssinadorTJPR atual requer o Java Runtime Environment 8 (JRE 8), cuja última atualização pública de segurança foi disponibilizada em março de 2019. A Oracle encerrou o suporte público ao Java 8 nessa data, o que significa que vulnerabilidades descobertas desde então não são corrigidas.
.jnlp do Projudixattr -d com.apple.quarantine ~/Downloads/AssinadorTJPR.jnlpRisco de Segurança
Este procedimento exige que o usuário desative proteções de segurança do sistema operacional, representando risco significativo para máquinas que processam dados sensíveis do Poder Judiciário.
Aplicação 100% nativa para macOS, escrita em Swift, que:
~/Downloads).jnlp baixados do Projudi| Componente | Especificação |
|---|---|
| Formato | CMS/PKCS#7 — assinatura detached |
| Algoritmo de hash | SHA-1 |
| Algoritmo de assinatura | RSA com PKCS#1 v1.5 |
| Atributos assinados | contentType, signingTime, messageDigest |
| Transporte | HTTPS POST multipart/form-data |
| Autenticação | Cookies de sessão extraídos do JNLP |
Validação em produção
Compatibilidade verificada em ambiente de produção — documentos assinados aceitos pelo Projudi sem rejeição.
| Capacidade | Status | Descrição |
|---|---|---|
| Arquivos selecionados pelo usuário | Sim | Apenas arquivos explicitamente selecionados |
| Acesso à rede (cliente) | Sim | Apenas conexões de saída (servidor Projudi) |
| Bookmarks de diretório | Sim | Permite monitorar a pasta Downloads |
| Arquivos do sistema | Não | Bloqueado pelo sandbox |
| Outros aplicativos | Não | Bloqueado pelo sandbox |
| Processos externos | Não | Bloqueado pelo sandbox |
| Keychain de outros apps | Não | Bloqueado pelo sandbox |
| Escuta de rede (servidor) | Não | Bloqueado pelo sandbox |
| Captura de tela/teclado | Não | Bloqueado pelo sandbox |
| Componente | Local | Proteção |
|---|---|---|
| Arquivo .p12 | ~/Library/Application Support/ (sandboxed) | App Sandbox — inacessível por outras aplicações |
| Senha do certificado | macOS Keychain | AES-256-GCM via Secure Enclave |
| Chave privada (em uso) | Memória RAM | Nunca gravada em disco |
| Critério | AssinadorTJPR (Java 8) | Assinador Projudi-PR (Swift) |
|---|---|---|
| Runtime | Sem patches desde mar/2019 | Atualizado com o macOS |
| Isolamento | Nenhum — permissões totais | App Sandbox da Apple |
| Assinatura de código | JAR não assinado pela Apple | Assinado + notarizado (App Store) |
| Gatekeeper | Precisa desabilitar | Totalmente compatível |
| Acesso a arquivos | Irrestrito | Apenas selecionados pelo usuário |
| Acesso à rede | Irrestrito | Apenas saída (HTTPS) |
| Atualizações | Manual | Automática via App Store |
| Revisão de código | Nenhuma | Revisão pela Apple |
| Superfície de ataque | ~250MB (JRE) | ~2MB (binário) |
| CVEs conhecidas | 400+ desde 2019 | Zero |
| Risco | Java 8 | Swift nativo |
|---|---|---|
| Execução remota de código | ALTO | MÍNIMO |
| Man-in-the-middle | MÉDIO | BAIXO |
| Roubo de certificado | ALTO | BAIXO |
| Escalação de privilégios | ALTO | MÍNIMO |
| Phishing via app falso | ALTO | BAIXO |
O protocolo do Projudi emprega SHA-1, considerado criptograficamente inseguro desde 2017:
Recomendação de Migração
Recomendamos a migração de SHA-1 para SHA-256, em conformidade com NIST SP 800-131A Rev. 2, ICP-Brasil DOC-ICP-01.01 v5.2, e práticas internacionais de segurança para sistemas judiciais.
| Norma / Padrão | Status |
|---|---|
| ICP-Brasil — Padrão CMS | Compatível |
| Apple App Store Guidelines | Em conformidade |
| LGPD (Lei 13.709/2018) | Não coleta dados além do necessário |
| App Sandbox | Totalmente implementado |
| App Transport Security | Ativo — HTTPS obrigatório |
| Componente | Tecnologia |
|---|---|
| Linguagem | Swift 5.9 |
| UI | SwiftUI |
| Segurança | Apple Security.framework |
| ASN.1/DER | Implementação nativa + SwiftASN1 |
| Formato | CMS/PKCS#7 (RFC 5652) — detached |
| Algoritmo | SHA1withRSA (PKCS#1 v1.5) |
| Transporte | HTTPS POST multipart/form-data |
| Monitoramento | DispatchSource (GCD) |
| Armazenamento | macOS Keychain + App Sandbox |
| Compatibilidade | macOS 13.0 Ventura+ |
| Arquiteturas | Apple Silicon + Intel (Universal) |
O Assinador Projudi-PR não compromete a segurança da assinatura digital. Pelo contrário, eleva significativamente o nível de segurança ao:
A aplicação é uma evolução natural e necessária do processo de assinatura digital no Projudi para macOS, alinhada com práticas modernas de segurança e diretrizes de proteção de dados do Poder Judiciário brasileiro.