Última atualização: 2026-07-01
A Relayium foi criada para que as pessoas que transferem arquivos — e não o servidor — tenham as chaves. Esta página descreve exatamente o que é protegido, como funciona e os limites dessa proteção.
Em resumo: no modo em tempo real, na mesma rede seus arquivos nunca passam pelos nossos servidores e, entre redes diferentes, atravessam um retransmissor criptografado que só transporta texto cifrado e não detém nenhuma chave; as chaves de criptografia são geradas do zero em cada dispositivo e nunca o deixam; e um código de verificação curto permite que duas pessoas detectem um servidor malicioso. A seguir, os detalhes.
Cada transferência gera um par de chaves X25519 efêmero e novo em cada dispositivo. Os dois dispositivos realizam uma troca de chaves para derivar uma chave AES-256-GCM compartilhada que existe apenas dentro dos dois navegadores. Cada bloco é criptografado com essa chave e um nonce único, de modo que o servidor de sinalização — e qualquer retransmissor — só vê texto cifrado.
A criptografia embutida do WebRTC (DTLS) troca impressões digitais de chaves por meio do servidor de sinalização, então um servidor desonesto poderia se colocar no meio e trocar as chaves. Para detectar isso, a Relayium deriva uma Short Authentication String (SAS) de 6 dígitos a partir das chaves públicas dos dois lados e a exibe nas duas telas. Se os dois códigos coincidirem, a troca de chaves não foi adulterada — ninguém trocou nenhuma chave no meio dela.
Um simples código de 6 dígitos (cerca de 20 bits) poderia, em princípio, ser quebrado por força bruta por um retransmissor correndo para forçar um código coincidente. A Relayium fecha essa brecha com um handshake de comprometer e depois revelar: cada lado primeiro se compromete com sua chave enviando um hash, e só revela a chave depois de receber o comprometimento do outro lado. Um servidor, portanto, não pode escolher depois uma chave que colida, de modo que o código curto continua confiável.
O serviço foi projetado para que o seguinte nunca chegue aos nossos servidores, em nenhum modo:
No modo em tempo real, na mesma rede os bytes do arquivo não passam de forma alguma pelo servidor — eles fluem diretamente entre os dois dispositivos; entre redes diferentes, passam pelo retransmissor TURN descrito abaixo, que transporta texto cifrado e não detém nenhuma chave. O servidor de sinalização apenas retransmite mensagens de configuração da conexão e vê a participação na sala (seu IP público), um apelido de dispositivo que você escolhe e a presença.
As transferências entre redes no navegador — as sessões com código de emparelhamento, incluindo seus links de entrada — passam por um servidor TURN por decisão de projeto, não como recurso alternativo. Ali os NATs e firewalls restritivos tornam improvável um caminho realmente direto, então o aplicativo força de saída a rota retransmitida em vez de gastar uns vinte segundos em verificações de candidatos diretos que quase sempre expirariam para acabar nesse mesmo retransmissor de qualquer forma. As sessões na mesma rede não recebem nenhuma credencial de retransmissão e se conectam diretamente; e a CLI nunca retransmite os bytes dos arquivos: suas transferências entre redes são exclusivamente diretas e falham se nenhum caminho direto for encontrado.
O modo opcional de link de download é para quando o destinatário não está on-line. Seu navegador criptografa os arquivos com AES-256-GCM antes de qualquer coisa ser enviada, e a chave de descriptografia é colocada apenas no fragmento da URL — a parte depois do # —, que os navegadores nunca enviam ao servidor.
Além da confidencialidade, a integridade de cada arquivo é verificada. Cada bloco carrega uma tag de autenticação AES-GCM, e um hash SHA-256 por arquivo é verificado de ponta a ponta no lado receptor, de modo que um arquivo corrompido ou adulterado é detectado em vez de aceito silenciosamente.
A criptografia de ponta a ponta protege os dados em trânsito entre dois pontos de extremidade honestos. Por design, ela não pode proteger contra:
A Relayium funciona em qualquer navegador moderno com WebRTC sobre HTTPS. Alguns recursos diferem conforme o navegador:
O design do protocolo e todo o código de cliente e servidor são públicos no GitHub, de modo que qualquer pessoa pode auditar a criptografia, executar o próprio servidor ou contribuir. Se você encontrar um problema de segurança, relate-o de forma privada por meio do relato de vulnerabilidades do GitHub no repositório, em vez de abrir uma issue pública.