Problémy odolných kryptografických zařízení

Daniel Cvrček

Práce do předmětu Systémy odolné proti poruchám>

1. Úvod

Stále větší množství systémů, od placené TV až k elektronickým peněženkám, se spoléhá na odolnost čipových karet a dalších bezpečnostních procesorů. Bohužel se objevuje stále více útoků, které úspěšně zdolávají ochranu těchto zařízení. Popíši několik útoků, jež jsou založeny na různých principech. Co z jejich existence vyplývá? Zdá se, že důvěřovat odolnosti a spolehlivosti těchto zařízení je dosti problematické. V současné době lze čipové karty “lámat” bez problémů a dokonce zařízení, které bylo jednou velkou evropskou bezpečnostní agenturou popsáno jako “nejbezpečnější procesor, jaký je vůbec dostupný” se jeví jako zranitelné. Návrháři bezpečných systémů by měli důkladně uvážit následky a začít se zajímat o možnosti aplikace existujících útoků na svá zařízení.

2. Co to je čipová karta

Každý asi ví, jak vypadá telefonní čipová karta zvnějšku. Typický čip se skládá s tenkého plastikového plátu o velikosti 1 cm2 s vodivými kontaktními plochami na obou stranách. Jedna strana je viditelná na kartě (např. u telefonní karty jsou to kontakty, přes které komunikuje s telefonním automatem) a ke druhé straně je přilepena křemíková matrice, která je připojena tenkými zlatými, nebo hliníkovými drátky. Toto celé je přilepeno do plastikového obalu (klasický, nebo zmenšený pro SIM karty do GSM telefonů).

Typická čipová karta se skládá z 8-bitového mikroprocesoru s ROM, EEPROM a RAM pamětí a samozřejmě ze sériového vstupu a výstupu. ROM slouží pro uložení základního softwaru od výrobce - komunikační rutiny, “operační systém” - který umožňuje vytváření aplikací. Aplikační programy, včetně klíčového materiálu jsou uloženy v EEPROM a RAM je používána pro uložení pracovních výsledků výpočtů.

3. Způsoby útoku

Útoky na čipové karty lze rozdělit do dvou základních skupin: Při prvním způsobu útoků nám postačí sledovat činnost karty a získávat informace, které z karty unikají. Typickým příkladem mohou být informace o času potřebném pro výpočet, okamžitém příkonu, nebo elektromagnetickém záření, které z karty uniká. Tyto informace můžeme získávat opět dvojím způsobem. Buď nám stačí pouze informace týkající se čipu jako takového, k tomu účelu není potřeba nějak zvlášť drahé vybavení. Druhou možností je sledování např. pohybu elektronů v masce čipu. Pro tento účel už jsou potřeba speciální přístroje a další vybavení (mikrosondy, elektronový mikroskop, ...).

Druhý typ útoků je založen na jednoduché myšlence. Jestliže se mi podaří vytvořit vhodnou chybu při provádění výpočtů na zařízení, tak dostanu výsledky s jejichž použitím jsem schopen snadno získat požadované informace (klíčový materiál, výpis celé, nebo části paměti, implementované algoritmy, atd.)

Pro úplnost se nejdříve stručně zmíním o prvním typu útoků a poté se budu důkladněji věnovat vytváření chyb v bezpečném zařízení. Na závěr se pokusím vyjmenovat možnosti, jež mají návrháři těchto zařízení pro zajištění bezpečných zařízení proti útokům.

3.1 Útoky sledováním činnosti odolného zařízení

Tyto útoky je možno rozdělit podle toho, jestli dojde k zásahu do čipu, nebo ne.

3.1.1. Invazní útoky

V článku [1] je dán přehled o technikách, jež byly vyvinuty pro reverzní inženýrství čipů. Prvním problémem, který je nutno řešit je rychlé odhalení fyzického povrchu čipu. Pro tento účel byly vyvinuty různé chemické a mechanické postupy. Ve chvíli kdy se dostaneme k povrchu, tak je stojíme před dalším problémem –zjistit strukturu čipu. Jednou z efektivních metod je použití tenkého filmu zlata, nebo paladia, který vytvoří diodu na kterou se lze dívat pomocí elektronového paprsku. Pomocí systému pro zpracování obrazu je získáno přesné schéma struktury čipu. Reverzování čipu 80386 trvalo dva týdny a bylo potřeba přibližně 6 čipů (rok 1993).

Jestliže je známo rozložení a účel čipu, tak je možno použít techniku, kterou vyvinula IBM. Na čip je položen krystal z niobatu lithia, jehož refrakční index se mění podle elektrického pole. Napětí v křemíkové destičce pak může být přečteno pomocí ultrafialového laserového paprsku. Tato technika je při napětí 5 V schopna pracovat až do frekvence 25 MHz. Je to technika běžná v dobře finančně zajištěných laboratořích pro získávání šifrovacích klíčů a algoritmů z čipů.

U většiny čipových karet lze ovšem úspěšně použít mnohem jednodušší a také levnější postup.

U současných karet je obvykle použita pouze slabá ochrana, jež má zabránit přímému přístupu ke křemíku. To nejúčinnější co se používá, je kapacitní senzor pro detekci přítomnosti pasivační vrstvy, nebo optický senzor pod neprůhledným umělohmotným obalem. Bohužel platí, že čím citlivější jsou tyto ochrany, tak tím méně je zařízení (čipová karta) robustní. Výsledkem je, že jsou jen zřídka používány, nebo je lze lehce odstranit. Téměř vždy záleží na programátoru aplikace, zda je bude používat, nebo ne.

Prvním problémem je opět získání přístupu k čipu. Oddělení od plastu je jednoduché. Nejdříve použijeme ostrý nůž pro odříznutí plastiku pod modulem čipu tak, aby byla vidět epoxidová vrstva. Poté na čip použijeme pár kapek koncentrované HNO3 (>98 %) a pár minut počkáme. Naleptanou hmotu smyjeme v acetonu. Tento postup opakujeme tak dlouho, abychom se dostali k celé ploše křemíku. Pokud nepoškodíme některý ze spojovacích drátků, tak bude čip funkční. Křemík (ani jeho sloučeniny), zlato a hliník s kyselinou téměř nereagují.

Někdy nepotřebujeme ani to a stačí odstranit materiál tak, aby bylo možno dostat se ke křemíku s mikrosondami - pro tento účel se používá ultrazvuk.

S takto připraveným čipem už můžeme dělat co chceme. Nejjednodušší je průzkum čipu s použitím mikrosond, kterými můžeme např. přemostit vypálené pojistky apod. Jestliže nalezneme vypálenou testovací pojistku, tak můžeme použít testovací programy, které např. vypisují celý obsah paměti.

3.1.2. Neinvazní útoky

Neinvazní útoky jsou založeny na využití informací, které unikají z odolného zařízení, aniž by bylo nutno ho nějak upravovat, během jeho provozu (příkon, čas výpočtu, elektromagnetické vyzařování). Jako příklad bych chtěl uvést výkonovou analýzu, kterou vyvinula firma Cryptography Research. Výkonová analýza obsahuje tři typy útoků - jednoduchou výkonovou analýzu (SPA), diferenciální výkonovou analýzu (DPA) a diferenciální výkonovou analýzu vyššího řádu (HO-DPA). Ukazuje se, že tyto útoky jsou extrémně mocné pro analýzu a mohou být použity kryptoanalytiky pro získání soukromých klíčů z kryptografických zařízení.

Tyto útoky nejsou pouze teoretické, ale byly s úspěchem použity pro analýzu velkého množství čipových karet. Zatímco některé karty jsou schopné odolat SPA, tak nebyl nalezen komerčně používaný produkt, který by odolal útoku metodou DPA.

Aplikace těchto analytických útoků je velice rychlá a cena potřebného zařízení je několik tisíc korun. Analýzu pomocí SPA lze provést během několika sekund. U DPA je tento čas poněkud větší díky její složitosti, ale stále jsou to řádově hodiny.

Základní skutečností, která je využita, je ignorování informací, které poskytuje konkrétní fyzická implementace odolného zařízení ze strany návrhářů odolných zařízení. Předpokládají, že jediné co má útočník k dispozici je vstup a výstup ze zařízení. Proto jediným cílem jejich bezpečnostní analýzy je samotný použitý algoritmus, který by měl být černou skříňka.

Princip výkonových analýz je založen na faktu, že spotřeba proudu tranzistorem se mění (různé stavy, přechody) a tím mimo jiné dochází k emitaci elektromagnetického záření. Jestliže se na problém podíváme abstraktněji, tak různé operace mikrokódu používají jiné množství tranzistorů a podle operandů dané operace se mění spotřeba těchto tranzistorů. My jsme jednoduchými prostředky schopni měřit změny v příkonu celého čipu (zařízení). Tyto informace je možné dále využít.

Útočník přímo sleduje spotřebu proudu v systému. Tímto postupem je možno např. identifikovat větší bloky instrukcí, které se třeba i opakují (cykly DESu, operace RSA atd.). Při vyšším rozlišení mohou být rozpoznány jednotlivé instrukce. Tato analýza může být použita např. na zlomení implementací RSA, protože odhalí rozdíly mezi operacemi násobení a umocňování. Podobně, mnoho implementací DESu má viditelné rozdíly mezi operacemi permutace a posun, takže mohou být rozlomeny. Čipových karet, jež jsou citlivé na tuto analýzu je velké množství, ale není zvlášť obtížné postavit zařízení, která jsou proti tomuto útoku odolná.
  Obrázek ukazuje sledování jedné operace DESu prováděné typickou čipovou kartou. Horní křivka ukazuje celou operaci šifrování včetně počáteční permutace, 16 kol šifrování a koncové permutace. Dolní křivka je detailním pohledem na druhé a třetí kolo šifrování.
DPA je mnohem výkonnějším útokem než SPA a je mnohem obtížnější jí zabránit. Zatímco SPA útoky používají primárně vizuální prohlížení pro identifikaci relevantních výkonových změn, tak DPA útoky používají statistickou analýzu a techniky pro korekci chyb pro získání informací, jež mají vztah k soukromým klíčů.

DPA se skládá ze dvou fází. Shromáždění dat a analýza dat. Sbírání dat pro DPA může být provedeno vzorkováním příkonu zařízení během kryptografických operací, jak už bylo popsáno. Pro DPA je potřeba posbírat množství (stovky až tisíce) kryptografických operací, jež používají cílový soukromý klíč.

Příklad průběhu DPA na DES:

Provedeme měření spotřeby proudu posledních několika cyklů z 1000 DESových operací. Každá množina vzorků obsahuje 100.000 bodů. Posbíraná data jsou dále reprezentována jako dvourozměrné pole S[0..999][0..99999], kde první index určuje operaci a druhý konkrétní vzorek. Útočník má i pole zašifrovaných textů C[0..999].

Útočník si vybere funkci D, jež je závislá na klíči. V tomto případě má formu D(Ki, C), kde Ki je nějaká informace o klíči a C je zašifrovaný text. Řekněme, že útočník chce najít 6 bitů DES klíče, které jsou vstupem jedné z operací DESu. Diferenciální průměrová stopa T[0..63][0..99999] je vytvořena z dat S použitím výsledků funkce D. Tedy

T[i][j]=SUMA[(D(i, C[k])-1/2)(S[k][j])]

Útočník ví, že jedna z hodnot Ki(index v poli T) je správná. Cílem je tedy určit správnou hodnotu. To provedeme tak, že počítáme korelaci jednotlivých řad v poli T s naměřenými příkony. U správné řady bude korelace nejvyšší. U vzorků ze špatných stop bude určitá malá fluktuace díky šumu a chybám, která bude tím nižší, čím více vstupních měření budeme mít k dispozici. Popsaným postupem je možno získat 48 z 56 bitů klíče. Zbytek už je snadné dohledat silou.

