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