Přejít k hlavnímu obsahu

Podvodníci bez šance

Digitální podpisy zajišťují autorizaci aktualizací, nákupů i bankovních převodů. V současnosti používané technologie v budoucnu nebudou stačit, proto přichází eXtended Merkle Signature. 

Platíte svým dobrým jménem. Tento třicet let starý reklamní slogan banky American Express dobře ukazuje, že i dnes je hodnota neodmyslitelně spojena s kredibilitou. Důvěryhodnost je důležitá i v dnešní digitální době, kdy není těžké zachytit a podvrhnout komunikaci probíhající po internetu. Tomuto typu útoků se přiléhavě říká Man in the Middle. V současné době se důvěryhodnost aktualizací, nákupů, bankovních převodů nebo elektronické pošty zajišťuje pomocí podpisů (viz vpravo), které jsou připojeny k e-mailu. Přesto však dokážou některé útoky typu Man in the Middle ochranu zajišťovanou v současnosti používanými typy podpisů prolomit. To ale neplatí o nedávno zavedeném standardu eXtended Merkle Signature Scheme (XMSS).

Podpis bez nejnovějšího zabezpečení

Pro vytvoření v současné době používaných digitálních podpisů je nutné použít dvě technologie: šifrování založené na v bezpečí uloženém privátním klíči (Private Key) a veřejný klíč (Public Key), který je dostupný komukoliv. Privátní klíč ale neslouží pouze pro šifrování a veřejný klíč neslouží pouze pro rozšifrovávání. Šifrování slouží i pro ověření odesilatele, protože pouze on jediný vlastní privátní klíč odpovídající klíči veřejnému. Druhou ingrediencí je hašovací funkce, která převádí jakkoliv dlouhý vstupní řetězec na výstupní řetězec se stejnou bitovou délkou. V tomto případě se jedná o jednosměrnou operaci, což znamená, že obsah vstupního řetězce nelze zpětně odvodit pomocí hašovací hodnoty.
Předpokládejme, že útočník hodlá přesvědčit uživatele Windows, aby si nainstalovali podvrženou aktualizaci, a že tato aktualizace obsahuje nějaký škodlivý ransomware. Aby toho útoční dosáhl, musel by být schopen prolomit asymetrické šifrování aktualizace, nahradit její obsah svým malwarem a poté ještě upravit přiložený digitální podpis tak, aby operační systém záměnu Windows nepoznal a falešnou aktualizaci nainstaloval.

Vzhledem k ohromnému výpočetnímu výkonu, který by při takové záměně bylo nutné použít, se toho v současnosti nemusíme obávat, ovšem musíme vzít v úvahu nárůst výkonu, který můžeme očekávat v následujících dvaceti nebo třiceti letech. Kvantové počítače budou schopné asymetrické šifrování snadno prolomit, protože dokážou extrémně rychle pracovat s matematickými procesy, na kterých je asymetrické šifrování založeno. Záchranu nabízí podpisové schéma, které v roce 1980 publikoval americký vědec Ralph Merkle. Jeho schéma totiž nepoužívá matematický výpočet, ale jednorázovou podpisovou proceduru v kombinaci s hašovacím stromem.

U kořenů hašovacího stromu

Pro vytvoření jednorázového podpisu dokumentu budete potřebovat hašovací funkci a generátor náhodných čísel. Tato funkce nejprve vypočítá hašovací hodnotu dokumentu, ve které propojí jednotlivé bity dokumentu s náhodně generovaným datovým tokem. Výsledkem je podpisový klíč, který si tvůrce tohoto podpisu nechává u sebe. Z tohoto podpisového klíče poté odvodí verifikační klíč. Verifikační klíč se odesílá společně s dokumentem a poté je nutné jej separátně publikovat. Problém v tomto případě spočívá v tom, že daný podpis je platný pouze pro jediný dokument a pro ověření všech dokumentů by na serveru bylo nutné ukládat ohromné množství jednorázových klíčů. Tento problém dokáže vyřešit hašovací strom (viz vpravo), který náhodně obsahuje řadu verifikačních klíčů různých uživatelů a dokumentů, v závislosti na jeho výšce. Střed stromu tvoří veřejný klíč kombinující hašovací hodnoty všech verifikačních klíčů (listů). Kořen se vypočítává z hašovací hodnoty všech listů a větví stromu a nakonec z něj vznikne jediná hašovací hodnota. Veřejný klíč není publikován na všech webových serverech. Merkleův podpis, který uživatel přidává k dokumentu, se skládá z podpisu dokumentu, verifikačního klíče a hašovacích hodnot všech větví, které se nachází mezi verifikačním klíčem a kořenem. Příjemce zprávy nejprve zkontroluje platnost podpisu dokumentu vytvořeného prostřednictvím podpisového klíče pomocí verifikačního klíče. Poté si z internetu stáhne kořen a hašovací hodnoty větví a verifikační klíč Merkleova podpisu. Pomocí těchto dat vypočítá kořen a porovná jej s protějškem na webovém serveru. Jsou-li stejné, dojde k potvrzení správnosti verifikačního klíče.

