O que há de novo (Inovações Técnicas)
- Segurança na Fonte: Criptografia implementada estritamente no cliente (AES-GCM + PBKDF2 via WebCrypto). O backend NUNCA recebe o JSON da credencial em texto simples.
- Verificação de Privacidade: Implementação de um método de verificação "privada", onde o verificador envia apenas o
hashVerificacao, sem a necessidade de expor o JSON da credencial. - Higiene e Conformidade: Aplicação de hash canônico (RFC 8785), normalização de endereços e logs sem Informação Pessoal Identificável (PII).
- Interoperabilidade: Endpoints para Verifiable Credentials (VC-JWT) compatíveis com padrões W3C e integração
did:ethr(/api/vc/emitir,/api/vc/verificar).
Sumário
- Motivação
- Arquitetura Híbrida
- Funcionalidades
- Stack Tecnológica
- Como Rodar Localmente
- Variáveis de Ambiente
- Banco de Dados & Prisma
- APIs (Backend Serverless)
- Padrões W3C - VC-JWT
- Contrato Inteligente
- Roteiro de Demonstração (8-10 min)
- Privacidade & Segurança
- Roadmap
- Licença & Autor
Motivação
Sistemas IAM centralizados (como OAuth/SAML) são limitados devido a:
- Risco Centralizado: Um ponto único de falha torna-se um alvo primário para ataques e vazamentos.
- Perda de Soberania: A identidade do usuário não é controlada criptograficamente pelo próprio indivíduo.
- Exposição Excessiva de Dados: Mais dados são revelados para provar um fato do que o estritamente necessário.
A abordagem SSI/DID resolve esses desafios:
- Soberania do Usuário: O controle da identidade é baseado no endereço Ethereum do usuário.
- Privacidade: Capacidade de provar fatos críticos sem a necessidade de expor o JSON subjacente.
- Resiliência: O registro de integridade é descentralizado através da blockchain.
- Alinhamento Regulatório: O projeto suporta LGPD e adere a iniciativas de soberania digital da RNP.
Arquitetura Híbrida
O projeto implementa uma separação rigorosa entre Prova Pública (on-chain) e Dado Privado (off-chain).
| Componente | Função | Dado Armazenado |
| :--- | :--- | :--- |
| Blockchain (Ethereum Sepolia) | Cartório de Integridade Imutável. | Somente hashes (bytes32) e status. Sem PII. |
| Neon Serverless Postgres (DB) | Cofre Privado. | blobCriptografado (JSON da credencial cifrado no cliente) + metadados. |
Princípio Fundamental: A prova de integridade/validade é pública, mas os dados pessoais são criptograficamente protegidos off-chain e nunca transferidos para a blockchain.
Funcionalidades
- Emissão (
/api/emitir): Gera um hash canônico, registra o status on-chain utilizando a conta Emissora, e armazena o blob cifrado mais metadados no Postgres. - Verificação Pública (ZK-style): Retorna status VERDADEIRO/FALSO após consultar o contrato via função
view, reforçando a privacidade. - Revogação de Soberania: O titular assina a transação para invocar
revogarCredencialdiretamente no contrato. - Exportação (
/api/exportar): Exporta todos osblobs cifradosdo usuário em um arquivobackup.json, garantindo a portabilidade dos dados. - Compatibilidade W3C (opcional): Suporte para emissão e verificação de Verifiable Credentials (VC-JWT) interoperáveis.