Detalhes

segurança / pesquisa

Discrypt

Discrypt explora um sistema de comunicação seguro semelhante ao Discord, onde o Rust possui limites sensíveis de chave/mídia, os relés encaminham o texto cifrado sem custódia confiável, os harnesses determinísticos modelam o comportamento de entrega/recuperação e a interface declara os limites da privacidade de conteúdo e exclusão.

Problema

Produtos de comunicação segura podem esconder limites significativos atrás de afirmações amplas. Discrypt trata relés, metadados, chaves de dispositivo, retenção, replay, recuperação, admissão e limites de exclusão como estados do produto em vez de abstrações de marketing.

Contribuição

Implementei código de protótipo em crates Rust e um shell React/Tauri para limites de segurança, mídia e superfícies de produto. Harnesses determinísticos modelam roteamento de relays, entrega e recuperação, tombstones de retenção, governança e admissão, metadados de push e textos de segurança da UX.

Modelo de Segurança Proprietário do Endpoint

Chaves e vinculação de remetente/dispositivo/contador permanecem dentro dos limites de endpoint de propriedade Rust. Os relés transportam ciphertext e metadados de roteamento em vez de custódia central confiável. Logs por autor, caches de destinatário limitados, TTLs de armazenamento e encaminhamento, modelagem de convergência de gossip, recuperação de fork/downgrade/replay, governança vinculada a época, auxiliares de admissão e tombstones de retenção são preocupações separadas que a interface explica separadamente.

Decisões Técnicas

Estado de grupo/chave no estilo MLS e proteção de mídia AEAD semelhante ao SFrame com chaves brutas fora do JavaScript
Sobreposição de relé cega ao conteúdo com classificação determinística, failover, armazenamento e encaminhamento com limite de TTL e um limite de três saltos
Tratamento de replay, fork e downgrade modelado com reparo explícito em vez de retry oculto
Governança/admissão vinculada a época, alterações de estado assinadas, limites de convite e caminhos de admissão auxiliares
Predefinições de retenção, sincronização de tombstones e comportamento de backup que excluem chaves de conteúdo

Trade-offs

Correção de pesquisa sobre afirmações prematuras de produção
Advertências de segurança explícitas sobre linguagem de marketing
Limites sensíveis pertencentes ao Rust em vez de uma implementação mais simples apenas no navegador.

Resultado

Discrypt mantém privacidade de conteúdo, exposição de metadados, propriedade de chaves no endpoint, retenção e restrições de exclusão visíveis na aplicação. Exclusão cooperativa não revoga capturas de tela, texto exportado, cópias de clientes modificados ou conteúdo já observado por um destinatário.

captura de tela · 1/5

Capturas de tela

Capturas de tela de segurança pública e referências visuais para este estudo de caso.

Interface principal do Discrypt

Estado de entrada do protótipo de comunicação segura.

Stack e domínios

  • Rust
  • React
  • Tauri
  • TypeScript
  • MLS concepts
  • SFrame-like AEAD
  • WebRTC Insertable Streams
  • relay overlay
  • encrypted storage
  • deterministic harnesses