I když je nemožné zjistit přepnutí jednoho tranzistoru z přímého sledování příkonu, tak statistické operace použité při DPA jsou schopny spolehlivě identifikovat vyjímečně malé změny v příkonu.

Zatímco techniky DPA jež byly popsány výše analyzují informaci přes jednu událost mezi vzorky, tak DPA vyššího řádu používá pro korelaci informace mezi několika kryptografickými podpoperacemi. Primitivní pokusy návrhářů o pokrytí DPA útoků mohou vytvořit nové, nebo nezajistit existující slabé body využitelné pro HO-DPA.

V těchto útocích jsou posbírány informace z více zdrojů, např. signály posbírané pomocí různých měřících technik. Navíc je možno použít složitější diferenciální funkce (D). Celkově je základní HO-DPA mnohem obecnější než standardní DPA.

Dnes jsou HO-DPA v popředí zájmu výzkumníků a systémových implementátorů, i když zatím není znám systém, který by byl zranitelný HO-DPA a přitom nebyl zranitelný DPA. Obrana proti DPA, aby byla účinná, ovšem musí počítat i s HO-DPA.

3.2. Útoky vytvářením chyb při činnosti odolného zařízení

Tento typ útoků je možné opět rozdělit do třech menších skupin na útoky Nejprve uvedu některé konkrétní příklady, jež spadají do prvních dvou skupin a na závěr se budu věnovat asi nejzajímavějšímu útoku - diferenciální chybové analýze.

3.2.1. Fyzické poškození struktury čipu

Jak už bylo řečeno v úvodu, tak klasická čipová karta obsahuje tři typy paměti, které mají různé úlohy: ROM, EEPROM, RAM. Další důležitou součástí je samotný mikroprocesor. Jestliže bychom se pokusili nějakým způsobem poškodit procesor, tak bychom sice zapříčinili chyby v provádění výpočtů, ale nemuseli bychom být schopni získat smysluplné výsledky naší činnosti, např. získání obsahu paměti. Jsou ovšem výjimky, kdy jsou hardwarově implementovány konkrétní (např. šifrovací algoritmy). Mnohem vhodnějším cílem je proto paměť uchovávající programové vybavení čipu - jak ROM, tak EEPROM. Jednotlivé bity paměti mohou být přepsány za použití laserového řezacího mikroskopu. Jestliže máme např. čipovou kartu s implementací algoritmu DES a detailně tuto implementaci známe, tak můžeme najít paměťový bit s takovou vlastností, která nám umožní snadno získat šifrovací klíč. Kritéria pro výběr záleží na konkrétní implementaci. Můžeme změnit podmínění skok na nepodmíněný a tím snížit množství cyklů DESu na jeden, nebo můžeme zrušit operaci XOR s klíčem.

Jestliže neznáme a nemůže získat kompletní informaci o implementaci, tak může být tento útok použit trochu jiným způsobem. Cílem mohou být obsahy S-boxů, což jsou definice pro záměnu vstupní informace na výstupní tak, že šifrování se stane lineární transformací nad polem GF(2).

Příkladem takovéhoto útoku je útok na DES, který představili Biham a Shamir na workshopu o rychlém programovém šifrování v roce 1997. Myšlenkou je použití laseru na zničení určitého hradla v hardwarové implementaci známé blokové šifry.

Jako příklad uvedli DES, který je typicky implementován v hardwaru pomocí cyklu. Dále je použit registr, který uchovává výstup cyklu k a posílá ho zpět na začátek cyklu k+1. Ukázali, že jestliže nejméně významný bit v registru je pevně nastaven, pak nejméně významný bit ve výsledku je 0. Porovnáním 6 nejméně významných bitů levé a pravé poloviny je možné získat několik bitů klíče. S přibližně deseti šifrovanými texty z takto poškozeného zařízení je možné získat informace o částečných klíčích (použitých v jednotlivých cyklech šifrování) a pomocí diferenciální analýzy získat dostatek informací o klíči, ¨takže čas potřebný pro dohledání zbytku hrubou silou byl zanedbatelný.

