Novidades · Segurança no Blackbear

O que não conseguimos ler

15 de agosto de 2026 Xavi Group Parte 1 de 3
Ilustração: um urso-negro numa escrivaninha de madeira pressionando um lacre de cera num envelope, ao lado de uma pilha de envelopes já lacrados

O Blackbear é local-first. Todos os recursos funcionam no seu dispositivo e, por padrão, seus dados vivem só ali, sem nenhum servidor no meio.

Quando você ativa a sincronização na nuvem, nossos servidores passam a levar seus dados entre os seus dispositivos e as suas pessoas. Esta série explica o que isso significa para a sua privacidade. A parte 1 trata da criptografia: o que sai do seu dispositivo e por que não conseguimos ler. A parte 2 é um inventário honesto dos metadados que nossos servidores guardam, sim. A parte 3 trata do compartilhamento e da colaboração.

Tudo o que vem a seguir descreve código que já está no ar, não intenções. Quando citamos um algoritmo ou um número, é o que está rodando em produção hoje.

A criptografia acontece no seu dispositivo

Cada mudança que você sincroniza é criptografada antes de tocar a rede. Notas, documentos, tarefas, eventos, entradas do diário, planilhas, canvas, áudio, histórico de versões. Cada um é lacrado com XChaCha20-Poly1305, uma cifra autenticada, usando uma chave que nunca sai do seu dispositivo sem proteção. Nossos servidores recebem texto cifrado e guardam texto cifrado.

Imagens e arquivos de áudio recebem o mesmo tratamento: criptografados no seu dispositivo e enviados como blocos opacos.

O código que faz tudo isso é uma única implementação em Rust construída sobre o ecossistema RustCrypto e compilada para WebAssembly. O app e a CLI do Blackbear usam o mesmo código, byte por byte, e o testamos com casos de teste compartilhados entre linguagens para que nenhuma segunda implementação possa se desviar sem ninguém perceber.

O que isso protege, e o que não protege

A criptografia é uma ferramenta específica, não um campo de força. Antes dos detalhes, os limites.

Este projeto protege você de:

  • Uma invasão passiva dos nossos servidores ou do nosso banco de dados, com roubo dos dados armazenados. O que vaza é texto cifrado e chaves embrulhadas.
  • Nós. Os nossos sistemas em produção nunca recebem as suas chaves de conteúdo nem o texto em claro, então uma ordem judicial pedindo o seu conteúdo obtém o que realmente temos: metadados (parte 2) e blocos lacrados.

Ele não protege você de:

  • Um dispositivo comprometido, roubado ou desbloqueado. O seu dispositivo guarda as suas chaves; a segurança dele é o chão em que todo o resto se apoia.
  • Qualquer pessoa que tenha a sua frase secreta ou as suas doze palavras de recuperação.
  • O que os destinatários autorizados fazem com o que você compartilha. Compartilhar é confiar em pessoas, não só em matemática.
  • Os metadados do tráfego: quem, quando, quanto. Esse é o assunto inteiro da parte 2.
  • O próprio app. Na web, o app chega dos nossos servidores a cada carregamento; no desktop, por versões assinadas. Nenhum esquema de criptografia sobrevive a um app malicioso, seja quem for que o distribua.
  • Os momentos em que você escolhe enviar dados sem criptografia: pedir ao Pax para usar um modelo na nuvem, conectar uma agenda externa, exportar arquivos, mandar um convite por e-mail. Esses dados vão, de propósito, para quem você escolheu, sob as regras dessa outra parte, não sob a nossa criptografia.

A hierarquia de chaves

A sua frase secreta nunca sai do seu dispositivo. Tudo nasce dela:

Sua frase secreta
12 palavras de recuperação
↓ Argon2id
↓ HKDF
Chave da Conta
Chave de Recuperação
cada uma embrulha ↓
Chave do Cofre · aleatória, de 256 bits, nunca sai do seu dispositivo desembrulhada
↓ criptografa
notas · documentos · tarefas · eventos · planilhas · mídia · histórico

O servidor guarda só as cópias embrulhadas: texto cifrado protegendo texto cifrado.

Por que esse desvio? Ele permite trocar a frase secreta sem criptografar de novo a sua vida inteira, e permite que a recuperação exista sem enfraquecer a porta da frente.

