Herkos

Política de privacidade do Herkos

Última atualização: 11 de novembro de 2026. URL canônica: https://herkos.app/privacy

Tradução. Esta é uma tradução de cortesia. Em caso de divergência, prevalece a versão em inglês.

O Herkos Mail, o Herkos Calendar, o Herkos Notes, o Herkos Drive e o Herkos Local Relay são aplicativos livres e de código aberto para a rede Nostr, publicados pelo projeto Herkos ("nós"). O Herkos Calendar, o Herkos Notes, o Herkos Drive e o Herkos Local Relay ainda estão em desenvolvimento. Este documento explica quais dados os aplicativos e nossos sites tratam, para onde eles vão e quem pode vê-los. Nós o escrevemos para ser lido, não para ser passado de olhos: se algo aqui te surpreender, escreva para privacy@herkos.email.

Informações básicas sobre proteção de dados

A primeira camada, em poucas linhas; o resto deste documento é a segunda.

A versão curta

Dados que ficam no seu dispositivo

No navegador não existe esse armazenamento seguro. A chave fica no armazenamento local do site e passa pelo JavaScript toda vez que algo é assinado, então uma extensão com acesso a todas as páginas, uma falha de XSS ou uma implantação adulterada poderiam lê-la; e, ao contrário de um aplicativo instalado, uma página web entrega código novo a cada visita. Na versão web, use um assinador remoto ou uma identidade que você possa perder. - Sua caixa de entrada: e-mails descriptografados, anexos, etiquetas, pastas e contatos ficam em cache num banco de dados local para que o aplicativo funcione offline. Esse banco não é criptografado além do que o sistema operacional oferece; o bloqueio do aplicativo (PIN ou biometria) é uma barreira de conveniência, não criptografia em repouso. No Android, o aplicativo é excluído dos backups na nuvem e entre dispositivos. - O PIN de bloqueio: guardado como hash com sal e alongamento de chave (PBKDF2), nunca em texto puro. O Herkos Calendar e o Herkos Notes têm cada um seu próprio PIN, guardado da mesma forma. - Sua agenda (Herkos Calendar): os eventos, listas, chaves de visualização e lembretes que você pode ler ficam em cache no dispositivo, criptografados registro por registro com uma chave guardada no armazenamento seguro do sistema operacional. No navegador, a agenda fica só na memória e é buscada de novo nos relays a cada vez. Os lembretes são disparados pelo próprio dispositivo: o Calendar não usa nenhum servidor push. Se você optar por ocultar os títulos nos lembretes, eles dizem apenas "Evento" e quando começa. Sua chave do Calendar é guardada separada das do Herkos Mail (ver "Sua conta", na seção do Calendar). - Suas notas (Herkos Notes): as notas, o histórico delas, os cadernos e o índice de busca ficam em cache no dispositivo, criptografados registro por registro com uma chave guardada no armazenamento seguro do sistema operacional. No navegador, eles ficam do mesmo jeito, no armazenamento do navegador para o site (IndexedDB), com a chave também no navegador: num computador que outras pessoas usam, isso protege pouco. Se o navegador não guarda nada do site (uma janela anônima, os dados do site bloqueados), eles ficam só na memória e sem conexão não dá para escrever. Uma nota que você bloqueia ganha uma senha própria; sem ela ninguém consegue abrir essa nota, nem nós. A cópia das suas notas é um arquivo gravado apenas onde você o salva, criptografado com uma senha própria. A cópia automática, feita todo dia a menos que você a desative, é um arquivo em uma pasta do dispositivo (Herkos Notes/backups, nos seus Documentos), criptografado com a chave da sua conta; as sete últimas ficam guardadas, e ela não é enviada a lugar nenhum (no navegador ela não existe). As notas que outras contas compartilham com você esperam em "Recebidas de outros", no dispositivo e criptografadas como o resto, até você guardá-las ou descartá-las.

Você pode apagar tudo isso em Configurações → Mais → Redefinir aplicativo, ou removendo uma conta.

Dados que saem do seu dispositivo, e para quem

Esta tabela é do Herkos Mail. O Herkos Calendar, o Herkos Notes, o Herkos Drive e o Herkos Local Relay têm suas próprias seções mais abaixo.

