Zabezpečení
Architektura zabezpečení a model hrozeb
Notenz používá dvě rozdílné úrovně šifrování. Běžné položky trezoru se šifrují na serveru, abychom je mohli automaticky doručit. Zapečetěný trezor Guardian a položky se sdíleným klíčem se šifrují celé v prohlížeči, takže klíč nikdy nemáme. Tato stránka vysvětluje, co každá úroveň dělá, co můžeme a nemůžeme číst a jaké má limity.
Krátce a jednoduše
- 🔐 Poznámky se zašifrují hned po příchodu k nám. Ukládáme zašifrovaná data, ne čitelný text. Naši pracovníci ho nečtou.
- 🔑 Příjemci obsah přečtou až po odeslání trezoru. Ne dřív.
- 🤔 Může to Notenz technicky otevřít? U běžného trezoru ano, protože máme klíč pro automatické doručení, když to nemůžete udělat vy. Zjistěte proč a čím se liší Zapečetěný trezor →
- 🌐 Připojení je vždy bezpečné. Stejně jako u internetového bankovnictví je zámek v prohlížeči vždy zapnutý.
- 🪪 Heslo nikdy neukládáme v původní podobě. Ukládáme jednosměrný matematický otisk. I kdyby někdo databázi ukradl, heslo zůstane v bezpečí.
- 🚨 Našli jste problém? Napište na [email protected] a rychle ho opravíme.
Model dvou úrovní šifrování
Úroveň 1: Běžné položky trezoru
Všechny položky Free, Pro a Guardian, které nejsou Zapečetěný trezor ani položka se sdíleným klíčem. To je většina obsahu trezoru.
- Textové poznámky: Fernet (AES-128-CBC + HMAC-SHA256), na serveru
- Soubory: AES-256-GCM, přenos po částech, na serveru
- Klíč má: Notenz (je potřeba pro automatické doručení)
Úroveň 2: Bez znalosti (jen Guardian)
Zapečetěný trezor (Soukromá tajemství) a položky se sdíleným klíčem. Před nahráním se celé zašifrují v prohlížeči.
- Zapečetěný trezor: PBKDF2-SHA256, 600 000 opakování, AES-256-GCM
- Sdílený klíč / věta pro položku: PBKDF2-SHA256, 100 000 opakování, AES-256-GCM
- Klíč má: Jen vy. Notenz ukládá pouze zašifrovaná data.
Co Notenz může a nemůže vidět
Notenz může číst
- Názvy položek (nejsou zašifrované, aby vám pomohly s přehledem)
- Obsah běžné položky trezoru (klíč na serveru, nutný pro doručení)
- Běžné soubory trezoru (rozšifrované při doručení)
- E-mailovou adresu, plán ozývání a seznam příjemců
- Doplňující údaje: kdy položky vznikly, byly otevřeny a doručeny
Notenz nemůže číst
- Tajemství Zapečetěného trezoru (klíč je v prohlížeči a nikdy se neposílá)
- Obsah položky se sdíleným klíčem (klíč je v prohlížeči a nikdy se neposílá)
- Obsah položky zašifrovaný heslovou větou (klíč je v prohlížeči)
- Heslo k účtu (uložen je jen otisk PBKDF2-SHA256)
- Kódy dvoufázového ověření (uložen je jen otisk HMAC-SHA256)
Model hrozeb: před čím chráníme a před čím ne
Chráníme před
- ✓ Krádež samotné databáze: vše je při uložení šifrované; bez hlavního klíče jsou ukradená data k ničemu
- ✓ Napadení serveru u položek úrovně 2: Zapečetěný trezor a položky se sdíleným klíčem nelze rozšifrovat ani s přístupem k serveru, protože klíč na naše servery nikdy nepřijde
- ✓ Náhodný přístup pracovníků: nemáme nástroj pro prohlížení obsahu trezoru
- ✓ Zkoušení hesel k účtu: PBKDF2-SHA256 a omezený počet přihlášení
- ✓ Hádaní tokenů: veřejné odkazy mají omezený počet pokusů a bezpečně náhodné tokeny
- ✓ Útok na relaci a CSRF: tokeny CSRF při všech změnách, bezpečné cookies HttpOnly
NEchráníme před (poctivé limity)
- ✗ Úplné napadení běžícího serveru (úroveň 1): útočník s databází i hlavním klíčem může rozšifrovat běžné položky trezoru. Riziko snižujeme možností výměny klíče, ale teoreticky existuje.
- ✗ Běžné položky trezoru nejsou pro příjemce šifrované mezi konci: náš server je rozšifruje a pošle e-mailem. TLS chrání e-mail na cestě, ale při doručení vidíme čitelný obsah.
- ✗ Napadené zařízení: heslovou větu úrovně 2 zadanou v prohlížeči lze zachytit před šifrováním. Server tomu nezabrání.
- ✗ Zapomenutá heslová věta úrovně 2: Zapečetěný trezor a položky se sdíleným klíčem nepůjde trvale obnovit. Na serveru není možnost obnovení.
- ✗ Doplňující údaje: i u položek úrovně 2 ukládáme názvy, časy a adresy doručení. Úroveň 2 skryje obsah, ne existenci položky.
- ✗ Notenz nemá certifikaci ISO 27001. Jsme hostováni u DigitalOcean, který má jako poskytovatel cloudové infrastruktury certifikaci ISO/IEC 27001:2013.
Šifrování při uložení
Textové poznámky se před uložením šifrují na serveru pomocí Fernet. Soubory používají AES-256-GCM po částech. Hlavní klíč je uložený zvlášť od obsahu, takže ukradená databáze obsahuje jen šifrovaná data.
- ✓ Textové poznámky: Fernet (AES-128-CBC + HMAC-SHA256), klíč na serveru
- ✓ Soubory: průběžné AES-256-GCM (jedinečný 12bajtový nonce pro každou část), klíč na serveru
- ✓ Hlavní klíč je uložený zvlášť od databáze; klíč lze vyměnit
- ✓ Čitelný obsah se nikdy nezapisuje na disk ani do záznamů
Váš obsah nečteme
Poznámky a soubory se před uložením šifrují. Při běžném provozu se nikdo v Notenz nedívá na to, co jste napsali, ani nemá nástroj, který by to četl. Názvy nejsou šifrované, aby se vám věci lépe třídily, ale obsah je vždy šifrovaný. Automatické procesy obsah rozšifrují jen pro doručení trezoru ve správný čas. Viz níže pro úplný přehled.
- ✓ Žádný čitelný obsah v záznamech aplikace
- ✓ Žádný čitelný obsah v zálohách databáze
- ✓ Žádný nástroj pro pracovníky k prohlížení obsahu trezoru
Tajemství pro dvě osoby (rozdělené doručení)
Pro zvlášť citlivé věci můžete použít režim Tajemství pro dvě osoby. Když se trezor odešle, tajemství se rozdělí na samostatnou část pro každého vybraného příjemce, alespoň dva. Libovolné 2 části stačí k obnovení původní zprávy, ale jedna část sama o sobě neprozradí vůbec nic.
- ✓ S jedinou částí je čtení kryptograficky nemožné
- ✓ Tajemství obnoví libovolné 2 z N částí. I když ztratíte kontakt s jedním důvěryhodným člověkem, libovolní 2 ostatní ho otevřou
- ✓ Části se po vytvoření nikdy neukládají společně
Textové poznámky
Text poznámky se rozdělí mezi příjemce. Libovolní 2 vloží své části na notenz.com/reconstruct/ a původní zpráva se obnoví přímo v jejich prohlížeči. Nic se neposílá zpět do Notenz.
- ✓ Obnovení proběhne ze 100% v prohlížeči bez komunikace se serverem
- ✓ Notenz nikdy nemá obnovený čitelný obsah
Soubory
U souborů Notenz rozdělí přístup pro přístup k souboru, ne samotný soubor. Krátký náhodný přístupový token se rozdělí mezi příjemce. Když libovolní 2 spojí své části, prohlížeč tokenem vyžádá soubor. Notenz ho rozšifruje a nabídne ke stažení. Jedna část sama token nevytvoří.
- ✓ Rozdělí se jen přístupový token. E-mailem se neposílá žádný soubor
- ✓ Soubor je při uložení šifrovaný AES-256-GCM a rozšifruje se až při stažení
- ✓ Odkaz ke stažení platí 90 dní a pak automaticky skončí
Otevřeně o omezení
Na rozdíl od položek se sdíleným klíčem Notenz obsah Tajemství pro dvě osoby má, aby ho mohl doručit. Nejde tedy o šifrování bez znalosti klíče. Pokud chcete záruku, že obsah nepřečte ani Notenz, použijte položku se sdíleným klíčem.
Ochrana sdílených odkazů
Odkazy pro doručení, části tajemství, potvrzení příjemce i zrušení chráníme před hádáním a zneužitím. Při neobvykle mnoha pokusech odkazy na čas zablokujeme a majiteli trezoru pošleme e-mail.
- ✓ Omezení počtu pokusů u všech veřejných odkazů s tokenem
- ✓ Majitel trezoru dostane při prvním otevření odkazu jednorázové upozornění e-mailem
- ✓ Podezřelá aktivita se uloží do záznamu aktivit účtu
Otevřená odpověď: může Notenz číst můj trezor?
U běžného trezoru je odpověď technicky ano. Jednoduše vysvětleno:
Notenz má trezor automaticky doručit, i když sami nemůžete napsat heslo. Proto náš systém umí trezor otevřít bez vás. Máme proto hlavní klíč.
That means: if someone broke into a stolen database backup alone, they'd find nothing but scrambled bytes: useless without the key. But if someone fully broke into our live servers (not just the database), they could, in theory, get the key too and unlock your vault. We guard hard against that (separate storage for the key, no staff access, encrypted backups, and we're rolling out key-rotation tooling so a leaked key can be replaced quickly), but it's an honest limit, not a guarantee of "nobody, ever, under any circumstances."
Chcete trezor, který neotevře ani Notenz? Použijte Zapečetěný trezor. Zašifruje se ve vašem prohlížeči. Po zapomenutí hesla je navždy ztracený.
Chcete stejnou záruku, ale položka se má doručit? Použijte položku se sdíleným klíčem. Klíč vytvoříte vy a příjemci ho předáte jen vy.
Zapečetěný trezor: šifrování bez znalosti klíče
GuardianPoložky Zapečetěného trezoru se zašifrují ve vašem prohlížeči před nahráním. Notenz ukládá jen šifrovaná data, nikdy čitelná tajemství ani šifrovací klíč. Ani napadená databáze neukáže nic čitelného.
Technické údaje
- ✓ Vytvoření klíče: PBKDF2-SHA256, 600 000 opakování
- ✓ Šifrování: AES-GCM 256 bitů
- ✓ IV: náhodných 12 bajtů pro každé tajemství, nikdy znovu
- ✓ Ověřovací značka: AES-GCM pozná zásah do dat a špatné heslo
- ✓ Běh: šifrování probíhá ve vašem prohlížeči, klíče neopustí zařízení
Důležité omezení
Zapečetěný trezor potřebuje k rozšifrování vaše heslo Notenz. Když ho zapomenete, tajemství nepůjde obnovit. Na serveru nejsou zadní vrátka.
Chcete, aby Zapečetěný trezor fungoval i po změně hesla k účtu?
By default, Sealed Vault uses your normal Notenz login password. If you ever reset that password (e.g. via "forgot password"), your existing Sealed Vault secrets become unreadable, because they were encrypted with the old password.
Můžete zapnout samostatné heslo Zapečetěného trezoru. Toto druhé heslo otevírá jen citlivá tajemství a nezávisí na přihlášení. Změna hesla k účtu ho neovlivní.
Když samostatné heslo zapomenete, Notenz tajemství neobnoví. Není odkaz pro změnu ani výjimka podpory. Před zapnutím si heslo zapište na bezpečné místo.
Jak dát později přístup někomu dalšímu
Zapečetěný trezor se nedoručuje automaticky. Důvěryhodnému člověku dejte mimo Notenz dvě oddělené věci: přístup k účtu Notenz a heslo Zapečetěného trezoru.
Tyto dvě věci držte odděleně. Kdo má obě, trezor otevře. Kdo má jen jednu, ne.
Šifrování položky heslovou větou
GuardianUživatelé Guardian mohou každou položku trezoru chránit zapamatovatelnou heslovou větou ze 4 slov, kterou vytvoří prohlížeč. Věta se nikdy neposílá na servery Notenz. Příjemce ji zadá na odkazu pro doručení a obsah se rozšifruje v jeho prohlížeči. Funguje samostatně i spolu s Tajemstvím pro dvě osoby, kdy jsou k otevření potřeba 2 důvěryhodní lidé.
Kdyby Notenz někdy zmizel
Šifrování bez znalosti klíče znamená, že Notenz vaše klíče nikdy nemá. K rozšifrování obsahu proto Notenz nepotřebujete, stačí heslová věta a běžné šifrování. Nabízíme samostatný nástroj pro dešifrování bez internetu který běží celý v uložené stránce prohlížeče, bez serveru, přihlášení a požadavků ven. Uložte si kopii už teď. S heslovou větou bude fungovat i tehdy, když servery Notenz nebudou dostupné.
Přenos dat a infrastruktura
Veškerá komunikace mezi prohlížečem a našimi servery je při přenosu šifrovaná pomocí TLS (HTTPS). Při změnách používáme ochranu CSRF. Cookies relace jsou označeny jako HttpOnly a Secure.
- ✓ Jen TLS/HTTPS; HTTP přesměrujeme na HTTPS
- ✓ Tokeny CSRF u všech požadavků POST/DELETE
- ✓ Bezpečné cookies relace HttpOnly
- ✓ Hostujeme u DigitalOcean, poskytovatele cloudové infrastruktury s certifikací ISO/IEC 27001:2013. Notenz samotný certifikaci ISO 27001 nemá.
- ✓ Datové centrum v EU
Přihlášení a ověření
Hesla ukládáme jako otisky PBKDF2-SHA256. Dvoufázové ověření (2FA) jednorázovým kódem e-mailem je ve výchozím stavu zapnuté pro všechny účty. Účty Guardian ho nemohou vypnout.
- ✓ Hashování hesel PBKDF2-SHA256 (výchozí v Djangu, běžný standard)
- ✓ Dvoufázové ověření e-mailem je ve výchozím stavu zapnuté pro všechny plány
- ✓ Plán Guardian: dvoufázové ověření je povinné a nelze ho vypnout
- ✓ Kódy 2FA ukládáme jako otisk HMAC-SHA256, ne jako skutečné kódy
- ✓ Kódy OTP platí 5 minut
- ✓ Než lze 2FA vypnout, je nutné ho ověřit v současné relaci
- ✓ Omezení pokusů: nejvýše 5 ověření za 10 minut
Našli jste bezpečnostní problém?
Bezpečnostní hlášení bereme vážně. Pokud jste našli chybu v zabezpečení, napište nám na [email protected]. Odpovíme do 48 hodin a budeme s vámi pracovat na opravě. Formální program odměn za chyby zatím nemáme, ale zodpovědné nahlášení si velmi vážíme.