Útok postranním kanálem

 

V kryptografii jsou útoky postranními kanály jakékoli útoky, které se na rozdíl od klasické kryptoanalýzy nesnaží najít teoretické slabiny v matematické struktuře algoritmu, ale pokouší se o zneužití informací, které unikají přímo z fyzické implementace systému během běhu kryptografického algoritmu. Pokud je totiž uniklá informace nějakým způsobem závislá na tajném klíči algoritmu, může tato informace pomoci útočníkovi klíč odhalit. Cílem útoku postranními kanály nemusí být pouze kryptografický klíč, ale například jen informace o tom, jaký algoritmus se pro šifrování používá, jak dlouho trvá vykonání algoritmu nebo jeho části, či odhalení PINu.

Časová analýza (Timing attack)

Při tomto útoku využívá útočník faktu, že délky výpočtů prováděných s tajným klíčem jsou na tomto klíči závislé. Na vstup programu posílá útočník různá data a měří, jak dlouho trvá jejich zpracování. Časovou analýzou lze útočit např. na algoritmus RSA, pokud se pro umocnění na tajný exponent používá square-and-multiply algoritmus navržený tak, že délka jeho provádění závisí na počtu bitů exponentu rovných jedné. Útočník pak může zjistit Hammingovu váhu tohoto tajného exponentu.

Odběrová analýza (Power analysis attacks)

Při odběrové analýze[2] využívá útočník toho, že spotřeba energie zařízení je závislá na vykonávané instrukci a na datech, se kterými instrukce manipuluje. Pokud je útočník schopen sledovat, jak se mění spotřeba zařízení během provádění kryptografických operací, může zjistit nejen jaké operace zařízení provádí, ale také mu tato informace může pomoci k získání tajného klíče, se kterým je kryptografický algoritmus prováděn. Odběrovou analýzou jsou napadnutelné zvláště kryptografické čipové karty, protože nemají vlastní zdroj a musí být napájeny externě. Jejich spotřeba je tak snadno měřitelná. Pro útočníka spočívá výhoda odběrové analýzy také v tom, že je možno ji aplikovat během normální interakce karty s čtečkou a není nutno kartu jakýmkoli způsobem poškodit nebo upravovat.

Odběrovou analýzu lze rozdělit do dvou základních skupin:

Jednoduchá odběrová analýza (Simple power analysis - SPA)

Pomocí jednoduché odběrové analýzy je možno zjistit některé informace o systému, jako například jaký algoritmus je používán, identifikovat jeho větší části (jednotlivé iterace v DESu, S-boxy), odhalit posloupnost instrukcí nebo zjistit Hammingovu váhu klíče a pomocí ní zjednodušit útok hrubou silou.

Diferenciální odběrová analýza (Differential power analysis - DPA)

Diferenciální odběrová analýza používá ke zjištění klíče statistické metody. Útočník si zvolí klíč a provede několik tisíc měření s tímto klíčem a náhodnými daty. Výsledné naměřené stopy spotřeby rozdělí do dvou skupin podle nějaké rozřazovací funkce (např. podle Hammingovy váhy výsledku). Obě skupiny zprůměruje a tyto zprůměrované stopy od sebe odečte. Pokud je klíč zvolený špatně, bude se rozdíl těchto dvou zprůměrovaných stop blížit nule. Pokud karta není proti DPA chráněna a klíč je zvolen správně, měly by být ve výsledné stopě viditelné oblasti s výraznými rozdíly, které vyjadřují závislost na klíči. Výhodou DPA oproti SPA je automatické odstraňování šumu (mnoho stop se opakuje) a fakt, že útočník nemusí vědět, kde přesně se operace závislá na klíči vyskytuje.

Elektromagnetická analýza (EMA)

Změny proudů při činnosti zařízení generují střídavé magnetické pole, které, pokud je dostatečně silné, může být detekováno. Útočník umístí do blízkosti zařízení cívku a naměřené elektromagnetické pole posléze analyzuje.

TEMPEST je jméno skupiny vojenských standardů, které stanovují limity na elektromagnetické záření z elektronických zařízení. Snaží se tak zabránit útokům, které by se pokoušely toto záření nějakým způsobem využít.

Útok zaváděním chyb (Fault induction attack)

Při provádění těchto útoků se útočník snaží zavést do průběhu výpočtu chyby tak, aby mu jejich výskyt něco prozradil o systému. Útočník se může pokusit vyvolat chyby například těmito způsoby:

Velmi krátkým zvýšením napětí, frekvence, či ozářením čipu nebo jeho části, může útočník např. ovlivňovat instrukce podmíněného větvení tak, aby byla zvolena špatná větev. To mu může umožnit načíst větší množství RAM, než by mu bylo normálně povoleno (data posílaná z paměti jsou ohraničena počáteční a koncovou adresou, a pokud by útočník dokázal změnit podmíněné větvení dotazující se na konec této oblasti, budou se na terminál zasílat data i za touto oblastí). Pokud by tato část paměti obsahovala tajný klíč, útočník ho získá.