Destinatário O que pode ver Quando
Relays Nostr (lista padrão em Configurações → Rede, editável) Seu endereço IP, sua chave pública, os eventos que você publica (perfil, listas de relays, lista de servidores Blossom, etiquetas NIP-32, configurações criptografadas) e os "gift wraps" criptografados endereçados a você, com seus horários. Os relays não conseguem ler o conteúdo dos gift wraps. Um relay que pede autenticação NIP-42 aprende sua chave pública mesmo que você só esteja lendo. Sempre, enquanto o aplicativo sincroniza. No Android também com o app fechado, a cada 15 minutos mais ou menos, quando a verificação em segundo plano substitui o servidor de push.
Servidores Blossom (editável) Seu endereço IP e sua chave pública, e os blobs criptografados de e-mails maiores que 32 KB e de seus anexos. A chave para descriptografar um blob viaja apenas dentro da mensagem criptografada. Quando você envia ou abre um e-mail grande.
Bridges (uid.ovh por padrão, editáveis) O conteúdo completo de qualquer e-mail que você envie para um endereço tradicional (Gmail, Outlook…) ou dele receba, e o alias nome@bridge que você registrar. Os bridges são operadores independentes com seus próprios termos de privacidade; o Herkos não os opera. Quando você usa uma identidade @bridge ou escreve para um endereço fora do Nostr.
Servidores NIP-05 (o domínio de um endereço que você digita) Que alguém perguntou se nome@domínio é usuário do Nostr. Quando você adiciona um destinatário usuário@domínio.
Servidor push (nenhum por padrão; em Configurações → Notificações dá para escolher api.nmail.li, que só avisa do e-mail que chega ao relay relay.nmail.li e por isso é oferecido junto com ele, os dois do projeto original Nostr Mail, ou outro servidor) Sua chave pública, um token push do dispositivo (endpoint UnifiedPush), o idioma das notificações e — porque ele vigia os relays por você — quando você recebe e-mail (não o que ele diz). Somente se você escolher um servidor push e ativar as notificações para uma conta; sem servidor, o Herkos verifica seus relays por conta própria. Ao desativá-las, pede-se ao servidor que apague a inscrição. Ao trocar de servidor, o mesmo é pedido ao servidor anterior.
DVM de agendamento (um serviço Nostr operado por terceiros, ver NostrConfig.schedulerDvm) Sua chave pública, as mensagens já criptografadas a publicar, seus relays de destino e o horário agendado. Somente se você usar "enviar mais tarde".
Assinador remoto / relays para NIP-46 (relay.nsec.app e alternativas) Sua chave pública e pedidos de assinatura criptografados. Somente se você entrar com um bunker ou aplicativo de assinatura.
Servidores de imagens (qualquer servidor para o qual um perfil ou um e-mail aponte) Seu endereço IP e o momento em que a imagem é baixada. Uma imagem de perfil só é baixada do endereço que o dono colocou no perfil dele se você ativar Carregar fotos de perfil (as das suas próprias contas sempre carregam); nesse caso, quem administra esse servidor pode saber quando você olhou as mensagens ou o contato dessa pessoa. As imagens dentro dos e-mails ficam bloqueadas por padrão; quando você as carrega (Carregar imagens, ou a configuração Sempre carregar imagens), os servidores delas, muitas vezes o do remetente, ficam sabendo que você abriu o e-mail e quando. Uma imagem de fundo que você adiciona pelo endereço dela é baixada desse servidor. Imagens de perfil: só se você as ativar (as suas, sempre). Imagens de e-mails: só se você as carregar.

Seus relays privados. Se sua conta tiver uma lista de relays privados (kind 10013, NIP-37; o Herkos Notes e o Calendar usam a mesma), o Mail guarda seus rascunhos, configurações criptografadas, etiquetas e envios agendados nos relays dessa lista, e não nos seus relays de escrita; o que deixou lá antes continua lendo, e também apaga lá. Sem essa lista, eles vão para seus relays de escrita. O Mail só publica a lista quando você pede (Configurações → Hospedagem → Relays privados), criptografada com sua chave: os relays veem sua chave pública, que a lista existe e quando muda, não os relays que ela contém. Uma lista escrita por outro app é usada como está e nunca é sobrescrita.

Encaminhamento automático (Configurações → Encaminhamento automático, desligado até você ligar). Uma cópia de cada mensagem nova vai para o único endereço que você escolher: para uma conta Nostr, criptografada de ponta a ponta como qualquer mensagem; para um endereço tradicional, pelo bridge do endereço principal da sua conta, que a vê por inteiro (veja Bridges acima). Quem faz isso é este dispositivo, enquanto o Mail está aberto ou na sincronização seguinte; a configuração fica no dispositivo e nunca é publicada.

Um app de assinatura no seu celular Android (NIP-55, como o Amber). A chave fica nesse app, e o Mail fala com ele diretamente no celular, sem relays nem rede no meio; o dispositivo guarda só sua chave pública e qual app assina. O Mail só pede a ele que assine os kinds que o Mail assina com sua conta e que criptografe e descriptografe (NIP-44), nunca os envelopes das mensagens, que usam chaves de uso único, e verifica cada evento assinado que volta antes de usá-lo.

Herkos Local Relay. Se o Herkos Local Relay estiver no mesmo dispositivo, o Mail oferece uma vez se conectar a ele; nada é enviado até você tocar em Conectar e aprovar o Mail no Herkos Local Relay. O Mail se pareia com ele usando uma chave própria e confere a cada conexão que é o mesmo relay. Ele assina uma vez com sua chave, para que o relay guarde seus eventos como seus; depois copia para lá os e-mails que este dispositivo guarda e, a partir daí, cada evento da sua conta que o Mail envia e cada envelope que recebe, exatamente como foram assinados e ainda criptografados, e pede ao relay que os mantenha no dispositivo e entregue os privados só à sua chave. Os envelopes que você envia a outras pessoas não são copiados. O Mail nunca lê dele: é uma cópia. Para isso, nada sai do dispositivo.

