Articles

Atac Side-channel

deoarece atacurile side-channel se bazează pe relația dintre informațiile emise (scurgeri) printr-un canal lateral și datele secrete, contramăsuri se încadrează în două categorii principale: (1) Eliminați sau reduceți eliberarea acestor informații și (2) eliminați relația dintre informațiile scurse și datele secrete, adică faceți ca informațiile scurse să nu aibă legătură, sau mai degrabă necorelate, cu datele secrete, de obicei printr-o formă de randomizare a textului cifrat care transformă datele într-un mod care poate fi anulat după operația criptografică (de exemplu, decriptarea) este finalizată.

în prima categorie, afișajele cu ecranare specială pentru a reduce emisiile electromagnetice, reducând susceptibilitatea la atacurile de furtună, sunt acum disponibile în comerț. Condiționarea și filtrarea liniilor electrice pot ajuta la descurajarea atacurilor de monitorizare a energiei, deși astfel de măsuri trebuie utilizate cu precauție, deoarece chiar și corelații foarte mici pot rămâne și pot compromite securitatea. Incintele fizice pot reduce riscul instalării ascunse a microfoanelor (pentru a contracara atacurile acustice) și a altor dispozitive de micro-monitorizare (împotriva atacurilor de extragere a puterii procesorului sau a imaginilor termice).

o altă contramăsură (încă în prima categorie) este blocarea canalului emis cu zgomot. De exemplu, se poate adăuga o întârziere aleatorie pentru a descuraja atacurile de sincronizare, deși adversarii pot compensa aceste întârzieri prin medierea mai multor măsurători (sau, mai general, folosind mai multe măsurători în analiză). Pe măsură ce cantitatea de zgomot din canalul lateral crește, adversarul trebuie să colecteze mai multe măsurători.

o altă contramăsură din prima categorie este utilizarea software-ului de analiză a securității pentru a identifica anumite clase de atacuri ale canalelor laterale care pot fi găsite în timpul etapelor de proiectare ale hardware-ului de bază în sine. Atacurile de sincronizare și atacurile cache sunt ambele identificabile prin anumite platforme software de analiză de securitate disponibile în comerț, care permit testarea pentru a identifica vulnerabilitatea atacului în sine, precum și eficacitatea modificării arhitecturale pentru a eluda vulnerabilitatea. Cea mai cuprinzătoare metodă de a utiliza această contramăsură este de a crea un ciclu de viață sigur de dezvoltare pentru hardware, care include utilizarea tuturor platformelor de analiză de securitate disponibile în etapele respective ale ciclului de viață al dezvoltării hardware.

în cazul atacurilor de sincronizare împotriva țintelor ale căror timpi de calcul sunt cuantificați în numărări discrete ale ciclului de ceas, o contramăsură eficientă împotriva este proiectarea software-ului pentru a fi izocron, adică pentru a rula într-un timp exact constant, independent de valorile secrete. Acest lucru face ca atacurile de sincronizare să fie imposibile. Astfel de contramăsuri pot fi dificil de implementat în practică, deoarece chiar și instrucțiunile individuale pot avea sincronizare variabilă pe unele procesoare.

o contramăsură parțială împotriva atacurilor simple de putere, dar nu și a atacurilor diferențiale de analiză a puterii, este de a proiecta software-ul astfel încât să fie „PC-secure” în „modelul de securitate al contorului de programe”. Într-un program securizat pentru PC, calea de execuție nu depinde de valorile secrete. Cu alte cuvinte, toate ramurile condiționate depind doar de informațiile publice.(Aceasta este o condiție mai restrictivă decât codul izocron, dar o condiție mai puțin restrictivă decât codul fără ramură.) Chiar dacă operațiunile de multiplicare atrag mai multă putere decât NOP pe practic toate procesoarele, utilizarea unei căi de execuție constante împiedică astfel de diferențe de putere dependente de funcționare (diferențele de putere de la alegerea unei ramuri peste alta) să scurgă orice informație secretă.Pe arhitecturile în care timpul de execuție a instrucțiunilor nu depinde de date, un program securizat pentru PC este, de asemenea, imun la atacurile de sincronizare.

