Articles

Sidekanalangrep

fordi sidekanalangrep er avhengige av forholdet mellom informasjon som sendes ut (lekket) gjennom en sidekanal og de hemmelige dataene, faller mottiltak i to hovedkategorier: (1) eliminere eller redusere utgivelsen av slik informasjon og (2) eliminere forholdet mellom den lekkede informasjonen og de hemmelige dataene, det vil si at den lekkede informasjonen ikke er relatert, eller heller ukorrelert, til de hemmelige dataene, typisk gjennom en form for randomisering av chifferteksten som forvandler dataene på en måte som kan angres etter at kryptografisk operasjon (f.eks. dekryptering) er fullført.under den første kategorien er skjermer med spesiell skjerming for å redusere elektromagnetiske utslipp, noe som reduserer følsomheten for STORMANGREP, nå kommersielt tilgjengelige. Strømlinjekondisjonering og filtrering kan bidra til å avskrekke strømovervåkingsangrep, selv om slike tiltak må brukes forsiktig, siden selv svært små korrelasjoner kan forbli og kompromittere sikkerheten. Fysiske innkapslinger kan redusere risikoen for surreptitious installasjon av mikrofoner (for å motvirke akustiske angrep) og andre mikro-overvåking enheter (MOT CPU power-draw eller thermal-imaging angrep).

En annen mottiltak (fortsatt i den første kategorien) er å jamme den utstrålede kanalen med støy. For eksempel kan en tilfeldig forsinkelse legges til for å avskrekke tidsangrep, selv om motstandere kan kompensere for disse forsinkelsene ved å gjennomsnittlig flere målinger (eller, mer generelt, ved å bruke flere målinger i analysen). Etter hvert som mengden støy i sidekanalen øker, må motstanderen samle flere målinger.Et annet mottiltak under den første kategorien er å bruke programvare for sikkerhetsanalyse for å identifisere bestemte klasser av sidekanalangrep som kan bli funnet under designfasen av den underliggende maskinvaren selv. Tidsangrep og hurtigbufferangrep er begge identifiserbare gjennom visse kommersielt tilgjengelige programvareplattformer for sikkerhetsanalyse, som tillater testing for å identifisere selve angrepssårbarheten, samt effektiviteten av den arkitektoniske endringen for å omgå sårbarheten. Den mest omfattende metoden for å benytte denne mottiltaket er å skape En Sikker Utviklingslivssyklus for maskinvare, som inkluderer å utnytte alle tilgjengelige sikkerhetsanalyseplattformer på deres respektive stadier av maskinvareutviklingslivssyklusen.i tilfelle av timing angrep mot mål hvis beregningstider er kvantisert i diskrete klokke syklus teller, er en effektiv mottiltak mot å designe programvaren til å være isokron, det vil si å kjøre i en nøyaktig konstant tid, uavhengig av hemmelige verdier. Dette gjør timing angrep umulig. Slike mottiltak kan være vanskelig å implementere i praksis, siden selv individuelle instruksjoner kan ha variabel timing på enkelte Cpuer.et delvis mottiltak mot enkle strømangrep, men ikke differensielle strømanalyseangrep, er å designe programvaren slik at den er «PC-sikker» i «program counter security model». I ET PC-sikkert program er kjøringsbanen ikke avhengig av hemmelige verdier. Med andre ord er alle betingede grener bare avhengig av offentlig informasjon.(Dette er en mer restriktiv tilstand enn isokron kode, men en mindre restriktiv tilstand enn grenfri kode.) Selv om multipliser operasjoner trekker mer strøm enn NOP på praktisk talt alle Cpuer, forhindrer en konstant utførelsesbane at slike driftsavhengige strømforskjeller (forskjeller i strøm fra å velge en gren over en annen) lekker noen hemmelig informasjon.På arkitekturer der instruksjonens kjøretid ikke er dataavhengig, ER ET PC-sikkert program også immun mot tidsangrep.En annen måte hvor kode kan være ikke-isokron er at moderne Cpuer har en minnebuffer: tilgang til sjelden brukt informasjon medfører en stor timingstraff, og avslører litt informasjon om hyppigheten av bruk av minneblokker. Kryptografisk kode designet for å motstå cache-angrep forsøker å bruke minne på bare en forutsigbar måte (for eksempel å få tilgang til bare inngang, utganger og programdata, og gjøre det i henhold til et fast mønster). Dataavhengige tabelloppslag må for eksempel unngås fordi hurtigbufferen kan avsløre hvilken del av oppslagstabellen som ble åpnet.