Um alerta que merece ficar registrado: o Argon2id torna caro adivinhar; ele não consegue tornar forte uma frase secreta fraca. A Chave do Cofre embrulhada é exatamente tão forte quanto a frase secreta que a embrulha. Escolha uma longa.

A recuperação são doze palavras

Quando você configura a sincronização, o Blackbear entrega uma frase de recuperação: doze palavras (BIP39) que codificam 128 bits de entropia. Delas sai uma chave independente que embrulha a sua Chave do Cofre uma segunda vez.

Perdeu a frase secreta? As doze palavras trazem você de volta. Perdeu as duas? Os seus dados sincronizados se foram. Não conseguimos redefini-los, e nenhum chamado de suporte vai nos convencer a fazer isso, porque não existe nada do nosso lado para redefinir. Isso não é uma falha do nosso suporte. É o projeto funcionando.

Adicionar um dispositivo

Num dispositivo novo, você digita a sua frase secreta. Ela gera a sua Chave da Conta localmente e desembrulha a Chave do Cofre a partir da cópia embrulhada que o nosso servidor guarda. O servidor nunca vê a frase secreta, e nunca vê o resultado.

Um dispositivo que você já usa e que está desbloqueado também pode passar a chave diretamente. Ele lacra a Chave do Cofre para a chave pública X25519 do dispositivo novo e a deixa num espaço de transferência que se autodestrói depois de cinco minutos, tendo sido usado ou não. Um limite honesto aqui: o seu dispositivo atual fica sabendo a chave pública do novo pela sua conta conectada, então esse caminho assistido confia no nosso servidor para repassar a chave certa do dispositivo que você escolheu. O caminho pela frase secreta não exige essa confiança.

Como esse vocabulário é exatamente o que um golpista tomaria emprestado, uma regra que vale deixar por escrito: nunca vamos pedir a sua frase secreta nem as suas palavras de recuperação, e nunca vamos pedir que você aprove uma transferência de dispositivo. Esses pedidos só aparecem dentro de um app que você mesmo abriu. Qualquer outra pessoa pedindo isso é um ataque.

Mensagens

As mensagens usam chaves próprias, separadas da sincronização. Cada conta tem uma identidade de mensagens X25519, e cada mensagem deriva uma chave única a partir de um salt novo, só dela, via HKDF-SHA256. As mensagens viajam como envelopes lacrados. O servidor as repassa; ele não consegue abri-las. A parte 2 mostra o que o lado de fora do envelope revela.

Uma observação de projeto, dita com todas as letras: chaves únicas por mensagem não são o modelo de catraca rotativa que alguns mensageiros usam. Se a chave de mensagens de longo prazo de um dispositivo fosse comprometida um dia, as mensagens lacradas para ela estariam em risco. Chaves por mensagem limitam o estrago; elas não são sigilo futuro (forward secrecy), e preferimos que você saiba a diferença.

Histórico sem impressões digitais do conteúdo

O histórico de versões sincroniza como cópias criptografadas, identificadas por IDs que só valem dentro do seu cofre. Se você e um desconhecido salvarem um arquivo idêntico, o servidor vê dois IDs sem relação entre si: conteúdos idênticos não podem ser cruzados entre contas. O tamanho e o momento continuam visíveis, como em todo tráfego de sincronização. Isso é metadado, e esse assunto é da parte 2.

Provar sem revelar

As operações destrutivas na conta exigem uma prova do cofre: uma assinatura de uma chave Ed25519 derivada da sua Chave do Cofre. Você prova que tem o cofre sem que o cofre jamais viaje. E quando as chaves terminam o trabalho na memória, elas são zeradas.

Nada disso é exótico. XChaCha20-Poly1305, Argon2id, X25519, Ed25519, HKDF-SHA256: primitivas padrão, sem graça e muito revisadas. A parte interessante é a disciplina de aplicá-las em todo lugar, e de dizer em voz alta o que elas não cobrem. Essa disciplina é o assunto do resto desta série.

Para saber mais

Segurança no Blackbear

  1. 1. O que não conseguimos ler (você está aqui)
  2. 2. O que nossos servidores veem
  3. 3. Como o compartilhamento continua lacrado

Experimente o Blackbear

Gratuito para usar. Sem cartão de crédito.

Abrir o Blackbear