CipherVault 4.8 — AI Copilot, SaaS billing, Zero-Knowledge vault e Browser extension
70 commits desde a v4.7. A maior expansão de superfície produto desde a v4.0. A v4.8 traz cinco eixos novos ao mesmo tempo: AI Copilot multi-provider, SaaS multi-tenant com Stripe, Zero-Knowledge vault opt-in, Browser extension MV3 Chrome+Firefox e PQC V2 com hybrid key-wrap + dual-sign + KMIP PQC. Mais: dual-licensing (Apache 2.0
- AGPL + commercial) e hardening Nuclei zero-vulns.
🤖 AI Copilot — multi-provider, RAG-grounded, redactor (5 fases)
O Copilot do CipherVault é um assistente de segurança plugável a 4 backends LLM, com redactor obrigatório em todos os prompts (PII, secrets, tokens, IPs internos mascarados antes de sair do CV) e cost meter per-tenant com observabilidade Prometheus.
Providers suportados:
| Provider | Use case | Auth |
|---|---|---|
| OpenAI | SaaS default | API key |
| Azure OpenAI | Enterprise compliance / data residency | API key + endpoint |
| AWS Bedrock (Claude) | AWS-native, IAM-driven | IRSA / IAM role |
| Ollama | Self-hosted, air-gap | local URL |
5 capabilities expostas (endpoints REST):
POST /copilot/explain-risk { secret_id }
POST /copilot/summarize-path { attack_path_id }
POST /copilot/validation-tasks { vault_id, policy }
POST /copilot/chat { messages: [...] }
POST /copilot/generate-code { language, prompt } ← com lint guard-rails + RAG
generateCode passa por lint pré-resposta (rejeita código com
secrets hard-coded) e usa RAG vector store indexando docs do CV para
respostas grounded ao produto.
UI chat widget (PR #334) — Floating button + slide-over com streaming tokens, history per-tenant, citation chips.
Opt-in via env:
export CV_COPILOT_PROVIDER=openai # ou: azure-openai, bedrock-claude, ollama
export OPENAI_API_KEY=sk-...
💳 SaaS multi-tenant + Stripe billing (6 fases)
CipherVault.com.br como SaaS gerenciado. Stack:
- Stripe billing foundation — products / prices / webhook handler
/billing/webhook/ customer→tenant mapping / subscription lifecycle - Public signup —
POST /saas/signup, email verify token, resend flow - Tier enforcement middleware —
requireTier('professional'|'enterprise')em routes feature-gated;GET /saas/tierretorna tier atual + quotas + grace period - Operator runbook + status page scaffold
- Signup page UI — landing → Stripe Checkout → activate tenant
- Legal templates — SLA, DPA (GDPR Art. 28), ToS, Privacy Policy gerados em
etc/legal/com placeholders por jurisdição (BR LGPD + EU GDPR)
🔒 Zero-Knowledge vault opt-in (5 fases)
Bitwarden-style E2EE para tenants regulados. Server nunca vê plaintext de secret values — só metadados (name, path, tags) e blob opaco cifrado client-side.
- Marca
vaults.is_zero_knowledge=true(flag one-way; flip post-create recusado comZK_FLAG_IMMUTABLE) - Wire envelope:
zk:v1:<algo>:<kdf>:<salt>:<iv>:<ct>:<tag> - Algos:
aes-256-gcmouxchacha20-poly1305. KDFs:argon2id(recommended) ouhkdf-sha256 - Server-side ops impossíveis (tokenize/EaaS/encrypt/search-content) recusam com
ZkBoundaryViolationHTTP 409 - SDK cliente
@ciphervault/zk-sdk— browser + Node CLIcv-zk - UI unlock flow —
ZkUnlockDialog+ in-memory keystore + auto-attach em SecretForm/SecretViewDialog viauseVaultForSecrethook
Trade-offs explícitos (documentados em doc/ZERO_KNOWLEDGE.md):
- Search server-side limita-se a metadata
- Audit registra who/when/op nunca what/diff
- Recovery impossível se passphrase perdida — server não decriptografa
🌐 Browser Extension MV3 — Chrome + Firefox (7 fases)
Manifest V3 native, build separado pra cada navegador:
- Secret list + search + click-to-copy com auto-clear clipboard 30s
- ZK unlock + decrypt on reveal via
@ciphervault/zk-sdkno popup - Autofill content script com campo-by-campo highlight
- Capture-on-submit — intercepta
<form>submit, popup oferece salvar como secret - Auto-lock timer configurável (idle timeout)
- Password generator com 6 perfis (alfa, alfa-num, simbólico, PIN, passphrase, custom)
- Firefox port —
dist-firefox/combrowser_specific_settings
Disponível em:
- Chrome Web Store: pendente review
- Firefox AMO: pendente listing
- Self-host: build em
tools/browser-extension/dist/oudist-firefox/
🛡️ PQC V2 — Hybrid wrap + Dual-sign + KMIP PQC (5 fases)
Expansão sobre v4.5 PQC. Foco em híbrido sempre (clássico ⊕ post-quantum) — quebra de um algoritmo não compromete o outro.
Novos endpoints:
POST /pqc/hybrid-classical/wrap AES-256-GCM key wrap híbrido
POST /pqc/hybrid-classical/unwrap (RSA-OAEP-2048 ou ECDH-P256 + ML-KEM-768)
POST /pqc/dual-sign/sign Assina simultaneamente RSA-PSS-3072 + ML-DSA-65
POST /pqc/dual-sign/verify Verifier exige AMBAS válidas
KMIP PQC objects: clientes KMIP podem Create objetos
ML-KEM + ML-DSA via TTLV — primeira implementação KMIP 1.4 com PQC
no mercado open-source.
Audit Merkle checkpoint signed: snapshot horário em
pqc_audit_checkpoints com RSA-PSS-3072 + ML-DSA-87 dual signature
(nível highest pra audit trail compliance regulada).
🔬 Anomaly ML V2 (3 fases — shadow mode + ensemble)
V1 (heurística baseline) continua default. V2 introduz:
- Phase 1 — null-fallback scaffold em
mlV2/ - Phase 2 — shadow mode wiring + V1/V2 comparison logs
- Phase 3 — ensemble OR + V2-only modes (env
CV_ANOMALY_ML_VERSION=v1|shadow|v2|ensemble)
Permite experimentação A/B do detector novo sem afetar production decisioning.
📜 Dual-licensing (Apache 2.0 + AGPL + Commercial)
Triângulo de licenciamento pra serviar 3 perfis de adopter:
| Licença | Quem usa | Permissões |
|---|---|---|
| Apache 2.0 (default) | OSS contribs, projetos comerciais "discretos" | Use, modify, redistribuir; sem obrigação de open-source de derivativos |
| AGPL-3.0 (opt-in) | Quem quer copyleft fortes pra prevenir "SaaS leeching" | Forks que rodem como serviço devem abrir código |
| Commercial | Enterprise que querem isenção de AGPL + warranty | Termos negociados; template em LICENSE-COMMERCIAL.template.md |
LICENSING.md é guia de decisão. NOTICE lista components AGPL
opcionais.
🔐 Security hardening Nuclei (5 PRs)
Baseline Nuclei 2026-05 zero vulns. Hardening implementado:
- CloudFront security headers policy (HSTS preload, CSP report-only → enforced, X-Frame-Options DENY, Permissions-Policy)
- DMARC TXT record + DKIM via Titan (procedure documentada)
- DNSSEC Route 53 + DS no Registro.br
- Email obfuscator JS snippet (mailto bot protection)
- Nginx local headers + ports loopback-only
⚠️ Breaking changes
- Storage: vaults criados com
is_zero_knowledge=truerecusam tokenize / encrypt / search-content server-side comZkBoundaryViolationHTTP 409. Apps que dependiam dessas ops em todos os vaults precisam checar a flag antes. - Licensing: default mudou para Apache 2.0. AGPL agora é opt-in via
LICENSE-AGPL.md. Usuários que importavam o repo sob assumption MIT/BSD devem lerLICENSING.md. - Copilot opt-in: nenhum provider habilitado por default. Requer
CV_COPILOT_PROVIDER=...+ credenciais.
Atualizando
# Self-hosted Helm
helm upgrade ciphervault ciphervault/ciphervault --version 4.8.0 \
--reuse-values
# Migrate schema (is_zero_knowledge, pqc_audit_checkpoints, subscriptions tables)
kubectl exec deploy/ciphervault-backend -- node migrate.js up
# Copilot (opcional)
export CV_COPILOT_PROVIDER=openai
export OPENAI_API_KEY=sk-...
# Browser extension self-host
cd tools/browser-extension && npm run build # Chrome
cd tools/browser-extension && npm run build:firefox # Firefox
Testes
+280 testes novos. Total agora > 2180 testes.
— Rafael Martinez, CEO