Merkleovy podpisy byly dlouhou dobu pouze teoretickým konceptem, pro zajištění dostatečného množství verifikačních klíčů je totiž nutné vytvořit velmi vysoké hašovací stromy. Výpočet podpisů je zdlouhavý proces a podpisy nakonec nabírají příliš objemných hodnot. Výzkumný tým na Technické univerzitě v Darmstadtu dokázal po dlouhých letech práce optimalizovat Merkleovo schéma a vytvořil standard eXtended Merkle Signature Scheme, který se od letošního června stal jedním z oficiálních webových standardů.

Optimalizace Merkleova principu

XMSS je založen na třech pilířích. Používá úspornější jednorázové procedury podpisů, které dramaticky snižují výpočetní nároky a zmenšují velikost podpisů. Optimalizuje kombinaci hašovacích hodnot Merkleova stromu a umožňuje přikládání několika stromů, které zvyšují počet verifikačních klíčů mapovaných ve veřejném klíči. V tomto případě se list Merkleova stromu skládá z veřejného klíče stromu, který je k němu připojen. V současnosti se XMSS používá jen zřídka a je součástí šifrovací knihovny Open SSH, ovšem uživatelé si musí jeho obsah kompilovat sami. Kvantové počítače mohou přijít.

V bezpečí i před kvantovými počítači jsou podpisy vytvořené za pomoci Merkleova principu. Podpisy: Opravdu nefalšované Digitální podpis pomáhá chránit dokumenty a zprávy před neoprávněnou manipulací, ale podpisy využívají i softwarové aktualizace, jako například vedle uvedený update prohlížeče Tor (viz vpravo). Digitální podpisy vytvořené pomocí současných technologií lze ale (prostřednictvím masivní výpočetní síly) prolomit. Proti kompromitaci jsou imunní pouze dokumenty zabezpečené Merkleovým systémem.

Digitální podpis 1 Vytvoření podpisu Nejprve je z obsahu dokumentu vytvořena hašovací hodnota. Ta je posléze zašifrována pomocí privátního klíče odesilatele a je připojena k dokumentu.

2 Kontrola podpisu Příjemce nejprve vypočítá hašovací hodnotu dokumentu, poté prostřednictvím veřejného klíče rozšifruje podpis, aby tím získal hašovací hodnotu, která je v něm uložena. Pokud jsou obě hašovací hodnoty stejné, jedná se o autentický dokument. Problém nastává v případě, když je prolomen privátní klíč odesilatele. Poté lze digitální podpis zfalšovat.

Merkleovo schéma Vytvoření podpisu Podpis podle Merkleova schématu lze vytvořit bez privátního klíče. Toto schéma používá jednorázové podpisy a hašovací strom.

1 Podpisový klíč je vytvořen pomocí náhodného generátoru, který vypočítá jednorázový podpis dokumentu. 2 Z podpisového klíče je odvozen verifikační klíč. Příjemce dokumentu pak může ověřit pravost jednorázového klíče pomocí verifikačního klíče. 3 Na řadu přichází hašovací strom. Každý výše umístěný list obsahuje haš verifikačního kódu kompatibilního s podpisem. Větve pod listy jsou vytvořeny z kombinace hašů jednotlivých listů a ukládají se jako hašovací hodnota. Všechny kombinované haše přichází do níže umístěného kořene. Jejich hašovací hodnota je veřejným klíčem.

4 Veřejný klíč je publikován na webovém serveru, ke kterému mají všichni přístup. 5 V Merkleově schématu jsou kromě jednorázového podpisu uloženy i verifikační klíč a kombinované haše (Auth). Ty používá příjemce k ověření veřejného klíče. Kontrola podpisu Příjemce vytváří hašovou hodnotu jednorázového podpisu a porovná ji s verifikačním klíčem. Posléze opětovným propočtem kontroluje verifikační klíč a porovná jej s veřejným klíčem a odpovídajícími hašovými hodnotami (Auth).

O autorovi| MARKUS MANDAU, autor@chip.cz S

Příbuzná témata: