Polityka prywatności Herkos
Ostatnia aktualizacja: 29 października 2026. Adres kanoniczny: https://herkos.app/privacy
Tłumaczenie. To jest tłumaczenie grzecznościowe. W razie rozbieżności rozstrzygająca jest wersja angielska.
Herkos Mail, Herkos Calendar, Herkos Notes i Herkos Local Relay to wolne aplikacje o otwartym kodzie źródłowym dla sieci Nostr, wydawane przez projekt Herkos („my”). Herkos Calendar, Herkos Notes i Herkos Local Relay są wciąż w fazie rozwoju. Ten dokument wyjaśnia, jakie dane przetwarzają aplikacje i nasze strony internetowe, dokąd trafiają i kto może je zobaczyć. Napisaliśmy go po to, żeby go przeczytać, a nie przejrzeć pobieżnie: jeśli coś tutaj Cię zaskoczy, napisz do nas na privacy@herkos.email.
Wersja skrócona
- Herkos nie ma systemu kont, własnego serwera ani analityki. Nie otrzymujemy Twoich wiadomości, wydarzeń, notatek, kontaktów, klucza ani informacji o tym, jak korzystasz z aplikacji.
- Twój klucz publiczny Nostr jest Twoją tożsamością w sieci. Wszystko, co publikujesz w Nostr (profil, listy relayów, etykiety), jest z nim powiązane i widoczne dla używanych przez Ciebie relayów.
- Poczta między użytkownikami Nostr jest szyfrowana end-to-end (NIP-17). Poczta do tradycyjnych adresów i z nich przechodzi przez bridge, który może ją odczytać.
- Niektóre funkcje opcjonalne wysyłają dane do osób trzecich (powiadomienia push, wysyłanie zaplanowane). Są wyłączone, dopóki ich nie włączysz, a ten dokument wymienia każdą z nich.
- Wydarzenia w kalendarzu są szyfrowane na Twoim urządzeniu. Relaye widzą, że masz wydarzenia, mniej więcej jaki mają rozmiar i kiedy się zmieniają, ale nie to, co zawierają. Wydarzenia publiczne, lista zajętości i linki do udostępniania są publiczne z Twojego wyboru, każde z osobna. Aby ustalić, gdzie Twoi goście odbierają pocztę, Calendar pyta wyłącznie Twoje relaye, nigdy indeksu prowadzonego przez osoby trzecie.
- Notatki są szyfrowane na Twoim urządzeniu, dla Twojego własnego klucza. Relaye nie mogą ich odczytać, ale widzą, ile masz notatek i kiedy edytujesz każdą z nich. Wyszukiwanie działa na Twoim urządzeniu: słowa, których szukasz, nigdy go nie opuszczają. Notatka, którą udostępniasz, trafia tylko do wybranego przez Ciebie konta, zapieczętowana: relaye nie widzą ani tego, kto ją wysłał, ani tego, co zawiera.
- Herkos Local Relay przechowuje Twoje zdarzenia na Twoim urządzeniu,
zaszyfrowane, i nasłuchuje tylko tam (
127.0.0.1). Komunikuje się tylko z Twoimi relayami i z relayami skrzynki odbiorczej osób, do których piszesz; zdarzenia prywatne nigdy nie opuszczają urządzenia. Jego kopie trafiają tylko do wybranego przez Ciebie folderu, nigdy do chmury. - Nasze strony internetowe (
herkos.appi jej subdomeny) są serwowane przez Cloudflare, który widzi Twój adres IP, jak każdy hosting. Nie ustawiają plików cookie i nie prowadzą analityki.
Dane, które pozostają na Twoim urządzeniu
- Twój klucz prywatny (nsec), gdy się nim logujesz, jest przechowywany w bezpiecznym magazynie systemu operacyjnego (Android Keystore, pęk kluczy iOS/macOS, Menedżer poświadczeń Windows, libsecret w systemie Linux, zaszyfrowany magazyn lokalny w wersji przeglądarkowej). Jeśli logujesz się zdalnym podpisującym („bunker” NIP-46), klucz nigdy nie trafia na urządzenie.
W przeglądarce nie ma takiego bezpiecznego magazynu. Klucz znajduje się w lokalnym magazynie witryny i przy każdym podpisywaniu przechodzi przez JavaScript, więc rozszerzenie z dostępem do wszystkich stron, błąd XSS albo zmanipulowane wdrożenie mogłyby go odczytać; a w odróżnieniu od zainstalowanej aplikacji strona internetowa przy każdej wizycie dostarcza nowy kod. W wersji webowej użyj zdalnego podpisującego albo tożsamości, którą możesz stracić.
- Twoja skrzynka: odszyfrowane wiadomości, załączniki, etykiety, foldery
i kontakty są zapisywane w lokalnej bazie danych, aby aplikacja działała bez
połączenia. Ta baza nie jest szyfrowana poza tym, co zapewnia system
operacyjny; blokada aplikacji (PIN lub biometria) to bariera wygody, a nie
szyfrowanie danych w spoczynku. W systemie Android aplikacja jest wykluczona
z kopii zapasowych w chmurze i z kopii między urządzeniami.
- PIN blokady aplikacji: przechowywany jako skrót z solą i wydłużeniem klucza
(PBKDF2), nigdy jawnie. Herkos Calendar i Herkos Notes mają każda własny PIN,
przechowywany w ten sam sposób.
- Twój kalendarz (Herkos Calendar): wydarzenia, listy, klucze podglądu
i przypomnienia, które możesz odczytać, są przechowywane na urządzeniu,
zaszyfrowane rekord po rekordzie kluczem trzymanym w bezpiecznym
magazynie systemu operacyjnego. W przeglądarce kalendarz jest trzymany tylko
w pamięci i za każdym razem pobierany ponownie z relayów. Przypomnienia
uruchamia samo urządzenie: Calendar nie używa serwera push. Jeśli zdecydujesz
się ukrywać tytuły w przypomnieniach, mówią one tylko „Wydarzenie” i kiedy
się zaczyna. Twój klucz Calendar jest przechowywany osobno od kluczy Herkos
Mail (zob. „Twoje konto” w sekcji o Calendar).
- Twoje notatki (Herkos Notes): notatki, ich historia, notatniki i indeks
wyszukiwania są przechowywane na urządzeniu, zaszyfrowane rekord po
rekordzie kluczem trzymanym w bezpiecznym magazynie systemu operacyjnego. W
przeglądarce są przechowywane tak samo, w pamięci przeglądarki dla tej
witryny (IndexedDB), a klucz również jest w przeglądarce: na komputerze, z
którego korzystają też inni, chroni to niewiele. Jeśli przeglądarka nic nie
zapisuje dla witryny (okno prywatne, zablokowane dane witryny), są trzymane
tylko w pamięci i bez połączenia nie da się pisać. Notatka, którą
zablokujesz, dostaje własne hasło; bez niego nikt nie może jej otworzyć,
nawet my. Kopia zapasowa Twoich notatek to plik zapisywany tylko tam, gdzie
go zapiszesz, zaszyfrowany własnym hasłem. Automatyczna kopia, robiona co
tydzień, chyba że ją wyłączysz, to plik w folderze urządzenia
(Herkos Notes/backups w Twoich Dokumentach), zaszyfrowany kluczem Twojego
konta; zachowywanych jest pięć ostatnich i nie jest nigdzie wysyłana
(w przeglądarce jej nie ma). Notatki, które udostępniają Ci inne konta,
czekają w „Otrzymane od innych”, na urządzeniu i zaszyfrowane jak reszta,
dopóki ich nie zachowasz albo nie odrzucisz.
- Twój relay (Herkos Local Relay): jego zdarzenia, sparowane aplikacje, jego ustawienia i to, dokąd trafiają jego kopie; zob. jego własną sekcję niżej.
Wszystko to możesz usunąć w Ustawienia → Więcej → Zresetuj aplikację albo usuwając konto.
Dane, które opuszczają Twoje urządzenie, i do kogo trafiają
Ta tabela dotyczy Herkos Mail. Herkos Calendar, Herkos Notes i Herkos Local Relay mają własne sekcje poniżej.
| Odbiorca | Co może zobaczyć | Kiedy |
|---|---|---|
| Relaye Nostr (lista domyślna w Ustawienia → Sieć, edytowalna) | Twój adres IP, klucz publiczny, publikowane przez Ciebie zdarzenia (profil, listy relayów, lista serwerów Blossom, etykiety NIP-32, zaszyfrowane ustawienia) oraz zaszyfrowane „gift wrapy” adresowane do Ciebie wraz z ich czasami. Relaye nie mogą odczytać zawartości gift wrapów. Relay, który żąda uwierzytelnienia NIP-42, poznaje Twój klucz publiczny, nawet gdy tylko czytasz. | Zawsze, gdy aplikacja się synchronizuje. W Androidzie także przy zamkniętej aplikacji, mniej więcej co 15 minut, gdy sprawdzanie w tle zastępuje serwer push. |
| Serwery Blossom (edytowalne) | Twój adres IP i klucz publiczny oraz zaszyfrowane bloby wiadomości większych niż 32 KB i ich załączników. Klucz do odszyfrowania bloba podróżuje wyłącznie wewnątrz zaszyfrowanej wiadomości. | Gdy wysyłasz lub otwierasz dużą wiadomość. |
Bridge'e (domyślnie uid.ovh, edytowalne) |
Pełną treść każdej wiadomości, którą wysyłasz na tradycyjny adres (Gmail, Outlook…) lub z niego otrzymujesz, oraz alias nazwa@bridge, który rejestrujesz. Bridge'e to niezależni operatorzy z własnymi zasadami prywatności; Herkos ich nie prowadzi. |
Gdy używasz tożsamości @bridge albo piszesz na adres spoza Nostr. |
| Serwery NIP-05 (domena adresu, który wpisujesz) | To, że ktoś zapytał, czy nazwa@domena jest użytkownikiem Nostr. |
Gdy dodajesz odbiorcę użytkownik@domena. |
Serwer push (api.nmail.li domyślnie, prowadzony przez pierwotny projekt Nostr Mail; zmienia się go w Ustawienia → Powiadomienia, gdzie można go też całkiem wyłączyć) |
Twój klucz publiczny, token push urządzenia (punkt końcowy UnifiedPush), język powiadomień oraz — ponieważ obserwuje relaye w Twoim imieniu — kiedy otrzymujesz pocztę (nie co w niej jest). | Tylko jeśli włączysz powiadomienia dla konta. Wyłączenie ich prosi serwer o usunięcie subskrypcji. Przy zmianie serwera to samo żądanie trafia do poprzedniego. |
DVM harmonogramu (usługa Nostr prowadzona przez osobę trzecią, zob. NostrConfig.schedulerDvm) |
Twój klucz publiczny, już zaszyfrowane wiadomości do opublikowania, ich relaye docelowe i zaplanowaną godzinę. | Tylko jeśli używasz funkcji „wyślij później”. |
Zdalny podpisujący / relaye NIP-46 (relay.nsec.app i zapasowe) |
Twój klucz publiczny i zaszyfrowane żądania podpisu. | Tylko jeśli logujesz się bunkerem lub aplikacją do podpisywania. |
| Serwery obrazów (dowolny serwer, na który wskazuje profil lub wiadomość) | Twój adres IP i moment pobrania obrazu. Zdjęcie profilowe jest pobierane z adresu, który jego właściciel wpisał w swoim profilu, tylko jeśli włączysz Wczytuj zdjęcia profilowe (zdjęcia Twoich własnych kont wczytują się zawsze); ktokolwiek prowadzi ten serwer, może wtedy poznać, kiedy oglądałeś jego wiadomości lub jego kontakt. Obrazy w wiadomościach są domyślnie blokowane; gdy je wczytasz (Wczytaj obrazy lub ustawienie Zawsze wczytuj obrazy), ich serwery, często serwer nadawcy, dowiadują się, że otworzyłeś wiadomość, i kiedy. Obraz tła, który dodajesz, podając jego adres, jest pobierany z tego serwera. | Zdjęcia profilowe: tylko jeśli je włączysz (Twoje zawsze). Obrazy w wiadomościach: tylko jeśli je wczytasz. |
Sam Herkos nie otrzymuje nic z tego. Nie ma raportowania awarii ani telemetrii.
Herkos Calendar: co widzą relaye
Calendar komunikuje się z relayami Nostr: Twojego konta (Twoje listy NIP-65 i skrzynki odbiorczej), tymi z Ustawienia → Relaye (edytowalnymi) oraz, gdy kogoś zapraszasz lub odpowiadasz na zaproszenie, relayami skrzynki odbiorczej tej osoby. Z nikim więcej, poza tym, co sprawdzasz sam (niżej): ani z żadnym publicznym indeksem relayów. Sekcja „Twoje konto” niżej wyjaśnia, do czego służy każdy z nich. Nie ma serwera Herkos, serwera push ani telemetrii. Każdy relay widzi Twój adres IP i czas każdego połączenia.
| Co | Co widzą relaye, które to przechowują | Czego nie widzą |
|---|---|---|
| Prywatne wydarzenie (kind 32678) | Twój klucz publiczny, to, że jest to wydarzenie kalendarza (jego kind), losowy identyfikator, kiedy je utworzyłeś lub ostatnio zmieniłeś, oraz jego przybliżony rozmiar. Jest przechowywane wyłącznie na Twoich relayach, gdzie szukają go Twoi goście; nigdy na ich relayach. | Tytuł, data i godzina, strefa czasowa, powtarzanie, miejsce, opis, goście, przypomnienia. |
Twoje listy kalendarzy (kind 32123) i ustawienia przypomnień (kind 30078, d=calendar-alarms) |
Twój klucz publiczny, to, że istnieją, i kiedy się zmieniają. | Jakie wydarzenia zawierają, ich nazwy, klucze podglądu, Twoje przypomnienia. |
| Zaproszenie (gift wrap, kind 1059) | Klucz publiczny gościa oraz tag k=1052, który mówi, że koperta zawiera zaproszenie z kalendarza (w ten sposób aplikacje kalendarzowe, w tym aplikacja Formstr, znajdują zaproszenia bez otwierania Twojej poczty). Jest wysyłane wyłącznie do relayów skrzynki odbiorczej gościa, pod jednorazowym kluczem, z własnymi losowymi znacznikami czasu, a zaproszenia do tego samego wydarzenia wychodzą w losowej kolejności, każde od 5 do 90 sekund po poprzednim (pierwsze — po samym wydarzeniu). Koperta zawiera też datę wygaśnięcia, losowaną w przedziale od 60 do 90 dni od wysłania, aby relaye mogły ją usunąć: nie mówi ona nic o tym, kiedy jest wydarzenie. |
Kto je wysłał, którego wydarzenia dotyczy i kogo jeszcze zaproszono. |
Prywatna odpowiedź na zaproszenie (gift wrap, kind 1059, znacznik k=1925) |
Klucz publiczny odbiorcy (organizatora albo Twój we własnej kopii) i to, że koperta zawiera odpowiedź kalendarza. Trafia tylko do relayów skrzynki odbiorczej odbiorcy, z jednorazowym kluczem, losowymi datami i datą wygaśnięcia, jak zaproszenia. | Kto odpowiada, na jakie wydarzenie i co. |
| Usuwanie (kind 5) | Twój klucz publiczny i identyfikator tego, co usuwasz. | — |
Relay, który żąda uwierzytelnienia NIP-42, poznaje Twój klucz publiczny; Calendar odpowiada na takie żądanie tylko w przypadku Twoich własnych wydarzeń na Twoich własnych relayach oraz przy odczytywaniu Twojej własnej skrzynki odbiorczej. Usuwanie w Nostr jest prośbą: relay może zachować swoją kopię, nadal zaszyfrowaną.
Czego nic w wydarzeniach nie ukryje: każde zaproszenie wychodzi z Twojego adresu IP, a każdy gość pobiera wydarzenie z Twoich relayów ze swojego. Relay, który przechowuje skrzynki odbiorcze kilku Twoich gości, może stwierdzić, że ich zaproszenia przyszły z tego samego adresu. Ukrywa to tylko Tor lub VPN.
Twoje konto
Calendar nie tworzy kont: logujesz się tożsamością Nostr, którą już masz, na jeden z tych sposobów.
- Aplikacją do podpisywania na Twoim telefonie z Androidem (NIP-55, np. Amber): klucz pozostaje w tej aplikacji, a Calendar komunikuje się z nią bezpośrednio na telefonie, bez żadnego relaya ani sieci pośrodku. Urządzenie przechowuje tylko Twój klucz publiczny i to, która aplikacja podpisuje. Calendar prosi ją o to samo co w przypadku bunkera (poniżej), nigdy o koperty zaproszeń, i sprawdza każde podpisane wydarzenie, które wraca, zanim go użyje.
- Swoim kluczem (
nseclub chroniony hasłemncryptsec, otwierany na urządzeniu): jest przechowywany w bezpiecznym magazynie systemu operacyjnego, pod własną nazwą Calendar. Herkos Mail trzyma swoje konta osobno, a Calendar nigdy ich nie odczytuje, nie zmienia ani nie usuwa: wylogowanie się z jednej aplikacji nie wylogowuje Cię z drugiej. - Linkiem
bunker://: klucz pozostaje w Twojej aplikacji do podpisywania. Calendar komunikuje się z nią przez relaye wskazane w linku i prosi ją tylko o Twój klucz publiczny, szyfrowanie i odszyfrowywanie (NIP-44) oraz podpisywanie własnych kindów Calendar; koperty zaproszeń nigdy przez nią nie przechodzą, ponieważ zawierają jednorazowe klucze. Urządzenie przechowuje tylko połączenie (klucz utworzony na jego potrzeby, klucz publiczny aplikacji do podpisywania i jej relaye). Te relaye widzą Twój adres IP, klucze połączenia i to, kiedy prosi się o podpisy; żądania są zaszyfrowane. - Przez Nostr Connect (kod QR): jak w przypadku bunkera, ale połączenie idzie przez relaye z Ustawienia → Relaye. Calendar nie dodaje żadnego własnego relaya ani niczyjego innego.
Twoje relaye. Przy logowaniu Calendar szuka Twoich list (NIP-65, kind 10002, oraz listy skrzynki odbiorczej, kind 10050) na relayach z Ustawienia → Relaye, przez osobne połączenie, które Cię nie identyfikuje: relay, który żąda uwierzytelnienia, dostaje jednorazowy klucz, nie Twój. Od tej chwili:
- Twoje wydarzenia, listy i zaszyfrowane ustawienia są publikowane na Twoich relayach zapisu z NIP-65. Bez tej listy — na tych z Ustawień, a strona konta Ci o tym mówi;
- Twoje zaproszenia i odpowiedzi są odczytywane z Twoich relayów odczytu i skrzynki odbiorczej. Calendar odpowiada na uwierzytelnienie NIP-42 tylko na Twoich własnych relayach i tylko w sprawie tego, co Twoje;
- po otwarciu aplikacji z aktywną sesją nie łączy się ona z niczym, dopóki coś nie będzie potrzebne;
- jeśli w Ustawienia → Relaye jest relay działający na tym urządzeniu
(adres
ws://127.0.0.1lubws://localhost, np. aplikacja Citrine), każda synchronizacja zostawia na nim także kopię Twoich wydarzeń, list i usunięć, dokładnie w takiej postaci, w jakiej zostały podpisane, i nadal zaszyfrowanych. Nic nie opuszcza w tym celu urządzenia, a dopóki inny relay ma dane wydarzenie, ten nigdy nie jest wskazywany Twoim gościom jako relay, w którym mają go szukać. Inne aplikacje na urządzeniu, które czytają z tego relaya, widzą to, co widzi każdy relay.
Relaye Twoich gości (decyzja z 21 października 2026). Aby kogoś
zaprosić, aplikacja musi wiedzieć, gdzie ta osoba odbiera pocztę. Calendar
szuka jej list (10002 i 10050) tylko na relayach
z Ustawienia → Relaye, nigdy w publicznym indeksie osoby trzeciej (takim
jak purplepag.es): ta usługa widziałaby, z jakiego adresu pytasz i o kogo,
czyli kogo zapraszasz. Każdego gościa szuka się osobno, w losowej kolejności,
każdego przez własne połączenie z jednorazowym kluczem, aby te relaye nie
mogły stwierdzić, kto jest zaproszony z kim. Widzą natomiast Twój adres IP
i klucz publiczny każdej osoby, której szukasz. Jeśli czyjeś listy nie
znajdują się na tych relayach, aplikacja przed wysłaniem oznacza tę osobę
jako „brak znanej skrzynki”, a zaproszenie do niej nie dociera. Aby ją
znaleźć, dodaj do Ustawienia → Relaye relay, na którym publikuje ona
swoje listy.
Co synchronizuje się między Twoimi urządzeniami, zawsze zaszyfrowane dla
Ciebie i na Twoich relayach zapisu: Twoje listy kalendarzy (z kluczami
ich wydarzeń), ustawienia przypomnień (d=calendar-alarms), obserwowane
kalendarze (d=calendar-subscriptions) oraz zaproszenia, które ignorujesz,
lub cudze wydarzenia, które usuwasz ze swojego kalendarza (kind 30078,
d=calendar-declined: tylko które wydarzenie i kiedy, nigdy jego tytuł).
Relaye widzą, że istnieją i kiedy się zmieniają, ale nie to, co
zawierają. Przypomnienia uruchamiane przez urządzenie to te z konta, na które
jesteś zalogowany, nigdy z poprzedniego.
Kopia Twoich kluczy. Calendar proponuje zapisanie kopii: pliku z Twoimi listami kalendarzy i kluczami ich wydarzeń, zaszyfrowanego hasłem, które wybierasz specjalnie dla niego (szyfrem z NIP-49). Jest zapisywany tylko tam, gdzie go zapiszesz; nie trafia do żadnego relaya ani serwera. Jego nazwa zawiera datę, nigdy konto. Na potrzeby przypomnienia urządzenie pamięta tylko dwie daty: ostatniej kopii i ostatniego „Nie teraz”.
Wylogowanie najpierw pokazuje, co zostanie utracone, i proponuje zapisanie kopii. Potem usuwa z tego urządzenia Twój klucz (lub połączenie z bunkerem) i zapisany kalendarz. To, co zostało opublikowane, pozostaje na relayach, zaszyfrowane. Zgodę udzieloną w aplikacji do podpisywania cofasz w tej aplikacji.
Publiczne z Twojego wyboru
Są wyłączone, dopóki ich nie włączysz, a aplikacja pokazuje, co każda z tych rzeczy ujawnia, zanim to zrobisz:
- Wydarzenia publiczne (kind 31922/31923): wszystko, co zawierają — tytuł, godzina, miejsce, opis — jest publiczne, powiązane z Twoim kluczem publicznym i takie pozostaje: wydarzenia publicznego nie można z powrotem uczynić prywatnym.
- Lista zajętości (kind 31926): godziny, w których jesteś zajęty w tym miesiącu i w dwóch kolejnych, zaokrąglone do 30 minut (lub 15), dla wybranych przez Ciebie kalendarzy. Nigdy co, gdzie ani z kim. Jej wyłączenie prosi relaye o jej usunięcie.
- Linki do udostępniania (
herkos.app/e/…): link jest kluczem. Każdy, kto go ma, może czytać to wydarzenie, dopóki go nie unieważnisz, a jego pierwsza część pokazuje Twój klucz publiczny. Klucz znajduje się po#, w części adresu, której przeglądarki nigdy nie wysyłają do serwera, więc ani Cloudflare, ani my go nie widzimy. Strona odpytuje relaye wymienione w linku; jeśli któryś z nich nie jest dobrze znanym relayem, informuje odwiedzającego, jaki to serwer, i pyta o zgodę przed połączeniem, ponieważ ten serwer zobaczyłby adres IP odwiedzającego. Unieważnienie ponownie szyfruje wydarzenie nowym kluczem; kto już je przeczytał, zachowuje to, co przeczytał. - Eksporty (
.ics): plik tekstowy z Twoimi tytułami i godzinami. Nie jest zaszyfrowany; przechowuj go jak każdy inny prywatny dokument. - Automatyczna kopia (
.ics, na stronie Eksportuj do .ics): raz każdego dnia, w którym Calendar jest otwarty, eksport wszystkich Twoich kalendarzy do wybranego przez Ciebie folderu, z zachowaniem 7 ostatnich. Podobnie jak eksport, nie jest zaszyfrowana, więc wszystko, co może czytać ten folder (inna aplikacja, folder w chmurze, który go synchronizuje), może odczytać Twoje tytuły i godziny. Calendar zapisuje i usuwa tam tylko własne pliki (herkos-calendar-auto-…ics) i zapamiętuje folder tylko na tym urządzeniu. - Zgłoszenia problemów (beta): aplikacja jedynie przygotowuje tekst, który sam kopiujesz i wysyłasz. Zawiera wersję aplikacji, platformę, język, strefę czasową oraz informację, czy przypomnienia mogą się uruchamiać; nigdy Twoich wydarzeń, klucza ani konta.
Herkos Calendar odczytuje publiczne odpowiedzi na Twoje wydarzenia publiczne pisane przez inne aplikacje (RSVP, kind 31925, oraz usunięcia uczestników, kind 84); sam nie zapisuje żadnych z nich.
Co sprawdzasz sam
Te połączenia zachodzą tylko wtedy, gdy o nie prosisz:
- Kalendarze obserwowane przez adres (
.icslubwebcal): urządzenie pobiera kalendarz bezpośrednio z serwera pod tym adresem, tylko przez https, co kilka godzin, bez plików cookie i bez żadnego naszego pośrednika. Ten serwer widzi Twój adres IP i to, kiedy pytasz, a każdy, kto ma adres, może czytać kalendarz. Lista adresów jest przechowywana na Twoim urządzeniu i na Twoich relayach, zaszyfrowana dla Ciebie (kind 30078,d=calendar-subscriptions). - Obserwowane publiczne kalendarze Nostr (link
naddr…): są pobierane co kilka godzin z Twoich relayów i z relayów wskazanych w linku, nigdy z innych. Te relaye widzą Twój adres IP i to, jaki kalendarz czytasz. Są na tej samej zaszyfrowanej liście. - Święta: są wbudowane w aplikację; ich obserwowanie o nic nie prosi żadnego serwera.
- „Sprawdź, czy są wolni” (w edytorze, po naciśnięciu): aplikacja pobiera publiczną listę zajętości (kind 31926) każdego gościa z relayów, na których ta osoba publikuje, bez przedstawiania się. Te relaye widzą Twój adres IP i o kogo pytasz.
- Pliki wydarzenia: są zaszyfrowane na serwerze Blossom. Gdy otwierasz plik, aplikacja pobiera go z tego serwera, który widzi Twój adres IP i identyfikator pliku, nigdy jego treść.
Herkos Notes: co widzą relaye
Notes komunikuje się z relayami Nostr i z nikim więcej. Nie ma serwera Herkos, serwera push ani telemetrii. Każdy relay widzi Twój adres IP i czas każdego połączenia.
Które relaye. Jeśli Twoje konto ma listę prywatnych relayów
(kind 10013, lista opisana w NIP-37), Notes używa relayów z niej, bez
zmian, i nigdy jej nie nadpisuje; szuka tej listy na relayach ze swoich
Ustawień i na relayach, na których publikujesz (Twoja lista NIP-65).
W przeciwnym razie używa relayów ze swoich Ustawień: domyślnie
relay.formstr.app, nos.lol i relay.primal.net, do ośmiu, wszystkie
edytowalne. Ustawienia oferują też listę znanych relayów do dodania jednym
dotknięciem; Notes nie łączy się z żadnym z nich, dopóki go nie dodasz.
Relay może używać ws://, czyli połączenia nieszyfrowanego, tylko jeśli
jest na urządzeniu lub w sieci domowej (localhost, adresy prywatne, nazwy
.local): notatki nadal podróżują zaszyfrowane, ale każdy w tej sieci widzi
to, co widzi relay (tabela poniżej). Notes nie publikuje żadnej własnej listy
relayów, chyba że o to poprosisz (Relaye → Zapisz jako moją listę prywatnych
relayów). Wtedy publikuje te relaye jako Twoją listę 10013, zaszyfrowaną Twoim
kluczem, na tych samych relayach, na których szuka list, i aktualizuje ją
zgodnie z tym, co zmienisz w Notes: relaye widzą Twój klucz publiczny, to, że
lista istnieje, i kiedy się zmienia, ale nie relaye, które zawiera. Lista
zapisana przez inną aplikację nigdy nie jest nadpisywana: Notes używa jej bez
zmian.
Jeśli któryś z tych relayów działa na tym urządzeniu (adres ws://127.0.0.1
lub ws://localhost, na przykład aplikacja Citrine), Notes zostawia na nim
także kopię Twoich notatek, notatników i usunięć, dokładnie takich, jak
zostały podpisane, i nadal zaszyfrowanych. Nic przy tym nie opuszcza
urządzenia; Notes nigdy nie czyta z tego relaya, a notatka, którą ma tylko on,
nie liczy się jako wysłana. Inne aplikacje na urządzeniu, które czytają ten
relay, widzą to, co widzi każdy relay.
| Co | Co widzą relaye, które to przechowują | Czego nie widzą |
|---|---|---|
| Notatka (kind 31234, NIP-37) | Twój klucz publiczny; losowy identyfikator (d), utworzony z losowej liczby i nigdy z tytułu; tag k=30023, taki sam w każdej notatce, więc nie mówi nic o tym, co piszesz; kiedy ostatnio ją zmieniłeś; oraz jej przybliżony rozmiar. |
Tytuł, tekst, tagi, notatnik, czy jest przypięta, ulubiona lub w koszu, oraz kiedy ją utworzyłeś. |
| Punkt kontrolny (kind 1234), historia notatki | Twój klucz publiczny, do której notatki należy (jego tag a wskazuje identyfikator notatki) i kiedy powstał. |
Co notatka wtedy zawierała. |
| Twoje notatniki (kind 30078) | Twój klucz publiczny, to, że lista istnieje, i kiedy się zmienia. Jej identyfikator jest wyprowadzany z Twojego klucza publicznego, więc jest taki sam na wszystkich Twoich urządzeniach. | Nazwy Twoich notatników, ile ich jest i jakie notatki są w każdym z nich. |
| Usuwanie (kind 5) | Twój klucz publiczny i identyfikatory tego, co usuwasz: notatki i jej punktów kontrolnych. | — |
| Notatka, którą udostępniasz (kind 1059, gift wrap NIP-59) | Klucz publiczny konta, dla którego jest przeznaczona (p); tag k=30023; datę losowo cofniętą maksymalnie o dwa dni; jej przybliżony rozmiar. Jest podpisana kluczem utworzonym dla niej i użytym raz, nie Twoim. |
Kto ją wysłał, kiedy, jej tytuł i tekst. W środku, zapieczętowane (kind 13) i zaszyfrowane tylko dla tego konta, są Twój klucz publiczny i notatka: tylko to konto może je otworzyć i dowiaduje się, kto ją wysłał. |
Czego nie da się ukryć. d i k notatki oraz a punktu kontrolnego muszą
być czytelne: relaye potrzebują ich, aby zastąpić notatkę jej nowszą
wersją i znaleźć jej historię. Relay może więc policzyć, ile masz
notatek, i zobaczyć, kiedy edytujesz każdą z nich i jak często. Notes
czyni to mniej dokładnym, nie niewidocznym: zapisuje najwyżej jeden punkt
kontrolny na notatkę na każdą godzinę edycji, jeden, gdy zamykasz notatkę,
która się zmieniła, i po jednym z każdej strony, gdy rozstrzygasz konflikt,
nigdy jednego na każde zapisanie, więc Twój rytm pisania nie jest publikowany
minuta po minucie.
Dlaczego Twoje notatki nigdy nie wygasają. Szkice NIP-37 mogą zawierać tag
expiration (jego przykład używa 90 dni), a relay, który go respektuje,
usuwa zdarzenie w tym dniu. W przypadku notatnika oznaczałoby to utratę
notatek, których usunięcia nikt nie zażądał, więc Notes nigdy go nie zapisuje.
Druga strona tego: Twoje notatki pozostają na relayach, zaszyfrowane,
dopóki ich nie usuniesz, a usuwanie w Nostr jest prośbą: relay może
zachować swoją kopię.
Udostępnianie notatki. Notes wysyła kopię do relayów, z których według
drugiego konta ono czyta (jego relaye NIP-17, kind 10050, a w przeciwnym
razie relaye do odczytu z jego listy NIP-65), których szuka na Twoich
relayach, oraz do Twoich własnych relayów, najwyżej ośmiu. Wysyłane
jest to, co zawiera notatka (tytuł, tekst i tagi), a nie Twój notatnik,
oznaczenia czy kosz; tego, co zmienisz później, Notes nie wysyła. Drugie konto
zachowuje swoją kopię: Notes nie może jej cofnąć, a usunięcie Twojej notatki
jej nie usuwa. Aby odbierać, Notes prosi Twoje relaye o gift wrapy
adresowane do Twojego klucza z k=30023 i otwiera je na urządzeniu. Odrzucenie
usuwa gift wrap tylko z urządzenia: jest on podpisany kluczem, którego nikt nie
przechowuje, więc żadne z Was nie może poprosić relayów o jego usunięcie,
i zostaje tam, czytelny tylko dla Ciebie.
Wyszukiwanie jest lokalne. Wszystko jest zaszyfrowane, więc żaden
relay nie może szukać za Ciebie. Notes pobiera i odszyfrowuje Twoje
notatki i buduje indeks na urządzeniu; słowa, których szukasz, nigdy nie są
nigdzie wysyłane.
Relay, który żąda uwierzytelnienia NIP-42, poznaje Twój klucz publiczny; Notes odpowiada mu Twoim kontem. Notes prosi też Twoje relaye o szkice, które inne aplikacje zapisały Twoim kluczem (kindy 31234 i starszy 30024), aby pokazać je tylko do odczytu, i niczego przy tym nie publikuje. Jeśli logujesz się zdalnym podpisującym (bunkerem lub Nostr Connect), jego relaye przenoszą Twoje zaszyfrowane żądania podpisu, a Notes prosi go o podpisywanie tylko powyższych kindów (w tym pieczęci udostępnianej notatki, kind 13; jej gift wrap jest podpisywany na urządzeniu, jednorazowym kluczem). Z aplikacją do podpisywania na Twoim telefonie z Androidem (NIP-55, np. Amber) Notes rozmawia bezpośrednio na telefonie, bez żadnego relaya pośrodku, prosi ją o to samo i sprawdza każde zwrócone podpisane zdarzenie przed jego użyciem.
Herkos Local Relay: co przechowuje i z kim się komunikuje
Herkos Local Relay to relay Nostr działający na Twoim własnym urządzeniu, dla aplikacji Herkos i każdego innego klienta Nostr. Nie stoi za nim żaden nasz serwer i nic nam nie wysyła.
Co przechowuje, na urządzeniu. Zdarzenia, które zapisują w nim Twoje
aplikacje, i te, które pobiera z Twoich relayów, w bazie danych zaszyfrowanej
kluczem trzymanym w bezpiecznym magazynie systemu operacyjnego. Obok niej:
aplikacje, które sparowałeś, i to, co każda z nich może robić; jego ustawienia
(settings.json: port, limit, przycinanie, czy dziennik sesji jest włączony);
oraz ustawienia kopii (backups.json: jak często, folder, klucz publiczny, dla
którego szyfrowane są kopie, i jego sól, kiedy zrobiono ostatnią). Nic z tego
nie jest tajne, a hasło do kopii nigdy nie jest zapisywane. W systemach Windows
i Linux, gdy relay działa, plik relay.json w folderze aplikacji mówi, na
którym porcie nasłuchuje, aby aplikacje Herkos mogły go znaleźć. Odinstalowanie
aplikacji usuwa bazę danych, a jej klucz staje się bezużyteczny.
Kto może się połączyć. Nasłuchuje tylko na 127.0.0.1 (port 4873, chyba
że go zmienisz): nic spoza urządzenia nie może się do niego dostać. Każda
aplikacja na urządzeniu może dotrzeć do tego adresu, więc aplikacja lub strona
internetowa musi zostać sparowana, czyli zatwierdzona przez Ciebie na ekranie,
zanim będzie mogła cokolwiek zapisać, a niesparowana strona internetowa jest
odrzucana. Cofnięcie parowania aplikacji natychmiast ją rozłącza. Zdarzenia
prywatne (szkice, prywatne listy, przypomnienia, zapieczętowane koperty, które
otrzymujesz) są przekazywane tylko temu, kto udowodni przez NIP-42, że ma
klucz, do którego należą. Sieć lokalna i Tor nie są jeszcze dostępne; gdy się
pojawią, będą wyłączone, dopóki ich nie włączysz, i będą wymagać TLS lub usługi
onion, uwierzytelnienia i listy dozwolonych kluczy.
| Kto | Co może zobaczyć | Kiedy |
|---|---|---|
| Twoje relaye (te z Twojej listy NIP-65) | Twój adres IP; Twój klucz publiczny, gdy relay żąda uwierzytelnienia NIP-42; publiczne zdarzenia, które publikujesz za pośrednictwem Herkos Local Relay; oraz, na potrzeby synchronizacji, o które z Twoich zdarzeń pyta. | Gdy publikujesz i gdy się synchronizuje (za pomocą negentropy, NIP-77, jeśli relay to oferuje). |
| Relaye skrzynki odbiorczej osoby, do której piszesz (jej lista NIP-17, kind 10050, a w przeciwnym razie relaye do odczytu z jej listy NIP-65) | Twój adres IP i zapieczętowana koperta (NIP-59) zaadresowana do tej osoby, wysłana po losowym czasie oczekiwania. Nigdy nie jest wysyłana do Twoich własnych relayów. | Gdy aplikacja wysyła przez niego prywatną wiadomość lub prywatne zaproszenie. |
Aby ustalić, gdzie ktoś odbiera, pyta Twoje relaye. Twoje zdarzenia prywatne (szkice, prywatne listy, przypomnienia) nigdy nie opuszczają urządzenia. Nigdy nie ogłasza własnego adresu (nie ma go na niczyjej liście NIP-65), jego dokument NIP-11 nie mówi, kim jesteś, i nie ma analityki, telemetrii ani raportów o awariach. W Androidzie działa jako usługa z powiadomieniem i jego przyciskiem Zatrzymaj; zasypia po 10 minutach bez połączeń, a aplikacja Herkos budzi go na samym urządzeniu, bez serwera push.
Dziennik sesji jest domyślnie wyłączony. Jeśli go włączysz, jest przechowywany tylko w pamięci, 500 ostatnich wierszy, i usuwany, gdy relay się zatrzyma: połączenia, uwierzytelnienie NIP-42, przyjęte lub odrzucone zdarzenia i kindy, o które proszono, według kindu i początku identyfikatora, nigdy ich treść.
Kopie. Zaszyfrowana kopia całego magazynu jest zapisywana tylko tam, gdzie wybierzesz: w folderze na urządzeniu lub na dysku zewnętrznym. Folder klienta chmury (OneDrive, Google Drive, Dropbox, iCloud, Nextcloud, Herkos Drive…) jest odrzucany. Jest szyfrowana Twoim własnym hasłem (scrypt i XChaCha20-Poly1305); kopie zaplanowane — dla klucza publicznego, który daje to hasło, więc powstają bez niego. Zachowywanych jest siedem ostatnich. Bez hasła nikt nie może otworzyć kopii, nawet my, a jeśli je zgubisz, kopia przepada. Eksport JSONL nie jest zaszyfrowany: zawiera Twoje zdarzenia prywatne w postaci jawnej, a aplikacja uprzedza o tym przed jego zapisaniem.
Przycinanie usuwa tylko zdarzenia innych osób: nigdy Twoje, koperty dla Ciebie ani kindy chronione przez Twoje aplikacje; według limitu tylko po kopii z ostatniego dnia. I jak wszędzie w Nostr, usuwanie jest prośbą: to, co już trafiło do innych relayów, może tam zostać.
Nasze strony internetowe i Cloudflare
herkos.app (w tym herkos.app/e/), app.herkos.app (wersja webowa Mail),
calendar.herkos.app i notes.herkos.app (wersje webowe Calendar i Notes,
gdy zostaną opublikowane)
i fdroid.herkos.app (nasze repozytorium F-Droid) to pliki statyczne
serwowane przez Cloudflare (Cloudflare Pages i R2). Jak każdy hosting,
Cloudflare otrzymuje Twój adres IP, identyfikator przeglądarki (user agent),
adres, o który prosisz (bez części po #), oraz czas, i może je przechowywać
w swoich logach zgodnie z własną polityką prywatności.
Nie ustawiamy plików cookie i nie prowadzimy analityki; strony i własne pliki aplikacji webowych pochodzą wyłącznie z tych domen (aplikacje webowe łączą się następnie z relayami i serwerami opisanymi powyżej), a my nie przeglądamy logów dotyczących poszczególnych odwiedzających. Pliki do pobrania z Releases pochodzą z serwisu GitHub, który widzi ten sam rodzaj danych zgodnie z własną polityką.
Publiczne z założenia
Nostr jest siecią publiczną. Poniższe rzeczy są widoczne dla każdego, kto odpyta używane przez Ciebie relaye, i są powiązane z Twoim kluczem publicznym:
- Twój profil (nazwa, zdjęcie) oraz listy relayów i serwerów Blossom;
- zdarzenia etykiet NIP-32, które Herkos Mail publikuje, gdy oznaczasz wiadomość jako przeczytaną, dodajesz gwiazdkę, archiwizujesz ją lub przenosisz do folderu — łącznie z nazwą folderów własnych. Osoba, która wysłała Ci wiadomość i zna jej identyfikator, może więc stwierdzić, kiedy ją przeczytałeś. Planujemy je szyfrować; do tego czasu miej to na uwadze;
- w Herkos Calendar tylko to, co sam upublicznisz (zob. wyżej);
- w Herkos Notes żadnej treści, tylko wzorzec opisany wyżej: ile masz notatek i kiedy je edytujesz;
- przez Herkos Local Relay tylko publiczne zdarzenia, które publikują Twoje aplikacje, jak w przypadku każdego relaya.
Twoje wybory i prawa
- Wszystko powyższe jest pod Twoją kontrolą w Ustawienia → Sieć i serwery (relaye, relaye DM, serwery Blossom, bridge'e) oraz Ustawienia → Powiadomienia; w Herkos Calendar o relayach, liście zajętości i każdym linku do udostępniania (Udostępnij przez link → Unieważnij link) decydujesz Ty; w Herkos Notes — o relayach (w jego Ustawieniach lub na Twojej własnej liście prywatnych relayów).
- W Herkos Local Relay sparowane aplikacje i to, co każda z nich może robić, port, limit, przycinanie, dziennik sesji i kopie znajdziesz na jego własnych ekranach.
- Wylogowanie się z Herkos Notes usuwa notatki z tego urządzenia, ale najpierw wysyła to, co jest tylko tam, i mówi Ci, ile notatek byś stracił; notatki na relayach zostają i wracają, gdy zalogujesz się ponownie.
- Możesz wyeksportować swój klucz, usunąć konto (co prosi też relaye o usunięcie Twoich danych, NIP-62) albo zresetować aplikację w dowolnej chwili.
- Ponieważ nie przechowujemy danych osobowych, nie możemy sami odpowiadać na żądania dostępu, sprostowania ani usunięcia; kieruj je do operatora danego relaya, bridge'a, serwera push lub hostingu. Pomożemy Ci go ustalić.
- Herkos nie jest przeznaczony dla dzieci poniżej 16 roku życia.
Zmiany
Zmienimy ten dokument, gdy zmieni się zachowanie aplikacji, i odnotujemy datę na
górze. Źródłem prawdy jest PRIVACY.md w repozytorium; opublikowana strona jest
jego kopią.
Kontakt: privacy@herkos.email · https://herkos.app
Inne języki
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 · 中文 · Ελληνικά · हिन्दी · 日本語 · 한국어 · Русский · Українська