Resumo Executivo
O Snugg implementa criptografia de ponta a ponta para todo o conteúdo de utilizadores utilizando primitivas criptográficas modernas e bem auditadas. Este documento descreve a nossa arquitetura de criptografia, abordagem de gestão de chaves e o modelo de ameaças contra o qual protegemos.
Visão Geral da Arquitetura de Criptografia
O Snugg utiliza uma abordagem de criptografia híbrida que combina criptografia assimétrica e simétrica para proporcionar segurança e desempenho.
Criptografia Assimétrica (Chave Pública)
Cada utilizador tem um par de chaves único (X25519). A chave pública é partilhada com os nossos servidores; a chave privada nunca sai do dispositivo do utilizador. Utilizada para a troca inicial de chaves e para proteger as chaves de grupo.
Criptografia Simétrica (Segredo Partilhado)
Cada grupo tem uma chave simétrica (XSalsa20-Poly1305) partilhada apenas entre os membros do grupo. Esta chave encripta todo o conteúdo dentro do grupo, proporcionando encriptação/desencriptação rápida.
Abordagem Híbrida
Quando entra num grupo, a chave do grupo é encriptada com a sua chave pública e enviada para você. O seu dispositivo desencripta-a com a sua chave privada, dando-lhe acesso ao conteúdo do grupo. Isto combina a segurança da criptografia assimétrica com a eficiência da criptografia simétrica.
Gestão de Chaves
A gestão segura de chaves é crítica para a nossa arquitetura de criptografia. Eis como as chaves são geradas, armazenadas e utilizadas:
Geração de Chaves
Quando cria uma conta, o seu dispositivo gera um par de chaves criptograficamente seguro utilizando a Web Crypto API ou TweetNaCl.js. As chaves são geradas localmente—nunca passam pelos nossos servidores.
Armazenamento de Chaves
As chaves privadas são armazenadas em armazenamento local encriptado (IndexedDB) no seu dispositivo, protegidas por uma chave derivada das suas credenciais de conta utilizando PBKDF2 com 100.000 iterações.
Distribuição de Chaves
Quando entra num grupo, os membros existentes encriptam a chave do grupo com a sua chave pública. Este pacote encriptado é armazenado nos nossos servidores e só pode ser desencriptado pela sua chave privada.
Rotação de Chaves
As chaves de grupo são rotacionadas quando membros saem para garantir sigilo futuro. Membros que saíram não podem desencriptar novo conteúdo mesmo que tenham retido a chave antiga.
Primitivas Criptográficas
Utilizamos algoritmos criptográficos bem estabelecidos e auditados:
| Finalidade | Algoritmo | Biblioteca |
|---|---|---|
| Troca de Chaves | X25519 (Curve25519 ECDH) | TweetNaCl.js |
| Criptografia Simétrica | XSalsa20-Poly1305 | TweetNaCl.js |
| Assinaturas Digitais | Ed25519 | TweetNaCl.js |
| Hashing | SHA-256 | Web Crypto API |
| Derivação de Chaves | PBKDF2 (100k iterações) | Web Crypto API |
Fluxo de Dados: Como o Conteúdo é Encriptado
Eis o que acontece quando publica conteúdo num grupo:
Modelo de Ameaças
Compreender contra o que protegemos—e contra o que não protegemos—é essencial para os utilizadores tomarem decisões informadas.
Contra o Que Protegemos
- Comprometimento do servidor: Um atacante que obtenha acesso aos nossos servidores vê apenas texto cifrado encriptado
- Funcionários desonestos: O pessoal do Snugg não pode ler o conteúdo dos utilizadores—não temos as chaves
- Exigências governamentais: Mesmo se formos legalmente obrigados, só podemos fornecer dados encriptados
- Escuta de rede: Todas as conexões utilizam TLS 1.3; o conteúdo é adicionalmente encriptado E2E
Contra o Que Não Protegemos
- Dispositivos comprometidos: Se um atacante controlar o seu dispositivo, pode ler o conteúdo desencriptado
- Capturas de ecrã de membros do grupo: Os membros podem fazer capturas de ecrã ou copiar conteúdo desencriptado
- Análise de metadados: Podemos ver quem está em quais grupos e quando publicam (mas não o conteúdo)
Auditorias de Segurança e Verificação
Acreditamos em segurança verificável, não em segurança pela obscuridade:
Não confie em nós—verifique. O nosso código-fonte está disponível em github.com/snugg-social
Referências Técnicas
Para mais informações sobre os padrões criptográficos que utilizamos:
- •TweetNaCl.js: Uma portabilização da bem auditada biblioteca criptográfica NaCl
- •Curve25519: Curva elíptica desenhada por Daniel J. Bernstein para troca de chaves
- •XSalsa20-Poly1305: Criptografia autenticada da família NaCl
- •PBKDF2: Password-Based Key Derivation Function 2 (RFC 8018)
Dúvidas de Segurança ou Divulgação Responsável?
Se tem dúvidas sobre a nossa arquitetura de segurança ou deseja reportar uma vulnerabilidade, gostaríamos de ouvir de você.
security@snugg.socialÚltima atualização: 1 de fevereiro de 2026