MCU conectate
Astăzi, microcontrolerele (MCU) şi-au găsit calea în aproape orice aplicaţie – în zonele tradiţionale de la maşini industriale şi industria auto la noi zone precum dispozitive purtabile şi chiar şi haine “inteligente”. Din ce în ce mai mult, proiectarea cu microcontrolere încorporează modalităţi de conectare, cum ar fi de exemplu Bluetooth Smart, Wi-Fi de ultra joasă putere, NFC şi Zigbee. Microcontrolerele conectate trebuie să îşi controleze propriile stări şi resurse, să captureze şi să proceseze datele senzoriale, să realizeze analize şi să menţină stocarea în siguranţă; ele trebuie de asemenea să comunice cu o gazdă cu comandă de la distanţă cu scop de transport de date, platformă de management şi actualizări OTA.
Odată cu dezvoltarea de aplicaţii din ce în ce mai sofisticate şi conectate, ameninţările pentru platformele embedded au crescut semnificativ. Securitatea trebuie să fie un considerent principal, nu un gând întârziat. În cazul unui MCU, există câteva metode de a realiza securitatea. Acestea includ pornire sigură şi actualizare sigură a programelor. Suplimentar, procesoarele cu unitate de protecţie a memoriei (MPU) pot îmbunătăţi securitatea sistemului prin prevenirea accesului neautorizat la pornirea programului şi executarea de programe în mod kernel care nu sunt de încredere.
Protecţia prin chei şi rezistenţa la falsificare sunt alte măsuri de securitate importante. Funcţiile anti-falsificare pot preveni ca dispozitivele externe să citească memoria nucleu şi/sau să observe ce program se execută – oferind încă un nivel de securitate împotriva atacurilor externe.
O altă metodă de securitate cheie este de a utiliza avantajul tehnologiei de virtualizare hardware oferit de unele CPU. Cu virtualizare hardware este posibilă construirea unui microcontroler care poate rula aplicaţii izolate, multiple, nemodificate, independent şi sigur pe aceeaşi platformă de încredere. Clienţii finali pot utiliza această caracteristică pentru a oferi o cale sigură pentru actualizări/descărcări şi pot beneficia de protecţie IP.
De ce Micro-virtualizare
Virtualizarea hardware este asociată uzual cu tehnologia de procesor clasă server. Ea a fost utilizată mulţi ani pe platformele de servere pe 64 de biţi, fiind dovedită şi larg răspândită în fabrici. Virtualizarea poate activa consolidarea de sarcini de lucru similare şi nesimilare în centre de date pentru a scădea costurile hardware şi de infrastructură (capex) şi pentru a reduce consumul energetic, necesitatea de răcire (opex) etc.
Într-o platformă embedded, utilizarea virtualizării este diferită; scopul primar este de a asigura securitatea prin separare. Definim “securitate” ca abilitatea de a izola, păzi şi întări software-ul gazdă.
O astfel de tehnică permite consolidarea de multiple CPU-uri embedded diferite într-un singur nucleu, conducând la o suprafaţă de siliciu mai mică şi efort de dezvoltare mai redus, scăzând costul global şi extinzând durata de viaţă a bateriilor.
Totul începe cu izolarea. Prin virtualizare, resursele comune ale platformei hardware pot fi partiţionate în medii separate logic, la care ne referim ca maşini virtuale (VM). Fiecare VM este compusă din aplicaţii şi sistemul de operare relevant (dacă este necesar). Prin virtualizare hardware este posibilă separarea şi protejarea unor elemente critice, precum interfeţele de comunicaţie (şi pachetele software), dispozitivele de stocare sau alte resurse, în spaţiile proprii de adresă şi asigurarea faptului că nu există acces de la/către oricare adresă a altei aplicaţii.
În figura 1 este prezentată o privire asupra virtualizării într-un mediu embedded. Nucleele MIPS M5100 şi M5150 IP sunt CPU cu amprentă redusă, cu abilitatea de a realiza izolarea a până la şapte Oaspeţi (GUEST). În majoritatea aplicaţiilor de virtualizare de astăzi, sunt tipice până la trei medii izolate; CPU M51xx permit scalabilitate superioară. Odată ce elementele critice sunt izolate de vulnerabilităţile potenţiale, următorul pas în protecţie este de a implementa şi asigura încredere pentru fiecare mediu izolat. Pentru a asigura încrederea, pot fi utilizate un RoT (Root of Trust) şi servicii de securitate asociate – atât autentificare cât şi intimitate. Platforma virtualizată se bazează pe un hipervizor de încredere, care creează şi gestionează VM-urile, executându-se la nivelul Root cu cele mai mari privilegii al procesorului – de asemenea prezentat în figura 1.
Integritatea structurală a hipervizorului poate fi menţinută urmând un proces de boot-are de încredere. Integritatea operaţională nu este compromisă atâta vreme cât hipervizorul rulează în contextul său unic, oferit de hardware şi este izolat în spaţiul său adresă. Fiecare spaţiu de adresă este protejat de unitatea de management a memoriei rădăcină (MMU), al cărei conţinut poate fi blocat imediat după pornire pentru a oferi o izolare absolută a tuturor spaţiilor adresă.
Figura 2 prezintă avantajele potenţiale ale virtualizării în aplicaţii embedded. În acest caz, un CPU MIPS M5150 este configurat pentru a suporta până la trei medii distincte izolate. Fiecare mediu este izolat şi protejat de celelalte, inclusiv memoria şi IO. În general, RoT şi serviciile de securitate furnizate sunt atribuite unui mediu de încredere. Serviciile de securitate RoT cerute de celelalte medii (VM2 sau VM3) sunt redirecţionate şi gestionate de mediul sigur al VM1.
Construirea încrederii într-un mediu virtual
Figura 3 prezintă cei patru cuadranţi necesari pentru crearea securităţii prin separarea şi stabilirea unui mediu de încredere. MIPS M5150 poate fi divizat în patru zone/cuadranţi bazaţi pe două axe. Acest lucru este în contrast cu operarea tradiţională cu o singură axă a spaţiilor Kernel şi de utilizator (User). Aceste spaţii sunt grupate într-un context Root (rădăcină) şi Guest (oaspete).
Guest-User: zona utilizatorului cu cele mai reduse privilegii, unde sunt în general executate aplicaţiile bogate.
Guest-Kernel: spaţiul tipic Kernel al unui CPU în care sunt executate sarcinile privilegiate la nivel de sistem de operare. Exemple pot fi Linux; intrare-ieşire, gestionarea întreruperilor şi alocarea memoriei.
Root-User: o singură stare privilegiată a CPU, care poate executa aplicaţii protejate.
Root-Kernel: Starea de execuţie cea mai privilegiată a CPU, unde sunt executate instrucţiunile privilegiate. Excepţiile de la încălcare pot fi gestionate în această stare. Al doilea nivel al managementului memoriei, utilizat pentru a întări protecţia resurselor, este de asemenea gestionat de această stare. Un hipervizor de încredere poate gestiona operarea aplicaţiilor de încredere şi toţi ceilalţi oaspeţi (Guest) protejaţi.
Atât Guest-User, cât şi Guest-Kernel pot fi replicaţi pentru a crea domenii izolate multiple.
Contextele Guest sunt replicate în domenii paralele sau medii, fiecare izolat de un mecanism hardware. În cazul M5150, pot fi stabilite până la şapte contexte Guest, aducând la opt numărul total de contexte posibile.
Contextul rădăcină (Root) se execută la o stare privilegiată în M5150; acesta permite executarea în acest context de instrucţiuni privilegiate, rutine software, întreruperi şi excepţii, oferind un mecanism de control, management şi terminare a serviciilor Guest după necesitate. Accesul de la oricare resursă Guest către Root poate fi blocat de hardware. Totuşi, contextul Root poate acţiona ca un proxy pentru a oferi acces indirect la resurse restricţionate sau prohibite.
Contextul Root poate menţine o stare de izolare; în orice caz, pentru a stabili şi menţine încrederea, un RoT poate fi implementat pentru a porni SoC după alimentare într-o stare cunoscută. Complexitatea RoT poate varia de la aplicaţie la aplicaţie şi depinde de profilul atacului şi protecţiei.
Caracteristici de nucleu dublu într-o amprentă cu un singur nucleu
Pe lângă oferirea unei baze de securitate prin separare, virtualizarea hardware poate oferi şi alte avantaje semnificative pentru MCU. Într-un dispozitiv embedded, virtualizarea hardware poate fi utilizată pentru a reduce supraîncărcarea CPU, a aloca dinamic lăţime de bandă pentru CPU pe aplicaţie, a creşte utilizarea hardware şi oferirea unui management de sistem mai flexibil. Pentru numeroase aplicaţii industriale, de case conectate şi vehicule conectate, este posibilă o reducere de costuri prin înlocuirea de nuclee CPU multiple cu un singur nucleu.
MCU-urile cu nucleu dublu sunt tipic vizate de aplicaţii care au situaţii de utilizare mixtă, figura 4(a). Un nucleu de performanţe mai reduse este utilizat în funcţionalităţi de nivel mai redus, precum control senzorial, în vreme ce un altul cu performanţe mai ridicate gestionează sarcini mai complexe pentru procesare audio şi alte aplicaţii multimedia. Acest tip de configuraţie poate fi văzută în numeroase aplicaţii embedded, IoT şi purtabile.
Utilizarea unui singur nucleu permite ca sarcinile să fie gestionate cu resurse separate, atât ca memorie, cât şi ca IO, permiţând separarea sarcinilor fără a adăuga complexitatea unui nucleu dublu, figura 4(b). Performanţa adiţională oferă de asemenea mai multă flexibilitate pentru dimensionare pentru noi aplicaţii, fără limitele fixe ale partiţiei nucleului dublu. Prin comparaţie cu procesoarele embedded cu nucleu dublu competitoare, procesorul MIPS M5150 cu un singur nucleu oferă o creştere a performanţelor cu până la 35%, scăzând suprafaţa ocupată cu 10%, conducând astfel la o operare mai eficientă. Designul cu un singur nucleu virtualizat, reduce complexitatea, timpul de interconectare şi depanare, şi îmbunătăţeşte securitatea şi flexibilitatea.
Exemplu de utilizare
Un dispozitiv nod IoT trebuie să gestioneze multiple cerinţe de securitate, inclusiv pornire de încredere, operare şi comunicare sigură şi de încredere – pentru a numi numai câteva.
Virtualizarea hardware permite flexibilitatea implementării unei soluţii care se poate scala şi adapta cerinţelor unui dispozitiv nod IoT, menţinând în acelaşi timp costul general al implementării, validarea, cerificarea şi operarea dispozitivului. În figura 5, aplicaţia de încredere manipulează toate sarcinile legate de securitate, precum controlul senzorilor în timpul capturării, procesării şi stocării datelor sensibile; stabileşte separat comunicaţia sigură către gazdă, fie local, fie în cloud. Aplicaţia OEM menţine izolaţia de oricare aplicaţie terţă. Pentru aplicaţia terţă, implementarea în mediul său propriu simplifică validarea, implementarea şi revocarea, furnizând un alt nivel de securitate pentru serviciile de bază. Într-un mediu casnic conectat (precum în figura 6), există numeroase dispozitive nod IoT distincte, care trebuie aprovizionate şi gestionate de la distanţă printr-un furnizor de servicii de încredere sub supravegherea proprietarului casei.
Concluzie: Securitate embedded prin separare
Securitatea este critică pentru implementarea sigură şi de succes a dispozitivelor conectate într-o casă sau oraş inteligent, în medii industriale, în aplicaţii auto, în aplicaţii purtabile şi în multe altele. Baza securităţii solicită ca mediul de operare utilizat să fie de încredere, activat prin RoT (Root of Trust) care este impenetrabil la atacuri – furnizând o rădăcină de încredere gravată în hardware, care este baza lanţului de încredere pentru toate subsistemele. Securitatea prin separare oferită de virtualizarea hardware furnizează un nivel suplimentar de încredere, asigurând că aplicaţiile şi sistemele de operare oaspete sunt separate unele de altele. Separând oaspeţii ce rulează în VM-uri de hardware-ul real şi izolând VM-urile între ele se oferă o fundaţie puternică pentru securitate prin izolaţie, cu un hipervizor ca bază de privilegii ridicate pentru servicii de securitate către VM. Această implementare poate păstra datele de utilizator şi datele de aplicaţie separate unele de altele, pentru a fi asigurate împotriva atacurilor externe, ţinând software-ul certificat departe de editările utilizatorilor şi izolând interfeţele de comunicaţie şi software-ul de aplicaţie de utilizator, pentru o mai bună securitate internă / confidenţialitate date. O astfel de implementare trebuie să treacă de abordarea binară (o zonă sigură / o zonă nesigură). Implementarea minimă într-un dispozitiv conectat va asigura medii separate, izolate pentru dispozitive critice, interfeţe de comunicaţie şi pachete software, dispozitive de stocare şi alte resurse în sistem. Arhitectura multi-domeniu bazată pe separaţie OmniShield de la Imagination poate scala mult dincolo de lumea binară, permiţând fiecărei aplicaţii, sigure şi nesigure, să existe în propriul mediu izolat, unde operează independent. Implementat în numeroase CPU MIPS, inclusiv în nucleele MIPS M5100 şi M5150 IP, OmniShield furnizează o fundaţie de încredere, absolut necesară în dispozitivele conectate – inclusiv în microcontrolerele de mâine.
Autor: Majid Bemanian – Imagination Technologies
Imagination Technologies | www.imgtec.com