Bezpečnostná politika
Herkos pracuje so súkromnými kľúčmi a šifrovanými správami, preto berieme hlásenia o bezpečnosti vážne a o probléme sa radšej dozvieme skôr ako neskôr.
Nahlásenie zraniteľnosti
Bezpečnostné problémy, prosím, nehláste cez verejné issue.
Nahláste ich súkromne cez GitHub funkciou súkromného hlásenia zraniteľností alebo e-mailom na security@herkos.email.
Užitočné je uviesť: o aký problém ide, ako ho zopakovať, na akej platforme a verzii ste testovali a čo by mohol útočník dosiahnuť. Veľmi pomôže proof of concept.
Do hlásenia nikdy nevkladajte svoj nsec, súkromný kľúč ani tajomstvo bunkra.
Snažíme sa potvrdiť prijatie hlásenia do niekoľkých dní. Keďže Herkos je malý projekt, pred zverejnením nám, prosím, nechajte primeraný čas na opravu. Radi vás uvedieme v bezpečnostnom upozornení, pokiaľ si neželáte inak.
Čo patrí do rozsahu
Samotná aplikácia Herkos: práca s kľúčmi a ich ukladanie, šifrovanie a
dešifrovanie správ (vrátane kontrol odosielateľa NIP-59 a izolácie skrytej kópie (Bcc)
v local_packages/nostr_mail), zámok aplikácie, komunikácia s relé a mostami,
spracovanie príloh a proces zostavovania a vydávania.
Čo nepatrí do rozsahu
- Samotný protokol Nostr a jeho NIP — tie hláste priamo ich autorom.
- Relé, mosty a servery Blossom prevádzkované tretími stranami. Herkos ich má v predvolených nastaveniach, ale neprevádzkuje ich; problémy hláste ich prevádzkovateľom.
- Pôvodný projekt Nostr Mail Client, pokiaľ sa problém netýka konkrétne zmien vykonaných v Herkos.
- Chýbajúce spevnenie, ktoré už uvádzame ako známe obmedzenie (pozri nižšie).
Známe obmedzenia, povedané na rovinu
Ide o kompromisy v návrhu, nie o zraniteľnosti. Radšej ich napíšeme, než aby ich niekto objavil na vlastnej koži:
- Pošta na tradičné adresy nie je koncovo šifrovaná. Správy medzi používateľmi Nostr používajú NIP-17 gift wrap a sú koncovo šifrované. Keď píšete na bežnú e-mailovú adresu, most správu prevedie a môže ju čítať.
- Zámok aplikácie (PIN a biometria) je pohodlná bariéra, nie šifrovanie uložených údajov. Zastaví niekoho, kto zoberie odomknuté zariadenie; nechráni pred útočníkom s plným prístupom k zariadeniu alebo jeho úložisku.
- Vo Windows nemožno vynútiť overenie výlučne biometriou. Windows Hello neumožňuje vybrať metódu, takže systémový PIN zostáva vždy k dispozícii ako záložná možnosť.
- Strata kľúča znamená stratu účtu. Obnovenie neexistuje, a to zámerne.
- Metadáta nie sú úplne skryté. Relé môžu pozorovať vzorce pripojení a každé relé vidí vašu IP adresu, aj keď nemôže čítať obsah správ. Čo Herkos neprezradí (od 30. 9. 2026), je, kto píše komu, keď relé požiada o overenie NIP-42:
- Zisťovanie, kam doručiť. Zoznamy relé a serverov Blossom príjemcu sa
vyžiadajú cez samostatné pripojenie, ktoré vás nikdy neidentifikuje, najprv na
relé, ktoré nevyžadujú overenie (
purplepag.es,user.kindpag.es,nos.lol,offchain.pub). - Profily a plánovač. Meno a obrázok zobrazované pre kohokoľvek iného (kind 0) a zoznam relé plánovacieho DVM, keď naplánujete alebo zrušíte e-mail, sa vyžiadajú rovnako: najprv anonymne a ak relé trvá na overení, s dočasným kľúčom opísaným nižšie, nikdy s vaším (od 1. 10. 2026; predtým relé, ktoré požiadalo o overenie, dostalo váš kľúč a mohlo zistiť, čí profil si prezeráte). Len váš vlastný profil sa stále načítava pod vašou identitou.
- Doručovanie. Gift wraps idú na relé pre súkromnú poštu príjemcu cez to isté samostatné pripojenie. Ak niektoré z nich vyžaduje overenie, Herkos odpovie kľúčom vytvoreným na tento účel a uchovávaným len v pamäti, nikdy vaším; každý účet v zariadení má vlastný. Relé však stále môže vidieť, že to isté zariadenie (rovnaká IP, rovnaký dočasný kľúč) počas relácie poslalo viacero obálok.
- Veľké e-maily. Šifrovaná kópia e-mailu väčšieho ako 32 KB sa nahrá na servery Blossom vrátane serverov príjemcov. Len vaše vlastné servery (váš zoznam Blossom) dostanú nahrávanie autorizované vaším kľúčom. Akýkoľvek iný server ho dostane anonymne, a ak trvá na autorizácii, podpísanej rovnakým dočasným kľúčom ako vyššie (od 1. 10. 2026; predtým každý server dostal váš kľúč). Server, ktorý prijíma len známe kľúče, ho odmietne a kópia zostane na ostatných serveroch.
- Vaše vlastné údaje. Synchronizácia vašej poštovej schránky, štítkov, nastavení a konceptov sa tam, kde o to relé požiada, overuje ako účet, ktorému údaje patria, aj počas prepínania účtov. Vašim vlastným relé to neprezradí nič, čo by nevedeli: požiadavky aj tak uvádzajú váš kľúč. Vaše vlastné zoznamy relé a serverov Blossom sú verejné a vyžiadajú sa bez vašej identifikácie, rovnako ako relé uvedené v odkaze v e-maile.
- Stav prečítania a priečinky sú (zatiaľ) verejné metadáta. Označenie e-mailu ako prečítaného, s hviezdičkou, archivovaného alebo presunutého zverejní nešifrovanú udalosť štítka NIP-32 prepojenú s vaším verejným kľúčom, vrátane názvov vlastných priečinkov. Odosielateľ, ktorý pozná id e-mailu, ktorý vám poslal, dokáže zistiť, kedy ste s ním niečo urobili. Šifrovanie týchto štítkov je naplánované; dovtedy považujte názvy priečinkov za verejné.
- Push upozornenia a plánované odosielanie využívajú služby tretích strán.
Push server (predvolene
api.nmail.li) sa dozvie váš verejný kľúč, push token a kedy dostávate poštu; plánovací DVM sa dozvie váš verejný kľúč a už zašifrované správy, ktoré má zverejniť. Obe sú voliteľné a zdokumentované vPRIVACY.md. Text push upozornenia určuje push server a Herkos mu dôveruje len vtedy, keď ho UnifiedPush doručí šifrovaný (RFC 8291); nešifrovaný obsah len prebudí aplikáciu, aby si poštu stiahla sama. - Webová verzia uchováva váš kľúč v prehliadači, čo je preň najslabšie miesto. Nainštalované aplikácie odovzdávajú váš súkromný kľúč zabezpečenému úložisku operačného systému (Android Keystore, Windows Credential Manager, libsecret, iOS/macOS Keychain). Prehliadač nič také nemá: kľúč leží v úložisku pôvodu (origin) a pri každom podpise prechádza cez JavaScript, na dosah akéhokoľvek kódu, ktorý na stránke beží — rozšírenia prehliadača s prístupom ku všetkým stránkam, chyby XSS v aplikácii alebo v závislosti, podvrhnutého nasadenia — a akéhokoľvek infostealera, ktorý skopíruje profil prehliadača. Neexistuje ani okamih, keď kód raz overíte: podpísaný binárny súbor sa kontroluje pri inštalácii, kým webová stránka pri každej návšteve dodá nový kód. Do webovej verzie sa prihláste vzdialeným podpisovačom (bunker NIP-46, Amber), aby sa kľúč do prehliadača nikdy nedostal, alebo ju berte ako jednorazovú identitu a svoj skutočný kľúč uchovávajte v nainštalovanej aplikácii.
- Pošta cez most je len taká dôveryhodná ako most. Herkos overuje, že
správa označená ako prichádzajúca cez most bola naozaj podpísaná mostom, ktorý
máte nastavený (alebo jedným z predvolených). Nedokáže overiť nič o
tradičnej adrese
From:, ktorú most preposiela. - Prílohy otvára operačný systém. Herkos nikdy nespúšťa spustiteľné súbory ani súbory skriptov a pred odovzdaním akejkoľvek inej prílohy bez náhľadu predvolenej systémovej aplikácii sa spýta, ale aplikácia, ktorá súbor otvorí, je mimo našej kontroly.
Podporované verzie
Bezpečnostné opravy sa aplikujú na najnovšiu vydanú verziu. Vzhľadom na veľkosť projektu sa staršie verzie neudržiavajú — pred nahlásením, prosím, aktualizujte.