Czym jest szyfrowanie End-to-End (E2EE)?
Strona Główna
Artykuły
Czym jest szyfrowanie End-to-End (E2EE)?

Czym jest szyfrowanie End-to-End (E2EE)?

Średnio zaawansowany
Opublikowane Jul 3, 2020Zaktualizowane Dec 7, 2023
9m

Wprowadzenie

Charakterystyką dzisiejszej komunikacji cyfrowej jest założenie, że rzadko komunikujesz się bezpośrednio ze swoim odbiorcom. Może się wydawać, że ty i twój przyjaciel wymieniacie się wiadomościami bezpośrednio, gdzie w rzeczywistości są one rejestrowane i przechowywane przez centralny serwer.

Możesz jednak nie chcieć, by centralny serwer mógł odczytać twoją wiadomość, którą przez niego przekazujesz. W takim wypadku szyfrowanie end-to-end (lub w skrócie E2EE) może być rozwiązaniem dla ciebie.

Szyfrowanie end-to-end to metoda szyfrowania komunikacji pomiędzy nadawcą, a odbiorcą w taki sposób, że tylko te dwie strony mogą odszyfrować nadane wiadomości. Początki tego typu przesyłu informacji datuje się na lata 90', kiedy to Phil Zimmerman stworzył Pretty Good Privacy (szerzej znane jako PGP). 

Zanim powiemy do czego mógłbyś chcieć używać E2EE oraz jak dokładnie działa ten system, zobaczymy jak przesyłane są nieszyfrowane wiadomości.


Jak działają nieszyfrowane wiadomości?

Omówmy działanie typowej platformy komunikacyjnej, z której możesz korzystać. Instalujesz aplikację i tworzysz konto, dzięki czemu jesteś w stanie komunikować się z użytkownikami, którzy zrobili to samo. Piszesz wiadomość, wybierasz odbiorcę i wrzucasz ją do centralnego serwera. Serwer widzi twoją wiadomość, więc przesyła ją dalej do twojego przyjaciela. 


Użytkownika A komunikujący się z Użytkownikiem B. Informacje muszą przejść przez serwer (S), by docierały do swoich odbiorców.


Tę sytuację opisuje się jako model klient-serwer. Klient (twój telefon) nie robi za wiele – zamiast tego serwer zajmuje się całym trudem przesłania informacji. Oznacza to jednak, że usługodawca jest pośrednikiem między nadawcą i odbiorcą.

Zazwyczaj dane pomiędzy A <> S oraz S <> B, na infografice powyżej, są zaszyfrowane. Przykładem tego może być Transport Layer Security (TLS), z którego bardzo często korzysta się, by zabezpieczyć połączenie między klientem i serwerem.
TLS i inne tego typu rozwiązania zabezpieczające uniemożliwiają komukolwiek na przechwycenie wiadomości, gdy ta wędruje od klienta do serwera. Mimo że takie rozwiązania blokują osoby trzecie przed przeczytaniem Twojej wiadomości, serwer nadal może je przeczytać. W tym miejscu wchodzi szyfrowanie. Jeżeli dane z A zostały zaszyfrowane przy użyciu klucza należącego do B, serwer nie będzie mógł ich odczytać. 
Bez metod E2EE serwer może przechowywać informacje w swojej bazie danych wraz z milionem innych danych. Z racji, że włamania do baz danych zdarzają się od czasu do czasu, taka sytuacja może mieć katastrofalne skutki dla użytkowników.


Jak działa szyfrowanie end-to-end?

Szyfrowanie end-to-end zapewnia, że nikt – nawet serwer, który łączy cię z resztą użytkowników – nie ma dostępu do twoich komunikacji, przez którą rozumiemy zarówno proste wiadomości, jak i pliki, a także rozmowy wideo. 

Dane są szyfrowane w takich aplikacjach jak Whatsapp, Signal, Google Duo (podobno), dzięki czemu tylko nadawca i odbiorca mogą je odszyfrować. W tym schemacie działania czynnikiem rozrusznikowym może być coś, co nazywamy wymianą klucza.


Czym jest wymiana klucza Diffie-Hellman?

Pomysł na wymianę klucza Diffie-Hellman powstał dzięki kryptografom: Whitfield Diffie, Martin Hellman oraz Ralph Merkle. To potężna technika pozwalająca stronom na wygenerowanie wspólnego sekretu w potencjalnie niebezpiecznym środowisku. 

Innymi słowy, kreacja klucza może obyć się w niebezpiecznym środowisku (nawet na oczach innych) i nie wpłynie to w żaden sposób na bezpieczeństwo wiadomości. W erze informacji jest to szczególnie ważne, gdyż strony nie muszą wymieniać się fizycznie kluczem, by móc się komunikować.

