Szyfrowanie end-to-end we współczesnych komunikatorach
Przeanalizują Państwo protokół Signal, na którym opierają się WhatsApp i Signal, w tym forward secrecy, ratchety i sealed sender.
Szyfrowanie end-to-end we współczesnych komunikatorach to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Przegląd protokołu Signal
Protokół Signal stanowi kryptograficzną podstawę aplikacji Signal, WhatsApp i innych bezpiecznych komunikatorów. Łączy dwa algorytmy: X3DH do ustanowienia początkowego wspólnego sekretu, gdy odbiorca jest offline, oraz Double Ratchet do wyprowadzania nowego klucza szyfrowania dla każdej wiadomości. Rezultatem jest silna poufność i forward secrecy, niewidoczne dla użytkownika.
X3DH: Extended Triple Diffie-Hellman
X3DH umożliwia dwóm stronom ustanowienie wspólnego sekretu, nawet gdy jedna z nich jest offline. Wykorzystuje cztery obliczenia Diffie-Hellmana, łącząc długoterminowe klucze tożsamości, średnioterminowe podpisane klucze wstępne oraz jednorazowe klucze wstępne. Serwer przechowuje klucze wstępne przesłane wcześniej przez odbiorcę. Nadawca wykonuje X3DH z użyciem tych kluczy, wyprowadza wspólny sekret i wysyła zaszyfrowaną wiadomość początkową bez czekania, aż odbiorca pojawi się online.
Algorytm Double Ratchet
Po ustanowieniu początkowego wspólnego sekretu przez X3DH obsługę dalszej rozmowy przejmuje Double Ratchet. Łączy on ratchet Diffie-Hellmana, który przesuwa się przy każdej wymianie nowych kluczy DH, oraz ratchet klucza symetrycznego, który przesuwa się przy każdej wiadomości. Każda wiadomość jest szyfrowana unikatowym kluczem, który natychmiast usuwa się po użyciu, dzięki czemu przejęcie klucza jednej wiadomości nie narusza bezpieczeństwa żadnej innej wiadomości.
Forward secrecy w praktyce
Forward secrecy oznacza, że jeśli napastnik zarejestruje dziś zaszyfrowany ruch, a później przejmie Państwa długoterminowy klucz prywatny, nadal nie będzie mógł odszyfrować starych wiadomości. Double Ratchet zapewnia tę właściwość, ponieważ klucze używane dla poszczególnych wiadomości są efemeryczne i natychmiast usuwane. Tylko urządzenie, które uczestniczyło w rozmowie w danym momencie, może odszyfrować wcześniejsze wiadomości, i tylko pod warunkiem, że nie usunęło ich lokalnie.
Odzyskiwanie po przejęciu
Double Ratchet zapewnia także odzyskiwanie po przejęciu, nazywane czasem bezpieczeństwem po przejęciu. Jeśli napastnik na krótko przejmie urządzenie i odczyta jego bieżące klucze, kolejny krok ratchetu DH wygeneruje nowe klucze, których napastnik nie będzie w stanie przewidzieć. Przyszłe wiadomości znów staną się bezpieczne bez ręcznej ingerencji, w przeciwieństwie do systemów, w których przejęcie jednego klucza ujawnia wszystkie kolejne wiadomości.
WhatsApp wdraża Signal Protocol
W 2016 roku WhatsApp zakończył pełne wdrażanie szyfrowania typu end-to-end za pomocą Signal Protocol na wszystkich swoich platformach, obejmując nim wówczas ponad miliard użytkowników. Było to największe wdrożenie szyfrowania typu end-to-end w historii. Integrację opracowano we współpracy z Open Whisper Systems, organizacją stojącą za Signal. Implementacja WhatsApp została niezależnie poddana audytowi i uznana za poprawną.
Sealed sender: ukrywanie metadanych wiadomości
Nawet przy zaszyfrowanej treści protokół Signal pierwotnie ujawniał serwerowi, kto wysyła wiadomości do kogo. Sealed sender to rozszerzenie, które szyfruje tożsamość nadawcy wewnątrz koperty wiadomości. Serwer zna tylko odbiorcę, a nie nadawcę, co ogranicza ilość metadanych dostępnych serwerowi lub osobie, która uzyska nakaz sądowy dotyczący rejestrów serwera. Odbiorca odszyfrowuje zewnętrzną kopertę, aby dowiedzieć się, kto wysłał wiadomość.
Znikające wiadomości i klucze efemeryczne
Wiadomości znikające dodają licznik czasu, po którego upływie wiadomości są usuwane z urządzeń zarówno nadawcy, jak i odbiorcy. W połączeniu z efemerycznymi kluczami mechanizmu Double Ratchet oznacza to, że nawet późniejsze badanie kryminalistyczne przejętego urządzenia może nie ujawnić żadnego tekstu jawnego, który dałoby się odzyskać. Funkcja Note to Self w aplikacji Signal oraz domyślne ustawienia znikających wiadomości zachęcają do minimalizacji przechowywania danych jako praktyki zwiększającej prywatność.
iMessage: podejście hybrydowe
iMessage firmy Apple korzysta z szyfrowania end-to-end, gdy obie strony mają włączoną funkcję iMessage, a gdy jedna z nich jej nie ma, przełącza się na SMS. iMessage przechowuje zaszyfrowane klucze wiadomości w iCloud Keychain, co umożliwia dostęp z wielu urządzeń, ale oznacza również, że Apple może technicznie uzyskać dostęp do wiadomości, jeśli zostanie do tego zobowiązane i jeśli włączono backup iCloud. W przeciwieństwie do Signal, iMessage nie korzysta z mechanizmu Double Ratchet, więc nie zapewnia takiego samego poziomu utajnienia w przód.
Dlaczego bezpieczne przesyłanie wiadomości grupowych jest trudniejsze
W rozmowie dwóch osób mechanizm Double Ratchet działa wydajnie. W grupie N członków każdą wiadomość trzeba zaszyfrować osobno dla każdego członka albo zarządzać wspólnym kluczem grupowym. Bezpieczne zarządzanie kluczami grupowymi jest złożone: gdy członek opuszcza grupę, wszyscy pozostali muszą odświeżyć swoje klucze. Jest to znane jako post-compromise security w grupach. Protokół Messaging Layer Security (MLS/RFC 9420) rozwiązuje ten problem, zapewniając aktualizacje kluczy o złożoności logarytmicznej.
Porównanie Signal, WhatsApp i Telegram
Signal jest w pełni open source, gromadzi minimalną ilość metadanych i korzysta z Signal Protocol w całym systemie. WhatsApp używa Signal Protocol do przesyłania wiadomości, ale należy do firmy Meta i gromadzi znaczne ilości metadanych. Telegram korzysta z własnego protokołu MTProto wyłącznie w Secret Chats; zwykłe czaty nie są szyfrowane end-to-end i są przechowywane na serwerach Telegrama. Aby uzyskać maksymalny poziom prywatności, zaleca się korzystanie z Signal z włączonymi znikającymi wiadomościami.
Właściwości Signal Protocol
Jaka właściwość mechanizmu Double Ratchet sprawia, że przechwycenie klucza jednej wiadomości nie ujawnia innych wiadomości?
Szyfrowanie end-to-end: najważniejsze informacje
Signal Protocol łączy X3DH, który służy do uzgadniania kluczy w trybie offline, z mechanizmem Double Ratchet, który wyprowadza osobny klucz dla każdej wiadomości. Utajnienie w przód chroni wcześniejsze wiadomości, a odporność po włamaniu chroni przyszłe wiadomości po naruszeniu bezpieczeństwa. WhatsApp wdrożył ten mechanizm na dużą skalę w 2016 roku. Przesyłanie wiadomości grupowych wymaga bardziej złożonych protokołów zarządzania kluczami, takich jak MLS. Ochrona metadanych wymaga dodatkowych technik, takich jak sealed sender.
Często zadawane pytania
Czy lekcja „Szyfrowanie end-to-end we współczesnych komunikatorach” jest bezpłatna?
Tak — pełny tekst „Szyfrowanie end-to-end we współczesnych komunikatorach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Szyfrowanie end-to-end we współczesnych komunikatorach”?
Przeanalizują Państwo protokół Signal, na którym opierają się WhatsApp i Signal, w tym forward secrecy, ratchety i sealed sender. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Szyfrowanie end-to-end we współczesnych komunikatorach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego poczta e-mail jest z natury niezabezpieczona
- Szyfrowanie poczty e-mail za pomocą PGP i GPG
- S/MIME w firmowej poczcie e-mail
- Szyfrowanie end-to-end we współczesnych komunikatorach