V tomto případě už šifrování a dešifrování nejsou inverzní operace, takže je možno použít jednoduché kontroly. Libovolný vstupní vzorek je zašifrován a následně dešifrován a výsledek je porovnán se vstupem.

3.2.2. Změna obsahu paměti - EEPROM

Tímto útokem měníme obsah paměti přepisováním, ale na rozdíl od předchozích útoků nejsou tyto změny nevratné. Jestliže je algoritmus uložen v EEPROM, tak můžeme použít mikrosondy na nastavení (resetování) určitého bitu [2]. Zápis do paměti typu EEPROM je mnohem jednodušší než její čtení a cena takového útoku je celkem nízká.

Připomeňme si, že algoritmus DES používá klíče s lichou paritou a správná implementace vyžaduje, aby při vstupu klíče se špatnou paritou byla vrácena chybová zpráva. Přepokládejme, že víme kde je klíč uložen, ale nemůžeme ho přímo přečíst a nemáme vybavení, jež je popsáno v [3].

Nám ovšem stačí zapsat do daného bitu klíče určitou hodnotu (k tomu stačí 18V puls o délce 10 ms). Útok probíhá následujícím způsobem. Najdeme první bit klíče a nastavíme ho na 0. Poté se pokusíme provést šifrování s upraveným klíčem. Jestliže došlo k úspěšnému šifrování, tak hodnota bitu byla 0, jinak to byla 1. Takto postupně zpracujeme všechny bity klíče.

3.2.3. Chyby při provádění výpočtů

V této podkapitole se budeme věnovat technice, která je velmi úspěšná při aplikaci na konkrétních zařízeních a je založena na zákmitech na vstupech procesoru. Diferenciální chybová analýza (DFA) je velmi efektivní jako taková a je použitelná i při zpracování chyb, které vzniknou jinak než během výpočtu, ale jestliže ji spojíme s dále popsaným způsobem generování chyb, tak získáme velice účinný nástroj pro zjišťování vlastností a obsahu pamětí bezpečných odolných zařízení.

Samotný útok vychází z prací, kde byl popisován útok na zjištění šifrovacích klíčů jenž předpokládá indukování jednobitových chyb okolím. Ten byl popsán v [4]. V [5] byl tento útok rozšířen na reverzní inženýrství algoritmů, jejichž struktura je neznámá. A v [6] je diskutována možnost použití na algoritmus RSA (tedy neblokovou šifru). Všechny tyto útoky jsou pouze teoretické.

V [7] jsou tyto útoky vylepšeny takovým způsobem, že např. pro úspěšný útok na algoritmus DES je potřeba méně než 10 šifrovaných textů. Navíc je tento útok praktický v tom směru, že používá chybový model, který už byl implementován v útocích na reálné čipové karty.

Taková úspěšnost útoku je dána použitím zákmitů buď v napájecím napětí, nebo v hodinách. Použití tohoto způsobu bylo poprvé zmíněno v útoku na algoritmus RSA, což umožnilo radikálně snížit množství potřebných šifrovacích procesů.

Principem je použití časovacího pulsu, který je mnohem rychlejší než obvykle, nebo přechodu v napájecím napětí. Obě tyto akce často zapříčiní chybnou reakci procesoru, kdy čítač instrukcí je inkrementován, ale instrukce je buď provedena chybně, nebo vůbec. Standardní verze útoku nahrazuje jeden 5 MHz kmitu čtyřmi zákmity o frekvenci 20 Mhz.