Wymiana sama w sobie polega na dużych liczbach i magii kryptografii. Nie będziemy się zagłębiać w szczegóły. Zamiast tego posłużymy się popularną analogią o kolorach farb. Załóżmy, że Alice i Bob są w osobnych pokojach hotelowych na różnych końcach korytarza i chcą wymienić się konkretnym kolorem farby. Jednak nie chcą, by ktokolwiek inny się o tym dowiedział.

Niestety całe piętro roi się od szpiegów. Zakładamy, że Alice i Bob nie mogą wejść do swoich pokoi w tym przypadku, więc są w stanie jedynie wchodzić w interakcje na korytarzu. To, co mogą zrobić, to uzgodnić ze sobą (na korytarzu) wspólny kolor – powiedzmy żółty. Biorą więc puszkę żółtej farby i dzielą nią, po czym wracają do swoich pokoi.

W pokojach dodają sekretną farbę – tą, o której nikt nie wie. Alice używa odcienia niebieskiego, a Bob czerwonego. Co ważne, szpiedzy nie widzą, jakich kolorów właśnie użyli Bob i Alice. Zobaczą jednak finalną farbę, ponieważ Alice i Bob wychodzą teraz z pokoju ze swoimi niebiesko-żółtymi i czerwono-żółtymi miksami.

Wymieniają się nimi na korytarzu. Nie ma to znaczenia, czy szpiedzy ich teraz widzą, czy nie, ponieważ nie są oni w stanie ustalić dokładnego odcienia dodanego koloru. Pamiętaj, że to tylko analogia – w normalnych warunkach zastosowanie matematyki, na której bazuje ten system, czyni odgadnięcie sekretnego “koloru” jeszcze trudniejszym.”

Alice bierze mieszankę Boba i vice versa, po czym oboje wracają do swoich pokoi. Teraz oboje znowu wlewają sekretne kolory do środka.

  • Alice łączy swój sekretny odcień niebieskiego z czerwono-żółtym miksem Boba i otrzymuje czerwono-żółto-niebieski mix
  • Bob łączy swój sekretny odcień czerwonego z niebiesko-żółtym miksem Alice i otrzymuje niebiesko-żółto-czerwony mix

Obydwie kombinacje kolorów są takie same, więc powinny wyglądać tak samo. Alice i Bob w ten sposób stworzyli sekretny kolor, o którym adwersarze nie zdają sobie pojęcia.



Na tej podstawie tworzymy wspólne sekrety w otwartych przestrzeniach. Różnica jest taka, że nie pracujemy tutaj z farbą i korytarzem, a z niezabezpieczonymi kanałami oraz publicznymi i prywatnymi kluczami.


Wymiana wiadomości

Gdy strony mają już wspólny sekret, mogą go wykorzystać jako bazę do asymetrycznego schematu szyfrującego. Popularne implementacje często korzystają z dodatkowych technik, by jeszcze bardziej zwiększyć bezpieczeństwo, ale to już dzieje się poza wiedzą użytkownika. Kiedy już połączysz się z przyjacielem poprzez aplikację E2EE, szyfrowanie i rozszyfrowywanie może dziać się tylko i wyłącznie na waszych urządzeniach (pamiętając o wszelkich wrażliwych punktach oprogramowania).

Nie ma znaczenia, czy jesteś hakerem, dostawcą usługi, czy nawet stróżem prawa. Jeżeli usługa jest faktycznie szyfrowana metodą end-to-end, każda przechwycona wiadomość będzie wyglądała jak bełkot. 



Zalety i wady szyfrowania end-to-end

Wady szyfrowania end-to-end

Istnieje tylko jedna wada szyfrowania typu end-to-end – i czy nazwiesz to wadą zależy tylko od ciebie. Dla niektórych to, co oferuje E2EE jest problematyczne, ponieważ nikt nie ma dostępu do twoich wiadomości bez odpowiedniego klucza.

Przeciwnicy metody end-to-end twierdzą, że kryminaliści mogą korzystać z E2EE, by w bezpieczny sposób komunikować się poza nadzorem rządu, a firmy technologiczne nie mogą temu zapobiec. Wierzą, że osoby niełamiące prawa nie powinny mieć potrzeby chowania swoich wiadomości i rozmów telefonicznych. Tę idee popiera wielu polityków, którzy chcą wprowadzić tylne drzwi do systemów szyfrujących, dzięki czemu rząd miałby dostęp do tego rodzaju komunikacji. Jednak takie działanie zabiłoby całą idee szyfrowania end-to-end.