O próprio Herkos não recebe nada disso. Não há relatórios de falhas nem telemetria.

Herkos Calendar: o que os relays veem

O Calendar conversa com relays Nostr: os da sua conta (suas listas NIP-65 e de caixa de entrada), os de Configurações → Relays (editáveis) e, quando você convida alguém ou responde a um convite, os relays de caixa de entrada dessa pessoa. Com mais ninguém, exceto o que você mesmo consulta (abaixo): nem com índices públicos de relays. "Sua conta", abaixo, explica para que serve cada um. Não há servidor do Herkos, nem servidor push, nem telemetria. Todo relay vê seu endereço IP e o horário de cada conexão.

O quê O que os relays que guardam podem ver O que eles não podem ver
Um evento privado (kind 32678) Sua chave pública, que é um evento de agenda (o kind dele), um identificador aleatório, quando você o criou ou alterou pela última vez e o tamanho aproximado dele. Ele fica guardado apenas nos seus relays, onde seus convidados o procuram; nunca nos deles. Título, data e hora, fuso horário, repetição, local, descrição, convidados, lembretes.
Suas listas de agendas (kind 32123) e configurações de lembretes (kind 30078, d=calendar-alarms) Sua chave pública, que elas existem e quando mudam. Quais eventos elas contêm, os nomes delas, as chaves de visualização, seus lembretes.
Um convite (um gift wrap, kind 1059) A chave pública do convidado e uma tag k=1052 que diz que o envelope contém um convite de agenda (é assim que os aplicativos de agenda, inclusive o do Formstr, encontram convites sem abrir seu e-mail). Ele é enviado apenas para os relays de caixa de entrada do próprio convidado, sob uma chave de uso único, com seus próprios carimbos de data e hora aleatórios, e os convites para o mesmo evento saem em ordem aleatória, cada um de 5 a 90 segundos depois do anterior (o primeiro, depois do próprio evento). O envelope também leva uma data de expiração, sorteada entre 60 e 90 dias depois do envio, para que os relays possam descartá-lo: ela não diz nada sobre quando é o evento. Quem o enviou, qual é o evento e quais outros convidados foram convidados.
Uma resposta privada a um convite (um gift wrap, kind 1059, tag k=1925) A chave pública de quem a recebe (o organizador, ou você na sua própria cópia) e que o envelope contém uma resposta de agenda. Vai só para os relays de caixa de entrada de quem a recebe, com uma chave de uso único, datas aleatórias e data de expiração, como os convites. Quem responde, a qual evento e o que responde.
Apagar (kind 5) Sua chave pública e o identificador do que você apaga. —

Um relay que pede autenticação NIP-42 aprende sua chave pública; o Calendar só responde a esse pedido para seus próprios eventos nos seus próprios relays, e para ler sua própria caixa de entrada. Apagar no Nostr é um pedido: um relay pode manter a cópia dele, ainda criptografada.

O que nada nos eventos consegue esconder: cada convite sai do seu endereço IP, e cada convidado busca o evento nos seus relays a partir do dele. Um relay que guarda as caixas de entrada de vários dos seus convidados consegue saber que os convites deles vieram do mesmo endereço. Só o Tor ou uma VPN escondem isso.

Sua conta

O Calendar não cria contas: você entra com uma identidade Nostr que já tem, de uma destas formas.

Seus relays. Ao entrar, o Calendar procura suas listas (NIP-65, kind 10002, e sua lista de caixa de entrada, kind 10050) nos relays de Configurações → Relays, numa conexão separada que não identifica você: um relay que pede autenticação recebe uma chave de uso único, não a sua. A partir daí:

Os relays dos seus convidados (decidido em 21 de outubro de 2026). Para convidar alguém, o aplicativo precisa saber onde a pessoa recebe. O Calendar procura as listas dela (10002 e 10050) só nos relays de Configurações → Relays, nunca no índice público de um terceiro (como purplepag.es): esse serviço veria de qual endereço você pergunta e sobre quem, ou seja, quem você convida. Cada convidado é procurado separadamente, em ordem aleatória, numa conexão própria com uma chave de uso único, para que esses relays não possam saber quem foi convidado com quem. O que eles veem é seu endereço IP e a chave pública de cada pessoa que você procura. Se as listas de alguém não estão nesses relays, o aplicativo marca a pessoa como "sem caixa de entrada conhecida" antes de enviar, e o convite não chega a ela. Para encontrá-la, adicione a Configurações → Relays um relay onde ela publique suas listas.

O que se sincroniza entre seus dispositivos, sempre criptografado para você e nos seus relays de escrita: suas listas de agendas (com as chaves dos eventos delas), as configurações de lembretes (d=calendar-alarms), as agendas que você segue (d=calendar-subscriptions) e os convites que você ignora ou os eventos de outras pessoas que você tira da sua agenda (kind 30078, d=calendar-declined: só qual evento e quando, nunca o título dele). Os relays veem que eles existem e quando mudam, não o que dizem. Os lembretes que o dispositivo dispara são os da conta com que você entrou, nunca os de uma anterior.