Andre delvise mottiltak forsøker å redusere mengden informasjon lekket fra dataavhengige strømforskjeller.Noen operasjoner bruker strøm som er korrelert med antall 1 biter i en hemmelig verdi.Ved hjelp av en konstant vekt kode (for eksempel Ved Hjelp Av Fredkin gates eller dual-rail koding) kan redusere lekkasje av informasjon Om Hamming vekten av den hemmelige verdien, selv om utnyttbare korrelasjoner er sannsynlig å forbli med mindre balansering er perfekt. Denne «balansert design» kan tilnærmes i programvare ved å manipulere både dataene og komplementet sammen.Flere «sikre Cpuer» har blitt bygget som asynkrone Cpuer; de har ingen global tidsreferanse. Mens Disse Cpuene var ment å gjøre timing og kraftangrep vanskeligere, fant senere forskning at timingvariasjoner i asynkrone kretser er vanskeligere å fjerne.et typisk eksempel på den andre kategorien (dekorrelasjon) er en teknikk kjent som blinding. I tilfelle av rsa dekryptering med hemmelig eksponent d {\displaystyle d}

d

eog modulus m {\displaystyle m}

m

, teknikken gjelder som følger (for enkelhet er den modulære reduksjonen med m utelatt i formlene): før dekryptering, det vil si før du beregner resultatet av y d {\displaystyle y^{d}}

y^d

for en gitt chiffertekst y {\displaystyle y}

y

, velger systemet et tilfeldig tall r {\displaystyle r}

r

og krypterer den med offentlig eksponent e {\displaystyle e}

e

for å få r e {\displaystyle r^{e}}

r^e

. Deretter blir dekrypteringen gjort på ⋅ r e {\displaystyle r e {\displaystyle y \cdot r^{e}}

y\cdot r^e

for å oppnå ( y ⋅ r e ) d = y d ⋅ r e = y d ⋅ 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

. Siden dekrypteringssystemet valgte r {\displaystyle r}

r

, kan det beregne sin inverse modulo m {\displaystyle m}

m

for å avbryte faktoren r {\displaystyle r}

r

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

y^d

, det faktiske resultatet av dekrypteringen. For angrep som krever innsamling av sidekanalinformasjon fra operasjoner med data kontrollert av angriperen, er blinding en effektiv motforanstaltning, siden den faktiske operasjonen utføres på en randomisert versjon av dataene, over hvilken angriperen ikke har kontroll eller til og med kunnskap. en mer generell mottiltak (ved at den er effektiv mot alle sidekanalangrep) er maskeringstiltaket. Prinsippet med maskering er å unngå å manipulere noen sensitiv verdi y {\displaystyle y}

y

direkte, men heller manipulere en deling av den: et sett med variabler (kalt «aksjer») y 1 , . . . , y d {\displaystyle y_ {1},…,y_{d}}

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

slik at y = y 1 ⊕ . . . ⊕ y d {\displaystyle y=y_{1}\oplus …\oplus y_{d}}

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

(hvor ⊕ {\displaystyle \oplus }

\oplus

ER xor-operasjonen). En angriper må gjenopprette alle verdiene av aksjene for å få noen meningsfull informasjon. nylig ble white-box modellering benyttet for å utvikle en lav-overhead generisk krets-nivå mottiltak mot BÅDE EM samt makt side-kanal angrep. For å minimere effekten av metalllagene på høyere nivå i EN ic som fungerer som mer effektive antenner, er ideen å legge inn kryptokjernen med en signaturundertrykkelseskrets, rutet lokalt innenfor metalllagene på lavere nivå, som fører til både kraft-og em-sidekanalangrepimmunitet.