Przejdź do treści

Bezpieczeństwo

Architektura bezpieczeństwa i model zagrożeń

Notenz używa dwóch zasadniczo różnych poziomów szyfrowania. Zwykłe rzeczy w sejfie są szyfrowane po stronie serwera, abyśmy mogli przekazać je automatycznie. Zapieczętowany Sejf w planie Guardian i rzeczy z Kluczem Współdzielonym są szyfrowane w całości w Twojej przeglądarce: nigdy nie posiadamy klucza. Ta strona wyjaśnia dokładnie, co robi każdy poziom, co możemy, a czego nie możemy odczytać, i gdzie leżą uczciwe granice.

Wersja skrócona, prostymi słowami

  • 🔐 Twoje notatki są szyfrowane w chwili, gdy do nas docierają. Przechowujemy zaszyfrowane dane, a nie czytelny tekst. Nasi pracownicy tego nie czytają.
  • 🔑 Twoi odbiorcy mogą to odczytać dopiero, gdy Twój sejf się uruchomi. Nie wcześniej.
  • 🤔 Czy Notenz mógłby technicznie to odblokować? W przypadku domyślnego sejfu tak: posiadamy klucz potrzebny do automatycznego przekazania, gdybyś nie mógł tego zrobić sam. Przeczytaj dlaczego i czym różni się Zapieczętowany Sejf →
  • 🌐 Twoje połączenie jest zawsze bezpieczne. Jak w bankowości internetowej, kłódka w Twojej przeglądarce jest zawsze włączona.
  • 🪪 Twoje hasło nigdy nie jest przechowywane w oryginalnej postaci. Przechowujemy jego jednokierunkowy matematyczny odcisk. Nawet gdyby nasza baza danych została skradziona, Twoje hasło pozostaje bezpieczne.
  • 🚨 Znalazłeś problem? Napisz na [email protected] a szybko to naprawimy.

Dwupoziomowy model szyfrowania

Poziom 1: zwykłe rzeczy w sejfie

Wszystkie rzeczy z planów Darmowy, Pro i Guardian, które nie należą do Zapieczętowanego Sejfu ani nie mają Klucza Współdzielonego. Obejmuje to większość zawartości sejfu.

  • Notatki tekstowe: Fernet (AES-128-CBC + HMAC-SHA256), po stronie serwera
  • Pliki: AES-256-GCM, przesyłanie w częściach, po stronie serwera
  • Klucz posiada: Notenz (potrzebny do automatycznego przekazania)
Notenz może technicznie odszyfrować te rzeczy. Potrzebujemy tej możliwości, aby przekazać je automatycznie, gdy przestaniesz się zgłaszać.

Poziom 2: zero-knowledge (tylko Guardian)

Zapieczętowany Sejf (Prywatne Sekrety) i Rzeczy z Kluczem Współdzielonym. Szyfrowane w całości w Twojej przeglądarce przed wysłaniem.

  • Zapieczętowany Sejf: PBKDF2-SHA256, 600 000 iteracji, AES-256-GCM
  • Klucz Współdzielony / Fraza dla rzeczy: PBKDF2-SHA256, 100 000 iteracji, AES-256-GCM
  • Klucz posiada: tylko Ty. Notenz przechowuje wyłącznie zaszyfrowany tekst.
Notenz nie może odczytać tych rzeczy. Nawet pełne włamanie na serwer nie ujawnia ich jawnej treści. Kompromis: zapomniany klucz oznacza trwałą utratę.

Co Notenz może, a czego nie może zobaczyć

Notenz może odczytać

  • Tytuły rzeczy (przechowywane niezaszyfrowane, aby pomóc Ci w porządkowaniu)
  • Treść zwykłych rzeczy w sejfie (klucz po stronie serwera; potrzebny do przekazania)
  • Zwykłe pliki w sejfie (odszyfrowywane w chwili przekazania)
  • Twój adres e-mail, harmonogram zgłoszeń i listę odbiorców
  • Metadane: kiedy rzeczy zostały utworzone, otwarte, przekazane

Notenz nie może odczytać

  • Sekretów z Zapieczętowanego Sejfu (klucz po stronie klienta, nigdy nieprzesyłany)
  • Treści Rzeczy z Kluczem Współdzielonym (klucz po stronie klienta, nigdy nieprzesyłany)
  • Treści zaszyfrowanej frazą dla rzeczy (klucz po stronie klienta)
  • Twojego hasła do konta (przechowywanego tylko jako skrót PBKDF2-SHA256)
  • Kodów dwuskładnikowych (przechowywanych tylko jako skrót HMAC-SHA256)