A cópia das suas chaves. O Calendar oferece salvar uma cópia: um arquivo com suas listas de agendas e as chaves dos eventos delas, criptografado com uma senha que você escolhe para ele (a cifra do NIP-49). Ele é gravado só onde você o salva; não vai para nenhum relay nem servidor. O nome dele leva a data, nunca a conta. Para o aviso, o dispositivo guarda só duas datas: a da última cópia e a do último "Agora não".

Sair da conta primeiro mostra o que será perdido e oferece salvar a cópia. Depois, apaga deste dispositivo sua chave (ou a conexão com o bunker) e a agenda guardada. O que foi publicado fica nos relays, criptografado. A permissão que você deu no seu aplicativo de assinatura é retirada nesse aplicativo.

Público por escolha sua

Ficam desligados até você ativá-los, e o aplicativo mostra o que cada um revela antes que você o faça:

O Herkos Calendar lê as respostas públicas aos seus eventos públicos escritas por outros aplicativos (RSVPs, kind 31925, e remoções, kind 84); não escreve nenhuma das duas.

O que você mesmo consulta

Essas conexões só acontecem quando você pede:

Herkos Notes: o que os relays veem

O Notes conversa com relays Nostr, e com mais ninguém. Não há servidor do Herkos, nem servidor push, nem telemetria. Todo relay vê seu endereço IP e o horário de cada conexão.

Quais relays. Se a sua conta tem uma lista de relays privados (kind 10013, a lista que o NIP-37 descreve), o Notes usa os relays dela, como estão, e nunca a sobrescreve; ele procura essa lista nos relays das Configurações do Notes e nos relays onde você publica (sua lista NIP-65). Caso contrário, usa os relays das Configurações do Notes: relay.formstr.app, nos.lol e relay.primal.net por padrão, até oito, todos editáveis. As Configurações também oferecem uma lista de relays conhecidos para adicionar com um toque; nenhum deles é contatado se você não o adicionar. Um relay pode ser ws://, uma conexão sem criptografia, só se estiver no dispositivo ou na rede de casa (localhost, endereços privados, nomes .local): as notas continuam viajando criptografadas, mas qualquer pessoa nessa rede pode ver o que o relay vê (a tabela abaixo). O Notes não publica nenhuma lista de relays própria, a menos que você peça (Relays → Salvar como minha lista de relays privados). Então publica estes relays como a sua 10013, criptografada com a sua chave, nos mesmos relays onde procura as listas, e a mantém atualizada com o que você mudar no Notes: os relays veem sua chave pública, que a lista existe e quando ela muda, não os relays que ela contém. Uma lista escrita por outro aplicativo nunca é sobrescrita: o Notes a usa como está. Se um desses relays funcionar neste dispositivo (um endereço ws://127.0.0.1 ou ws://localhost, como o app Citrine), o Notes deixa também nele uma cópia das suas notas, cadernos e exclusões, exatamente como foram assinados e ainda criptografados. Para isso nada sai do dispositivo; o Notes nunca lê desse relay, e uma nota que só ele tem não conta como enviada. Os outros apps do dispositivo que leem esse relay veem o mesmo que qualquer relay vê.

Herkos Local Relay. Se o Herkos Local Relay estiver no mesmo dispositivo, o Notes oferece uma vez para se conectar a ele; nada é enviado até você tocar em Conectar e aprovar o Notes no Herkos Local Relay. O Notes se pareia com ele usando uma chave própria, criada para esse pareamento, e a cada conexão confere que é o mesmo relay, então outro programa escutando na porta dele não recebe nada. A partir daí, ele copia para lá suas notas, pontos de controle, cadernos, exclusões, sua lista de relays privados e os selos das notas que você compartilha, exatamente como foram assinados e ainda criptografados, e pede que ele guarde tudo como privado, menos as exclusões: o relay só entrega isso à sua chave e não repassa a ninguém. Para que o relay os guarde como seus, o Notes assina uma vez com a sua chave ao se conectar. Para isso nada sai do dispositivo. O Notes nunca lê dele: é uma cópia, e uma nota que só ele tenha não conta como enviada. Se ele parar de responder, o Notes segue com seus outros relays e mais tarde envia só o que faltou. Você pode desconectá-lo nas Configurações do Notes, ou revogar o Notes no Herkos Local Relay.

