Os seus dados,
ilegíveis mesmo para nós.
leggit aplica os padrões modernos da cifragem de ponta a ponta. Eis, em linguagem clara, como funciona — e por que razão o protege.
O princípio: zero-knowledge
O "zero-knowledge" significa literalmente: a leggit não tem qualquer conhecimento do conteúdo dos seus cofres. Os seus dados são cifrados no seu dispositivo antes de serem enviados, e a chave que permite decifrá-los nunca abandona o seu posto, nem o posto dos seus destinatários.
Concretamente, mesmo que os nossos servidores fossem apreendidos ou comprometidos, o conteúdo permaneceria ilegível — um ficheiro cifrado sem chave é ruído aleatório.
Desde a evolução E2EE (cifragem ponta-a-ponta) da plataforma, este princípio já não é uma promessa: é uma garantia técnica verificável. Para os seus cofres pessoais, a cifragem e a decifragem fazem-se dentro do seu navegador, num Web Worker isolado que detém sozinho as suas chaves. O servidor leggit só recebe sempre blobs cifrados opacos.
libsodium-wrappers é servida a partir dos nossos próprios servidores (sem CDN externo → anti-supply-chain). Cada script JavaScript crítico é entregue com um hash SRI (Subresource Integrity): o navegador recusa executá-lo se o código tiver sido alterado em trânsito. Os hashes são publicados na nossa página de transparência E2EE; pode recalculá-los localmente com openssl para confirmar a integridade. Depuis la version 1.0 de l'attestation, plusieurs modules ont été renforcés ou ajoutés au périmètre du chiffrement bout-en-bout (E2EE) :
-
Mode Prudent crypto-wallets — La table de substitution (photo scannée associée à un wallet) est désormais chiffrée dans votre navigateur AVANT envoi via le flux chunked E2EE (libsodium
secretstream_xchacha20, header + chunks séparés). leggit ne voit jamais l'image en clair, même temporairement. - Workflow dual-device (PC + téléphone) — Vous pouvez désormais saisir les mots substitués sur votre PC et scanner la table sur votre téléphone, sans qu'aucun appareil n'ait simultanément les deux secrets. Le pairing utilise un token long (256 bits, stocké en SHA-256 côté serveur) + un code court à 6 caractères (rate-limité 10 tentatives / 15 min).
- Révélation Prudent en 3 modes — Lors de la consultation d'un wallet Prudent, vous choisissez : « Mots seuls », « Table seule » (la seed n'est pas déchiffrée sur l'écran qui affiche la table), ou « Les deux ». Défense en profondeur cohérente avec le modèle dual-device.
- Référentiel des relations administrable — Les types de relations (Conjoint, Enfant, Parent, etc.) sont désormais centralisés dans une table administrée, avec leur miroir réciproque et un flag « Ayant droit par défaut » pour suggérer la propagation.
Voir l'attestation v2.0 complète — ou la version technique détaillée.
Cifragem por envelope
Cada elemento (texto, ficheiro, mensagem) é cifrado com uma chave aleatória única chamada Data Encryption Key (DEK). Esta DEK é ela própria cifrada com a sua chave-mestra, derivada da sua palavra-passe via Argon2id (um algoritmo dispendioso que resiste aos ataques massivos).
Vantagem: no dia em que mudar a sua palavra-passe, voltamos a cifrar apenas as DEK, não todos os seus ficheiros.
Chaves públicas X25519 para os destinatários
Cada destinatário dispõe de um par chave pública / chave privada gerado no seu dispositivo. Para transmitir um dado à Alice, o seu cofre cifra a DEK com a chave pública da Alice: só a chave privada da Alice a pode decifrar.
X25519 é o algoritmo utilizado pelo WireGuard, Signal e por todas as soluções modernas de mensagens cifradas.
Partilha de segredo de Shamir
Para a recuperação da sua conta ou a libertação post mortem, a leggit divide uma chave crítica em vários pedaços matematicamente ligados. Por exemplo em 5 pedaços, dos quais 3 são necessários para reconstituir o segredo.
Nenhum pedaço sozinho dá qualquer informação: é necessário que o quórum esteja reunido — por exemplo 3 pessoas de confiança em 5 — para desencadear a decifragem. Ninguém pode agir sozinho.
AEAD: integridade e confidencialidade
Todas as cifragens aplicadas utilizam algoritmos AEAD (XChaCha20-Poly1305). Significa que um atacante não pode ler o conteúdo nem modificar dissimuladamente um octeto do ficheiro sem que isso seja detectado na decifragem.
Onde estão guardadas as chaves?
- A sua chave-mestra é derivada da sua palavra-passe a cada início de sessão via Argon2id. É depois entregue directamente a um Web Worker isolado no seu navegador, onde permanece em RAM durante toda a sua sessão. Nunca é persistida em claro, e o thread principal JavaScript (DOM, scripts inline) não pode aceder a ela — limitando assim o impacto de um eventual XSS.
- As chaves privadas X25519 dos seus destinatários são cifradas com a respectiva palavra-passe e armazenadas na conta deles.
- Os pedaços de Shamir são detidos pelas pessoas de confiança que designou, nunca acessíveis à leggit em claro.
- Ao terminar sessão ou ao fechar o separador, o Worker é terminado: todas as chaves em RAM são imediatamente apagadas (
memzero).
Verifique por si próprio
Não tem de acreditar na nossa palavra: a cadeia criptográfica do lado do navegador foi concebida para ser auditável.
- Abra as ferramentas de programador do seu navegador (F12) → separador Rede. Quando escreve ou lê um item, vê transitar blobs base64 (
cipher_blob_b64,my_wrap) — nunca texto em claro. - Consulte a nossa página de transparência E2EE: expõe em tempo real os hashes SRI de cada script criptográfico com o comando para os recalcular localmente.
- Inspeccione o código-fonte dos scripts (clique direito → "Ver código-fonte da página"). Tudo é legível, sem ofuscação, e idêntico ao código que publicamos publicamente.
O nosso modelo de ameaças está documentado honestamente na página de transparência — incluindo aquilo que o E2EE não protege (comprometimento do seu próprio navegador por malware local, por exemplo).
Âmbito actual do E2EE
Nem tudo está ainda em E2EE puro de navegador — eis o estado real da cobertura hoje:
- ✅ Cofres pessoais (textos, palavras-passe, ficheiros e vídeos até 100 MB): E2EE de navegador completo. Escrita, leitura, adição de destinatário (com re-autenticação), migração progressiva dos itens antigos e exportação RGPD: tudo passa pelo seu navegador. O servidor só acede a cipher blobs opacos.
- 🔘 Cofres familiares (partilhados entre vários membros): cifragem do lado do servidor com partilha multi-chave (Shamir + X25519 por membro). O servidor tem acesso ao conteúdo durante as sessões activas para assegurar a partilha entre membros. A passagem para E2EE de navegador está na nossa roadmap.
- 🔘 Crypto-wallets (imagens de tabelas de substituição): cifragem do lado do servidor libsodium secretstream. Passagem E2EE prevista.
- ⚙️ Mensagens programadas post mortem por email: legitimamente do lado do servidor. O servidor TEM de poder decifrar no dia da entrega para enviar o email ao destinatário — um email puro E2EE seria impossível de entregar.
- ⚙️ Pipeline de libertação post mortem (herança): combinação Shamir + decifragem do lado da sessão após quórum. Para os cofres pessoais criados em E2EE, a decifragem final faz-se no navegador do destinatário.
Roadmap pública: extensão oficial do navegador e cliente desktop assinado para eliminar a dependência do JavaScript servido pelos nossos servidores (eliminação do risco residual «JS comprometido activamente»). Em preparação.
Auditoria e transparência
Toda a operação criptográfica é registada numa auditoria datada. Pode consultar a qualquer momento o histórico de acessos ao seu cofre: quem viu o quê, quando, a partir de onde. Para os cofres pessoais E2EE, os detalhes sensíveis (títulos, pré-visualizações) são por sua vez cifrados com a sua chave-mestra dentro do próprio registo — só você pode relê-los através do seu navegador.
Recuperação de palavra-passe sem leggit
Se esquecer a sua palavra-passe, não pode fazer um clássico «clique aqui para reiniciar»: leggit não tem acesso à sua chave-mestra. Designou na inscrição pelo menos 2 pessoas de confiança de recuperação.
Aquando de um esquecimento de palavra-passe, as suas pessoas de confiança recebem uma notificação, validam o pedido, e um mecanismo criptográfico chamado Shamir Secret Sharing reconstitui então uma chave que lhe permite definir uma nova palavra-passe. leggit nada aprende no processo.
Dupla autenticação (2FA)
Para além da sua palavra-passe, pode activar uma segunda camada de protecção: um código de 6 dígitos gerado por uma aplicação de autenticação padrão (Google Authenticator, Authy, 1Password) no seu telefone.
Com a 2FA activa, mesmo que alguém saiba a sua palavra-passe (por phishing, fuga ou observação), não poderá iniciar sessão sem o seu telefone. Fortemente recomendado para os cofres que contêm crypto-wallets ou dados muito sensíveis.
Procedimento judicial / requisição
leggit pode receber uma requisição judicial de um magistrado ou de um serviço do Estado. O que se pode entregar? Unicamente aquilo de que a leggit dispõe: os blobs cifrados, os metadados, o histórico de ligação, a identidade da conta. Não o conteúdo em claro, porque nunca o tivemos.
Nenhuma colocação em prática de «porta dos fundos» técnica para permitir uma decifragem a pedido. A criptografia é matematicamente estanque. Se a justiça exigir um conteúdo, deve passar pelos destinatários ou pelas pessoas de confiança, que permanecem livres de cooperar ou não.
Continuidade do serviço
O que acontece se a leggit fechar a porta? Comprometemo-nos em três pontos:
- Pré-aviso mínimo de 6 meses antes da cessação efectiva de actividade.
- Exportação completa de cada cofre fornecida a cada utilizador, num formato aberto e legível (texto claro + ficheiros).
- Transmissão do código-fonte, da documentação técnica e das bases de dados cifradas a uma pessoa de confiança designada, com mecanismo de escrow para que um sucessor possa, se possível, prosseguir.
Conformidade RGPD
leggit respeita o Regulamento Geral sobre a Protecção de Dados (RGPD) e a lei francesa Informática e Liberdades. Tem a qualquer momento o direito de aceder aos seus dados, de os rectificar, de os exportar e de os apagar definitivamente.
Para a transmissão post mortem, a leggit insere-se no quadro da lei francesa República Digital de 2016 (art. 84-86 do Código Civil) que autoriza a expressão e a execução de directivas digitais após o óbito. O mandato post mortem assinado via DocuSeal tem valor jurídico probatório.