CriptoVéu é uma aplicação web pública e open source que desenvolvi para proteger arquivos, mensagens, QR Codes, links e notas diretamente no navegador, 100% client-side, ou seja, sem upload de arquivos ou senhas para nenhum servidor.
Estrutura da Aplicação
Interface & Build
A aplicação é construída com a seguinte stack:
- React 18, TypeScript, Vite 7 e Tailwind CSS para a interface e build.
- Web Crypto API nativa do navegador para criptografia de confidencialidade e autenticação de dados.
- Argon2id v1.3 compilado em WebAssembly (WASM) para derivação de chaves.
- Web Workers dedicados para processamento de Argon2id e cálculo de integridade SHA-256, evitando qualquer lag na thread principal da UI.
- Web Workers dedicados para processamento de arquivos grandes.
Criptografia Base
- Web Crypto API nativa do navegador para criptografia de confidencialidade e autenticação de dados.
- Argon2id v1.3 compilado em WebAssembly (WASM) para derivação de chaves.
Web Workers
- Web Workers dedicados para processamento de Argon2id e cálculo de integridade SHA-256.
Processamento de Arquivos Grandes
- Criptografia em blocos de até 2 MB com IVs exclusivos por registro e um manifesto autenticado e cifrado no final.
Proteção de Arquivos
- Proteção local com suporte opcional a proteção dupla (Senha + Arquivo-Chave).
- VéuNotes cofre portátil local (.criptoveu-note) protegido por Argon2id (128 MB RAM), com busca local pós-desbloqueio e auto-lock por inatividade.
Esteganografia
- Ocultação de mensagens cifradas nos canais RGB de imagens PNG usando técnica LSB.
Links e QR Codes Protegidos
- Payloads cifrados serializados diretamente no hash da URL (#), garantindo que os dados nunca sejam transmitidos em requisições HTTP tradicionais ao servidor.
Diagnóstico do Navegador
- Validação local de HTTPS, Web Crypto, WebAssembly, Workers e recomendação do perfil de memória ideal para o dispositivo.
Segurança
- Content Security Policy (CSP) restritiva com política de trusted-types para Workers.
- Isolamento de contexto via COOP (same-origin) e COEP (require-corp).
- Nenhuma persistência de senhas ou uso de telemetria.
Conclusão
CriptoVéu é uma solução de criptografia 100% client-side que oferece proteção de arquivos, mensagens e QR Codes diretamente no navegador, sem envio de dados para servidores. O projeto é totalmente open source (MIT) e adoraria ouvir a opinião e as críticas técnicas da comunidade.
O que acharam da estratégia de blocos e manifesto de integridade para arquivos?
Têm sugestões de melhoria para os headers ou para a execução dos Web Workers?
Fiquem à vontade para testar, revisar o código ou abrir issues no GitHub!
⚠️ Nota de Transparência: Nenhuma solução web client-side é "100% imune" à segurança depende da integridade do JavaScript servido, da entropia da senha escolhida e da segurança do próprio dispositivo do usuário. O projeto busca aplicar primitivas sólidas e modernas para minimizar superfícies de ataque.