Un alt mod în care codul poate fi non-izocron este că procesoarele moderne au o memorie cache: accesarea informațiilor utilizate rar implică o penalizare mare de sincronizare, dezvăluind unele informații despre frecvența utilizării blocurilor de memorie. Cod criptografic conceput pentru a rezista atacurilor cache încearcă să utilizeze memoria doar într-un mod previzibil (cum ar fi accesarea numai a datelor de intrare, ieșiri și program, și de a face acest lucru în conformitate cu un model fix). De exemplu, căutările tabelelor dependente de date trebuie evitate, deoarece memoria cache ar putea dezvălui ce parte a tabelului de căutare a fost accesată.

alte contramăsuri parțiale încearcă să reducă cantitatea de informații scurse din diferențele de putere dependente de date.Unele operații utilizează puterea care este corelată cu numărul de 1 biți într-o valoare secretă.Utilizarea unui cod cu greutate constantă (cum ar fi utilizarea Fredkin gates sau codificare dual-rail) poate reduce scurgerea de informații despre greutatea Hamming a valorii secrete, deși corelațiile exploatabile sunt susceptibile să rămână, cu excepția cazului în care echilibrarea este perfectă. Acest „design echilibrat” poate fi aproximat în software prin manipularea atât a datelor, cât și a complementului acestora.

Mai multe „procesoare securizate” au fost construite ca procesoare asincrone; nu au nicio referință globală de sincronizare. În timp ce aceste procesoare au fost destinate să facă atacurile de sincronizare și putere mai dificile, cercetările ulterioare au constatat că variațiile de sincronizare în circuitele asincrone sunt mai greu de eliminat.

un exemplu tipic al celei de-a doua categorii (decorrelation) este o tehnică cunoscută sub numele de orbire. În cazul decriptării RSA cu exponentul secret d {\displaystyle d}

d

și exponentul de criptare corespunzător e {\displaystyle e}

e

și modulul m {\displaystyle M}

m

, tehnica se aplică după cum urmează (pentru simplitate, reducerea modulară cu M este omisă în formule): înainte de a decripta, adică înainte de a calcula rezultatul y d {\displaystyle y^{d}}

y^d

pentru un text cifrat dat y {\displaystyle y}

y

, sistemul alege un număr aleatoriu r {\displaystyle r}

r

și îl criptează cu exponentul public e {\displaystyle e}

e

pentru a obține r e {\displaystyle r^{e}}

r^e

. Apoi, decriptarea se face pe r e {\displaystyle y\cdot r^{e}}

y \cdot r^e

pentru a obține ( y r e ) d = y d r e d = y d r e d {\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

. Deoarece sistemul de decriptare a ales r {\displaystyle r}

r

, poate calcula modulo invers m {\displaystyle M}

m

pentru a anula factorul r {\displaystyle r}

r

în rezultat și obțineți y d {\displaystyle y^{d}}

y^d

, rezultatul real al decriptării. Pentru atacurile care necesită colectarea informațiilor canalului lateral din operațiuni cu date controlate de atacator, orbirea este o contramăsură eficientă, deoarece operațiunea reală este executată pe o versiune randomizată a datelor, asupra căreia atacatorul nu are control sau chiar cunoștințe.

o contramăsură mai generală (prin faptul că este eficientă împotriva tuturor atacurilor cu canale laterale) este contramăsura de mascare. Principiul de mascare este de a evita manipularea orice valoare sensibilă y {\displaystyle y}

y

direct, ci mai degrabă manipula o partajare de ea: un set de variabile (numite „acțiuni”) și 1,. . . , y d {\displaystyle Y_{1},…,y_{d}}

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

astfel încât y = y 1 inkt . . . Y_ {\displaystyle y=Y_{1}\oplus …\oplus y_{d}}

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

(unde {\displaystyle \oplus}

\oplus

este operația XOR). Un atacator trebuie să recupereze toate valorile acțiunilor pentru a obține informații semnificative.

recent, modelarea cutiei albe a fost utilizată pentru a dezvolta o contramăsură generică la nivel de circuit scăzut, atât împotriva atacurilor EM, cât și a atacurilor cu canale laterale. Pentru a minimiza efectele straturilor metalice de nivel superior într-un IC care acționează ca antene mai eficiente, ideea este de a încorpora miezul criptografic cu un circuit de suprimare a semnăturii, direcționat local în straturile metalice de nivel inferior, ducând atât la putere, cât și la imunitatea de atac a canalului lateral EM.