O quê O que os relays que guardam podem ver O que eles não podem ver
Uma nota (kind 31234, NIP-37) Sua chave pública; um identificador aleatório (d), feito a partir de um número aleatório e nunca do título; a tag k=30023, igual em todas as notas, então ela não diz nada sobre o que você escreve; quando você a alterou pela última vez; e o tamanho aproximado dela. Título, texto, etiquetas, caderno, se ela está fixada, nas favoritas ou na lixeira, e quando você a criou.
Um ponto de controle (kind 1234), o histórico da nota Sua chave pública, a qual nota ele pertence (a tag a dele aponta para o identificador da nota) e quando ele foi feito. O que a nota dizia naquele momento.
Seus cadernos (kind 30078) Sua chave pública, que a lista existe e quando ela muda. O identificador dela é derivado da sua chave pública, então é o mesmo em todos os seus dispositivos. Os nomes dos seus cadernos, quantos são e quais notas estão em cada um.
Apagar (kind 5) Sua chave pública e os identificadores do que você apaga: a nota e os pontos de controle dela. —
Uma nota que você compartilha (kind 1059, um gift wrap NIP-59) A chave pública da conta a que ela se destina (p); a tag k=30023; uma data recuada até dois dias, ao acaso; e o tamanho aproximado dela. Ela é assinada por uma chave criada para ela e usada uma única vez, não pela sua. Quem a enviou, quando, o título e o texto dela. Dentro, selados (kind 13) e criptografados só para essa conta, vão a sua chave pública e a nota: só essa conta consegue abri-los, e ela fica sabendo quem a enviou.

O que não dá para esconder. O d e o k de uma nota e o a de um ponto de controle têm que ser legíveis: os relays precisam deles para substituir uma nota pela versão mais nova dela e para encontrar o histórico dela. Então um relay pode contar quantas notas você tem e ver quando você edita cada uma e com que frequência. O Notes torna isso menos preciso, não invisível: ele salva no máximo um ponto de controle por nota a cada hora de edição, um quando você fecha uma nota que mudou e um de cada lado quando você resolve um conflito, nunca um por salvamento, para que seu ritmo de escrita não seja publicado minuto a minuto.

Por que suas notas nunca expiram. Os rascunhos do NIP-37 podem levar uma tag expiration (o exemplo dele usa 90 dias), e um relay que a respeita apaga o evento nessa data. Num caderno, isso significaria perder notas que ninguém pediu para apagar, então o Notes nunca a escreve. O outro lado disso: suas notas ficam nos relays, criptografadas, até você apagá-las, e apagar no Nostr é um pedido: um relay pode manter a cópia dele.

Compartilhar uma nota. O Notes envia a cópia aos relays onde a outra conta diz que lê (os relays NIP-17 dela, kind 10050, ou então os relays de leitura da lista NIP-65 dela), que ele procura nos seus relays, e aos seus próprios relays, oito no máximo. O que viaja é o que a nota diz (título, texto e etiquetas), não o seu caderno, suas marcações nem a lixeira; o que você mudar depois não é enviado. A outra conta fica com a cópia dela: o Notes não consegue recuperá-la, e apagar a sua nota não a apaga. Para receber, o Notes pede aos seus relays os gift wraps endereçados à sua chave com k=30023 e os abre no dispositivo. Descartar um deles o remove só do dispositivo: um gift wrap é assinado por uma chave que ninguém guarda, então nenhum de vocês dois pode pedir aos relays que o apaguem, e ele fica lá, sem que ninguém além de você consiga lê-lo.

A busca é local. Tudo é criptografado, então nenhum relay pode buscar por você. O Notes baixa e descriptografa suas notas e monta o índice no dispositivo; as palavras que você procura nunca são enviadas a lugar nenhum.

Um relay que pede autenticação NIP-42 aprende sua chave pública; o Notes responde a ele com a sua conta. O Notes também pede aos seus relays os rascunhos que outros aplicativos escreveram com a sua chave (kinds 31234 e o antigo 30024), para mostrá-los somente para leitura, e não publica nada ao fazer isso. Se você entrar com um assinador remoto (um bunker ou Nostr Connect), os relays dele carregam seus pedidos de assinatura criptografados, e o Notes só pede a ele que assine os kinds acima (inclusive o selo de uma nota compartilhada, kind 13; o gift wrap dela é assinado no dispositivo, com a chave de uso único). Com um app de assinatura no seu celular Android (NIP-55, como o Amber), o Notes fala com ele diretamente no celular, sem nenhum relay no meio, pede a ele o mesmo e verifica cada evento assinado que volta antes de usá-lo.

Herkos Drive: o que os relays e servidores veem

O Drive guarda o conteúdo dos seus arquivos em servidores Blossom e a lista dos seus arquivos e pastas (o índice) em relays Nostr, ambos criptografados no seu dispositivo. Não há servidor do Herkos, nem servidor push, nem telemetria. Cada relay e servidor vê seu endereço IP e o horário de cada conexão. Por padrão, o índice vai para cinco relays e os arquivos para cinco servidores Blossom, nenhum deles operado pelo Herkos; Configurações → Hospedagem de arquivos muda os servidores, e ali dá para adicionar um servidor seu. Quem opera cada um e onde ele fica, até onde sabemos (verificado em 5 de novembro de 2026):

Servidor Para Operador (como ele mesmo se apresenta) Onde (pelo endereço IP)
nos.lol índice não diz Alemanha (Hetzner)
relay.primal.net índice Primal desconhecido: atrás da Cloudflare
relay.nmail.li índice Nmail, o projeto original Nostr Mail França (OVH)
relay.nostr.net índice nostr.net (aljaz@nostr.si) desconhecido: atrás da Cloudflare
nostr.oxtr.dev índice 0xtr (oxtrr@protonmail.com) Alemanha (Hetzner)
nostr.download arquivos não diz Irlanda (Apex Strata)
blossom.ditto.pub arquivos Ditto Estados Unidos (DigitalOcean)
blossom.nmail.li arquivos Nmail, o projeto original Nostr Mail França (OVH)
blossom.yakihonne.com arquivos YakiHonne Singapura (Vultr)
blossom.jumble.social arquivos Jumble desconhecido: atrás da Cloudflare

O país vem do endereço IP do servidor e pode estar errado, e um servidor atrás da Cloudflare não mostra onde fica; o que conta é onde cada operador diz que guarda os dados, e a maioria não diz. Cada operador é independente, com seus próprios termos; o Herkos não tem acordo com nenhum deles. Pelo menos dois dos cinco servidores de arquivos ficam fora da União Europeia: o que eles guardam é criptografado no seu dispositivo e eles não conseguem lê-lo, mas seu endereço IP e o horário de cada envio chegam até eles.

Duas chaves. Sua conta assina uma coisa só: o localizador, um evento criptografado para a sua própria chave que permite aos seus dispositivos encontrar o seu Drive. Todo o resto é assinado por uma chave do volume criada ao acaso para o seu Drive, não derivada da sua conta, então o índice não diz de quem ele é. O Drive lê o localizador uma vez por dispositivo, não a cada início, para que os relays não vejam sua conta e seu volume pedidos juntos. Quem recebe uma pasta que você compartilha também recebe a chave do volume; você pode trocá-la a qualquer momento (Configurações → Chave do volume): seus outros dispositivos acompanham sozinhos, e o que foi assinado com a antiga deixa de ser aceito.

O quê O que os relays que o guardam podem ver O que eles não podem ver
O localizador (kind 31152) Sua chave pública, um identificador aleatório e quando ele foi escrito. O que ele contém: a chave do volume e onde está o seu índice, criptografados para a sua chave.
Um arquivo ou uma pasta (kind 31150), um evento cada A chave do volume; um identificador aleatório, feito a partir de um número aleatório e nunca do nome; o identificador da pasta em que está; quando mudou pela última vez; e o tamanho, arredondado para uma potência de dois. O nome, o tipo, o tamanho, as datas, as chaves, as versões e quais servidores guardam os blocos dele.
Um link (kind 31151) Quem o assinou: a chave do volume, para uma pasta; uma chave criada para aquele link, para um arquivo; um identificador aleatório; a data de expiração, se tiver (NIP-40); o tamanho, arredondado. O que ele abre.
Apagar (kind 5) Os identificadores do que você apaga. —
Compartilhar com uma conta (kind 1059, um gift wrap NIP-59) A chave pública da conta a que se destina (p); a tag k=31151; uma data recuada até dois dias, ao acaso; uma expiração de 60 a 90 dias depois. Ele é assinado por uma chave criada para ele e usada uma única vez. Quem o enviou, quando, e o que ele abre.

O que não dá para esconder. Cada evento diz em que pasta está, então um relay pode contar quantos arquivos e pastas você tem, ver a forma da árvore (quais pastas contêm quantas coisas) e quando cada um muda. Ele não consegue saber como nenhum deles se chama nem o que contém.

Os servidores Blossom recebem blocos dos seus arquivos, cada um criptografado com uma chave própria da sua revisão e preenchido até um múltiplo de 64 KiB, então eles veem mais ou menos o tamanho de cada arquivo, não o que ele é nem como se chama. Cada envio é assinado: em um servidor seu, pela chave do volume; em qualquer outro, por uma chave criada só para aquele servidor e aquele arquivo, que não identifica ninguém e nunca é a mesma em dois servidores. Apagar um arquivo pede aos servidores dele que apaguem seus blocos; como com os relays, um servidor pode guardar uma cópia.

Links (herkos.app/f/…). Um link para um arquivo ou uma pasta leva, depois de #, a chave que o abre: o link é a chave. A parte depois de # nunca chega ao nosso servidor nem à Cloudflare, e a página a tira da barra de endereço assim que a lê. Mas, antes disso, o navegador pode já ter guardado o endereço inteiro no histórico, e um navegador que sincroniza o histórico também o guarda nos servidores do seu provedor. Nada do nosso lado consegue impedir isso. Para qualquer coisa sensível, dê ao link uma senha (o link então não abre nada sem ela, e a senha viaja separada), ou compartilhe com a conta da pessoa, o que não precisa de link nenhum. A página lê os relays e servidores do link; um que ela não conhece só é contatado depois que você disser sim, porque ele veria seu endereço IP. Um link pode expirar: nesse dia ele para de abrir, e uma pasta ganha chaves novas, então o que for adicionado depois não abre com a chave antiga. Quem já o abriu fica com o que baixou. Para cortar o acesso antes, remova o link: a pasta então ganha chaves novas na hora.

