Bezpieczeństwo rozmów
„Szyfrowane” to słowo, którym rzuca dziś każdy serwis. Poniżej dokładnie, co to znaczy u nas — łącznie z tym, czego NIE chronimy. Wolimy powiedzieć wprost, gdzie są granice, niż obiecywać bezpieczeństwo absolutne.
Czat: szyfrowanie end-to-end
Kiedy wchodzisz do stolika, Twoja przeglądarka losuje jednorazową parę kluczy (ECDH na krzywej P-256). Klucz prywatny nigdy nie opuszcza karty przeglądarki i nie jest nigdzie zapisywany — po zamknięciu stolika przestaje istnieć.
Każda wiadomość dostaje własny, świeży klucz treści (AES-256-GCM). Treść jest szyfrowana raz, a sam klucz treści pakowany osobno dla każdej osoby przy stoliku — kluczem wyprowadzonym z uzgodnienia ECDH i funkcji HKDF. Efekt: dwie wiadomości nigdy nie mają tego samego klucza, a złamanie jednej nie odsłania pozostałych.
Nasz serwer dostaje gotową kopertę i przekazuje ją dalej. Nie ma klucza prywatnego, więc nie potrafi jej otworzyć — nawet gdyby chciał, nawet gdyby ktoś go do tego zmusił. Nie zapisujemy jej też w bazie ani w logach: w schemacie bazy danych nie ma tabeli na wiadomości.
Sprawdź to sam
- Przy stoliku kliknij „co widzi serwer?” nad czatem. Pod każdą swoją wiadomością zobaczysz fragment szyfrogramu — dokładnie to, co przez nas przechodzi.
- Otwórz narzędzia deweloperskie przeglądarki (F12), zakładka Network, filtr WS. Zobaczysz ramki WebSocket z polem ct — i nic czytelnego.
- W panelu bocznym jest numer bezpieczeństwa. Przeczytajcie go na głos. Jeśli wszyscy przy stoliku widzą taki sam, nikt nie podstawił się w środek.
Głos
Rozmowa głosowa idzie przez WebRTC, czyli bezpośrednio między przeglądarkami, z obowiązkowym szyfrowaniem (DTLS-SRTP). Dźwięk nie przechodzi przez nasz serwer i nie jest nagrywany.
Wyjątek techniczny: jeśli któryś z was siedzi za restrykcyjnym firewallem, połączenie może iść przez serwer przekaźnikowy TURN. Taki serwer przekazuje zaszyfrowane pakiety i nie ma kluczy do ich odczytania — ale zna adresy IP obu stron.
Czego nie chronimy — i mówimy to wprost
- Metadanych. Serwer wie, kto z kim i kiedy siedział przy stoliku, ile to trwało i kto w danej chwili mówi. Bez tego stolik nie mógłby działać.
- Podstawienia klucza przez serwer. Gdyby ktoś przejął nasz serwer i podmienił klucze publiczne w momencie dołączania, mógłby wejść w środek rozmowy. Właśnie dlatego istnieje numer bezpieczeństwa — porównajcie go głosem, a taki atak wyjdzie na wierzch.
- Zrzutów ekranu i notatek. Nie da się technicznie zabronić drugiej osobie zrobienia zdjęcia ekranu. Szyfrowanie chroni rozmowę w drodze, nie chroni od człowieka, któremu zaufałaś/eś.
- Zainfekowanego urządzenia. Jeśli ktoś ma dostęp do Twojego komputera, żadne szyfrowanie transportu nie pomoże.
Zasady, których się trzymamy
- Hasła trzymamy jako nieodwracalne skróty bcrypt — nie znamy Twojego hasła.
- Sesja siedzi w ciasteczku HttpOnly, niedostępnym dla skryptów na stronie.
- Zmiana hasła unieważnia sesje na wszystkich pozostałych urządzeniach.
- Linki z maili są jednorazowe, a w bazie leżą tylko ich skróty SHA-256.
- W logach zapisujemy tylko skróconą postać adresu IP (do /24 albo /48).
- Zdjęcia są podawane z chronionego adresu, nie z publicznego katalogu.
- Nie ma tu żadnych narzędzi śledzących ani ciasteczek reklamowych.
Masz pytanie, którego tu nie ma, albo znalazłaś/eś dziurę? Napisz — takie zgłoszenia traktujemy poważnie. Kontakt jest w polityce prywatności.