A segurança do Droplet Drop

Os seus ficheiros vão de um dispositivo para outro, cifrados, verificados e sem ninguém pelo meio. Eis como.

Última atualização: 13 de outubro de 2026

O princípio

O Droplet Drop não tem conta nem servidor de transferência. Os ficheiros vão diretamente do dispositivo que envia para o que recebe, pela sua rede local. Nunca vemos os seus ficheiros, nem quem os envia a quem: não passam por nós.

Nenhuma criptografia caseira: o Droplet Drop assenta em bibliotecas comprovadas: rustls (TLS 1.3), ring, rcgen (ECDSA P-256), SHA-256 e BLAKE3.

A cifragem

Cada ligação é cifrada com TLS 1.3, e só com TLS 1.3. A autenticação é mútua: os dois dispositivos provam cada um a sua identidade.

Na primeira abertura, cada dispositivo cria a sua própria chave (ECDSA P-256). A sua identidade é a impressão digital dessa chave; o código de segurança mostrado na app é o seu início, para a verificar num relance.

O dispositivo que se liga fixa a identidade esperada, conhecida pela descoberta na rede ou pelo código QR. Qualquer outro dispositivo que se faça passar por ele é recusado.

Nada chega sem o seu acordo

Cada envio começa como uma proposta: nome do remetente, código do dispositivo, número e tamanho dos ficheiros. Sem resposta, expira ao fim de dois minutos.

Só os dispositivos que marcou como «de confiança» podem enviar sem confirmação, e pode removê-los quando quiser.

Um ficheiro recebido nunca é executado. Se um envio contiver um programa, a proposta indica-o.

Verificado até ao último byte

Antes do envio, cada ficheiro é dividido em blocos de 4 MiB, e cada bloco recebe a sua impressão digital BLAKE3, tal como o ficheiro inteiro. O destinatário verifica cada bloco à chegada e volta a ler o ficheiro completo.

Um bloco danificado ou falsificado é pedido de novo. Um ficheiro que não corresponde ao original nunca é entregue: fica na pasta oculta de retoma até estar correto, ou é apagado.

Group Drop

Um convite contém o endereço do anfitrião na rede local, a identidade do seu dispositivo (fixada), um identificador de sessão de 128 bits e um token de 256 bits impossível de adivinhar. O anfitrião compara o token em tempo constante.

O convite expira (ao fim de 30 minutos, 2 horas ou 8 horas). Partilhar a ligação dá o direito de entrar: partilhe-a apenas com os participantes.

A ligação de convite pode abrir em drop.dropletmesh.app: a parte depois de «#», que contém o convite, nunca é enviada ao nosso servidor. Fica no seu navegador.

As proteções, uma a uma

AmeaçaProteção
Escuta da redeTLS 1.3 em cada ligação
Usurpação de um dispositivoIdentidade fixada; o handshake TLS prova a posse da chave
Envio não solicitadoAcordo explícito (ou dispositivo de confiança); expira ao fim de 2 minutos
Intruso numa distribuiçãoToken de 256 bits comparado em tempo constante; convite limitado no tempo
Ficheiro danificado ou falsificadoImpressão BLAKE3 de cada bloco e do ficheiro inteiro; nada é entregue antes da verificação
Escrita fora da pasta de receçãoCaminhos limpos à chegada («..», raízes, nomes reservados, carateres proibidos)
Substituição de um ficheiroNunca: é escolhido um nome livre, «nome (1).ext»
Disco cheioEspaço livre verificado antes de aceitar
Dados desmesuradosMensagens limitadas; um envio está limitado a 100 000 ficheiros e 4 TiB
Tentativas repetidasApós 20 falhas num minuto, um endereço é ignorado; no máximo 128 ligações em curso

A chave do seu dispositivo

A chave privada do dispositivo nunca sai dele. Está guardada na pasta de dados da app (legível apenas pela sua conta no Mac e no Linux). Se essa pasta for apagada (ao desinstalar a app de um telemóvel, por exemplo), o dispositivo recebe uma nova identidade e os seus outros dispositivos terão de voltar a confiar nele.

Comunicar uma vulnerabilidade

Acha que encontrou uma vulnerabilidade? Escreva para contact@dropletmesh.app, com o necessário para a reproduzir. Dê-nos tempo para a corrigir antes de a tornar pública; responderemos e mantê-lo-emos informado.

Voltar ao topo