Modelo de ameaças
Quem pode ver o quê, e o que o impede
Um modelo de ameaças só é útil se nomeia os adversários para os quais perde com a mesma clareza dos que vence. Cada linha abaixo mostra o que aquele adversário vê, o que não consegue alcançar, a defesa existente e o que continua possível mesmo assim.
O PrivaMesh foi projetado contra um operador que quer seus dados, um observador da blockchain que lê tudo o que é público e um impostor que tenta interceptar a adição de um contato. É mais fraco contra um analista de tempo global e não oferece nada contra um aparelho comprometido.
| Adversário | Vê | Não consegue | Defesa | Ainda possível |
|---|---|---|---|---|
| PrivaMesh, o operador | Que uma conta pagou um envio, e quando | Ler mensagens, saber destinatários, listar seus contatos ou reconstruir o histórico | Sem banco de contas nem armazenamento de mensagens; tokens cegos desvinculam o pagamento do envio | Poderíamos ser obrigados a mostrar que alguma conta enviou algo em determinado momento |
| O provedor RPC | Seu endereço IP, o horário das requisições, as transações que você envia | Decifrar qualquer coisa, ou saber de quem é cada endereço de uso único | O endpoint é substituível e auto-hospedável | Um provedor que registra tudo monta uma imagem, no nível da rede, de quando você está ativo |
| Um observador da blockchain | Texto cifrado preenchido, endereços de uso único, horários exatos das transações | Ler o conteúdo, ou ligar duas mensagens da mesma conversa | Endereços furtivos, faixas fixas de preenchimento, tráfego de cobertura opcional | Com o tráfego de cobertura desligado, seu padrão de atividade ao longo do tempo fica totalmente visível |
| Um analista de tempo global | Atividade correlacionada em toda a rede ao mesmo tempo | Decifrar, ou ligar endereços criptograficamente | Tráfego de cobertura em intervalos aleatórios de 3 a 10 minutos, quando ativado | É o adversário contra o qual nos defendemos pior; um observador da rede inteira com retenção ilimitada está fora do que qualquer design por mensagem consegue resolver |
| Alguém com seu celular desbloqueado | Tudo: texto puro, contatos, chaves | Recuperar mensagens já apagadas pelo ratchet | Armazenamento nas Chaves protegido por Face ID ou Touch ID; o sigilo futuro limita o passado; um código de coação apaga a conta em vez de abri-la | O comprometimento do aparelho é total para tudo o que está nele, e um código de coação só ajuda no momento em que pedem para você desbloquear - não se o armazenamento já tiver sido copiado |
| Alguém que tem sua frase de recuperação | Sua identidade, e pode se passar por você daqui em diante | Ler a parte ratchet de conversas passadas - essas chaves eram aleatórias e locais ao aparelho | A frase nunca sai do seu aparelho e nunca é transmitida | Chave de identidade, prekey assinada e prekey PQ são todas derivadas da frase e nenhuma prekey de uso único é publicada, então a mensagem de abertura de cada conversa pode ser recalculada a partir da frase mais o envelope permanente na blockchain. Também não há revogação |
| Um contato mal-intencionado | Tudo o que você manda, e pode tirar print ou encaminhar | Alcançar outras pessoas com quem você fala ou ler outras conversas | Bloqueio e separação de chaves por conversa | Nenhuma criptografia impede que a pessoa com quem você fala não seja confiável |
| Um impostor ao adicionar um contato | Nada, se a verificação der certo | Substituir a própria chave pela de um contato cujo pacote é assinado na blockchain | Pacotes de prekeys assinados pela carteira e publicados na blockchain, então nenhum registro consegue trocar a chave de uma conta | Não há número de segurança nem impressão digital para comparar, então confirmar que a conta pertence à pessoa certa é feito totalmente fora do app e sem ajuda |
| Apple | Que seu ID Apple comprou uma assinatura | Ver mensagens, contatos, ou ligar a compra à sua atividade de envio | Tokens cegos ficam entre a compra e cada envio | A Apple sabe que você é cliente do PrivaMesh, o que é inevitável no iOS |
| Um censor no nível da rede | Que você acessou um endpoint RPC da Solana | Ler ou descartar seletivamente mensagens individuais | Endpoints RPC são substituíveis, inclusive por um seu | Bloquear a Solana ou todos os RPCs bloqueia a entrega por completo |
O que este modelo pressupõe
Que as primitivas criptográficas se sustentam: X3DH, o Double Ratchet, AES-256-GCM e, no iOS 26, ML-KEM-768. Que seu aparelho ainda não está comprometido. Que você confirma que o contato que adiciona é a pessoa que queria. Se algo disso falhar, o resto do design não salva você.
Também pressupõe que nossa implementação dessas primitivas está correta - por isso o código é público e encontrar uma falha nele é pago. A lista completa do que não está coberto está em limitações conhecidas.
Perguntas frequentes
Contra o que o PrivaMesh se defende pior?
Contra um adversário global que observa a rede inteira continuamente e guarda tudo. O tráfego de cobertura encarece a correlação de tempo, mas não derrota um observador dessa escala, e a blockchain guarda um registro permanente para ele trabalhar.
Se meu aparelho for apreendido, o que fica exposto?
Tudo o que está nele: texto puro, contatos e chaves, a menos que esteja bloqueado e o atacante não consiga passar pelo Face ID. O sigilo futuro limita o dano ao que o ratchet ainda não apagou - mensagens antigas já são irrecuperáveis. Se estiverem forçando você a desbloquear, um código de coação apaga a conta em vez de abri-la.
O PrivaMesh pode ser obrigado a entregar meus dados?
Podem pedir. O que existe para entregar é que uma conta pagou um envio em determinado momento. Não há conteúdo de mensagem, nem destinatário, nem lista de contatos, nem registro de conta, porque nada disso é armazenado.
VPN ajuda?
Sim, contra o provedor RPC e um observador no nível da rede, os dois adversários que veem seu IP. Não muda nada do que é gravado na blockchain, que já é ilegível.