Jaké jsou hlavní výhody tohoto útoku? Za prvé je to možnost přesně si určit, kde chceme chybu indukovat a na stejném místě ji můžeme vytvářet opakovaně (např. pomocí počítání hodinových pulsů od resetu karty). Další výhodu je to, že zákmit můžeme parametrizovat - můžeme zkoušet různé frekvence, nebo různě velké a rychlé přechody. Tím můžeme provádět operace podle přání, a to dokonce i takové, které nejsou mkódem karty podporovány. Další výhodou je jejich univerzálnost. Díky problematičnosti používání detektorů změn ve vstupních signálech nejsou tyto schopny na popsané změny reagovat, takže tento útok je účinný jak na čipové karty, tak i na další bezpečnostní procesory bez ohledu na výrobce.

Zjednodušená verze útoku Boneh-DeMillo-Lipton od Lenstry spočívá podle [6] na následujícím: “jestliže čipová karta vypočte RSA podpis na zprávu M modulo n, kde n=p.q tak, že počítá nejprve modulo p, potom modulo q a výsledky složí podle teorému čínských zbytků. Jestliže je při druhém výpočtu indukována chyba, tak jsme schopni okamžitě rozložit n podle vzorce p=gcd(n, Se-M), kde e je veřejný exponent”.

Toto je úplně ideální podmínka pro útok pomocí zákmitů, protože karta potřebuje téměř všechen čas pro výpočet podpisu a zákmit v kterémkoli okamžiku bude fungovat. Nalezení místa pro aplikaci útoku je tedy triviální. Navíc nám stačí pouze jedno provedení operace, takže útok je možné provádět on-line.

Mafie tak může sbírat tajné RSA klíče aniž by si banka, nebo klient něčeho všimli. Jestliže v novém systému EMV je doporučováno používat pouze 100.000 různých klíčů, tak mafie bude mít za chvíli kompletní sbírku.

Útok na DES je velmi jednoduchý. Odstraníme jednu z operací XOR, které kombinují klíče se vstupy do S-boxů v posledních dvou cyklech šifry a to budeme opakovat po každý oktet klíče. Chybové výstupní šifrované texty, které získáme jako výsledek útoku se budou lišit od správného šifrovaného textu výstupem dvou, max. tří S-boxů. V této chvíli použijeme techniku diferenciální kryptoanalýzy získáme kolem pěti bitů z osmi neXORovaných bitů jako indukovanou chybu. Takže při pěti textech získáme 40 bitů klíče.

Jediným problémem je určit správnou instrukci, na kterou budeme útočit. Většina čipových karet obsahuje sadu rutin, které jsou někdy označovány jako “operační systém”. Ty slouží jako knihovna pro komunikaci s kartou a pro další operace. Součástí těchto programů je i DES. Jestliže si koupíte za několik tisíc korun vývojovou sadu, tak získáte kompletní dokumentaci pro testováni. Jestliže tuto dokumentaci nemáte, tak je i tak nalezení správné instrukce nepříliš velkým problémem. Zjistilo se totiž, že poškození jakékoliv instrukce v posledních dvou cyklech šifry má obdobné účinky.

V [5] je diskutováno jak identifikovat strukturu neznámé blokové šifry v bezpečném hardwaru s použitím jednobitových chyb. Jako v předchozím případě zde používají chyby v posledním kole šifry. To může být provedeno hledáním šifrovaných textů s nízkými Hammingovými vzdálenostmi. Potom se určí, které výstupní bity odpovídají levé a které pravé polovině a poté se určí, které bity v levé polovině jsou poznamenány chybou v předposlední pravé polovině. V případě např. DESu lze velmi rychle zjistit strukturu a při dostatečném množství textů je možné rekonstruovat obsah S-boxů. Uvádějí, že s 500 texty je možné získat obecné schéma a s 10.000 texty i obsahy S-boxů.

Jestliže použijeme zákmity, tak si můžeme určovat, kterou instrukci vyřadíme a tím je celý proces mnohem jednodušší.

