Política de privacidade do Herkos
Última atualização: 29 de outubro 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 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 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.
A versão curta
- O Herkos não tem sistema de contas, nem servidor próprio, nem análise de uso. Não recebemos suas mensagens, seus eventos, suas notas, seus contatos, sua chave nem como você usa o aplicativo.
- Sua chave pública do Nostr é sua identidade na rede. Tudo o que você publica no Nostr (perfil, listas de relays, etiquetas) fica ligado a ela e visível para os relays que você usa.
- O e-mail entre usuários do Nostr é criptografado de ponta a ponta (NIP-17). O e-mail de ou para endereços tradicionais passa por um bridge que consegue lê-lo.
- Alguns recursos opcionais enviam dados a terceiros (notificações push, envio agendado). Ficam desligados até você ativá-los, e este documento nomeia cada um deles.
- Os eventos da agenda são criptografados no seu dispositivo. Os relays veem que você tem eventos, o tamanho aproximado deles e quando mudam, não o que dizem. Os eventos públicos, a lista de ocupação e os links de compartilhamento são públicos por escolha sua, um a um. Para saber onde seus convidados recebem, o Calendar pergunta só aos seus relays, nunca a um índice de terceiros.
- As notas são criptografadas no seu dispositivo, com a sua própria chave. Os relays não conseguem lê-las, mas podem ver quantas notas você tem e quando você edita cada uma. A busca roda no seu dispositivo: as palavras que você procura nunca saem dele. Uma nota que você compartilha vai só para a conta que você escolher, selada: os relays não veem nem quem a enviou nem o que ela diz.
- O Herkos Local Relay guarda seus eventos no seu dispositivo,
criptografados, e só escuta ali (
127.0.0.1). Ele só fala com os seus relays e com os relays de caixa de entrada das pessoas para quem você escreve; os eventos privados nunca saem do dispositivo. As cópias dele vão só para uma pasta que você escolher, nunca para a nuvem. - Nossos sites (
herkos.appe seus subdomínios) são servidos pela Cloudflare, que vê seu endereço IP como qualquer hospedagem web. Eles não usam cookies nem análise de uso.
Dados que ficam no seu dispositivo
- Sua chave secreta (nsec), quando você entra com ela, é guardada no armazenamento seguro do sistema operacional (Android Keystore, Chaveiro do iOS/macOS, Gerenciador de Credenciais do Windows, libsecret no Linux, armazenamento local criptografado na web). Se você entrar com um assinador remoto (um "bunker" NIP-46), a chave nunca chega ao 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 toda
semana 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 cinco ú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.
- Seu relay (Herkos Local Relay): os eventos dele, os aplicativos pareados, as configurações dele e para onde vão as cópias dele; veja a seção própria dele mais abaixo.
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 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 (api.nmail.li por padrão, operado pelo projeto original Nostr Mail; muda em Configurações → Notificações, onde também pode ser desativado por completo) |
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ê ativar as notificações para uma conta. 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. |
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.
- Com um aplicativo de assinatura no seu celular Android (NIP-55, como o Amber): a chave fica nesse aplicativo, e o Calendar conversa com ele diretamente no celular, sem relay nem rede no meio. O dispositivo guarda só sua chave pública e qual aplicativo assina. O Calendar pede a ele o mesmo que a um bunker (veja abaixo), nunca os envelopes dos convites, e confere cada evento assinado que volta antes de usá-lo.
- Com sua chave (
nsec, ouncryptsecprotegida por senha, aberta no dispositivo): ela é guardada no armazenamento seguro do sistema operacional, com um nome próprio do Calendar. O Herkos Mail guarda suas contas à parte, e o Calendar nunca as lê, altera ou apaga: sair de um aplicativo não tira você do outro. - Com um link
bunker://: a chave fica no seu aplicativo de assinatura. O Calendar conversa com ele pelos relays que o link indica, e só pede a ele sua chave pública, que criptografe e descriptografe (NIP-44) e que assine os kinds de evento do próprio Calendar; os envelopes dos convites nunca passam por ele, porque levam chaves de uso único. O dispositivo guarda só a conexão (uma chave feita para ela, a chave pública do assinador e os relays dele). Esses relays veem seu endereço IP, as chaves da conexão e quando as assinaturas são pedidas; os pedidos são criptografados. - Com o Nostr Connect (um código QR): como o bunker, mas a conexão passa pelos relays de Configurações → Relays. O Calendar não acrescenta nenhum relay próprio nem de mais ninguém.
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í:
- seus eventos, listas e configurações criptografadas são publicados nos seus relays de escrita NIP-65. Sem essa lista, nos de Configurações, e a página da conta avisa você disso;
- seus convites e respostas são lidos dos seus relays de leitura e de caixa de entrada. O Calendar só responde à autenticação NIP-42 nos seus próprios relays, e só para o que é seu;
- abrir o aplicativo com a sessão iniciada não conecta a nada até que algo seja necessário;
- se Configurações → Relays incluir um relay rodando neste dispositivo (um
endereço
ws://127.0.0.1ouws://localhost, como o aplicativo Citrine), cada sincronização também deixa nele uma cópia dos seus próprios eventos, listas e exclusões, exatamente como foram assinados e ainda criptografados. Nada sai do dispositivo para isso, e enquanto outro relay tiver um evento, este nunca é o relay onde seus convidados são orientados a procurá-lo. Outros aplicativos do dispositivo que leiam esse relay veem o que qualquer relay vê.
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:
- Eventos públicos (kinds 31922/31923): tudo o que eles contêm — título, horário, local, descrição — é público, ligado à sua chave pública, e continua público: um evento público não pode voltar a ser privado.
- A lista de ocupação (kind 31926): os horários em que você está ocupado neste mês e nos dois seguintes, arredondados para 30 minutos (ou 15), das agendas que você escolher. Nunca o quê, onde nem com quem. Desativá-la pede aos relays que a apaguem.
- Links de compartilhamento (
herkos.app/e/…): o link é a chave. Qualquer pessoa que o tenha pode ler aquele evento até você revogá-lo, e a primeira parte dele mostra sua chave pública. A chave fica depois de#, uma parte do endereço que os navegadores nunca enviam a um servidor, então nem a Cloudflare nem nós a vemos. A página consulta os relays indicados no link; se algum deles não for um relay conhecido, ela diz ao visitante qual servidor é e pergunta antes de se conectar, porque esse servidor veria o endereço IP do visitante. Revogar criptografa o evento de novo com uma chave nova; quem já o leu fica com o que leu. - Exportações (
.ics): um arquivo de texto puro com seus títulos e horários. Ele não é criptografado; guarde-o como qualquer outro documento privado. - A cópia automática (
.ics, na página Exportar para .ics): uma vez por dia em que o Calendar estiver aberto, uma exportação de todas as suas agendas numa pasta que você escolhe, mantendo as 7 últimas. Como uma exportação, ela não é criptografada, então qualquer coisa que consiga ler essa pasta (outro aplicativo, uma pasta na nuvem que a sincronize) pode ler seus títulos e horários. O Calendar só grava e apaga ali os próprios arquivos (herkos-calendar-auto-…ics), e só lembra a pasta neste dispositivo. - Relatórios de problemas (beta): o aplicativo só prepara um texto para você copiar e enviar por conta própria. Ele traz a versão do aplicativo, a plataforma, o idioma, o fuso horário e se os lembretes podem tocar, nunca seus eventos, sua chave ou sua conta.
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:
- Agendas que você segue pelo endereço (
.icsouwebcal): o dispositivo pede a agenda diretamente ao servidor desse endereço, só por https, a cada poucas horas, sem cookies e sem nenhum intermediário nosso. Esse servidor vê seu endereço IP e quando você pede, e quem tiver o endereço pode ler a agenda. A lista de endereços fica guardada no seu dispositivo e nos seus relays, criptografada para você (kind 30078,d=calendar-subscriptions). - Agendas públicas do Nostr que você segue (um link
naddr…): são pedidas a cada poucas horas aos seus relays e aos relays que o link indica, nunca a outros. Esses relays veem seu endereço IP e qual agenda você lê. Ficam na mesma lista criptografada. - Feriados: vêm dentro do app; segui-los não pede nada a nenhum servidor.
- "Ver se estão livres" (no editor, ao tocar): o app pede a lista de ocupação pública (kind 31926) de cada convidado aos relays onde essa pessoa publica, sem se identificar. Esses relays veem seu endereço IP e sobre quem você pergunta.
- Arquivos de um evento: ficam criptografados em um servidor Blossom. Ao abrir um, o app baixa o arquivo desse servidor, que vê seu endereço IP e o identificador do arquivo, nunca o conteúdo.
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ê.
| 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 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.
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); 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 só escuta em 127.0.0.1 (porta 4873, a menos
que você a mude): 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 e o Tor ainda não
estão disponíveis; quando chegarem, ficarão desativados até você ativá-los, e
vão exigir TLS ou um serviço onion, autenticação e uma lista de chaves
permitidas.
| 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. |
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 só apaga eventos de outras pessoas: nunca os seus, os envelopes para você nem os kinds que seus aplicativos protegem; por cota, só depois de uma cópia do último dia. 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/), 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:
- seu perfil (nome, imagem) e suas listas de relays e de servidores Blossom;
- os eventos de etiqueta NIP-32 que o Herkos Mail publica quando você marca um e-mail como lido, o favorita, arquiva ou move para uma pasta — inclusive o nome das pastas personalizadas. Quem te enviou um e-mail e conhece o identificador dele consegue, portanto, saber quando você o leu. Pretendemos criptografá-los; até lá, fique ciente;
- no Herkos Calendar, só o que você tornar público (ver acima);
- no Herkos Notes, nenhum conteúdo, só o padrão descrito acima: quantas notas você tem e quando você as edita;
- por meio do Herkos Local Relay, só os eventos públicos que seus aplicativos publicam, como com qualquer relay.
Suas escolhas e seus direitos
- Tudo o que está acima está sob seu controle em Configurações → Rede e servidores (relays, relays de DM, servidores Blossom, bridges) e Configurações → Notificações; no Herkos Calendar, é você quem muda os relays, a lista de ocupação e cada link de compartilhamento (Compartilhar por link → Revogar link); no Herkos Notes, os relays (nas Configurações do Notes, ou na sua própria lista de relays privados).
- No Herkos Local Relay, os aplicativos pareados e o que cada um pode fazer, a porta, a cota, a limpeza, o registro da sessão e as cópias ficam nas telas próprias dele.
- Sair do Herkos Notes apaga as notas daquele dispositivo, mas antes ele envia o que só está lá e diz quantas notas você perderia; as notas nos relays ficam, e voltam quando você entra de novo.
- Você pode exportar sua chave, remover uma conta (o que também pede aos relays que apaguem seus dados, NIP-62) ou redefinir o aplicativo a qualquer momento.
- Como não guardamos dados pessoais, não podemos responder nós mesmos a pedidos de acesso, retificação ou exclusão; encaminhe-os ao operador do relay, bridge, servidor push ou hospedagem web envolvido. Ajudaremos você a identificá-lo.
- O Herkos não é destinado a menores de 16 anos.
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 · 中文 · Ελληνικά · हिन्दी · 日本語 · 한국어 · Русский · Українська