Model zagrożeń: przed czym chronimy, a przed czym nie

Chronimy przed

  • ✓ Samą kradzieżą bazy danych: cała treść jest zaszyfrowana w spoczynku; skradzione wiersze bazy są bez znaczenia bez klucza głównego
  • ✓ Włamaniem na serwer dla rzeczy z Poziomu 2: zaszyfrowanego tekstu Zapieczętowanego Sejfu i Klucza Współdzielonego nie da się odszyfrować nawet przy pełnym dostępie do serwera, bo klucz nigdy nie dociera na nasze serwery
  • ✓ Przypadkowym dostępem pracownika: nie istnieją żadne wewnętrzne narzędzia do przeglądania zawartości sejfu
  • ✓ Łamaniem haseł do konta metodą brute-force: rozciąganie PBKDF2-SHA256, logowanie z ograniczeniem liczby prób
  • ✓ Zgadywaniem tokenów: wszystkie publiczne linki mają ograniczenie liczby prób i są kryptograficznie losowe
  • ✓ Przejęciem sesji i CSRF: tokeny CSRF na wszystkich punktach zmieniających stan, bezpieczne ciasteczka HttpOnly

NIE chronimy przed (uczciwe ograniczenia)

  • ✗ Pełnym przejęciem działającego serwera (Poziom 1): atakujący mający dostęp jednocześnie do bazy danych i klucza głównego może odszyfrować zwykłe rzeczy w sejfie. Ograniczamy to możliwością rotacji klucza, ale pozostaje to ryzyko teoretyczne.
  • ✗ Zwykłe rzeczy w sejfie nie są szyfrowane od końca do końca aż do odbiorcy: są odszyfrowywane przez nasz serwer i wysyłane e-mailem. TLS chroni wiadomość w drodze, ale w chwili przekazania widzimy jawną treść.
  • ✗ Przejęciem urządzenia: jeśli Twoje urządzenie jest przejęte, fraza z Poziomu 2 wpisana w przeglądarce może zostać przechwycona przed szyfrowaniem. Żaden środek po stronie serwera temu nie zapobiegnie.
  • ✗ Zapomnianą frazą z Poziomu 2: rzeczy z Zapieczętowanego Sejfu i Klucza Współdzielonego stają się trwale nie do odzyskania. Nie ma ścieżki resetu po stronie serwera.
  • ✗ Metadanymi: nawet dla rzeczy z Poziomu 2 przechowujemy etykiety (tytuły), znaczniki czasu i adresy przekazania. Poziom 2 ukrywa treść, a nie istnienie rzeczy.
  • ✗ Notenz nie ma certyfikatu ISO 27001. Jesteśmy hostowani na DigitalOcean, który posiada certyfikat ISO/IEC 27001:2013 jako dostawca infrastruktury chmurowej.

Szyfrowanie w spoczynku

Notatki tekstowe są szyfrowane po stronie serwera za pomocą Fernet (AES-128-CBC + HMAC-SHA256), zanim zostaną zapisane. Pliki używają strumieniowego AES-256-GCM (części po 4 MB, unikalny nonce na każdą część). Klucz główny jest przechowywany oddzielnie od treści; sama skradziona baza danych daje tylko zaszyfrowany tekst.

  • ✓ Notatki tekstowe: Fernet (AES-128-CBC + HMAC-SHA256), klucz po stronie serwera
  • ✓ Pliki: strumieniowe AES-256-GCM (unikalny 12-bajtowy nonce na każdą część), klucz po stronie serwera
  • ✓ Klucz główny przechowywany oddzielnie od bazy danych; dostępne narzędzia do rotacji klucza
  • ✓ Jawny tekst nigdy nie jest zapisywany na dysku ani w dziennikach

Nie czytamy Twojej treści

Twoje notatki i pliki są szyfrowane przed zapisaniem. W codziennej pracy nikt w Notenz nie ogląda, nie przegląda ani nie ma narzędzia, by odczytać jawną treść tego, co napisałeś. Tytuły są przechowywane niezaszyfrowane (aby pomóc Ci w porządkowaniu), ale treść jest zawsze zaszyfrowana. Automatyczne procesy odszyfrowują treść tylko po to, by przekazać Twój sejf, gdy nadejdzie czas: zobacz poniżej aby poznać pełny obraz.

  • ✓ Brak jawnego tekstu w dziennikach aplikacji
  • ✓ Brak jawnego tekstu w kopiach zapasowych bazy danych
  • ✓ Brak narzędzi dla pracowników do przeglądania zawartości sejfu

