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.

Pitch: Como construí o CriptoVéu: Criptografia 100% client-side com React, Argon2id em WASM e Web Workers

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.

Client Criptografia Criptoveu React Side