Architektura Bezpieczeństwa

Specyfikacja techniczna protokołów szyfrowania po stronie klienta (CSE) i infrastruktury przechowywania bez zaufania.

Podstawy bezpieczeństwa

  • Szyfrowanie end-to-end w przeglądarce — szyfrowane lokalnie przed przesłaniem, więc zwykły tekst nigdy nie opuszcza urządzenia.
  • Klucz szyfrowania/odszyfrowania jest generowany w przeglądarce i osadzany w udostępnionym linku. PrivateNote.ai nigdy go nie otrzymuje ani nie przechowuje.
  • Nasze serwery przechowują tylko zaszyfrowany szyfrogram i nie posiadają kluczy potrzebnych do odszyfrowania.

Szyfrowanie po stronie klienta

Notatki są szyfrowane lokalnie w pamięci przeglądarki przed transmisją za pomocą Web Crypto API. Serwer widzi tylko wynikowy blob szyfrogramu.

Obsługa kluczy

Standardowe prywatne notatki kodują surowy 256-bitowy klucz jako Base64url we fragmencie URL (#...). Notatki chronione hasłem opakowują klucz treści kluczami wyprowadzonymi z Argon2id.

Udostępniony link daje dostęp do notatki. Udostępniaj go tylko zamierzonym odbiorcom.

Kryptografia

Szyfrowanie symetryczne

  • AES-256-GCM

    Szyfrowanie uwierzytelnione z 128-bitowymi tagami uwierzytelniania i dodatkowymi danymi uwierzytelnionymi (AAD) wiążącymi id notatki, wygaśnięcie i limity odczytów. 256-bitowe klucze pozostają praktyczną barierą nawet wobec kwantowego wyszukiwania kluczy w stylu Grovera.

  • 12-bajtowy kryptograficzny IV

    Unikalne wektory inicjalizacji zapobiegają rozpoznawaniu wzorców między notatkami.

Wyprowadzanie kluczy (KDF)

  • Argon2id (profil v2)

    Notatki chronione hasłem używają Argon2id z parametrami wymagającymi pamięci (time=3, memory=64 MiB, parallelism=1), aby zwiększyć koszt brute-force, zwłaszcza wobec atakujących GPU/ASIC.

  • 16-bajtowa sól kryptograficzna

    Unikalna sól na notatkę chroni przed atakami tablic tęczowych.

Infrastruktura i bezpieczeństwo operacyjne

Przechowywanie pod jurysdykcją UE

Dane uwierzytelniania, zaszyfrowane notatki i zapisy operacyjne są przechowywane w infrastrukturze pod jurysdykcją UE.

Atomowe zarządzanie stanem

Cloudflare Durable Objects zapewniają atomową spójność logiki jednokrotnego odczytu, zapobiegając wyścigom i podwójnemu zużyciu.

Bez plików cookie śledzących

Bezstanowe API. Nigdy nie ładujemy pikseli reklamowych ani śledzących.

Weryfikacja Turnstile

Weryfikacja żądań tylko od ludzi zapobiega enumeracji notatek brute-force.

Łańcuch dostaw i integralność

Ponieważ szyfrowanie działa w przeglądarce, ładowany pakiet aplikacji jest częścią modelu zaufania. Opieramy się na statycznym hostingu, pinowanych kompilacjach CI i zabezpieczeniach przeglądarki — to nie gwarancja wobec skompromitowanego klienta, ale świadome ograniczenie tego, co może się wykonać.

Zabezpieczenia wdrożenia i przeglądarki
  • Statyczne wdrożenia Cloudflare Pages z zasobami o hashowanej treści z CI
  • HTTP Content Security Policy plus nagłówki bezpieczeństwa; listy dozwolonych tylko tam, gdzie wymagają tego funkcje (Turnstile, CDN AI na urządzeniu, WASM)
  • Odtwarzalne instalacje z package-lock.json (npm ci w potokach wdrożenia)
  • HTTPS z HSTS (preload) na krawędzi przez Cloudflare
  • Bez skryptów reklamowych ani analityki; JS stron trzecich to głównie Turnstile i opcjonalne ładowania CDN AI, gdy używasz tych funkcji

Obsługa danych AI

AI jest opcjonalne przy szkicowaniu notatki — nigdy nie jest potrzebne, aby utworzyć bezpieczny link. Gdy z niego korzystasz, wybierz między Private AI na urządzeniu a opcjonalnym Cloud Assist; mają różne granice prywatności.

Private AI (na urządzeniu)

Prywatność

Działa w przeglądarce (WebLLM). Tekst szkicu nie jest wysyłany do PrivateNote.ai ani żadnej strony trzeciej do wnioskowania.

Po zapisaniu

Tekst jest przetwarzany lokalnie. Przesyłana jest tylko zaszyfrowana notatka — prompt AI nie trafia na nasze serwery.

Wymagania urządzenia

Gdy jest obsługiwane, ładujemy Qwen3 0.6B lub Gemma 2 2B na komputerach z WebGPU. Spodziewaj się do ~1 GB pamięci przeglądarki na wagi modelu i wystarczającej pamięci GPU, aby je uruchomić. Często nie działa na telefonach ani słabszych laptopach — użyj Cloud Assist albo pisz bez AI.

Pierwsza konfiguracja

Pierwsze użycie może pobrać skwantyzowane wagi (do ~1 GB) z publicznych CDN (np. Hugging Face lub jsDelivr) — osobno od przesyłania zaszyfrowanej notatki. Późniejsze sesje mogą ponownie użyć buforowanych wag.

Cloud Assist (hostowane)

Prywatność

Działa na Cloudflare Workers AI (Google Gemma 4 26B). Musisz wyrazić zgodę — szkic w zwykłym tekście opuszcza urządzenie. Nic nie jest wysyłane, dopóki nie potwierdzisz Cloud Assist.

Po zapisaniu

Przesyłana jest tylko zaszyfrowana notatka. Podczas szkicowania prompt przechodzi przez PrivateNote.ai Worker w zwykłym tekście — nie przechowujemy go, ale nasza krawędź obsługuje to żądanie, zanim Cloudflare je przetworzy.

Wymagania urządzenia

Każda nowoczesna przeglądarka z połączeniem sieciowym — bez GPU ani dużej lokalnej pamięci. Używane, gdy Private AI nie może działać na urządzeniu albo wybierzesz hostowane szkicowanie.

Pierwsza konfiguracja

Nie jest wymagana. Bez pobierania modelu, instalacji ani lokalnego cache — wyraź zgodę i wyślij szkic, gdy zostaniesz o to poproszony.

Model zagrożeń i ograniczenia

Przydatny model zagrożeń określa, co chronimy, przed kim, co zakładamy, które mechanizmy działają — i czego wyraźnie nie obejmujemy. Ochrony wcześniej na tej stronie mapują się na sekcję 4; sekcje 1–3 i 5 określają granice.

Co chronimy

  • Zwykły tekst notatki

  • Klucze szyfrowania

  • Gwarancje jednokrotnego odczytu

  • Wygaśnięcie i limity odczytów

  • Dane konta użytkownika

  • Dane uwierzytelniania

Założenia

  • Urządzenie i przeglądarka użytkownika są zaufane przy szyfrowaniu lub odszyfrowywaniu.
  • Przeglądarka poprawnie implementuje Web Crypto.
  • TLS do naszego origin działa zgodnie z założeniem.
  • Dostarczony kod aplikacji nie został złośliwie zmodyfikowany (zob. Łańcuch dostaw i integralność).
  • Link notatki jest udostępniany tylko zamierzonym odbiorcom.

Co obejmujemy

  • Kompromitacja serwera lub bazy (tylko szyfrogram w spoczynku)
  • Złośliwi lub ciekawscy administratorzy uzyskujący dostęp do przechowywanych notatek
  • Naruszenie u dostawcy pamięci lub infrastruktury
  • Przechwycenie ruchu notatek w sieci (TLS plus szyfrogram)
  • Automatyczna enumeracja notatek i nadużycia (Turnstile, limity tempa)
  • Próby brute-force wobec notatek chronionych hasłem (Argon2id)
  • Próby przejęcia konta (sesje HttpOnly, rotacja przy logowaniu, limity tempa, opcjonalne TOTP, step-up dla wrażliwych działań)
  • Drugi fetch lub replay notatek jednokrotnego odczytu (atomowe zużycie przy pierwszym wyświetleniu)

Czego nie obejmujemy

  • Złośliwym oprogramowaniem na urządzeniach nadawcy lub odbiorcy
  • Złośliwymi rozszerzeniami przeglądarki
  • Skompromitowanymi systemami operacyjnymi
  • Oprogramowaniem do przechwytywania lub nagrywania ekranu
  • Monitorowaniem schowka
  • Udostępnianiem pełnego URL notatki (w tym klucza we fragmencie #) przez niezabezpieczone kanały lub nieuprawnionym osobom
  • Kompromitacją dostarczonej aplikacji JavaScript
  • Atakami phishingowymi na użytkowników
  • Socjotechniką
  • Wnioskowaniem Cloud Assist, gdy wyrazisz zgodę (przetwarzanie szkicu w zwykłym tekście przez stronę trzecią)

Integralność techniczna

Priorytetem jest jasność i mierzalne gwarancje bezpieczeństwa, a nie hasła marketingowe.

Rozpocznij bezpieczną sesję