Sekret Dwóch Osób (podzielone przekazanie)

Dla szczególnie wrażliwych rzeczy możesz wybrać nasz tryb Sekret Dwóch Osób. Gdy Twój sejf się uruchamia, sekret jest matematycznie dzielony na osobną część dla każdego z wybranych odbiorców (2 lub więcej), z użyciem sprawdzonej techniki dzielenia sekretów. Dowolne 2 z tych części wystarczą, by odtworzyć oryginalną wiadomość, ale pojedyncza część sama w sobie nie zdradza o niej absolutnie nic.

  • ✓ Kryptograficznie niemożliwe do odczytania z tylko jedną częścią
  • ✓ Dowolne 2 z N części odtwarzają sekret. Nawet jeśli stracisz kontakt z jedną zaufaną osobą, dowolne 2 z pozostałych i tak mogą go odblokować
  • ✓ Części nigdy nie są przechowywane razem po wygenerowaniu

Notatki tekstowe

Sam tekst notatki jest dzielony między Twoich odbiorców. Dowolnych 2 z nich wkleja swoje części na notenz.com/reconstruct/, a oryginalna wiadomość jest odtwarzana w całości w ich przeglądarce. Nic nie jest odsyłane do Notenz.

  • ✓ Odtwarzanie odbywa się w 100% po stronie klienta, bez żadnego zapytania do serwera
  • ✓ Notenz nigdy nie posiada odtworzonej jawnej treści

Pliki

W przypadku plików Notenz dzieli dostęp do pliku, a nie sam plik. Krótki losowy token dostępu jest dzielony między Twoich odbiorców tym samym schematem. Gdy dowolnych 2 z nich połączy swoje części na stronie odtwarzania, przeglądarka używa złożonego tokenu, aby pobrać plik. Notenz odszyfrowuje go po stronie serwera i przesyła jako bezpośrednie pobranie. Żadna pojedyncza część sama nie wytworzy tokenu.

  • ✓ Dzielony jest tylko token dostępu. Żaden plik binarny nie jest wysyłany e-mailem
  • ✓ Plik przechowywany zaszyfrowany AES-256-GCM w spoczynku; odszyfrowywany dopiero w chwili pobrania
  • ✓ Link do pobrania ważny przez 90 dni; wygasa automatycznie po tym czasie

Uczciwe ograniczenie, dla przejrzystości

W przeciwieństwie do rzeczy z Kluczem Współdzielonym, Notenz posiada treść Twojego Sekretu Dwóch Osób: przechowujemy podzielone części u siebie, dopóki Twój sejf się nie uruchomi, abyśmy mogli je połączyć i przekazać. To znaczy, że nie jest to zero-knowledge, a eksport danych osobowych (Ustawienia → Eksportuj moje dane) zawiera tę treść w czytelnej postaci. Jeśli potrzebujesz gwarancji, że nawet Notenz nie może odczytać treści, użyj zamiast tego Rzeczy z Kluczem Współdzielonym.

Uczciwa odpowiedź: czy Notenz mógłby odczytać mój sejf?

W przypadku Twojego domyślnego sejfu (rzeczy z planów Darmowy, Pro i Guardian poza Zapieczętowanym Sejfem): technicznie tak. Oto dlaczego, prostymi słowami.

Całym zadaniem Notenz jest automatyczne przekazanie Twojego sejfu, jeśli przestaniesz się zgłaszać, nawet jeśli sam nie jesteś już w stanie wpisać hasła. Aby to działało, nasz system musi umieć odblokować Twój sejf samodzielnie, bez Ciebie. Dlatego przechowujemy klucz główny, który to potrafi.

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."

Chcesz sejf, którego nawet Notenz nigdy nie otworzy, kropka? Użyj Zapieczętowanego Sejfu (Guardian). Jest szyfrowany w Twojej przeglądarce przy użyciu Twojego hasła. Nigdy nie mamy klucza, i tyle. Kompromis: nie da się go przekazać automatycznie, a jeśli zapomnisz hasła, przepada na dobre.

Chcesz tej samej gwarancji "Notenz nigdy tego nie otworzy", ale rzecz i tak ma trafić do odbiorcy? Użyj Rzeczy z Kluczem Współdzielonym (Guardian). Sam generujesz swój klucz w przeglądarce, Notenz nigdy go nie widzi, a rzecz i tak trafia do odbiorcy jak zwykle, ale tylko Ty możesz dać mu klucz do jej otwarcia.

Zapieczętowany Sejf: szyfrowanie zero-knowledge

Guardian

