Prevenirea hacking-ului usb-token
Aproape peste tot, când se utilizează o semnătură electronică, token-ul USB (denumit în continuare "token") este folosit pentru a stoca și a acționa ulterior. Care este exact alegerea? Despre faptul că cheia privată însăși este stocată permanent pe token și că fără a cunoaște codul PIN, nu puteți accesa cheia privată, știu totul. Dar este într-adevăr așa?
Să aruncăm o privire mai atentă la jetonul dispozitivului din exemplul etoken PRO (Java) / 72K.
Potrivit producătorului, caracteristicile acestuia sunt următoarele:
Athena OS755, mașină virtuală Java încorporată
(complet compatibil cu standardul Sun Java Card)
Interfețe și standarde acceptate
- PKCS # 11 versiunea 2.01,
- Microsoft CryptoAPI,
- PC / SC,
- Certificatele X.509 v3, SSL v3, IPSec / IKE,
- Microsoft CCID,
- eToken Minidriver
Versiunile acceptate ale kitului de dezvoltare
eToken SDK 4.5 și versiuni ulterioare
După cum se poate vedea din specificație, dispozitivul se bazează pe microcontrolerul Atmel AT90SC25672RCT-USB.
AT90SC25672RCT-USB este un microcontroler de 8/16-biți bazat pe arhitectura RISC avansată a secureAVR cu coprocesor criptografic, ROM programabil, EEPROM pentru stocarea datelor de utilizator de 72Kb. AT90SC25672RCT-USB se caracterizează prin consum redus de energie și performanțe ridicate. Microcontrolerul are 135 de instrucțiuni, majoritatea fiind efectuate într-un singur ciclu de ceas, astfel încât performanța atinge 1 MIPS / MHz. Arhitectura microcontrolerului conține 32 de registre de uz general conectate direct la ULE, ceea ce permite o instrucțiune de a accesa două registre diferite pentru fiecare ciclu de sincronizare. Figura 1 prezintă arhitectura microcontrolerului.
Să se abată de la componenta hardware și să ia în considerare posibile atacuri pe acest dispozitiv. Orice algoritm de criptare are o implementare proprie, atât software cât și hardware. În același timp, dacă algoritmul este matematic "perfect", în practică acesta va fi implementat într-un program care va fi executat într-un anumit mediu pe un anumit procesor. În general, în diferite etape ale algoritmului, dispozitivul care o implementează va schimba parametrii cum ar fi consumul de energie, radiația electromagnetică etc. Utilizând aceste date, este posibil să obțineți informații cheie. Atacurile de acest tip sunt clasificate ca atacuri pe canale terțe.
Atacurile pe canalele terțe sunt împărțite în două tipuri: active și pasive. Atacurile active includ cele în care are loc un impact direct asupra unui sistem care își schimbă comportamentul. Efectul poate fi ireversibil pentru sistem. Pasivul se referă la atacuri în care nu există efecte vizibile asupra sistemului și sistemul funcționează în modul normal.
Figura 1 - Arhitectura microcontrolerului Atmel AT90SC25672RCT-USB
Microcontrolerul poate rezista atacurilor asupra consumului de energie (SPA / DPA); la atacurile de radiații electromagnetice (SEMA / DEMA); la atac de timp; la atacuri asupra radiațiilor vizibile. Toate atacurile de mai sus se referă la atacuri pasive asupra canalelor terțelor părți.
- Atacurile asupra consumului de energie - în diferite etape ale algoritmului, consumul de energie este diferit (atacurile asupra radiației e / m sunt similare cu această clasă de atacuri - în diferite etape ale algoritmului, radiația e / m este diferită);
- Time Attack - Diferite operații de algoritm sunt efectuate pentru un număr diferit de cicluri;
- Atacuri de radiație - Utilizând un senzor de intensitate a luminii cu precizie ridicată, este posibil să măsurați modificările intensității luminii împrăștiate de la indicatorul LED în diferite etape ale algoritmului.
Pentru a contracara atacurile active, cum ar fi atacurile asupra erorilor de calcul și a atacurilor sonore, se aplică protecție activă, caracteristicile cărora producătorul nu le dezvăluie din motive evidente.
Funcțiile de protecție AT90SC25672RCT-USB sunt reprezentate de următorul set:
Astfel, tokenul este rezistent la atacurile pe canale terță parte, dar este vulnerabil la alte tipuri de atacuri comune tuturor dispozitivelor cu cod PIN - interceptare în momentul intrării. Acesta poate fi un troian pe computerul utilizatorului, o micro-cameră cu o vedere bună, un senzor acustic și alte modalități de punere în aplicare a intercepției. De asemenea, nu uitați de criptanaliza termorectuală. Și știind codul PIN, nu este greu să scoți cheia secretă - nu este mai dificil decât copierea fișierului (cu condiția ca atacatorul să aibă un atacator).
Din toate acestea, rezultă că piatra de temelie a securității EP când este stocată pe cheia privată este codul PIN și trebuie să îl stocați în consecință.