Compartilhar com uma conta. O Drive procura onde essa conta lê (os relays NIP-17 dela, kind 10050, ou os relays de leitura da lista NIP-65 dela) nos seus relays e nos do Drive, uma pessoa por vez, nunca em um índice público. Cada pessoa recebe um link próprio, então remover uma não afeta as outras, e ninguém consegue saber quem mais o recebeu.

Um relay que pede autenticação NIP-42 fica sabendo a chave do volume, nunca a sua conta: o Drive responde a ele com a chave do volume. Se você entrar com um app de assinatura no seu celular Android (NIP-55, como o Amber), o Drive pede a ele só que assine o localizador, o pedido que aposenta um localizador antigo e o selo do que você compartilha com uma conta, e que criptografe e descriptografe para a sua própria chave.

Herkos Local Relay: o que ele guarda e com quem ele fala

O Herkos Local Relay é um relay Nostr que roda no seu próprio dispositivo, para os aplicativos Herkos e qualquer outro cliente Nostr. Não há nenhum servidor nosso por trás dele, e ele não nos envia nada.

Em poucas palavras (os detalhes vêm a seguir):

O que ele guarda, no dispositivo. Os eventos que seus aplicativos escrevem nele e os que ele traz dos seus relays, em um banco de dados criptografado com uma chave guardada no armazenamento seguro do sistema operacional. Ao lado dele: os aplicativos que você pareou e o que cada um pode fazer; as configurações dele (settings.json: a porta, a cota, a limpeza, se o registro da sessão está ativado, se aplicativos não pareados podem entrar, se a rede local está ativada e a porta dela); se você ativar a rede local, a lista de chaves permitidas, com os nomes que você deu a elas, e o certificado do relay e a chave dele, dentro do banco de dados criptografado; e as das cópias (backups.json: com que frequência, a pasta, a chave pública para a qual as cópias são criptografadas e o sal dela, quando a última foi feita). Nada disso é secreto, e a senha das cópias nunca é guardada. No Windows e no Linux, enquanto ele roda, relay.json na pasta do aplicativo diz em qual porta ele escuta, para que os aplicativos Herkos possam encontrá-lo. Desinstalar o aplicativo apaga o banco de dados, e a chave dele deixa de servir.

Quem pode se conectar. Ele escuta em 127.0.0.1 (porta 4873, a menos que você a mude): enquanto a rede local estiver desativada, como vem por padrão, nada fora do dispositivo consegue alcançá-lo. Qualquer aplicativo do dispositivo consegue alcançar esse endereço, então um aplicativo ou uma página web precisa ser pareado, com a sua aprovação na tela, antes de poder escrever, e uma página web não pareada é recusada. Revogar um aplicativo o desconecta na hora. Os eventos privados (rascunhos, listas privadas, lembretes, os envelopes selados que você recebe) só são entregues a quem provar com NIP-42 que tem a chave a que eles pertencem.

A rede local, se você ativá-la, abre uma segunda porta (4874, a menos que você a mude) para os dispositivos da sua rede: só wss://, com o certificado próprio do relay, e só para as chaves da sua lista, depois que elas se autenticam com NIP-42. Uma chave da lista lê seus eventos públicos e os privados destinados a ela, e só escreve eventos que ela mesma assinou; tirá-la da lista a desconecta. Quem estiver na mesma rede vê que o dispositivo tem essa porta aberta e quanto tráfego passa por ela, mas não o quê.

O Tor, se você ligá-lo (no Windows e no Linux; no Android, chega mais tarde), transforma o relay em um serviço onion do Tor, com um endereço .onion que não muda. O app inicia o programa tor deste computador (ou o que vem com o app), que se conecta à rede Tor. A chave desse endereço é guardada dentro do banco de dados criptografado e só é entregue a esse tor, no próprio dispositivo; a pasta própria do tor guarda a cópia dele do diretório da rede e o cookie dele, nunca essa chave. Se o Tor está ligado fica salvo em settings.json. Pelo Tor valem as mesmas regras da rede local: só as chaves da sua lista, depois de se autenticarem com NIP-42. Quem se conecta ao seu endereço não vê o seu endereço IP, nem você o dele. O endereço sozinho não abre nada; se ele se espalhou, Novo endereço o troca. O Herkos não recebe nada.