Rzeczy w Zapieczętowanym Sejfie są szyfrowane w całości w Twojej przeglądarce przed wysłaniem. Serwery Notenz przechowują tylko zaszyfrowany tekst: nigdy Twoich jawnych sekretów, nigdy Twojego klucza szyfrującego. Nawet pełne włamanie do bazy danych Notenz nie ujawnia niczego czytelnego.

Specyfikacja techniczna

  • Wyprowadzanie klucza: PBKDF2-SHA256, 600 000 iteracji
  • Szyfrowanie: AES-GCM 256-bitowe
  • IV: losowe 12 bajtów na każdy sekret, nigdy nieużywane ponownie
  • Znacznik uwierzytelnienia: znacznik uwierzytelnienia AES-GCM wykrywa manipulacje i błędne hasła
  • Środowisko: cała kryptografia działa w Twojej przeglądarce przez Web Crypto API, więc klucze nigdy nie opuszczają Twojego urządzenia

Ważne ograniczenie

Zapieczętowany Sejf wymaga Twojego hasła Notenz do odszyfrowania. Jeśli zapomnisz hasła Notenz, Twoich sekretów z sejfu nie da się odzyskać. Tak to celowo zaprojektowano: nie ma tylnej furtki po stronie serwera.

Chcesz, aby Zapieczętowany Sejf przetrwał reset hasła do konta?

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.

Aby tego uniknąć, możesz włączyć osobne hasło do Zapieczętowanego Sejfu na stronie Zapieczętowanego Sejfu: drugie hasło używane wyłącznie do odblokowania Twoich najbardziej wrażliwych sekretów, całkowicie niezależne od logowania do konta. Reset hasła do konta nie będzie już na nie wpływał.

Obowiązuje ta sama zasada, tylko z jeszcze większą mocą: jeśli zapomnisz tego osobnego hasła, Notenz nie może odzyskać Twoich sekretów z Zapieczętowanego Sejfu, i tyle. Nie ma linku do resetu, nie ma obejścia przez wsparcie i nie ma sposobu, byśmy mogli pomóc. Zapisz je w bezpiecznym miejscu, zanim to włączysz.

Umożliwienie komuś dostępu w przyszłości

Zapieczętowany Sejf nigdy nie jest automatycznie przekazywany przy uruchomieniu sejfu. Aby zaufana osoba mogła kiedyś się do niego dostać, przekaż jej sam dwie osobne rzeczy, poza Notenz: dostęp do logowania na Twoje konto Notenz oraz hasło do Zapieczętowanego Sejfu.

Trzymaj te dwie rzeczy osobno (np. dane konta u wykonawcy testamentu, a hasło do Zapieczętowanego Sejfu w zapieczętowanym liście lub u prawnika): kto ma oba, może to odblokować; kto ma tylko jedno, nie może.

Rzecz z Kluczem Współdzielonym: szyfrowanie od końca do końca, które mimo to zostaje przekazane

Guardian

Zapieczętowany Sejf daje Ci gwarancję "Notenz nigdy tego nie odczyta", ale nie da się go nikomu przekazać. Jest tylko dla Ciebie. Rzecz z Kluczem Współdzielonym daje Ci tę samą gwarancję dla rzeczy, którą chcesz przekazać odbiorcy.

Gdy dodajesz taką rzecz, Twoja przeglądarka generuje losowy tajny klucz i używa go, aby zaszyfrować Twoją notatkę lub plik, zanim w ogóle zostaną wysłane do Notenz. Przechowujemy tylko zaszyfrowaną wersję. Nigdy nie widzimy, nie przechowujemy ani nie mamy żadnego sposobu, by odtworzyć Twój klucz. Gdy Twój sejf się uruchamia, odbiorca dostaje tę rzecz jak każdą inną, plus prostą stronę do odblokowania wbudowaną w link przekazania. Aby ją otworzyć, wkleja klucz.

  • ✓ Szyfrowane w Twojej przeglądarce, zanim w ogóle dotrą do Notenz: przechowujemy tylko zamkniętą wersję
  • ✓ Mimo to przekazywane odbiorcy automatycznie, gdy Twój sejf się uruchamia, tak jak inne rzeczy
  • ✓ Odbiorca dostaje wbudowaną stronę odblokowania w linku przekazania, gdzie wpisuje klucz, aby to odczytać lub pobrać

Musisz sam przekazać klucz: przeczytaj to uważnie

