Como o Vibn funciona
Última atualização: 2026-08-28
Esta é uma descrição técnica de como o Vibn lida com suas fotos, vídeos, mensagens e identidade — escrita para quem quer conferir as afirmações em vez de aceitá-las por confiança.
É mais longa e mais específica que nossa Política de Privacidade, de propósito. A política diz o que fazemos com seus dados; este documento diz como o sistema foi construído de modo que não pudéssemos fazer diferente. Onde uma proteção é garantida pela arquitetura, e não por promessa, nós dizemos. Onde é apenas uma promessa, também dizemos.
1. A versão curta
O Vibn é um álbum compartilhado privado. Você cria um grupo, convida algumas pessoas, e as fotos e vídeos de todo mundo da mesma ocasião se juntam em um só lugar. Não há feed para ser ranqueado, nem perfil público, nem como um estranho encontrar seu grupo.
- Grupos são só por convite. Não há busca, descoberta nem navegação — a única entrada é um link, um código ou um QR de alguém que já está dentro.
- Fotos e vídeos em grupos criptografados têm criptografia de ponta a ponta. São criptografados no seu celular antes do envio e descriptografados nos celulares de quem recebe. Nossos servidores guardam um texto cifrado que não conseguem ler.
- A chave que descriptografa um grupo nunca chega aos nossos servidores de uma forma que possamos usar. Ela viaja na parte do link de convite que os navegadores nunca transmitem e, se você mantiver um backup de recuperação, a cópia que guardamos fica selada com uma frase que nunca recebemos.
- O reconhecimento facial roda no seu aparelho. Só vetores numéricos anônimos são enviados — nunca suas fotos de cadastro, e nunca de volta para outro usuário.
- As mídias nunca são endereçáveis publicamente. Cada visualização é um link assinado e de curta duração, gerado a cada requisição.
- Você pode apagar seus dados faciais, suas mídias, seus grupos e sua conta inteira — e as exclusões são reais.
2. Privado por convite, garantido no servidor
Toda requisição pelos dados de um grupo é conferida contra sua participação antes de qualquer coisa ser devolvida. Se você não é membro, a API responde "não encontrado" em vez de "não permitido" — assim alguém de fora não consegue nem confirmar que aquele grupo existe, muito menos quem está nele.
Essa verificação vive em um só lugar, na API, e não espalhada pelo código do app. O app não consegue se dar acesso perguntando de outro jeito, porque não é o app que decide.
Há uma exceção deliberada: quem está logado e tem um código de convite pode ler uma pequena prévia daquele convite — nome do grupo, descrição e quem convidou — antes de entrar. Sem isso, você teria que aceitar um convite às cegas. Convites expiram em sete dias.
Desde 2026 existe uma segunda verificação ao lado da associação ao grupo, e só num sentido: ela pode reter, nunca conceder. Se você aparece numa foto publicada por outra pessoa, pode ocultá-la do grupo: a partir daí a API só a entrega a quem já aparece nela e a quem a publicou. Não apaga nada, não alcança cópias que já estejam no celular de alguém, e quem publicou é avisado e pode pedir que você a mostre de novo.
- Os papéis dentro de um grupo são dono, gerente e membro. Gerentes podem moderar e editar; só o dono pode excluir o grupo ou nomear gerentes.
- O dono não pode simplesmente sair de um grupo que é dele — ele exclui o grupo ou o repassa. Isso evita um grupo sem dono cujo armazenamento ninguém responde por.
- Remover um membro corta o acesso dali em diante. Não desfaz o que ele já viu, e não fingimos o contrário.
3. Criptografia de ponta a ponta: o que nossos servidores não conseguem fazer
Grupos criados depois da nossa implantação de ponta a ponta são criptografados. Cada um tem uma chave de 256 bits, gerada no aparelho de quem criou. As mídias são criptografadas com AES-256-GCM no celular antes do envio e descriptografadas no celular na hora de ver. O que guardamos é um bloco opaco.
O ponto importante não é prometermos que não vamos olhar. É que uma série de recursos que outros apps oferecem se tornaram impossíveis para nós, e aceitamos perdê-los:
- Não conseguimos gerar miniaturas ou prévias das suas mídias criptografadas no servidor, porque não conseguimos decodificá-las.
- Não conseguimos recodificar nem comprimir para economizar armazenamento.
- Não conseguimos produzir o borrão usado antes do dia da revelação — então, em grupos criptografados, o app faz isso no seu aparelho.
- Não conseguimos criar link de compartilhamento público para um grupo criptografado. Esse recurso fica desligado para esses grupos, não apenas desencorajado.
- Não conseguimos analisar o conteúdo de mídias criptografadas, nem nós nem ninguém. A detecção de conteúdo sensível roda no seu aparelho ou não roda.
- Há exatamente uma maneira de o conteúdo real de uma foto chegar até nós, e é você quem o envia: ao denunciar um item como abusivo, seu dispositivo envia uma cópia descriptografada apenas daquele item, depois de o app avisar que fará isso. Não conseguimos obtê-lo de nenhuma outra forma, e ele é excluído 90 dias após a denúncia ser resolvida.
4. Como a chave viaja
A chave de um grupo é distribuída dentro do link de convite, depois do caractere # : https://vibn.space/i/CODIGO#k=… — tudo depois do # é um fragmento de URL, e navegadores nunca enviam fragmentos ao servidor. O QR code contém o mesmo link. Quem abrir extrai a chave no app e a guarda no armazenamento seguro do aparelho, apoiado em hardware: Keychain no iOS, Keystore no Android.
Isso tem uma consequência que preferimos dizer com todas as letras a esconder. Quem obtiver o link de convite completo obtém a chave do grupo. Trate um link de convite como a chave da sua casa: não é um pedido de entrada que você aprova, é o que abre a porta. Compartilhe por um canal em que você confia.
Tem uma segunda consequência, e o backup de recuperação muda o formato dela em vez de eliminá-la. Na primeira vez que um aparelho guarda a chave de um grupo, o Vibn oferece a você uma frase de recuperação de dez palavras. Seu celular deriva uma chave dessas palavras e envia suas chaves de grupo seladas com ela; nós guardamos esse pacote selado e o sal público usado para derivá-la. Nós nunca recebemos a frase — ela não vai em requisição alguma, nem por e-mail, nem pelo menu de compartilhamento —, então o pacote é tão impossível de abrir para nós quanto as próprias mídias. Você pode tirar um print das palavras se preferir isso ao papel; um print costuma sincronizar com um serviço de fotos na nuvem, então ele será tão privado quanto aquela conta. Digitar a frase em um aparelho novo traz suas chaves de volta e, no iOS, a chave derivada viaja nas Chaves do iCloud, então a maioria das restaurações não exige digitar nada. Você ainda pode levar as chaves para outro aparelho escaneando um código de um aparelho que ainda as tenha, ou restaurar um grupo colando o link de convite. Mas você pode pular o backup ou apagá-lo e, se fizer isso e todos os aparelhos e todos os links sumirem, as mídias ficam criptografadas para sempre. Esse é o custo honesto da garantia da seção 3.
- A chave do grupo nunca está no corpo de uma requisição, nunca está no código do convite e nunca está em um log de uma forma que alguém possa usar. A única cópia que chega até nós é o pacote de recuperação, selado com a sua frase.
- Limitação atual: não há rotação de chave quando alguém sai, nem revogação individual. Um ex-membro que guardou o link continua com a chave.
- A chave do grupo aparece só para leitura nas configurações dele, então você pode fazer um backup de propósito se quiser.
5. Onde suas mídias realmente ficam
Os arquivos ficam em armazenamento de objetos privado, que não é legível sem assinatura. Nosso banco guarda apenas o caminho do objeto — não uma URL. Uma migração antiga removeu de propósito as colunas com URLs salvas, então uma linha vazada do banco não contém nada que alguém consiga baixar.
Toda vez que você abre uma foto, a API gera um link assinado e de curta duração para aquele objeto, para aquela requisição, depois de conferir sua participação. O link expira. Os envios funcionam do mesmo jeito ao contrário, com o tipo do arquivo fixado no momento em que o envio é autorizado.
- Não há bucket público, nem caminho adivinhável, nem URL permanente para vazar.
- A única superfície sem autenticação em todo o sistema é uma galeria pública compartilhada, que um membro pode criar para um grupo não criptografado. É um token de capacidade dentro de um link, pode ser desligada e nunca pode ser criada para um grupo criptografado.
- Se você desligar o recompartilhamento nas suas configurações, seus envios saem de qualquer galeria pública criada por outro membro — nas suas próprias, eles continuam.
6. O dia da revelação
Um grupo pode ser configurado para revelar em uma data escolhida, para ninguém ver as fotos antes de todo mundo. Até esse momento, o servidor não pede simplesmente que o app esconda as coisas. Ele entrega a quem não enviou um arquivo diferente — um pequeno derivado borrado — e nunca gera um link assinado para o original. A chave da versão em resolução cheia não está na resposta para ser encontrada.
Você sempre vê os seus próprios envios. Avisos sobre fotos em que você aparece ficam retidos até a revelação e então chegam como um resumo único, para que uma notificação não estrague o que a tela está escondendo.
Existe um jeito de ver essas fotos antes da hora, e ele é proposital. Quem criou o grupo pode iniciar um mural ao vivo: um link, válido por no máximo um dia e revogável a qualquer momento, que mostra as fotos do grupo em um navegador conforme elas chegam — numa festa, numa tela na sala. Enquanto ele está rodando, quem tiver esse link vê as fotos inteiras em vez das versões borradas, que é exatamente para isso que ele serve. Duas coisas limitam o custo disso. O link termina sozinho, e quem o criou pode encerrá-lo antes. E o link não contém nenhuma chave do grupo: a chave chega ao navegador em forma cifrada e é aberta lá, só enquanto a sessão está rodando — então encerrar um mural ao vivo não apaga apenas a página: leva a chave junto.
7. Reconhecimento facial, e por que aqui ele é diferente
O Vibn consegue achar as fotos em que você aparece. Quase toda implementação desse recurso envia rostos para um servidor. A nossa não envia — e não poderia: a mídia é criptografada, então um comparador no servidor não teria o que olhar.
Em vez disso, a detecção e a conversão de um rosto em um vetor numérico acontecem no seu celular. Um vetor de 512 números é tudo que sobe. Não é uma imagem, e não é reversível para uma.
A comparação então acontece no servidor, vetor contra vetor. Ela devolve apenas os identificadores dos usuários encontrados — nunca o vetor de ninguém.
- As fotos que você tira durante o cadastro facial nunca saem do seu aparelho.
- Nenhum endpoint devolve um vetor facial guardado para nenhum cliente, incluindo o seu.
- Você pode desligar a descoberta, e seu identificador é retirado dos resultados de correspondência mostrados a todas as outras pessoas — você continua vendo os seus.
- Você pode apagar todos os seus dados faciais quando quiser, nas configurações. Isso remove os vetores e a marca de cadastro, não apenas um sinalizador.
- O recurso é opcional e está disponível nos planos gratuito e pago. Não colocamos sua privacidade atrás de um paywall.
- Você pode ocultar do resto do grupo uma foto em que aparece, sem poder apagá-la. Ela continua visível para quem aparece nela e para quem a publicou, que é avisado e pode pedir que você a mostre de novo.
8. Identidade, pagamento e as partes que de propósito não rodamos sozinhos
O login é feito pelo Firebase Authentication — e-mail, Google ou Apple. Nunca vemos nem guardamos uma senha; não existe campo de senha no nosso banco para ser vazado.
As assinaturas são verificadas pelo nosso próprio servidor diretamente com a Apple e o Google. Não há intermediário de cobrança terceirizado guardando seu histórico de compras. Seu direito ao plano é decidido do nosso lado a partir de um recibo confirmado pela loja, então um app modificado não consegue se dar um plano pago.
Os limites de plano — quantos grupos, quantos membros, quanto armazenamento, qual resolução — são aplicados no servidor, não no app. A cópia desses números no app existe só para te mostrar uma mensagem amigável antes de você bater no limite.
9. O que sai do seu aparelho, e para quem
Esta é a seção que a maioria dos whitepapers deixa vaga. A nossa é específica, inclusive onde não nos favorece.
Relatórios de erro e travamento vão para o Sentry. Ele recebe o identificador da sua conta, seu nome e seu e-mail para que um relatório possa ser ligado ao usuário afetado. Está configurado para nunca receber corpos de requisição, tokens de autenticação, URLs assinadas de armazenamento, códigos de convite, tokens de compartilhamento — nem a chave do grupo. Essa última não é questão de política: uma chave malformada chegaria ao relatório de erro dentro da mensagem da exceção, então a limpeza que a remove é coberta por testes que quebram o build se houver regressão.
Analytics de produto vai para o PostHog: quais telas são abertas, quais recursos são usados, além da versão do app e da plataforma. Os nomes das telas são higienizados para que identificadores de grupo, mídia e convite nunca apareçam em um evento.
As notificações push são entregues pelo OneSignal. O chat ao vivo e a presença não rodam mais na infraestrutura de terceiros: rodam no nosso próprio servidor em tempo real, e as mensagens ficam no nosso próprio banco de dados — em um grupo criptografado, como texto que não conseguimos ler. Seu app conecta com um token de curta duração que apenas identifica você, e entra na sala de cada grupo com um segundo token emitido exatamente para aquela sala, verificado contra sua participação a cada vez. As mensagens diretas funcionam do mesmo jeito, com uma diferença que vale dizer: uma conversa entre duas pessoas não tem chave de grupo, então os dois aparelhos derivam uma entre si a partir de chaves de identidade das quais guardamos apenas a metade pública. Nós armazenamos o resultado e não conseguimos abri-lo.
No plano gratuito, os anúncios são servidos pelo Google AdMob. No iOS, pedimos sua permissão antes de qualquer identificador de publicidade ser usado, e se você recusar continua vendo anúncios, só que não direcionados. Onde a lei local exige um formulário de consentimento, ele aparece antes desse pedido. O AdMob nunca recebe seu nome, seu e-mail, suas fotos nem nada de dentro dos seus grupos.
Se instalaste o Vibn a partir de um dos nossos anúncios, reportamos o que esses anúncios produziram, para sabermos quais funcionam: que a app foi instalada, que uma conta foi criada, que abriste o ecrã de planos, que tocaste para subscrever e que uma subscrição foi comprada. A Google e a Meta recebem o primeiro, o segundo e o último a partir do teu dispositivo — no iPhone através do SKAdNetwork da Apple, que entrega ao anunciante um único número agregado e atrasado, sem identificador nenhum, e é por isso que esta app não tem aviso de rastreio; no Android através dos SDK deles, e onde a lei local exige um formulário de consentimento, ele é mostrado primeiro. A OpenAI Ads recebe os cinco a partir dos nossos servidores e não do teu dispositivo, e é aí que entra o único identificador: se aceitaste a medição de publicidade, incluímos uma forma cifrada e irreversível do teu email para que uma compra possa ser associada a um anúncio que viste. Se recusaste, ou nunca te foi perguntado, não é enviado identificador nenhum. A nenhum deles é alguma vez dito o que partilhaste, em que grupos estás, ou o que quer que esteja dentro deles.
Se você denunciar uma foto ou um vídeo, uma cópia descriptografada daquele item é enviada junto com a denúncia para que uma pessoa possa avaliá-la — o app diz isso na própria tela em que você a envia. Ela fica guardada fora do grupo, só é exibida por um link que expira em minutos e é excluída 90 dias após a denúncia ser resolvida. Nunca dizemos quem fez uma denúncia. Denunciar uma pessoa ou um grupo não envia nenhuma mídia.
10. Apagar as coisas
Excluir sua conta remove a conta, os grupos que você criou e as mídias neles, e libera suas participações em outros grupos. Por 30 dias ela é recuperável, e é só para isso que a mantemos: a conta fica bloqueada, seu perfil some do app de todo mundo, os grupos que você criou ficam somente para leitura com a data de remoção à vista, e entrar de novo te dá um botão para desfazer tudo. Passados os 30 dias, uma tarefa agendada roda a mesma exclusão que o botão fazia na hora, e acabou — para nós tanto quanto para você. Nunca fica como uma marca escondida numa linha que guardamos.
Você também pode começar a exclusão pelo nosso site sem abrir o app, o que é útil se você perdeu o aparelho. Essa página tem limite de tentativas e proteção contra abuso automatizado, e de propósito dá a mesma resposta exista ou não uma conta com aquele endereço — inclusive levando o mesmo tempo — para que não sirva para descobrir quem tem conta no Vibn.
- Apagar uma mídia que você enviou apaga o objeto armazenado, não só a listagem dele.
- Apagar seus dados faciais é imediato e completo.
- Seus dados faciais não esperam os 30 dias: são apagados no momento em que você pede a exclusão, e recuperar a conta não os traz de volta.
- Backups e logs expiram nos próprios ciclos; a exclusão não é instantânea em todo lugar ao mesmo tempo, e não afirmamos que seja.
11. O que não fazemos
Alguém tem que pagar os servidores onde suas fotos e vídeos ficam. Quem paga são as assinaturas, e no plano gratuito a publicidade ajuda. O que não paga é você: nada de dentro dos seus grupos é oferecido a ninguém, e nenhuma das coisas abaixo é um negócio que estejamos guardando para depois.
Um item desta lista não é uma promessa. A mídia de um grupo criptografado é ilegível para nós, então não dá para explorá-la, vendê-la nem usá-la para ensinar nada — nem nós, nem quem tiver estes servidores mais adiante; a seção 3 explica por quê. O resto são promessas, e preferimos dizer qual é qual a deixar você supor.
- Não vendemos seus dados pessoais.
- Não vendemos, alugamos nem trocamos o acesso à sua conta, aos seus grupos ou à sua mídia — nem para anunciantes, nem para corretores de dados, nem para ninguém.
- Não usamos o conteúdo das suas fotos, vídeos ou mensagens para direcionar publicidade.
- Não treinamos nenhum modelo com o seu conteúdo.
- Não montamos um grafo social entre grupos, e não existe lista de seguidores, perfil público nem sugestão de amizade em lugar nenhum do produto.
- Não lemos suas mensagens. Em grupos criptografados não conseguiríamos; nos antigos, não lemos.
12. Limitações conhecidas
Um documento de privacidade que lista só pontos fortes é marketing. Estas são as coisas que gostaríamos de saber se estivéssemos no seu lugar.
- Quem tiver o link de convite completo tem a chave do grupo (seção 4).
- Ainda não há rotação de chave nem revogação por membro; remover alguém interrompe o acesso futuro, não o que já foi visto.
- Se você perder todos os aparelhos e o link de convite, sua frase de recuperação é o único caminho de volta. Se pulou o backup ou perdeu a frase também, ninguém pode recuperar as mídias, nem nós.
- O bloqueio de captura de tela, em grupos com compartilhamento desligado, impede o print do sistema operacional. Não impede alguém de fotografar a tela com outro celular.
- Grupos criados antes da implantação da criptografia não têm ponta a ponta. As mídias deles estão protegidas por controle de acesso e URLs assinadas, mas o servidor consegue lê-las.
- Os metadados não são criptografados: sabemos quais contas estão em quais grupos, quando as coisas foram enviadas, quando o arquivo disse que foram feitas e qual o tamanho delas.
- Os metadados das conversas também não são criptografados: sabemos quem troca mensagens diretas com quem, e quando, mesmo sem conseguir ler uma palavra.
- O armazenamento é cobrado do dono do grupo. Se a assinatura dele terminar e seus grupos continuarem acima do limite gratuito 30 dias após um aviso, excluímos as mídias mais antigas desses grupos — inclusive as enviadas por outros membros — até caberem.
- Denunciar uma foto ou um vídeo nos envia uma cópia descriptografada dele. Essa é a única exceção a tudo o que a seção 3 diz; só acontece quando um membro decide denunciar, e apenas para o item denunciado. O item denunciado também fica oculto do grupo até que alguém o analise, e volta sozinho depois de sete dias se ninguém o fizer.
- Quando você envia uma foto ou um vídeo, o seu telefone anexa uma impressão digital do arquivo, para que possamos recusar uma cópia exata de algo que o grupo já tem. Em um grupo criptografado essa impressão é calculada com a chave do próprio grupo, que nunca temos: ela nos diz que dois envios ao mesmo grupo são o mesmo arquivo, e nada além disso. Não podemos comparar com ela um arquivo que já tenhamos.
- Guardamos chaves de grupo de algumas contas que nós mesmos criamos: as contas de teste usadas para controlo de qualidade e para a revisão das lojas. Esses grupos contêm imagens de preenchimento geradas e não pertencem a ninguém. Nenhuma chave de um grupo seu é alguma vez guardada de uma forma que pudéssemos usar.
13. Como conferir qualquer coisa disto
As afirmações deste documento correspondem a comportamentos que você pode observar: alguém de fora que pede um grupo recebe "não encontrado"; a URL de uma foto compartilhada para de funcionar depois que a assinatura expira; não dá para criar compartilhamento público de um grupo criptografado; apagar seus dados faciais faz o filtro de pessoas esquecer você.
Se você encontrar algo aqui que não bate com o comportamento do app, isso é um bug em um dos dois, e queremos saber.
14. Contato
Dúvidas sobre este documento, ou sobre qualquer coisa nele: [email protected]
Para a declaração formal do que coletamos e por quê, veja nossa Política de Privacidade. Onde os dois divergirem, a Política de Privacidade é a que vale.