Quem O que pode ver Quando
Seus relays (os da sua lista NIP-65) Seu endereço IP; sua chave pública, quando um relay pede autenticação NIP-42; os eventos públicos que você publica por meio do Herkos Local Relay; e, para sincronizar, sobre quais dos seus eventos ele pergunta. Quando você publica, e quando ele sincroniza (com negentropy, NIP-77, se o relay oferecer).
Os relays de caixa de entrada da pessoa para quem você escreve (a lista NIP-17 dela, kind 10050, ou então os relays de leitura da lista NIP-65 dela) Seu endereço IP e o envelope selado (NIP-59) endereçado a ela, enviado depois de uma espera aleatória. Ele nunca é enviado aos seus próprios relays. Quando um aplicativo envia por meio dele uma mensagem ou um convite privados.
As chaves da sua lista, na rede local (só se você ativá-la) O endereço IP do seu dispositivo na rede; seus eventos públicos e os privados destinados a essa chave. Enquanto estiverem conectadas.
A rede Tor (só se você ligá-lo) Que este aparelho usa o Tor (o primeiro relay do Tor vê o seu endereço IP), mas não o que passa por ele; os diretórios do Tor guardam a descrição do serviço, criptografada, que só quem conhece o endereço pode ler. Enquanto o Tor está ligado.
As chaves da sua lista, pelo Tor (só se você ligá-lo) Os seus eventos públicos e os privados destinados a essa chave; não o seu endereço IP. Enquanto estão conectadas.

Para saber onde alguém recebe, ele pergunta aos seus relays. Seus eventos privados (rascunhos, listas privadas, lembretes) nunca saem do dispositivo. Ele nunca anuncia o próprio endereço (não está na lista NIP-65 de ninguém), o documento NIP-11 dele não diz quem você é, e não há análise de uso, telemetria nem relatórios de falhas. No Android ele roda como um serviço com uma notificação e o botão Parar dela; ele dorme depois de 10 minutos sem conexões, e um aplicativo Herkos o acorda no próprio dispositivo, sem servidor push.

O registro da sessão fica desativado por padrão. Se você ativá-lo, ele é guardado só na memória, as últimas 500 linhas, e apagado quando o relay para: conexões, autenticação NIP-42, eventos aceitos ou recusados e os kinds pedidos, pelo kind e pelo início do identificador, nunca o conteúdo.

Cópias. A cópia criptografada de todo o armazenamento só é gravada onde você escolher: uma pasta do dispositivo ou de um disco externo. Uma pasta de um cliente de nuvem (OneDrive, Google Drive, Dropbox, iCloud, Nextcloud, Herkos Drive…) é recusada. Ela é criptografada com uma senha sua (scrypt e XChaCha20-Poly1305); as agendadas, para a chave pública que essa senha gera, então elas são feitas sem ela. As sete últimas ficam guardadas. Sem a senha ninguém consegue abrir uma cópia, nem nós, e se você a perder, a cópia se perde. A exportação JSONL não é criptografada: ela contém seus eventos privados em texto puro, e o aplicativo avisa disso antes de gravá-la.

A limpeza fica desativada por padrão: sem ela, o relay guarda os eventos de outras pessoas enquanto houver espaço. Você pode limpar por idade (30, 90, 180 ou 365 dias) ou por espaço (de 256 MB a 5 GB), e o aplicativo mostra antes quanto apagaria. Ela só apaga eventos de outras pessoas: nunca os seus, os envelopes para você, os kinds que seus aplicativos protegem nem os pedidos de exclusão; por espaço, só depois de uma cópia do último dia. Com a rede local ou o Tor ativados, a limpeza por idade não pode ser desativada: os eventos de outras pessoas são apagados depois de 90 dias, a menos que você escolha outro prazo. Um evento com data de expiração (NIP-40) deixa de ser entregue quando expira, seja quem for que o escreveu. E, como em todo o Nostr, apagar é um pedido: o que já foi para outros relays pode continuar lá.

Nossos sites e a Cloudflare

herkos.app (inclusive herkos.app/e/ e herkos.app/f/), app.herkos.app (a versão web do Mail), calendar.herkos.app e notes.herkos.app (as versões web do Calendar e do Notes, quando forem publicadas) e fdroid.herkos.app (nosso repositório F-Droid) são arquivos estáticos servidos pela Cloudflare (Cloudflare Pages e R2). Como qualquer hospedagem web, a Cloudflare recebe seu endereço IP, o user agent do seu navegador, o endereço que você pede (sem a parte depois de #) e o horário, e pode guardá-los nos seus logs de acordo com sua própria política de privacidade.

Não usamos cookies nem análise de uso; as páginas e os arquivos próprios dos aplicativos web vêm apenas desses domínios (os aplicativos web depois se conectam aos relays e servidores descritos acima), e não olhamos logs por visitante. Os downloads de Releases vêm do GitHub, que vê o mesmo tipo de dados de acordo com sua própria política.

Público por projeto

O Nostr é uma rede pública. Estas coisas são visíveis para qualquer um que consulte os relays que você usa, e ficam ligadas à sua chave pública:

Suas escolhas e seus direitos

Alterações

Vamos alterar este documento quando o comportamento do aplicativo mudar, e registrar a data no topo. A fonte de verdade é o PRIVACY.md no repositório; a página publicada é uma cópia dele.

Contato: privacy@herkos.email · https://herkos.app

Outros idiomas

English · Español · Bahasa Indonesia · Català · Čeština · Deutsch · Français · Italiano · Magyar · Nederlands · Polski · Português (Portugal) · Português (Brasil) · Română · Slovenčina · Suomi · Svenska · Türkçe · 中文 · Ελληνικά · हिन्दी · 日本語 · 한국어 · Русский · Українська