Documentação Técnica

Documento Técnico de Arquitetura de Segurança

Uma visão técnica detalhada da arquitetura de criptografia do Snugg para investigadores de segurança, auditores e utilizadores tecnicamente orientados.

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:

1

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.

2

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.

3

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.

4

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:

FinalidadeAlgoritmoBiblioteca
Troca de ChavesX25519 (Curve25519 ECDH)TweetNaCl.js
Criptografia SimétricaXSalsa20-Poly1305TweetNaCl.js
Assinaturas DigitaisEd25519TweetNaCl.js
HashingSHA-256Web Crypto API
Derivação de ChavesPBKDF2 (100k iterações)Web Crypto API

Fluxo de Dados: Como o Conteúdo é Encriptado

Eis o que acontece quando publica conteúdo num grupo:

1
Compõe uma publicação no seu dispositivo (texto, fotos, etc.)
2
O seu dispositivo obtém a chave simétrica do grupo do armazenamento local encriptado
3
O conteúdo é encriptado com a chave do grupo utilizando XSalsa20-Poly1305
4
O texto cifrado encriptado é enviado para os nossos servidores e armazenado
5
Quando os membros do grupo abrem o Snugg, os seus dispositivos descarregam o texto cifrado e desencriptam-no localmente

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:

O nosso código de criptografia é de código aberto e está disponível para revisão pública
Encomendamos auditorias de segurança regulares de terceiros de empresas reputadas
Os relatórios de auditoria são publicados, incluindo quaisquer descobertas e como as abordámos

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