Zdaniem Snowdena tylko najlepsze narzędzie zapewni nam solidne szyfrowanie, uniemożliwiające globalny podsłuch. Zazwyczaj jednak korzystamy z mechanizmów wbudowanych w przeglądarki WWW i obsługiwanych przez serwery, standardowo nawiązując połączenia HTTPS. Zaszyfrowana komunikacja przebiega w dwóch etapach: podczas nawiązania kontaktu (handshake) za pośrednictwem asymetrycznego kodowania przekazywany jest klucz sesji (session key) wymagany do następującego po nim symetrycznego kodowania. Najpierw serwer wysyła przeglądarce klucz publiczny (public key), który pasuje do naszego klucza prywatnego (private key) – uzyskany klucz pozwala na odszyfrowanie wiadomości przekazywanych przez przeglądarkę. Oba klucze podlegają zmianie po nawiązaniu połączenia. Od tego momentu komunikacja przechodzi w tryb mniej złożonego obliczeniowo szyfrowania symetrycznego, dlatego musimy połączyć klucz sesji np. z algorytmem AES.
Negocjacja klucza sesji to ostatni etap nawiązywania połączenia. Klucz prywatny stanowi słaby punkt. Do tego momentu podsłuchujący przechwytuje tylko zakodowany, niezrozumiały ciąg danych, jednak później dociera do klucza prywatnego serwera, a wtedy zna już klucz sesji i potrafi z niego wyekstrahować komunikację. Taki właśnie klucz prywatny NSA chciała uzyskać od Ladara Levisona, administratora serwisu pocztowego Lavabit, z którego Edward Snowden regularnie korzystał. Gdyby zakodowane maile Snowdena zostały przechwycone przez NSA, z wykorzystaniem klucza prywatnego można by je odczytać w całości. Jednak Levison, zamiast przekazać klucz NSA, zamknął swój webowy serwer pocztowy. Odczytanie emaili z ciągu zaszyfrowanych danych nie byłoby możliwe, jeśliby do komunikacji wykorzystano Perfect Forward Secrecy (PFS), ponieważ PFS nie korzysta z klucza prywatnego. Klucz sesji nie jest przekazywany przez Internet, lecz samodzielnie obliczany przez obu partnerów. PFS używa do tego celu protokołu wymiany kluczy szyfrujących Diffiego-Hellmana.
Żeby je wyśledzić, podsłuchujący musiałby rozwiązać równanie logarytmiczne z dwiema nieznanymi liczbami losowymi, co jest ekstremalnie żmudnym, wręcz niemożliwym do zrealizowania zadaniem. Dlatego zarówno serwer, jak i przeglądarka stosują bardzo duże liczby pierwsze, np. 2048-bitowe. Tylko w takim przypadku mamy gwarancję, że atakujący, stosując metodę brute force, nie odgadnie wyniku. Oprócz klasycznego algorytmu Diffiego-Hellmana istnieje również jego odmiana wykorzystująca kryptografię krzywych eliptycznych (ECDHE). Ta metoda matematyczna jest bardziej złożona obliczeniowo. W przypadku ECDHE możliwe jest posługiwanie się mniejszymi liczbami pierwszymi, co przyspiesza generowanie klucza sesji. Praktycznie wszystkie popularne przeglądarki WWW oferują obsługę Perfect Forward Secrecy dla DHE i ECDHE, ale nie zawsze w kombinacji z symetrycznymi metodami kodowania. Podobnie jest z serwerami – wciąż PFS rzadko jest stosowany do wymiany klucza. Zmiany w podejściu do kwestii bezpieczeństwa mogą jednak nastąpić już wkrótce.