Securizarea sistemelor încorporate cu PSoC 64
Contributed By DigiKey's North American Editors
2022-07-27
Numărul de produse conectate la internet continuă să crească într-un ritm exponențial. Problema cu care se confruntă multe echipe de produse este că dezvoltatorii de software încorporat nu au suficientă experiență în domeniul securității. Lipsa de experiență poate duce la ignorarea cerințelor de securitate, la lacune de securitate și la o implementare deficitară. Toate acestea rezultă în sisteme conectate slab protejate, care pot cădea cu ușurință victime ale furtului de proprietate intelectuală și al datelor despre dispozitive și utilizatori.
Proiectanții de sisteme bazate pe microcontrolere au la dispoziție mai multe soluții care pot fi utilizate pentru a simplifica implementările de securitate și pentru a le oferi instrumentele necesare pentru a realiza cu succes acest lucru. De exemplu, microcontrolerele cu un singur nucleu pot utiliza TrustZone de la Arm, care face parte din arhitectura Armv8-M (și nu numai). De asemenea, există soluții cu microcontrolere cu nuclee multiple.
Acest articol arată cum pot dezvoltatorii să folosească procesoarele cu nuclee multiple pentru a-și securiza soluțiile încorporate. În mod specific, examinează microcontrolerul securizat Cypress PSoC 64 și instrumentele pe care acesta le oferă pentru a implementa o soluție securizată.
Fundamentele securității încorporate
Unul dintre elementele fundamentale de bază ale proiectării unui produs securizat constă în utilizarea izolării bazate pe hardware. Această izolare poate lua mai multe forme, cum ar fi un mediu de execuție izolat sau o memorie izolată bazată pe o unitate de protecție a memoriei (MPU). La cel mai înalt nivel, un microcontroler trebuie să fie capabil să își separe mediul de execuție într-un mediu de procesare securizat (SPE) și un mediu de procesare nesecurizat (NSPE).
Un SPE este un mediu de execuție izolat care își păstrează memoria, componentele și codul aplicației separat de NSPE. SPE poate fi considerat un procesor de securitate. SPE rulează cod și operațiuni securizate, cum ar fi un sistem de operare securizat și/sau root-of-trust (RoT). De asemenea, SPE va executa servicii de încredere, cum ar fi criptografia, stocarea securizată, atestarea și înregistrarea securizată. Un număr limitat de aplicații de încredere legate de operațiuni sigure vor rula în SPE.
NSPE, la rândul său, poate fi considerat mediul de execuție bogat în caracteristici care rulează totul, cu excepția operațiunilor securizate. De fapt, NSPE este într-adevăr modelul de programare familiar cu care sunt obișnuiți majoritatea dezvoltatorilor de aplicații încorporate; acesta are un RTOS și majoritatea componentelor aplicației.
Izolarea bazată pe hardware este unul dintre principiile de bază, sau cele mai bune practici, furnizate de Arm® Platform Security Architecture (PSA) pentru construirea sistemelor sigure. Diferitele straturi de izolare despre care tocmai am discutat sunt prezentate implementate în Figura 1, PSoC 64 fiind un exemplu. În acest exemplu, SPE și NSPE (1) produc o izolare hardware prin faptul că mediile de execuție se află pe procesoare separate. Pe lângă separarea timpului de execuție, serviciile RoT și serviciile de încredere sunt izolate și mai mult (2). În cele din urmă, fiecare aplicație de încredere din SPE este izolată și cu ajutorul unor instrumente precum partițiile de încredere și MPU-uri (3).
Figura 1: o aplicație securizată utilizează izolarea bazată pe hardware pentru a separa mediile de execuție. 1) NSPE și SPE sunt izolate 2) RoT și serviciile de încredere sunt izolate 3) Aplicațiile de încredere sunt izolate. (Sursa imaginii: Arm/Cypress)
PSoC 64 este un microcontroler cu două nuclee în care NSPE este executat pe un procesor Arm Cortex®-M4, iar SPE este executat pe un procesor Arm Cortex-M0+. Arm Cortex-M0+ rulează toate funcțiile de securitate și poate comunica cu Cortex-M4 prin intermediul unei magistrale de comunicare între procesoare (IPC). Arhitectura limitează accesul la SPE, care este izolat prin hardware.
Pentru a începe utilizarea PSoC 64, se recomandă dezvoltatorilor să consulte PSoC 64 Secure Boot Pioneer Kit.
PSoC 64 Secure Boot Pioneer Kit
PSoC 64 Secure Boot Pioneer Kit (Figura 2) oferă toate elementele de care au nevoie dezvoltatorii pentru a începe să își securizeze aplicațiile. În primul rând, are un modul PSoC 64 care conține microcontrolerul PSoC 64, memoria externă și toate circuitele de suport (ilustrate cu roșu). Memoria externă poate fi utilizată pentru stocarea codului aplicației sau pentru stocarea noilor imagini de firmware pentru actualizări sigure de tip firmware-over-the-air (FOTA).
Figura 2: PSoC 64 Secure Boot Pioneer Kit oferă toate elementele de care au nevoie dezvoltatorii pentru a începe să dezvolte aplicații IoT sigure. (Sursa imaginii: Cypress)
Apoi, are un modul Wi-Fi care permite dezvoltatorilor să conecteze placa la o rețea. Modulul Wi-Fi este deosebit de util pentru aplicațiile IoT în care placa se va conecta la servicii cloud precum AWS sau Azure. Placa de dezvoltare acceptă Amazon FreeRTOS, despre care vom discuta în secțiunea următoare.
În cele din urmă, Pioneer Kit acceptă o gamă largă de capacități de extindere, cum ar fi reglete cu pini, reglete Arduino și o gamă de senzori. Dezvoltatorii pot folosi cursorul tactil integrat și butoanele tactile, butoanele de apăsare, potențiometrul și multe altele. Placa este, de asemenea, configurată pentru a facilita personalizarea pentru aproape orice aplicație.
Suita de software securizat PSoC 64
Proiectarea unei aplicații integrate securizate poate necesita timp și poate fi o provocare. Dezvoltatorii ar trebui să caute soluții care să contribuie la reducerea costurilor și a timpului de lansare pe piață, garantând în același timp securitatea aplicației lor. Pentru a ajuta în acest sens, PSoC 64 oferă o gamă largă de programe software care permite dezvoltatorilor să creeze rapid o aplicație sigură.
De exemplu, CySecureTools pune la dispoziția dezvoltatorilor un set de instrumente pentru crearea de chei și certificate, precum și instrumente pentru semnarea aplicațiilor utilizatorilor și pentru asigurarea accesului pentru microcontrolere Cypress. Instrumentul permite dezvoltatorilor să transfere Cypress RoT și apoi să injecteze propriile active de securitate. Informații despre cum să configurați și să utilizați CySecureTools pot fi găsite în fișierul README din depozitul github.
Un instrument care va fi util pentru dezvoltatorii IoT este suportul pentru AWS cu FreeRTOS. Depozitul github conține exemple utile pentru utilizarea FreeRTOS și AWS cu PSoC 64. Primul exemplu de care dezvoltatorii ar fi interesați este aplicația „Hello World”, care transmite mesaje MQTT de la PSoC 64 către cloud-ul AWS. Acest exemplu permite dezvoltatorului să parcurgă procesul de asigurare a accesului, generarea cheilor și fazele de implementare. La sfârșitul exemplului, dezvoltatorii au un dispozitiv încorporat securizat conectat la AWS. Detalii despre cum să începeți pot fi găsite în Ghidul de inițiere în kitul CY8CKIT-064S0S204343.
Aplicații securizate cu Trusted Firmware-M (TF-M)
PSoC 64 oferă dezvoltatorilor un cadru de securitate gata de utilizare, care poate fi ușor de personalizat pentru o aplicație. Poate fi util pentru dezvoltatori să înțeleagă ce se întâmplă în culise, din perspectiva software-ului. Mai exact, firmware-ul PSoC 64 utilizează un cadru de securitate de bază cu sursă deschisă cunoscut sub numele de Trusted Firmware-M, sau TF-M.
TF-M este o implementare de referință a cadrului de securitate IoT Arm PSA. Acesta oferă dezvoltatorilor instrumente de securitate utile, cum ar fi atestarea dispozitivelor, verificarea firmware-ului, servicii criptografice, gestionarea secretă a dispozitivelor și partiționarea securizată, acestea fiind doar câteva exemple. Cypress a folosit TF-M pentru a-și construi cadrul de securitate, astfel încât dezvoltatorii să îl poată utiliza în aplicațiile lor.
Dezvoltatorii pot să își modifice cadrul de securitate prin adăugarea propriului lor cod, adăugarea de profiluri de securitate și multe altele. Cu toate acestea, este important de reținut că, cu cât se modifică mai mult software-ul SPE, cu atât mai mare este șansa de apariție a unei vulnerabilități. Dezvoltatorii trebuie să cântărească cu atenție riscurile asociate cu modificările, adăugările sau eliminările din firmware-ul de bază.
Sfaturi și trucuri pentru securizarea aplicațiilor încorporate
Dezvoltatorii care doresc să își securizeze pentru prima dată aplicațiile încorporate au multe de luat în considerare. Iată câteva „sfaturi și trucuri” care pot simplifica și accelera dezvoltarea:
- Efectuați un model de amenințare și o analiză de securitate (TMSA) la începutul ciclului de dezvoltare.
- Utilizați o placă de dezvoltare pentru a testa RoT, Secure Bootloader, procesul de asigurare a accesului la dispozitiv și actualizările de firmware.
- Nu implementați doar securitatea! Utilizați pachetele de firmware securizate și cu sursă deschisă existente pentru a reduce la minimum re-proiectările.
- Nu uitați să vă gândiți la ciclul de viață al dispozitivului, inclusiv la modul în care va fi scos din uz în condiții de siguranță.
- Explorați instrumente precum CySecureTools; astfel de instrumente vin cu exemple de șabloane de securitate, software și alte exemple.
- Atunci când clonați depozitul FreeRTOS github, clonați cea mai recentă versiune etichetată. Clonarea liniei principale active duce adesea la descoperirea unor incompatibilități între instrumente și a unor erori care încă sunt în curs de rezolvare.
- Începeți un proiect prin parcurgerea Ghidului de inițiere în kitul Cypress CY8CKIT-064S0S2-4343W. Acesta oferă toate informațiile necesare pentru a pune în funcțiune o aplicație de bază care poate fi apoi modificată pentru scopuri specifice ale produsului.
Dezvoltatorii care urmează aceste „sfaturi și trucuri” vor descoperi că economisesc destul de mult timp și energie mentală.
Concluzie
Securitatea nu trebuie să fie dificilă. Dezvoltatorii aplicațiilor încorporate ar trebui să se concentreze pe elementele care le diferențiază produsele, pe ingredientul lor secret. În cele mai multe cazuri, acesta nu este securitatea. Acest articol a explorat modul în care PSoC 64 poate ajuta dezvoltatorii să își securizeze rapid aplicațiile, oferind nu doar un mediu de izolare bazat pe hardware, ci și un cadru de instrumente software. Împreună, soluțiile hardware și software oferă dezvoltatorilor un ciclu accelerat de dezvoltare a securității.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

