Articles

Sidokanalattack

eftersom sidokanalattacker är beroende av förhållandet mellan information som släpps ut (läckt) via en sidokanal och de hemliga uppgifterna faller motåtgärder i två huvudkategorier: (1) eliminera eller minska frisläppandet av sådan information och (2) eliminera förhållandet mellan den läckta informationen och de hemliga uppgifterna, det vill säga göra den läckta informationen orelaterad, eller snarare okorrelerad, till de hemliga uppgifterna, vanligtvis genom någon form av randomisering av chiffertexten som omvandlar data på ett sätt som kan ångras efter kryptografisk operation (t.ex. dekryptering) är klar.

under den första kategorin är skärmar med speciell avskärmning för att minska elektromagnetiska utsläpp, vilket minskar mottagligheten för STORMATTACKER, nu kommersiellt tillgängliga. Kraftledningskonditionering och filtrering kan hjälpa till att avskräcka kraftövervakningsattacker, även om sådana åtgärder måste användas försiktigt, eftersom även mycket små korrelationer kan förbli och äventyra säkerheten. Fysiska kapslingar kan minska risken för smyginstallation av mikrofoner (för att motverka akustiska attacker) och andra mikroövervakningsenheter (mot CPU-kraftdragning eller värmebildningsattacker).

en annan motåtgärd (fortfarande i den första kategorin) är att störa den utsända kanalen med brus. Till exempel kan en slumpmässig fördröjning läggas till för att avskräcka tidsattacker, även om motståndare kan kompensera för dessa förseningar genom att i genomsnitt mäta flera mätningar (eller, mer allmänt, använda fler mätningar i analysen). När mängden ljud i sidokanalen ökar måste motståndaren samla in fler mätningar.

en annan motåtgärd under den första kategorin är att använda säkerhetsanalysprogramvara för att identifiera vissa klasser av sidokanalattacker som kan hittas under designstadierna för den underliggande hårdvaran själv. Tidsattacker och cacheattacker kan båda identifieras genom vissa kommersiellt tillgängliga mjukvaruplattformar för säkerhetsanalys, vilket möjliggör testning för att identifiera själva attackens sårbarhet, liksom effektiviteten i den arkitektoniska förändringen för att kringgå sårbarheten. Den mest omfattande metoden för att använda denna motåtgärd är att skapa en säker utvecklingslivscykel för hårdvara, vilket inkluderar att använda alla tillgängliga säkerhetsanalysplattformar i sina respektive stadier av hårdvaruutvecklingslivscykeln.

När det gäller tidsattacker mot mål vars beräkningstider kvantiseras till diskreta klockcykelräkningar är en effektiv motåtgärd mot att utforma programvaran för att vara isokron, det vill säga att köra på exakt konstant tid, oberoende av hemliga värden. Detta gör tidsattacker omöjliga. Sådana motåtgärder kan vara svåra att genomföra i praktiken, eftersom även enskilda instruktioner kan ha variabel timing på vissa processorer.

en partiell motåtgärd mot enkla kraftattacker, men inte differentiella kraftanalysattacker, är att designa programvaran så att den är ”PC-säker” i ”program counter security model”. I ett PC-säkert program beror exekveringsvägen inte på hemliga värden. Med andra ord beror alla villkorliga grenar endast på offentlig information.(Detta är ett mer restriktivt tillstånd än isokron kod, men ett mindre restriktivt tillstånd än grenfri kod.) Även om multiplicera operationer drar mer kraft än NOP på praktiskt taget alla processorer, förhindrar användning av en konstant exekveringsväg sådana driftsberoende effektskillnader (skillnader i effekt från att välja en gren över en annan) från att läcka någon hemlig information.På arkitekturer där instruktionsexekveringstiden inte är databeroende är ett PC-säkert program också immun mot tidsattacker.

ett annat sätt på vilket kod kan vara icke-isokron är att moderna processorer har en minnescache: åtkomst till sällan använd information medför en stor tidsstraff, vilket avslöjar viss information om användningsfrekvensen för minnesblock. Kryptografisk kod utformad för att motstå cacheattacker försöker använda minne på ett förutsägbart sätt (som att bara komma åt input, output och programdata och göra det enligt ett fast mönster). Till exempel måste databeroende tabelluppslag undvikas eftersom cachen kan avslöja vilken del av uppslagstabellen som öppnades.

andra partiella motåtgärder försöker minska mängden information som läckt från databeroende effektskillnader.Vissa operationer använder kraft som är korrelerad med antalet 1 bitar i ett hemligt värde.Att använda en kod med konstant vikt (som att använda Fredkin gates eller dual-rail-kodning) kan minska läckaget av information om Hammingvikten för det hemliga värdet, även om exploaterbara korrelationer sannolikt kommer att förbli om inte balanseringen är perfekt. Denna ”balanserade design” kan approximeras i programvara genom att manipulera både data och dess komplement tillsammans.

flera ”säkra processorer” har byggts som asynkrona Processorer; de har ingen global tidsreferens. Medan dessa processorer var avsedda att göra timing och kraftattacker svårare, fann efterföljande forskning att tidsvariationer i asynkrona kretsar är svårare att ta bort.

ett typiskt exempel på den andra kategorin (dekorrelation) är en teknik som kallas bländande. När det gäller RSA-dekryptering med hemlig exponent d {\displaystyle d}

d

och motsvarande krypteringsexponent e {\displaystyle E}

e

och modul m {\displaystyle M}

m

, tekniken gäller enligt följande (för enkelhet utelämnas den modulära reduktionen med M i formlerna): innan dekryptering, det vill säga innan du beräknar resultatet av y d {\displaystyle y^{d}}

y^d

för en given chiffertext y {\displaystyle y}

y

, väljer systemet ett slumptal r {\displaystyle r}

r

och krypterar den med offentlig exponent e {\displaystyle E}

e

för att erhålla r e {\displaystyle r^{e}}

r^e

. Därefter görs dekrypteringen på r e {\displaystyle y\cdot r^{e}}

y \cdot r^e

för att erhålla ( y-sr r e ) d = y d-sr r e-d = y d-sr r {\displaystyle {(y\cdot r^{e})}^{d}=y^{d}\cdot r^{e\cdot d}=y^{d}\cdot r}

{(y \cdot r^e)}^d = y^d \cdot r^{e\cdot d} = y^d \cdot t

. Eftersom dekrypteringssystemet valde r {\displaystyle r}

r

, kan det beräkna sin inversa modulo m {\displaystyle m}

m

för att avbryta faktorn r {\displaystyle r}

r

i resultatet och få y d {\displaystyle y^{d}}

y^d

, det faktiska resultatet av dekrypteringen. För attacker som kräver insamling av sidokanalinformation från operationer med data som styrs av angriparen är blindning en effektiv motåtgärd, eftersom den faktiska operationen utförs på en randomiserad version av data, över vilken angriparen inte har någon kontroll eller ens kunskap.

en mer allmän motåtgärd (genom att den är effektiv mot alla sidokanalattacker) är maskeringsmotåtgärden. Principen för maskering är att undvika att manipulera något känsligt värde y {\displaystyle y}

y

direkt, utan snarare manipulera en delning av det: en uppsättning variabler (kallas ”aktier”) y 1,. . . , y d {\displaystyle y_{1},…, y_{d}}

y_{1},..., y_{d}

så att y = y 1 oc . . . [1] {\displaystyle y=y_{1}\oplus …\oplus y_{d}}

{\displaystyle y=y_{1}\oplus ...\ oplus y_{d}}

(där {\displaystyle \oplus}

\oplus

är xor-operationen). En angripare måste återställa alla värden på aktierna för att få någon meningsfull information. nyligen användes vitboxmodellering för att utveckla en generisk kretsnivåmotåtgärd med låg overhead mot både EM och power side-channel-attacker. För att minimera effekterna av metallskikten på högre nivå i en IC som fungerar som effektivare antenner är tanken att bädda in kryptokärnan med en signaturundertryckningskrets, dirigerad lokalt inom metallskikten på lägre nivå, vilket leder till både power och EM-sidokanalattackimmunitet.