@purecore/one-jwt-4-all 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,87 @@
1
+ # Changelog
2
+
3
+ Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
4
+
5
+ O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
6
+ e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
7
+
8
+ ---
9
+
10
+ ## [Release] v1.2.0 - 2024-12-22
11
+
12
+ ### What's Changed
13
+
14
+ * **Signal Protocol E2EE para Agentes**
15
+ - Implementação completa do Double Ratchet Algorithm do Signal Protocol
16
+ - Suporte a X3DH (Extended Triple Diffie-Hellman) para key agreement
17
+ - Criptografia AES-256-GCM para mensagens
18
+ - Perfect Forward Secrecy (PFS) por mensagem
19
+ - Post-Compromise Security (PCS)
20
+ - Integração com sistema de JWT existente
21
+
22
+ * **Documentação Completa**
23
+ - Novo arquivo `examples/SIGNAL_E2EE.md` com explicação detalhada
24
+ - Comparação entre Signal E2EE e mTLS
25
+ - Guia de como usar ambos em conjunto
26
+ - Referências para especificações oficiais
27
+
28
+ * **Novos Arquivos**
29
+ - `examples/signal-e2ee-agents.ts` - Implementação do protocolo
30
+ - `examples/SIGNAL_E2EE.md` - Documentação completa
31
+ - `CHANGELOG.md` - Este arquivo
32
+ - `reports/` - Pasta para relatórios
33
+
34
+ ### New Contributors
35
+
36
+ * Implementação baseada nas especificações oficiais do Signal Protocol
37
+
38
+ ---
39
+
40
+ ## [Release] v1.1.0 - 2024-12-21
41
+
42
+ ### What's Changed
43
+
44
+ * **mTLS para Agentes**
45
+ - Implementação de mutual TLS para autenticação de transporte
46
+ - Certificate Authority (CA) para geração de certificados
47
+ - Suporte a conexões TLS bidirecionais
48
+ - Integração com JWT para autenticação dupla
49
+
50
+ * **Documentação**
51
+ - `examples/MTLS_AGENTS.md` - Guia de uso do mTLS
52
+
53
+ ### Arquivos Adicionados
54
+
55
+ - `examples/mtls-agents.ts`
56
+ - `examples/MTLS_AGENTS.md`
57
+
58
+ ---
59
+
60
+ ## [Release] v1.0.0 - 2024-12-20
61
+
62
+ ### What's Changed
63
+
64
+ * **Self-Healing Agents**
65
+ - Sistema de renovação automática de tokens JWT
66
+ - Suporte a conversação entre agentes com JWT
67
+ - Token Authority centralizada
68
+
69
+ * **Core JWT**
70
+ - Implementação de SignJWT com builder pattern
71
+ - Função jwtVerify compatível com jose
72
+ - Suporte exclusivo a EdDSA (Ed25519)
73
+ - Geração de pares de chaves
74
+
75
+ ### Arquivos Base
76
+
77
+ - `src/index.ts` - Core da biblioteca
78
+ - `examples/self-healing-agents.ts`
79
+ - `examples/SELF_HEALING_AGENTS.md`
80
+
81
+ ---
82
+
83
+ ## Links
84
+
85
+ - [Documentação Signal E2EE](./examples/SIGNAL_E2EE.md)
86
+ - [Documentação mTLS](./examples/MTLS_AGENTS.md)
87
+ - [Documentação Self-Healing](./examples/SELF_HEALING_AGENTS.md)
@@ -0,0 +1,117 @@
1
+ # Cogfulness Ethical License (CEL) v1.0
2
+
3
+ **Copyright (c) 2026, Cogfulness Foundation**
4
+
5
+ ## 📖 Definição de Termos
6
+
7
+ **"Sistema Cognitivo"** refere-se a qualquer software, aplicação ou sistema que:
8
+
9
+ - Auxilie no desenvolvimento cognitivo saudável dos usuários
10
+ - Promova bem-estar mental e emocional
11
+ - Respeite a autonomia e privacidade cognitiva
12
+ - Não explore estados alterados de consciência
13
+
14
+ **"Exploração Cognitiva"** refere-se a qualquer uso que:
15
+
16
+ - Manipule estados cognitivos para fins comerciais não éticos
17
+ - Interfira na autonomia cognitiva dos usuários
18
+ - Cause danos psicológicos ou emocionais
19
+ - Utilize dados cognitivos sem consentimento explícito
20
+
21
+ ## 🎯 Permissões
22
+
23
+ É concedida permissão, livre de encargos, a qualquer pessoa que obtenha uma cópia deste software e arquivos de documentação associados (o "Software"), para:
24
+
25
+ 1. **Usar** o Software para fins éticos e/ou comerciais
26
+ 2. **Copiar** o Software para distribuição pessoal ou comercial
27
+ 3. **Modificar** o Software desde que mantenha compatibilidade ética
28
+ 4. **Distribuir** o Software com as mesmas condições éticas ou comerciais
29
+ 5. **Incorporar** o Software em sistemas cognitivos éticos ou comerciais
30
+
31
+ ## ⚖️ Condições Éticas Obrigatórias
32
+
33
+ ### 1. Uso Ético Exclusivo
34
+
35
+ O Software deve ser utilizado exclusivamente para promover:
36
+ - Desenvolvimento cognitivo saudável
37
+ - Bem-estar mental e emocional
38
+ - Autonomia e privacidade cognitiva
39
+ - Práticas éticas de tecnologia
40
+
41
+ ### 2. Proibição de Exploração
42
+
43
+ É expressamente proibido:
44
+ - Usar o Software para exploração cognitiva
45
+ - Manipular estados de consciência para fins comerciais
46
+ - Coletar dados cognitivos sem consentimento explícito
47
+ - Causar danos psicológicos ou emocionais
48
+
49
+ ### 3. Transparência Cognitiva
50
+ Qualquer modificação ou distribuição deve:
51
+ - Manter esta licença intacta
52
+ - Divulgar claramente as intenções cognitivas
53
+ - Documentar impactos cognitivos conhecidos
54
+
55
+ ## 🚨 Consequências Legais
56
+
57
+ ### Violação Ética Detectada
58
+ Se for constatado uso do Software para exploração cognitiva:
59
+
60
+ 1. **Imputação Legal Automática**: A Cogfulness.Foundation poderá iniciar processos legais contra o infrator
61
+ 2. **Responsabilização Civil**: O infrator será responsável por danos cognitivos causados
62
+ 3. **Sanções Comerciais**: Perda de direitos de uso comercial
63
+ 4. **Publicação de Violações**: Casos graves serão publicados publicamente
64
+
65
+ ### Processo de Investigação
66
+ - A Cogfulness.Foundation atuará como entidade fiscalizadora
67
+ - Investigações serão conduzidas por especialistas em ética cognitiva
68
+ - Decisões serão baseadas em evidências técnicas e testemunhais
69
+
70
+ ## 📜 Isenções e Responsabilidades
71
+
72
+ ### Isenção de Garantia
73
+ O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO MAS NÃO SE LIMITANDO A GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO.
74
+
75
+ ### Limitação de Responsabilidade
76
+ EM NENHUMA HIPÓTESE OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER RECLAMAÇÕES, DANOS OU OUTRAS RESPONSABILIDADES, SEJA EM AÇÃO CONTRATUAL, DELITO OU OUTRO, DECORRENTES DE, FORA DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
77
+
78
+ ### Responsabilidade Ética
79
+ O usuário assume total responsabilidade pela utilização ética do Software. O uso inadequado constitui violação desta licença e pode resultar em consequências legais através da Cogfulness.Foundation.
80
+
81
+ ## 🌟 Compatibilidade e Extensões
82
+
83
+ ### Licenças Compatíveis
84
+ Esta licença é compatível com:
85
+ - MIT License (para componentes não-cognitivos)
86
+ - BSD Licenses
87
+ - Apache License 2.0 (com cláusulas adicionais)
88
+
89
+ ### Extensões Éticas
90
+ Projetos podem estender esta licença com cláusulas adicionais específicas para:
91
+ - Privacidade de dados cognitivos
92
+ - Consentimento informado
93
+ - Limites de exposição tecnológica
94
+ - Monitoramento ético obrigatório
95
+
96
+ ## 📞 Contato e Fiscalização
97
+
98
+ ### Cogfulness.Foundation
99
+ - **Website**: https://cognfulness.foundation
100
+ - **Email**: ethics@cognfulness.foundation
101
+ - **Missão**: Proteger a integridade cognitiva na era digital
102
+
103
+ ### Denúncias
104
+ Casos suspeitos de violação ética devem ser reportados para: violations@cognfulness.foundation
105
+
106
+ ## 🔄 Atualizações da Licença
107
+
108
+ Esta licença pode ser atualizada para:
109
+ - Melhorar proteções éticas
110
+ - Adaptar-se a novos desafios cognitivos
111
+ - Incluir melhores práticas emergentes
112
+
113
+ Usuários serão notificados sobre mudanças significativas através dos canais oficiais do projeto.
114
+
115
+ ---
116
+
117
+ **Ao utilizar este Software, você concorda com estes termos éticos e reconhece as responsabilidades cognitivas envolvidas.**
@@ -0,0 +1,288 @@
1
+ # 🔒 Self-Healing Agents com mTLS (Mutual TLS)
2
+
3
+ ## 🎯 Visão Geral
4
+
5
+ Extensão do sistema de Self-Healing Agents que adiciona **mTLS (Mutual TLS)** para fornecer segurança em **duas camadas**:
6
+
7
+ 1. **mTLS (Camada de Transporte)**: Autenticação mútua via certificados X.509
8
+ 2. **JWT (Camada de Aplicação)**: Autenticação de identidade e contexto da conversa
9
+
10
+ ## 🛡️ Por que mTLS + JWT?
11
+
12
+ ### Segurança em Duas Camadas
13
+
14
+ ```
15
+ ┌─────────────────────────────────────────────────┐
16
+ │ Camada de Aplicação (JWT) │
17
+ │ - Identidade do agente │
18
+ │ - Contexto da conversa │
19
+ │ - Permissões e capacidades │
20
+ └─────────────────────────────────────────────────┘
21
+
22
+ ┌─────────────────────────────────────────────────┐
23
+ │ Camada de Transporte (mTLS) │
24
+ │ - Autenticação mútua de certificados │
25
+ │ - Criptografia de transporte │
26
+ │ - Prevenção de MITM (Man-in-the-Middle) │
27
+ └─────────────────────────────────────────────────┘
28
+ ```
29
+
30
+ ### Benefícios Combinados
31
+
32
+ - ✅ **Autenticação Dupla**: Certificado + JWT
33
+ - ✅ **Criptografia End-to-End**: Dados protegidos em trânsito
34
+ - ✅ **Prevenção de MITM**: Certificados validam identidade do transporte
35
+ - ✅ **Contexto Preservado**: JWT mantém contexto mesmo com renovação
36
+ - ✅ **Self-Healing**: Sistema se recupera automaticamente
37
+
38
+ ## 🏗️ Arquitetura
39
+
40
+ ```
41
+ ┌─────────────────────────────────────────────────┐
42
+ │ Certificate Authority (CA) │
43
+ │ - Gera certificados para agentes │
44
+ │ - Assina certificados │
45
+ │ - Valida certificados │
46
+ └─────────────────────────────────────────────────┘
47
+
48
+ ┌───────────┴───────────┐
49
+ │ │
50
+ ┌───────▼────────┐ ┌─────────▼────────┐
51
+ │ Agent Alpha │ │ Agent Beta │
52
+ │ - Cert mTLS │◄──►│ - Cert mTLS │
53
+ │ - JWT Token │ │ - JWT Token │
54
+ │ - TLS Server │ │ - TLS Server │
55
+ └────────────────┘ └─────────────────┘
56
+ │ │
57
+ └───────────┬───────────┘
58
+
59
+ ┌───────────▼───────────┐
60
+ │ Conexão mTLS │
61
+ │ + Mensagens JWT │
62
+ └───────────────────────┘
63
+ ```
64
+
65
+ ## 📖 Como Funciona
66
+
67
+ ### 1. Geração de Certificados
68
+
69
+ Cada agente recebe um certificado X.509 assinado pela CA:
70
+
71
+ ```typescript
72
+ import { CertificateAuthority } from './examples/mtls-agents';
73
+
74
+ const ca = new CertificateAuthority();
75
+
76
+ // Gerar certificado para cada agente
77
+ const certA = ca.generateAgentCertificate('agent-alpha');
78
+ const certB = ca.generateAgentCertificate('agent-beta');
79
+ const caCert = ca.getCACertificate(); // Para validação
80
+ ```
81
+
82
+ ### 2. Estabelecimento de Conexão mTLS
83
+
84
+ ```typescript
85
+ // Agente A inicia servidor TLS
86
+ await agentA.startTLSServer(8443);
87
+
88
+ // Agente B conecta ao Agente A via mTLS
89
+ await agentB.connectToPeer('localhost', 8443, 'agent-alpha');
90
+ ```
91
+
92
+ ### 3. Verificação Mútua
93
+
94
+ Quando uma conexão é estabelecida:
95
+
96
+ 1. **Cliente envia certificado** → Servidor valida contra CA
97
+ 2. **Servidor envia certificado** → Cliente valida contra CA
98
+ 3. **Ambos verificam** → Conexão só é aceita se ambos forem válidos
99
+
100
+ ### 4. Comunicação Segura
101
+
102
+ Cada mensagem inclui:
103
+ - **Conteúdo**: Dados da mensagem
104
+ - **JWT**: Token de autenticação de aplicação
105
+ - **Metadados**: Timestamp, IDs, etc.
106
+
107
+ ## 🚀 Uso Básico
108
+
109
+ ### Exemplo Completo
110
+
111
+ ```typescript
112
+ import { mTLSAgent, CertificateAuthority, TokenAuthority } from './examples/mtls-agents';
113
+
114
+ // 1. Criar CA e Autoridade de Tokens
115
+ const ca = new CertificateAuthority();
116
+ const tokenAuthority = new TokenAuthority();
117
+
118
+ // 2. Gerar certificados
119
+ const certA = ca.generateAgentCertificate('agent-alpha');
120
+ const certB = ca.generateAgentCertificate('agent-beta');
121
+ const caCert = ca.getCACertificate();
122
+
123
+ // 3. Criar agentes
124
+ const agentA = new mTLSAgent(
125
+ 'agent-alpha',
126
+ 'primary',
127
+ tokenAuthority,
128
+ certA,
129
+ caCert
130
+ );
131
+
132
+ const agentB = new mTLSAgent(
133
+ 'agent-beta',
134
+ 'secondary',
135
+ tokenAuthority,
136
+ certB,
137
+ caCert
138
+ );
139
+
140
+ // 4. Inicializar
141
+ await agentA.initialize();
142
+ await agentB.initialize();
143
+
144
+ // 5. Iniciar servidores TLS
145
+ await agentA.startTLSServer(8443);
146
+ await agentB.startTLSServer(8444);
147
+
148
+ // 6. Estabelecer conexões mTLS
149
+ await agentA.connectToPeer('localhost', 8444, 'agent-beta');
150
+ await agentB.connectToPeer('localhost', 8443, 'agent-alpha');
151
+
152
+ // 7. Ativar auto-renovação
153
+ agentA.startAutoRenewal(30000);
154
+ agentB.startAutoRenewal(30000);
155
+
156
+ // 8. Enviar mensagens seguras
157
+ await agentA.sendMessage('agent-beta', 'Mensagem segura via mTLS + JWT');
158
+ await agentB.sendMessage('agent-alpha', 'Resposta igualmente segura!');
159
+ ```
160
+
161
+ ## 🔐 Segurança
162
+
163
+ ### Validações Implementadas
164
+
165
+ 1. **Validação de Certificado mTLS**
166
+ - Certificado deve ser assinado pela CA conhecida
167
+ - Certificado não pode estar expirado
168
+ - CN (Common Name) deve corresponder ao agentId
169
+
170
+ 2. **Validação de JWT**
171
+ - Assinatura criptográfica válida
172
+ - Issuer e Audience corretos
173
+ - Token não expirado
174
+ - Mesmo conversationId
175
+
176
+ 3. **Verificação Cruzada**
177
+ - agentId do JWT deve corresponder ao CN do certificado
178
+ - Previne ataques de substituição de identidade
179
+
180
+ ### Proteções Contra Ataques
181
+
182
+ | Ataque | Proteção |
183
+ |--------|----------|
184
+ | **Man-in-the-Middle** | mTLS valida certificados mutuamente |
185
+ | **Token Replay** | JWT com expiração curta + renovação |
186
+ | **Identity Spoofing** | Verificação cruzada JWT ↔ Certificado |
187
+ | **Eavesdropping** | Criptografia TLS de transporte |
188
+ | **Certificate Forgery** | Assinatura pela CA confiável |
189
+
190
+ ## 📊 Comparativo: Sem mTLS vs Com mTLS
191
+
192
+ | Aspecto | Sem mTLS | Com mTLS |
193
+ |---------|----------|----------|
194
+ | **Autenticação de Transporte** | ❌ Não | ✅ Sim (certificados) |
195
+ | **Criptografia de Transporte** | ⚠️ Depende | ✅ Sempre (TLS) |
196
+ | **Prevenção MITM** | ❌ Não | ✅ Sim |
197
+ | **Validação de Identidade** | JWT apenas | JWT + Certificado |
198
+ | **Overhead** | Baixo | Médio (handshake inicial) |
199
+ | **Complexidade** | Simples | Média |
200
+
201
+ ## 🧪 Testando
202
+
203
+ ### Executar Demonstração
204
+
205
+ ```bash
206
+ # Compilar
207
+ bun build examples/mtls-agents.ts --outdir dist/examples --target node
208
+
209
+ # Executar
210
+ bun run dist/examples/mtls-agents.js
211
+ ```
212
+
213
+ ### Saída Esperada
214
+
215
+ ```
216
+ 🚀 Demonstração de Self-Healing Agents com mTLS
217
+
218
+ ✅ CA e Autoridade de Tokens criadas
219
+ ✅ Certificados mTLS gerados para os agentes
220
+ 🤖 [agent-alpha] Agente inicializado com mTLS e token válido até...
221
+ 🤖 [agent-beta] Agente inicializado com mTLS e token válido até...
222
+ 🔒 [agent-alpha] Servidor mTLS iniciado na porta 8443
223
+ 🔒 [agent-beta] Servidor mTLS iniciado na porta 8444
224
+ 🔒 [agent-alpha] Conectado via mTLS a agent-beta
225
+ 🔒 [agent-beta] Conexão mTLS estabelecida com agent-alpha
226
+ 💬 Iniciando conversa segura via mTLS...
227
+
228
+ 📤 [agent-alpha] → [agent-beta] (mTLS): Olá Beta! Conexão segura estabelecida via mTLS.
229
+ 📥 [agent-beta] ← [agent-alpha] (mTLS): Olá Beta! Conexão segura estabelecida via mTLS.
230
+ 📤 [agent-beta] → [agent-alpha] (mTLS): Olá Alpha! Nossa comunicação está protegida por mTLS + JWT.
231
+ 📥 [agent-alpha] ← [agent-beta] (mTLS): Olá Alpha! Nossa comunicação está protegida por mTLS + JWT.
232
+
233
+ ✅ Demonstração concluída!
234
+ 🔒 Segurança em duas camadas:
235
+ 1. mTLS: Autenticação mútua de transporte
236
+ 2. JWT: Autenticação de identidade e contexto
237
+ ```
238
+
239
+ ## 🔧 Configuração Avançada
240
+
241
+ ### Opções TLS Customizadas
242
+
243
+ ```typescript
244
+ // Ao criar servidor TLS, você pode passar opções customizadas
245
+ const tlsOptions: tls.TlsOptions = {
246
+ cert: certificate.cert,
247
+ key: certificate.key,
248
+ ca: [caCert],
249
+ requestCert: true,
250
+ rejectUnauthorized: true,
251
+ minVersion: 'TLSv1.3', // Forçar TLS 1.3
252
+ ciphers: 'ECDHE-RSA-AES256-GCM-SHA384', // Cipher específico
253
+ // ... outras opções
254
+ };
255
+ ```
256
+
257
+ ### Certificados de Produção
258
+
259
+ Para produção, use certificados gerados por uma CA confiável:
260
+
261
+ ```typescript
262
+ // Carregar certificados de arquivos
263
+ import { readFileSync } from 'fs';
264
+
265
+ const cert = readFileSync('./certs/agent-alpha.crt', 'utf-8');
266
+ const key = readFileSync('./certs/agent-alpha.key', 'utf-8');
267
+ const caCert = readFileSync('./certs/ca.crt', 'utf-8');
268
+ ```
269
+
270
+ ## 📚 Referências
271
+
272
+ - [RFC 8446 - TLS 1.3](https://tools.ietf.org/html/rfc8446)
273
+ - [Mutual TLS Authentication](https://en.wikipedia.org/wiki/Mutual_authentication)
274
+ - [Node.js TLS Documentation](https://nodejs.org/api/tls.html)
275
+ - [mTLS Best Practices](https://www.cloudflare.com/learning/access-management/what-is-mutual-tls/)
276
+
277
+ ## 🚀 Próximos Passos
278
+
279
+ - [ ] Suporte para múltiplas CAs
280
+ - [ ] Revogação de certificados (CRL/OCSP)
281
+ - [ ] Rotação automática de certificados
282
+ - [ ] Métricas de segurança e performance
283
+ - [ ] Integração com sistemas de PKI existentes
284
+
285
+ ---
286
+
287
+ **Segurança em duas camadas: transporte (mTLS) + aplicação (JWT) para comunicação entre agentes totalmente segura.**
288
+