Předpokládejme, že máme algoritmus “Red Pike”, který byl navržen pro šifrování medicínských dat pro britskou vládu.

Aby vláda přesvědčila Britskou lékařskou asociaci, že Red Pike je kvalitní šifra vytvořila komisi 4 akademiků [7]. Jejich studie říká, že Red Pike “používá stejné instrukce jako RC5”, protože základními instrukcemi jsou sčítání, xor a bitový posun doleva. Nemá žádné vyhledávací tabulky, žádný seznam klíčů a vyžaduje pouze pět řádků kódu. “Vliv každého bitu se rychle rozšiřuje” a “každé šifrování vyžaduje zhruba 100 operací”.

Podle algoritmu RC5 se můžeme pokusit o odhad náročnosti zjištění algoritmu z čipové karty s tím, že u Red-Piku to bude méně, protože je jednodušší.

Začneme vynecháním poslední instrukce. Výsledkem je, že se změní pravá půlka výsledku (je to (B xor A) shl A). Jde tedy o Feistelovskou šifru bez závěrečné permutace. Po odejmutí další operace zjistíme, že to byl left shift o 32 bitů, ale nevíme, jak byl parametrizován. Další operace (xor) je jasná a další (přidání klíčového materiálu v předchozím kole) vyústí v hodnoty A a B v uvedeném výrazu. To vyjasňuje rotaci závislou na datech. Útočník může určit že algoritmus je definován jako:

A = ((A xor B) shl B) op key
B = ((B xor A) shl A) op key

Zjištění dosti složité tabulky klíčů u RC5 (a určení, že op je +) vyžaduje postupování zpět po jednotlivých krocích. Po určení operace op už však jednotlivé bity lze určit jednoduše.

Takže, bez tabulky klíčů, je RC5 nejhorší možnou volbou pro aplikaci do hardwaru s tajným algoritmem. Jestliže je Red Pike podobný s jednodušší tabulkou klíčů, tak bude ještě náchylnější k útokům.

Každopádně tajné algoritmy do bezpečného hardwaru by měli být mnohem složitější. Rozsáhlé S-boxy v EEPROM by měli učinit útok dražším. Dalšími opatřeními může být určování chyb, násobné šifrování s hlasováním.

4. Obrana proti útokům

Jak je vidět z předchozího přehledu, tak rozsah a rozmanitost útoků na odolná hardwarová zařízení je dosti velký. Tomu odpovídají i možné obrany. Na následujících řádcích je jakési shrnutí všech možných přístupů.

Vývoj speciálních lepidel a obalů čipů, které při pokusu o odebrání ničí i samotný čip. Jsou používány armádou USA a snaží se zabránit fyzickému přístupu k samotnému čipu. Příkladem může být čip pro Clipper, která má pojistky, jež jsou po naprogramování klíče přepáleny, vyrobeny z amorfního křemíku. Povrch čipu je navíc poset oscilátory, aby nebylo jednoduché sledovat činnost čipu.

Co se týče elektromagnetického vyzařování, tak ideální je použít optickou logiku, která bude možná jednou dostupná.

Existují hardwarové a softwarové techniky, které se snaží znesnadnit smysluplné měření unikajících informací v průběhu výpočtu. Zahrnují způsoby, jež se pokoušejí snížit množství uniklé informace, zavádět do měření šum, pokouší se dekorelovat vnitřní proměnné od tajných parametrů (šifrovacích klíčů) a dočasně dekoralovat kryptografické operace. Bohužel v aplikacích, kde útočníci mají možnost fyzicky získat zařízení nejsou tyto techniky příliš účinné.

Je možné navrhnout a implementovat kryptosystémy s předpokladem, že informace o výpočtu budou unikat a podle toho je změnit. Existující implementace kryptografických algoritmů (včetně RSA, DES, DSA, DH, El Gamal, elipických křivek) které udržují bezpečnost systému, i když obvody uvolňují určité informací o výpočtu.

