FREAK - následek chyb z 90. let a omezování šifrování
27.3.2015 | Jindřich Zechmeister
Seznamte se s nedávno objevenou zranitelnost FREAK, která se týká velkého množství serverů. Princip útoku využívá zastaralé a slabé exportní šifry. Součástí článku je i návod na ochranu serveru před touto zranitelností.
Co je to FREAK
Zranitelnost FREAK (Factoring attack on RSA-EXPORT Keys) je jednoduše řečeno možnost snížit použitou úroveň šifrování serveru (tzv. downgrade attack) a na slabší 512b RSA klíč provést faktorizační útok. Běžný uživatel a jeho prohlížeč se snaží používat nejsilnější dostupné šifrování pro svou bezpečnost. Cílem útočníka je ale opak - pokud možno dosáhnout použití co nejslabší šifry, kterou by mohl snadno prolomit. Po úspěšném útoku může útočník komunikaci dešifrovat (i zpětně) a vystupovat jako napadený server, jelikož bude mít privátní klíč (MITM útok).
Praktickým možnostem útoku se věnuje například článek HTTPS-crippling FREAK attacks become cheaper and easier to carry out. Autoři článku citují studii Royal Holloway University of London tvrdící, že s náklady ve výši $100 a sedmi hodinami počítání mohou útočníci napadnout 28,394 stránek. Zjistili totiž, že fragmenty slabých klíčů (moduly) se často opakují v jiných a klíče nejsou vygenerovány dostatečně náhodně. Jejich lámání je pak rychlejší.1
Seznam "populárních" domén, které jsou zranitelné, najdete na webu freakattack.com. Česká doména je na seznamu jediná - nova.cz. Zmíněný web vám také prozradí, zdali je váš prohlížeč zranitelný, či nikoliv.
Můj prohlížeč není podle freakattack.com zranitelný.
Server můžete na zranitelnost otestovat přes OpenSSL (použití exportních šifer je v parametru příkazu):
openssl s_client -connect www.google.com:443 -cipher EXPORT
Pokud se handshake nepodaří, je to v pořádku. Pokud se handshake podaří a obdržíte certifikát, je to špatně a server je zranitelný.
Předpoklady útoku
Pro úspěšný útok musí být zranitelný jak server, tak i prohlížeč. Obě strany musí být ochotny šifrovat slabým RSA klíčem. Výrobci prohlížečů zareagovali rychle a během prvních dvou týdnů po zveřejnění zranitelnosti byla většina z nich opravena.
Problémem jsou však softwarové produkty, které se neupdatují, nebo už nemají podporu. Tento problém je aktuální zejména u mobilních telefonů; všichni víme, že výrobci se po roce či roce a půl už nezabývají aktualizováním starších modelů a ty zůstávají neaktualizované.
Zranitelné jsou zejména mobilní aplikace
Výše zmíněný problém umožňuje zneužití FREAK zranitelnosti zejména na mobilních telefonech. U těch se aktualizuje málo (vůbec) a není k nim tolik upřena pozornost bezpečnostních odborníků.
V obchodech s aplikacemi Applu a Googlu byly zjištěny tisíce aplikací podléhajících této zranitelnosti. Zranitelných aplikací pro Android je jednou tolik než aplikací pro konkurenční iOS. Z nejpopulárnějších otestovaných aplikací pro iPhone a iPad bylo zranitelných 0,5 %.2 Mnoho z nich může využívat bezhotovostní platby vaší kartou.
Vektor zranitelnosti vede zpět až do 90. let
Vektor zranitelnosti je slabina, přes kterou je konkrétní útok veden a která umožňuje jeho úspěšné provedení. V případě FREAKu je útok možný díky podpoře exportních šifer na serveru, které se už dávno nemají používat.
Exportní šifry
Exportní šifry je jedna ze standardních sad šifer, kterou servery používají pro komunikaci s klientem. Přívlastek exportní může znít zvláštně, ale je dán historickým příběhem těchto šifer.
Na začátku 90. let vydaly úřady spojených států zákaz exportování a distribuce "silné" kryptografie mimo území USA. V praxi to znamenalo, že v softwarových řešeních a kryptografii distribuované za oceán musely být použity slabší šifrovací algoritmy s kratšími klíči, než bylo v té době zvykem. Prohlížeč Netscape vydával dvě verze - mezinárodní s 512b/40b RSA klíči a druhou verzi s 1024b/128b klíči pro použití v USA.
Jistě vás napadne, že za omezením zřejmě stály americké tajné služby, které chtěly mít možnost toto šifrování prolomit. Je to pravděpodobné, protože to bylo v období těsně po konci studené války.
Exportní šifry souvisí se vznikem tzv. SGC certifikátů. Prohlížeče musely používat nízkou úroveň šifrování 40 či 56 bitů, což se však neshodovalo s požadavky bezpečnosti obecně, ale zejména s požadavky zabezpečení finančních transakcí. Finančním institucím legislativa povolovala použití silnějšího šifrování právě prostřednictvím SGC certifikátů. Dnes je to již překonaný produkt, který certifikační autority vyřazují ze svých nabídek.
Jak se zabezpečit?
Embargo na silnou kryptografii bylo v roce 1996 zrušeno Billem Clintonem, avšak exportní šifry jako standardní sada šifer zůstala na serverech podporovaná.
Běžným uživatelům stačí používat nejaktuálnější verzi prohlížeče a aktualizovaný systém. Všichni velcí výrobci software již aktualizace vydali.
Apple FREAK opravil v aktualizací iOS 8.2 a OS X (OS X Security Update 2015-002 pro verze 10.8.5 - 10.10.2), ve starších verzích systémů jsou však aplikace stále zranitelné (stejně jako u již nepodporovaných Windows).
Administrátoři serverů by měli zakázat exportní šifry (viz další odstavec) a případně nasadit opravy. V OpenSSL je zranitelnost popsána jako chyba CVE-2015-0204 a byla opravena ve verzích 1.0.1k, 1.0.0p a 0.9.8zd již 8. ledna. Microsoft vyřešil zranitelnost záplatou MS15-031 vydanou pro všechny desktopové a serverové systémy. Nezapomeňte však, že například Windows XP už nejsou podporovány a aktualizovány (tento systém má sám o sobě na dnešní poměry naivní úroveň bezpečnosti).
Nezapomeňte na serveru správně nastavit šifrování
Pokud dnes někdo zapomene podporu exportních šifer na serveru vypnout, může útočník využít toto dnes již "naivní" šifrování a použít ho pro MITM útok. Problém způsobují zejména nedůslední administrátoři, kteří se nevěnují nastavení SSL/TLS protokolů a šifer na serveru.
Na našem blogu v článku SSL na Apache: Jak dostat z certifikátu maximum zjistíte, jak správně nastavit SSL/TLS a šifry na serveru tak, aby odpovídal aktuálním bezpečnostním požadavkům. Součástí tohoto nastavení je vypnutí právě zmíněných exportních šifer. Návod je psán pro Apache (a je možné ho vztáhnout na Nginx); u IIS se nastavení provádí přes registry a návod najdete například v tomto článku, nebo můžete použít program IIS Crypto.
Nechce-li se vám tvořit direktivy pro SSLciphersuite ručně, můžete využít šikovný generátor Mozilla SSL Configuration Generator. Umí vygenerovat správnou podobu direktiv pro Apache, Nginx a HAproxy. Vygenerovanou konfiguraci můžete zkopírovat a vložit do nastavení serveru. Výhodou je rovněž přehled nejstarších klientů, kteří konfiguraci podporují. Můžete tak ověřit i kompatibilitu nastavení.
Otestujte si správné nastavení serveru
Po každé instalaci SSL certifikátu důrazně doporučuji si svůj server otestovat. Dnes je nejlepší volbou SSL server test od Qualys, kteří naši čtenáři už dobře znají. Jeho výhodou je rozsah informací - nejen že otestuje důvěryhodnost certifikátu, ale umí i nasimulovat handshake různých zařízení a operačních systémů. V kontextu dnešního článku je důležité posouzení správnosti používaných šifer (ciphersuites), SSL/TLS protokolů a hlavně upozornění na známé zranitelnosti, jako je zmíněný FREAK, BEAST nebo POODLE.
Napište název domény a otestujte správnost nastavení SSL/TLS:
Pokud máte SSL certifikát zakoupen u největšího prodejce v ČR SSLmarket.cz, rádi vám poradíme, jak dosáhnout optimálního nastavení a co nejlepší známky.
Zdroje a více informací:
- Dan Goodin: HTTPS-crippling FREAK attacks become cheaper and easier to carry out. Publikováno 16. 3. 2015.
- Dan Goodin: HTTPS-crippling FREAK exploit affects thousands of Android and iOS apps. Publikováno 17. 3. 2015.
- Bruce Schneier: FREAK: Security Rollback Attack Against SSL. Publikováno 6. 3. 2015.
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz