E2EE
Jak działa
Każda strona generuje parę kluczy (publiczny i prywatny); klucz prywatny nigdy nie opuszcza urządzenia. Strony uzgadniają wspólny sekret przez niezabezpieczony kanał za pomocą wymiany kluczy (np. Diffie-Hellman, X3DH), a następnie szyfrują treść szyfrem symetrycznym z uwierzytelnianiem (AEAD, np. AES-GCM lub ChaCha20-Poly1305). Nowoczesne protokoły, jak Signal Protocol, stosują mechanizm zapadkowy (Double Ratchet) rotujący klucze dla każdej wiadomości, co zapewnia forward secrecy i odporność po kompromitacji. Aby zapobiec atakom man-in-the-middle, strony weryfikują tożsamość kluczy poza pasmem (odciski/safety numbers, kody QR).
Rozwiązany problem
Rozwiązuje problem zaufania do pośredników: w systemach szyfrujących jedynie w tranzycie lub przechowujących dane w postaci odszyfrowywalnej po stronie serwera dostawca (lub ktokolwiek z dostępem do jego infrastruktury, backdoora albo nakazu sądowego) może odczytać treść. E2EE eliminuje dostawcę jako punkt dostępu do danych, ograniczając ryzyko wycieków, inwigilacji masowej i nieautoryzowanego dostępu.
Komponenty
Ustala wspólny sekret między stronami przez niezabezpieczony kanał bez wcześniejszej wymiany kluczy.
Każda strona ma parę kluczy; klucze publiczne są rozpowszechniane, prywatne nigdy nie opuszczają urządzenia.
Szyfruje właściwą treść wiadomości z uwierzytelnianiem, np. AES-256-GCM lub ChaCha20-Poly1305.
Weryfikacja odcisków/safety numbers lub kodów QR poza pasmem, aby zapobiec atakom man-in-the-middle.
Double Ratchet rotuje klucze dla każdej wiadomości, zapewniając forward secrecy i odporność po kompromitacji.
Implementacja
Bez uwierzytelnienia kluczy atakujący może podstawić własny klucz podczas wymiany i odszyfrowywać ruch.
E2EE nie chroni, gdy samo urządzenie jest skompromitowane — plaintext jest widoczny na końcach.
E2EE chroni treść, lecz zwykle nie metadane (kto, kiedy i z kim się komunikuje).
Wprowadzenie backdoora lub key escrow przez dostawcę lub w wyniku regulacji niweczy gwarancje E2EE.
Ewolucja
Whitfield Diffie i Martin Hellman publikują metodę ustalenia wspólnego sekretu przez publiczny kanał, kładąc podwaliny pod kryptografię klucza publicznego i E2EE.
Phil Zimmermann tworzy PGP — pierwsze szeroko stosowane E2EE dla poczty e-mail i plików.
OTR wprowadza forward secrecy i deniability do komunikatorów natychmiastowych.
Trevor Perrin i Moxie Marlinspike (Open Whisper Systems) rozpoczynają prace nad protokołem i algorytmem Double Ratchet.
Migracja do Axolotl Ratchet umożliwia asynchroniczną komunikację (wiadomości offline).
WhatsApp włącza E2EE domyślnie dla ponad miliarda użytkowników; protokół nazwano Signal Protocol, a ratchet — Double Ratchet.
Signal wprowadza PQXDH, dodając odporność na ataki komputerów kwantowych do początkowej wymiany kluczy.
Hiperparametry (konfigurowalne osie)
Metoda ustalenia wspólnego sekretu, np. Diffie-Hellman, X3DH, post-kwantowy PQXDH.
Szyfr AEAD chroniący treść, np. AES-256-GCM lub ChaCha20-Poly1305.
Czy i jak klucze są rotowane (np. Double Ratchet), by kompromitacja jednego klucza nie ujawniała wcześniejszych/późniejszych wiadomości.
Mechanizm uwierzytelniania kluczy: safety numbers, odciski, kody QR.
Wymagania sprzętowe
E2EE opiera się na standardowych operacjach kryptograficznych wykonywanych na dowolnym procesorze; nie wymaga wyspecjalizowanego sprzętu.