Warto też pamiętać, że zastosowania E2EE nie są w 100% bezpieczne. Wiadomości są ukryte podczas przekazywania ich z jednego urządzenia na drugie, ale pozostają widoczne na końcach tej drogi – np. laptopach i smartfonach użytkowników. Nie jest to koniecznie wada szyfrowania end-to-end, jednak warto o tym pamiętać.


Wiadomość jest widoczna w postaci tekstu tylko przed i po zaszyfrowaniu.


E2EE gwarantuje, że nikt nie będzie mógł odczytać twojej wiadomości w trakcie jej przesyłania. Jednak nadal istnieją zagrożenia:

  • Twoje urządzenie może zostać skradzione: jeżeli nie posiadasz kodu PIN lub atakujący obejdzie go, może mieć on natychmiastowy dostęp do twoich wiadomości.
  • Twoje urządzenie może przestać być bezpieczne: urządzenie, z którego wysyłasz i odbierasz wiadomości, może mieć wirusa, który będzie śledzić informacje przed i po ich wysłaniu.

Kolejnym ryzykiem jest to, że ktoś może wejść między ciebie i twojego odbiorcę poprzez atak typu man-in-the-middle (pośrednik). To zdarzyć się może na początku tworzenia kanału komunikacji – gdy wymieniacie się swoimi kluczami nie masz pewności, czy robisz to ze swoim przyjacielem. Nieświadomie możesz utworzyć sekretny kanał komunikacji również z atakującym. Później atakujący otrzymuje przesyłane wiadomość i posiada klucz, dzięki któremu może odszyfrowywać wszystko, co od ciebie dostanie. W ten sam sposób może on oszukać twojego przyjaciela. Staje się on pośrednikiem między wami. Jest w stanie wprowadzać dezinformację, odszyfrowywać wiadomości, a nawet je modyfikować.

By to obejść wiele aplikacji korzysta z czegoś na wzór kodu bezpieczeństwa. Jest to ciąg liczb lub kod QR, który możesz przesłać swojemu kontaktowi za pomocą bezpiecznego kanału (najlepiej offline). Jeżeli liczby się zgadzają, obydwoje możecie być pewni, że nikt nie stoi między waszymi wiadomościami.


Zalety szyfrowania end-to-end

W sytuacji, w której nie ma żadnej z wyżej wymienionych wad, E2EE jest bezsprzecznie o wiele cenniejszym środkiem komunikacji - bezpiecznym i zapewniającym prywatność. Podobnie jak w przypadku onion routing'u, jest to technologia wychwalana przez zwolenników prywatności na całym świecie. E2EE stosuje się w podobny sposób, jak zwykłe środki komunikacji cyfrowej, dzięki czemu każdy użytkownik telefonu komórkowego będzie w stanie uzyskać dostęp do tej technologii.

Postrzeganie E2EE jako mechanizmu przydatnego wyłącznie przestępcom byłoby poważnym błędem. Nawet najbezpieczniejsze firmy okazują się podatne na ataki cyfrowe, przez co niezaszyfrowane dane użytkowników wyciekają do niechcianych rąk. Wyciek wrażliwych informacji, przekazywanych podczas komunikacji, może mieć katastrofalne skutki dla niektórych osób. 

Jeżeli dana firma korzysta z E2EE, a jej dane wyciekną, atakujący nie zdobędą żadnych istotnych informacji (zakładając, że szyfrowanie jest dobrze zaimplementowane). Co najwyżej będą mieli dostęp do metadanych. Dla niektórych może dalej stanowić to powód do zmartwień, jednak jest to zdecydowanie lepsza opcja, niż transmisja całkowicie niezaszyfrowanych wiadomości.


Przemyślenia końcowe

Oprócz wcześniej wspomnianych zastosowań istnieje coraz więcej darmowych narzędzi E2EE: iMessage od Apple, czy Duo od Google, które są fabrycznie wgrane w systemy iOS i Android, a także mnóstwo innych, nastawionych na prywatność i bezpieczeństwo oprogramowań, które pojawiają się każdego dnia.

Pamiętajmy jednak, że szyfrowanie end-to-end to nie magiczna bariera chroniąca cię przed wszystkimi atakami w cyberprzestrzeni. Jednak przy relatywnie małym nakładzie pracy możesz znacząco zredukować zagrożenia związane z korzystaniem z internetu. W połączeniu z Tor, VPN, i kryptowalutami, komunikatory E2EE mogą stać się cennym dodatkiem do twojego arsenału narzędzi zapewniających prywatność.