Jinou obranou je přidání další výpočetní jednotky na čip, která bude provádět výpočty nad náhodnými čísly. To může maskovat spotřebu proudu pro druhou část čipu použitou pro šifrování, ale při použití statistických metod je možné se tohoto zkreslení zbavit.

Také je možné přidat paralelní šifrovací jednotku, která bude zrcadlit opravdové šifrovací operace. Jestliže se při šifrování bude násobit 101, tak druhá jednotka bude násobit číslem 010. To by mělo vyhladit křivku příkonu. Účinnost takového postupu je ovšem nejistá.

Co se týká chyb při výpočtu, tak je možno použít kontrolní výpočty. Např., máme-li inverzní operace (šifrování/dešifrování), tak provedením obou a porovnáním výsledku můžeme ověřit jejich správnost.

Vůbec je důležité odstranit místa programu, jejichž porušením dojde k nezjistitelné chybě při výpočtu. Jestliže v 50-tých letech existovali programátoři, kteří po vymaskování tří nejnižších bitů otestovali, jestli není výsledek větši než 7, tak to je přesně ten postup, který je potřeba používat při programování bezpečného hardwaru. Není od věci ani implementace násobného provádění bloku operací s následným hlasováním.

Určitou možností je i přepočítávání kontrolního součtu přes paměť obsahující programy zařízení, ale je třeba počítat s tím, že i algoritmus přepočtu může být cílem útoku.

Jestliže implementujeme tajné algoritmy do bezpečného hardwaru, tak bychom měli zajistit jejich dostatečnou složitost. Např. rozsáhlé S-boxy pro blokové šifrovací programy by měli učinit útok dražším.

5. Literatura

[1] S. Blythe, B. Fraboni, S. Lall, H. Ahmed, U. de Riu, Layout Reconstruction of Complex Silicon Chips, in IEEE Journal of Solid-State Circuits, v 28 n 2, Feb. 93, pp 138-145
[2] O. Kocar, Hardwarsicherheit von Mikrochips in Chipkarten, in Datenschutz und Datensicherheit v 20, no 7, (July 96), pp. 421-424
[3] R.J. Anderson, M. G. Kuhn, Tamper Resistance - a Cautionary Note, in The Second USENIX Workshop on Electronic Commerce Proceedings, pp.1-11
[4] E. Biham, A. Shamir, A New Cryptanalytic Attack on DES, preprint, 18/10/96
[5] E. Biham, A. Shamir, Differential Fault Analysis: Identifying the Structure of Unknown Ciphers Sealed in Tamper-Proof Devices, preprint, 10/11/96
[6] D. Boneh, R.A. DeMillo, R.J. Lipton, On the Importance of Checking Computations, preprint
[7] R. J. Anderson, M. G. Kuhn, Improved Differnetial Fault Analysis, 1996
[8] C. Mitchell, S. Murphy, F. Piper, P. Wild, Red Pike - An Assessment, Codes and Ciphers Ltd. 2/10/96
[9] Eli Biham, Adi Shamir, The Next Stage of Differential Fault Analysis: How to break completely unknown cryptosystems, October 30th, 1996
[10] Ross Anderson, Why Croptosystems Fail, in Comunications of the ACM v7 no11 (Nov 94), pp. 32-40
[11] P. Wayner, Cryptographers Discuss Finding of Security Flaw in ‘Smart Cards’, NY Times, June 10, 1998
[12] P. Kocher, J. Jaffe, B. Jun, Introduction to Differential Power Analysis and Related Attacks, Cryptography Research
[13] E. Biham, A. Shamir, Differential Fault Analysis of Secret Key Cryptosystems, Technical report CS 0910
[14] ] Ross Anderson, Markus Kuhn, Low Cost Attacks on Tamper Resistant Devices, proceedings of the 1997 Security Protocols Workshop, Paris, April 7-9, 1997
[15] Paul C.Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS and Other Systems, Lecture Notes in Computer Science, Advances in Cryptology, proceedings of CRYPTO’96, pp. 104-113, 1996