Bezpieczeństwo w Vaulted

Szyfrowanie zero-knowledge — nie możemy czytać twoich sekretów, nawet gdybyśmy chcieli.

Zbudowane i utrzymywane przez Maxim Novak · [email protected]

Nie ufaj nam — sprawdź sam/sama

Każde twierdzenie na tej stronie jest obserwowalne z poziomu twojej przeglądarki. Otwórz DevTools, uruchom cztery krótkie testy i potwierdź, że żaden plaintext ani klucz nie przekracza sieci. Pięć minut, bez instalowania narzędzi.

Security HeadersA+Mozilla ObservatoryA+SSL LabsA+Aktualne skany zewnętrzne — kliknij, by zweryfikować.

Szyfrowanie AES-256-GCM

Każdy sekret jest szyfrowany w twojej przeglądarce przy użyciu AES-256-GCM, zgodnie ze specyfikacją NIST SP 800-38D — ten sam standard stosowany przez rządy i instytucje finansowe na całym świecie. Szyfrowanie następuje zanim jakiekolwiek dane opuszczą twoje urządzenie.

Klucz nigdy nie opuszcza twojej przeglądarki

Klucz szyfrowania jest umieszczany we fragmencie URL (części po #). Zgodnie z RFC 3986, fragmenty URL nigdy nie są wysyłane do serwera — istnieją wyłącznie w twojej przeglądarce. Tylko osoba posiadająca pełny link może odszyfrować sekret.

Architektura zero-knowledge

Nasz serwer przechowuje wyłącznie zaszyfrowany ciphertext i metadane (licznik wyświetleń, wygaśnięcie). Nie mamy możliwości odszyfrowania twoich danych — nigdy nie widzimy klucza ani plaintekstu. Nawet całkowite skompromitowanie serwera dałoby wyłącznie zaszyfrowane bloby.

Opcjonalna ochrona passphrase

Dla dodatkowego bezpieczeństwa możesz ustawić passphrase przy tworzeniu sekretu. Passphrase owija klucz szyfrowania — nawet jeśli ktoś przechwytuje link, nie może odszyfrować sekretu bez niej. Udostępnij passphrase przez inny kanał (np. telefonicznie lub osobną wiadomością) dla maksymalnej ochrony.

Co serwer przechowuje

Zaszyfrowany blob, liczbę pozostałych wyświetleń i znacznik czasu wygaśnięcia. To wszystko. Żadnych logów IP, żadnych kont użytkowników, żadnej analityki treści sekretów.

Automatyczne usuwanie

Sekrety są trwale usuwane po osiągnięciu limitu wyświetleń lub upływie czasu wygaśnięcia. Nie ma kosza, kopii zapasowej ani możliwości odzyskania usuniętych sekretów.

Otwartość z założenia

Logika szyfrowania i deszyfrowania działa całkowicie w twojej przeglądarce przez Web Crypto API. Możesz sprawdzić kod źródłowy, zweryfikować implementację kryptograficzną i potwierdzić, że żaden plaintext nie opuszcza twojego urządzenia.

Przed czym Vaulted chroni

Podsłuchiwanie sieci

Wszystkie dane są szyfrowane w twojej przeglądarce przed transmisją. Nawet jeśli ruch sieciowy zostanie przechwycony, atakujący widzą wyłącznie AES-256-GCM ciphertext — klucz szyfrowania nigdy nie przekracza sieci.

Skompromitowanie serwera

Vaulted używa architektury zero-knowledge. Serwer przechowuje wyłącznie zaszyfrowany ciphertext i metadane. Nigdy nie otrzymuje klucza szyfrowania ani plaintekstu, więc pełne naruszenie serwera nie daje niczego użytecznego.

Nieautoryzowany dostęp

Sekrety są chronione konfigurowalnymi limitami wyświetleń, automatycznym wygasaniem (TTL) i opcjonalną ochroną passphrase. Po osiągnięciu limitu wyświetleń lub upływie TTL sekret jest trwale usuwany.

Utrwalanie danych

Sekrety są automatycznie i trwale usuwane z pamięci po skonsumowaniu lub wygaśnięciu. Nie ma kopii zapasowych, kosza ani mechanizmów odzyskiwania.

Przed czym Vaulted NIE chroni

Skompromitowana przeglądarka lub urządzenie

Jeśli złośliwe oprogramowanie ma dostęp do twojej przeglądarki, może odczytać odszyfrowaną treść z DOM po wyświetleniu sekretu.

Keyloggery

Keylogger na urządzeniu nadawcy lub odbiorcy może przechwycić passphrase podczas jej wpisywania.

Złośliwe rozszerzenia przeglądarki

Rozszerzenia z dostępem do DOM mogą odczytać odszyfrowaną treść sekretu po jej wyrenderowaniu w przeglądarce.

Udostępnianie lub screenshoty przez odbiorcę

Po odszyfrowaniu sekretu odbiorca widzi plaintext. Nie ma DRM — może go skopiować, zrobić screenshot lub udostępnić.

Przechwycenie linku przed wyświetleniem

Jeśli pełny URL (zawierający fragment z kluczem) zostanie przechwycony przed otwarciem go przez zamierzonego odbiorcę, sekret jest skompromitowany.

Słabe passphrase

Jeśli użyta passphrase jest słaba, atakujący posiadający owinięty klucz może ją złamać brute-force.

Co przekazalibyśmy w odpowiedzi na wezwanie sądowe

Częste pytanie od zespołów ds. bezpieczeństwa i prawnych: co Vaulted mógłby faktycznie przekazać w wyniku prawnie wiążącego nakazu? Szczera odpowiedź brzmi „niewiele” — i jest to z założenia, nie z polityki. Nie możemy udostępnić tego, czego nigdy nie otrzymaliśmy.

Co przechowujemy dla danego sekretu

  • AES-256-GCM ciphertext, pozostały licznik wyświetleń i znacznik czasu TTL — przechowywane jako hash Redis w Upstash.
  • Opcjonalny sól key-wrapping, jeśli nadawca wybrał passphrase.
  • Wszystko powyższe jest automatycznie usuwane po wygaśnięciu TTL lub osiągnięciu maksymalnej liczby wyświetleń. Żadnych kopii zapasowych, żadnych archiwów.

Co nigdy nie jest przechowywane ani logowane

  • Treść plaintekstu.
  • Klucz szyfrowania — żyje wyłącznie we fragmencie URL (po #), który przeglądarki nie wysyłają do serwera zgodnie z RFC 3986.
  • Passphrase (przechowywana jest wyłącznie nieodwracalna sól).
  • Tożsamość, e-mail ani odcisk palca urządzenia odbiorcy.
  • Treść żądań, odpowiedzi ani referrerów.

Co jest logowane krótkoterminowo

  • IP żądającego, używany wyłącznie przez Upstash Ratelimit (sliding window) do egzekwowania 10 tworzeń/min i 30 wyświetleń/min per IP. Przechowywany tylko tak długo, jak wymaga okno rate limitu.
  • Standardowe logi operacyjne z Vercel i Upstash (kody statusu, opóźnienia) — niezwiązane z treścią sekretów.

Co organy ścigania mogłyby uzyskać w ramach ważnego postępowania

Maksymalnie: nieprzejrzysty blob ciphertekstu, o ile jest jeszcze w oknie TTL, plus powyższe metadane. Blob jest nieczytelny bez klucza deszyfrowania — którego nigdy nie posiadaliśmy i nie możemy odtworzyć.

Naprawdę nie mamy niczego użytecznego do przekazania.

Odpowiedzialne ujawnianie

Traktujemy bezpieczeństwo poważnie. Jeśli odkryjesz podatność, prosimy zgłosić ją odpowiedzialnie, abyśmy mogli ją naprawić zanim dotknie użytkowników.

Co uwzględnić w raporcie

  • Opis podatności i jej potencjalny wpływ
  • Kroki do odtworzenia problemu
  • Ewentualny kod proof-of-concept lub screenshoty

Zakres

  • W zakresie: implementacja szyfrowania, ominięcie uwierzytelniania, ujawnienie danych, podatności po stronie serwera
  • Poza zakresem: inżynieria społeczna, denial of service, spam

Dążymy do potwierdzenia zgłoszeń w ciągu 48 godzin.

Chcesz zobaczyć to w działaniu?

Wypróbuj Playground szyfrowania — interaktywne demo tego samego szyfrowania AES-256-GCM, którego używa Vaulted. Albo przeczytaj nasz wizualny przewodnik po szyfrowaniu end-to-end.

Często zadawane pytania