Notenz nigdy nie ma tego klucza. O to właśnie chodzi, ale to też znaczy, że przekazanie klucza odbiorcy jest w całości Twoim zadaniem, a nie naszym. Wyślij mu go tak, jak przekazałbyś coś poufnego: osobiście, przez rozmowę telefoniczną, przez szyfrowaną od końca do końca aplikację do czatu, taką jak Signal, wszędzie, byle nie zostawiając go tuż obok samej rzeczy.

Jeśli zgubisz klucz albo nigdy nie zdążysz go udostępnić, odbiorca i tak dostanie rzecz, gdy Twój sejf się uruchomi, ale nigdy nie będzie mógł jej otworzyć. Dane w środku są trwale zamknięte. Notenz nie może ich odzyskać, zresetować ani wygenerować zastępczego klucza. Nie ma procesu wsparcia, który mógłby to naprawić.

Używaj tego dla tych nielicznych rzeczy, które potrzebują jednocześnie maksymalnej tajności i przekazania. Dla wszystkiego innego domyślny sejf (który możemy przekazać automatycznie, nawet jeśli stracisz dostęp do wszystkiego) jest bezpieczniejszym codziennym wyborem.

Szyfrowanie frazą dla każdej rzeczy

Guardian

Użytkownicy Guardian mogą chronić każdą rzecz w sejfie łatwą do zapamiętania 4-wyrazową frazą wygenerowaną w przeglądarce (technicznie: Web Crypto PBKDF2, 100 000 iteracji, SHA-256, AES-256-GCM). Fraza nigdy nie jest przesyłana na serwery Notenz. Odbiorcy wpisują ją przy linku przekazania, aby odszyfrować treść po stronie klienta. Działa to niezależnie od Sekretu Dwóch Osób lub w połączeniu z nim (dzielenie Shamira: dzieli klucz tak, że 2 zaufane osoby muszą odblokować to razem).

Gdyby Notenz kiedyś zniknął

Szyfrowanie zero-knowledge oznacza, że Notenz nigdy nie posiada Twoich kluczy, co też znaczy, że Notenz nie jest potrzebny do odszyfrowania Twojej treści: potrzebna jest tylko fraza i standardowa kryptografia. Publikujemy samodzielne narzędzie do odszyfrowywania offline które działa w całości w zapisanej stronie przeglądarki, bez serwera, bez logowania i bez wywołań zewnętrznych. Zapisz kopię już teraz: będzie działać z Twoją frazą, nawet jeśli serwery Notenz będą niedostępne.

Transport i infrastruktura

Cały ruch między Twoją przeglądarką a naszymi serwerami jest szyfrowany w drodze za pomocą TLS (HTTPS). Stosujemy ochronę CSRF na wszystkich punktach zmieniających stan. Ciasteczka sesji są oznaczone jako HttpOnly i Secure.

  • ✓ Tylko TLS/HTTPS; HTTP przekierowuje na HTTPS
  • ✓ Tokeny CSRF na wszystkich punktach POST/DELETE
  • ✓ Ciasteczka sesji HttpOnly + Secure
  • ✓ Hostowane na DigitalOcean, dostawcy infrastruktury chmurowej z certyfikatem ISO/IEC 27001:2013. Sam Notenz nie ma certyfikatu ISO 27001.
  • ✓ Centrum danych w regionie UE

Logowanie i uwierzytelnianie

Hasła są haszowane za pomocą PBKDF2-SHA256 (domyślne w Django). Uwierzytelnianie dwuskładnikowe (2FA) przez jednorazowy kod e-mail jest domyślnie włączone dla wszystkich kont. Konta Guardian nie mogą go wyłączyć.

  • ✓ Haszowanie haseł PBKDF2-SHA256 (domyślne w Django, standard branżowy)
  • ✓ 2FA e-mail domyślnie włączone we wszystkich poziomach planów
  • ✓ Plan Guardian: 2FA jest obowiązkowe i nie da się go wyłączyć
  • ✓ Kody 2FA przechowywane jako skrót HMAC-SHA256, a nie surowy kod
  • ✓ Kody OTP wygasają po 5 minutach
  • ✓ Wymagana weryfikacja 2FA (w bieżącej sesji), zanim można wyłączyć 2FA
  • ✓ Ograniczenie liczby prób: maksymalnie 5 prób weryfikacji na 10 minut

Znalazłeś problem z bezpieczeństwem?

Traktujemy zgłoszenia o bezpieczeństwie poważnie. Jeśli znalazłeś lukę, napisz do nas na [email protected]. Odpowiemy w ciągu 48 godzin i będziemy z Tobą współpracować, aby rozwiązać problem. Nie mamy jeszcze formalnego programu nagród za błędy, ale bardzo cenimy odpowiedzialne zgłaszanie.