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)
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.
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.
Ochrona udostępnianych linków
Linki przekazania, linki do części podzielonego sekretu, linki potwierdzenia dla odbiorców i linki wycofania są chronione przed automatycznym zgadywaniem i nadużyciem. Jeśli pojedynczy link otrzyma nietypowo dużo wywołań z tego samego źródła, kolejne wywołania są tymczasowo blokowane, a właściciel sejfu jest powiadamiany e-mailem, aby mógł sprawdzić dziennik aktywności konta.
- ✓ Ograniczenie liczby prób na wszystkich publicznych linkach opartych na tokenach (strony przekazania, podzielonego sekretu, potwierdzenia i wycofania)
- ✓ Właściciel sejfu dostaje jednorazowe powiadomienie e-mail przy pierwszym otwarciu linku przekazania lub podzielonego sekretu
- ✓ Podejrzana aktywność jest zapisywana w dzienniku aktywności Twojego konta
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
GuardianRzeczy 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.
Szyfrowanie frazą dla każdej rzeczy
GuardianUż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.