Szyfrowanie end-to-end

Terminy „szyfrowanie end-to-end” oraz „szyfrowanie po stronie klienta” opisują sposób, w jaki aplikacje internetowe wykonują szyfrowanie i zabezpieczanie danych.

„Szyfrowanie end-to-end” (end-to-end encryption) dotyczy komunikacji internetowej pomiędzy użytkownikami – końcówkami systemu. Aplikacja internetowa szyfruje i odszyfrowuje wówczas wszystkie dane jedynie na urządzeniach komunikujących się użytkowników – na ich własnych komputerach lub np. smartfonach. Tylko na tych urządzeniach dostępna jest oryginalna treść w postaci czytelnej, rozszyfrowanej. Treść danych poza komputerami użytkowników (gdy są one składowane na serwerach lub są „w drodze” pomiędzy nimi) pozostaje zaszyfrowana i bezpieczna.

Wspomniane szyfrowanie na urządzeniu użytkownika w przypadku systemów klient-serwer nazywane jest „szyfrowaniem po stronie klienta” (client-side encryption). Ma ono miejsce zazwyczaj od razu po wciśnięciu przycisku „wyślij” lub „zapisz”, jeszcze przed wysłaniem danych na serwer. Z drugiej strony – odszyfrowywanie odbywa się po odebraniu danych, bezpośrednio przed wyświetleniem ich na ekranie.

W opisywanych powyżej przypadkach rola serwera aplikacji sprowadza się głównie do odpowiedniego przechowywania zaszyfrowanych treści. Serwery takie nie mają dostępu do haseł użytkowników czy kluczy potrzebnych do rozszyfrowywania danych – to oczywiste założenie w każdym systemie realizującym szyfrowanie end-to-end. Więcej informacji na ten temat serwerów zero-knowledge.