Cum poate fi asigurată securitatea sistemului embedded folosind controlere de semnal digital (DSC) și microcontrolere (MCU)

by gabi

Acest articol oferă o scurtă introducere în principiile de securitate embedded. Apoi arată cum pot dezvoltatorii să folosească controlerele de semnal digital (DSC) de înaltă performanță de la Microchip Technology și microcontrolerele (MCU) PIC24F cu consum redus de putere, împreună cu dispozitivele de securitate specializate de la Microchip, pentru a satisface cererea emergentă de securitate embedded riguroasă.

Odată cu migrarea către Internetul lucrurilor (IoT), securitatea a depășit cu mult stadiul de caracteristică opțională în aplicațiile embedded, evoluând într-o capabilitate indispensabilă, necesară pentru a asigura integritatea sistemului. Pentru a răspunde la o gamă tot mai largă de specificații de securitate, dezvoltatorii au nevoie de soluții care nu numai că se potrivesc cerințelor aplicațiilor pentru un consum redus de putere sau performanțe ridicate, dar pot oferi, de asemenea, capabilități de securitate bazate pe hardware, inclusiv autentificare, criptare, stocare securizată și pornire securizată.

Securitatea embedded se bazează pe patru principii cheie

Conectate la internetul public, produsele inteligente pot fi combinate în cadrul unor aplicații sofisticate pe care puține produse independente le pot egala. Cu toate acestea, amenințarea atacurilor cibernetice care utilizează aceleași căi de conectivitate nu numai că limitează potențial valoarea produselor inteligente, dar expune aceste produse, aplicațiile asociate și utilizatorii lor la surse de amenințări aparent nesfârșite.

Pe lângă faptul că se confruntă cu o cerere continuă din partea consumatorilor pentru securitate cibernetică la nivel de sistem, dezvoltatorii trebuie să răspundă din ce în ce mai mult specificațiilor de securitate ale organizațiilor naționale și regionale. Două dintre cele mai influente specificații, ETSI EN 303 645 din Europa, “Cyber Security for Consumer Internet of Things: Baseline Requirements”, și NIST IR 8259 din Statele Unite, “Foundational Cybersecurity Activities for IoT Device Manufacturers”, sugerează că practicile de securitate cibernetică depind de patru principii-cheie:

  • Utilizarea de parole unice
  • Disponibilitatea unui spațiu de stocare securizat pe dispozitiv pentru parametrii de securitate sensibili
  • Comunicații securizate prin autentificare reciprocă și comunicații criptate
  • Abilitatea de a asigura integritatea și autenticitatea firmware-ului prin pornire securizată și actualizare securizată a firmware-ului

Furnizarea de sisteme bazate pe aceste principii de bază necesită utilizarea unei platforme de încredere care să împiedice hackerii să injecteze coduri compromise care să modifice comunicațiile, stocarea, firmware-ul sau chiar mecanismele de securitate în sine.

Platformele de încredere contribuie la asigurarea securității prin construirea securității la nivel de sistem de la zero, utilizând mecanisme de securitate imuabile bazate pe hardware. Deși conceptul este simplu, punerea în aplicare a securității la nivel de sistem a reprezentat o provocare, deoarece un punct slab de securitate în orice parte a sistemului poate oferi o cale de atac cibernetic. Prin utilizarea dispozitivelor DSC dsPIC33C de înaltă performanță și a microcontrolerelor cu consum redus de energie PIC24F de la Microchip Technology, în combinație cu dispozitivele de securitate compatibile de la Microchip, dezvoltatorii pot implementa mai ușor proiecte integrate care asigură securitatea la nivel de sistem.

Respectarea cerințelor de performanță și putere

Figura 1: Ca și în cazul altor DSC-uri dsPIC33C, dispozitivul DSPIC33CK512MP608 ‘single-core’ integrează un set cuprinzător de periferice, simplificând proiectarea unor sisteme complexe, cum ar fi UPS-ul offline prezentat. (Sursa imaginii: Microchip Technology)

Proiectate pentru a susține o gamă largă de cazuri de utilizare, dispozitivele din familiile dsPIC33C DSC și PIC24F MCU de la Microchip combină platformele de execuție robuste cu capabilități specifice aplicațiilor, inclusiv o gamă extinsă de periferice analogice integrate, de control al formei de undă și de comunicații. De fapt, utilizând multiplele dispozitive de modulare în lățime a impulsurilor (PWM), amplificatoare cu câștig programabil (PGA), convertoare analog-digitale (ADC) și alte periferice disponibile pe un dsPIC33C DSC, dezvoltatorii pot implementa sisteme complexe cu un minim de componente suplimentare – având nevoie, de obicei, doar de dispozitivele de alimentare necesare în orice proiect de acest tip. Un exemplu este utilizarea DSC-ului cu un singur nucleu DSPIC33CK512MP608 pentru a implementa un proiect de sursă de alimentare neîntreruptibilă (UPS) offline (Figura 1).

Pentru aplicațiile care necesită atât capabilități de control în timp real, cât și procesare digitală a semnalelor, DSC-urile dsPIC33C combină capabilitățile unui microcontroler și ale unui DSC cu instrucțiunile sale specializate și funcționalitatea hardware. Pentru proiectele critice din punct de vedere al siguranței, DSC-urile dsPIC33C sunt pregătite pentru siguranța funcțională IEC 60730 și sunt conforme cu ISO 26262, oferind caracteristici hardware multiple create pentru a simplifica certificarea siguranței funcționale pentru aplicațiile critice de siguranță auto și industriale de nivel B (ASIL-B) și SIL-2.

În timp ce DSC-urile dsPIC33C au fost proiectate pentru aplicații în care performanța este primordială, microcontrolerele PIC24F oferă un echilibru între performanță și eficiență energetică pentru sisteme embedded de uz general, electronice de consum, automatizări industriale, dispozitive medicale și alte aplicații care necesită control și conectivitate, dar nu au nevoie de capabilități DSP. Ca și în cazul DSC-urilor dsPIC33C, microcontrolerele PIC24F sunt dispozitive pregătite pentru siguranță funcțională IEC 60730 cu biblioteci de diagnosticare a siguranței de clasă B pentru dezvoltarea de aplicații de uz casnic.

După cum s-a menționat anterior, integritatea firmware-ului este un principiu de bază al securității cibernetice embedded. Pentru a-i ajuta pe dezvoltatori să asigure integritatea firmware-ului și protecția generală a codului, Microchip oferă securitate Flash programabilă o singură dată (OTP) prin ICSP (in-circuit serial programming – programare serială în circuit) Write Inhibit și CodeGuard Flash în dispozitivele DSC dsPIC33C, cum ar fi DSPIC33CK512MP608 cu un singur nucleu și DSPIC33CH512MP508 cu două nuclee, precum și în microcontrolerele PIC24F, cum ar fi PIC24FJ512GU405, printre multe altele, configurate cu diferite seturi de periferice specifice aplicațiilor.

Protejarea firmware-ului dispozitivului

Flash OTP prin ICSP Write Inhibit permite dezvoltatorilor să configureze porțiuni de memorie Flash ca memorie OTP și să protejeze memoria Flash la citire/scriere. Caracteristica ICSP (brevetată de Microchip) permite acestor dispozitive o programare serială prin intermediul unei perechi de pini în timp ce rulează în aplicația finală. Datorită acestei capabilități, producătorii pot finaliza programarea pe plăcile de producție. În timp ce ICSP necesită utilizarea unui dispozitiv de programare extern pentru a controla procesul Flash OTP, Enhanced ICSP permite ca un bootloader instalat pe placă să controleze procesul Flash OTP. Aceste dispozitive suportă, de asemenea, autoprogramarea în timpul execuției (RTSP – Run-Time Self-Programming), care permite codului aplicației utilizator Flash să se actualizeze singur în timpul execuției.

După ce își programează dispozitivul în procesul de producție, dezvoltatorii pot activa ICSP Write Inhibit, care împiedică orice altă programare sau ștergere ICSP. Cu toate acestea, operațiunile de ștergere și programare RTSP Flash pot continua chiar și atunci când ICSP Write Inhibit este activată, dacă este programat codul de actualizare Flash adecvat în dispozitiv înainte de activare. Prin urmare, dezvoltatorii pot utiliza un bootloader de încredere pentru a modifica memoria Flash chiar și atunci când ICSP Write Inhibit este activată, ceea ce le permite să actualizeze în siguranță firmware-ul, reducând în același timp tentativele externe de actualizare a Flash în sistemele de producție.

Figura 2: Familiile dsPIC33C DSC și PIC24F MCU suportă protecția codului în partiții separate, cum ar fi BS și GS. (Sursa imaginii: Microchip Technology)

Securitatea CodeGuard Flash asigură o protecție fină a programului din Flash prin utilizarea unor segmente de boot distincte și generale. Dezvoltatorii definesc dimensiunea acestor segmente prin setarea adresei BSLIM (boot segment (BS) limit) în registrul BSLIM al dispozitivului; segmentul general (GS general segment) ocupă restul memoriei. Pentru a proteja și mai mult informațiile sensibile, fiecare segment conține partiții suplimentare. De exemplu, BS conține tabelul vectorilor de întreruperi (IVT – Interrupt Vector Table), tabelul opțional al vectorilor alternativi de întreruperi (AIVT – Alternative Interrupt Vector Table) și spațiul suplimentar pentru cuvântul de instrucțiuni (IW – Instruction Word); segmentul de configurare (CS – Configuration Segment), care conține date critice de configurare a dispozitivului de către utilizator, se află în spațiul de adrese utilizator din GS (Figura 2).

După setarea partițiilor de segmente, dezvoltatorii pot utiliza registrul de securitate firmware (FSEC – Firmware Security) al dispozitivului pentru a activa opțional protecția la scriere și pentru a seta nivelul necesar de protecție a codului pentru fiecare segment. În timpul rulării, dispozitivul împiedică codul conținut într-un segment cu un nivel de protecție a codului mai mic să acceseze codul conținut într-un segment cu un nivel de protecție a codului mai mare. Într-un sistem tipic, dezvoltatorii vor proteja BS la scriere și vor seta nivelul de protecție a codului său la un nivel ridicat, atenuând încercările externe de a modifica BS, inclusiv bootloader-ul.

Implementarea unei actualizări securizate a firmware-ului ‘prin aer’

Figura 3: Dezvoltatorii pot opera familiile dsPIC33C DSC și PIC24F MCU în modul implicit cu o singură partiție sau în modul cu partiție dublă. (Sursa imaginii: Microchip Technology)

Dezvoltatorii de software se confruntă inevitabil cu necesitatea de a actualiza software-ul ca răspuns la combinația de bug-uri software nou descoperite, îmbunătățiri ale concurenței sau amenințări de securitate emergente. Spre deosebire de actualizările aplicațiilor mobile, actualizările securizate ale firmware-ului în sistemele embedded riscă, în cel mai bun caz, să interfereze cu aplicațiile care rulează în acel moment sau, în cel mai rău caz, să “blocheze” sistemul. DSC-urile dsPIC33C și familiile de microcontrolere cu consum mic de putere PIC24F de la Microchip oferă un mecanism de partiționare dublă, gândit pentru a ajuta dezvoltatorii să evite aceste probleme.

În modul de funcționare standard, aceste dispozitive utilizează toată memoria fizică disponibilă ca spațiu de memorie continuă, cu o singură partiție (Figura 3, stânga), care poate fi configurată în BS-uri și GS-uri separate. În modul cu partiție dublă, dezvoltatorii împart memoria fizică în partiții active și inactive separate (Figura 3, dreapta).

Operând în modul cu partiție dublă, aceste dispozitive pot continua să execute codul aplicației în partiția activă în timp ce programează partiția inactivă. După ce programarea a fost finalizată, executarea instrucțiunii BOOTSWP (Boot Swap) din timpul rulării face ca dispozitivul să comute ținta de boot pe partiția actualizată. În cazul în care codul din partiția actualizată eșuează sau se constată că este deficitar în alt mod, o resetare a dispozitivului va face ca acesta să pornească automat în partiția originală (figura 4).

Figura 4: În modul cu două partiții, DSC-urile dsPIC33C și MCU-urile PIC24F pot încărca codul aplicației într-o partiție, continuând în același timp să execute codul aplicației în cealaltă partiție. (Sursa imaginii: Microchip Technology)

După ce s-a asigurat succesul partiției actualizate, secvența de pornire flash (FBTSEQ – Flash boot sequence) a partiției actualizate poate fi setată la o valoare mai mică decât cea a partiției originale. La repornirile ulterioare ale dispozitivului, acesta va porni în partiția actualizată cu valoarea mai mică a FBTSEQ (Figura 5).

Securitatea Flash OTP prin ICSP Write Inhibit și CodeGuard Flash oferă un suport esențial pentru securitatea codului atât la nivel static, cât și în timpul rulării, însă securitatea embedded completă necesită mecanisme suplimentare, inclusiv stocarea securizată a cheilor, autentificarea codului și comunicațiile securizate.

Figura 5: Modul cu două partiții permite dezvoltatorilor să specifice secvența de bootare în partiția dorită în urma resetării dispozitivului. (Sursa imaginii: Microchip Technology)

Utilizarea dispozitivelor de securitate complementare pentru a asigura securitatea sistemului embedded

Prin combinarea DSC-urilor dsPIC33C și a microcontrolerelor PIC24F cu ATECC608 CryptoAuthentication de la Microchip sau cu circuitul integrat de securitate CryptoAutomotive TrustAnchor100 (TA100), dezvoltatorii pot implementa mai ușor întregul pachet de capabilități de securitate bazate pe hardware.

Aceste circuite integrate de securitate oferă mecanisme de securitate rezistente la manipulare (tamper) bazate pe hardware, inclusiv stocare securizată, motoare criptografice accelerate prin hardware, generatoare de numere aleatoare reale și alte mecanisme necesare algoritmilor criptografici. Proiectate special ca dispozitive însoțitoare, circuitele integrate pot fi adăugate cu ușurință la proiectele de sisteme cu DSC sau MCU pentru a finaliza implementarea securității complete a sistemelor embedded (Figura 6).

Figura 6: Circuitele integrate de securitate, cum ar fi ATECC608 sau TA100, completează caracteristicile de securitate ale DSC-urilor dsPIC33C și MCU-urilor PIC24F, simplificând implementarea unor sisteme embedded sigure. (Sursa imaginii: Microchip Technology)

Executarea unei operații critice, cum ar fi actualizarea securizată a firmware-ului, ilustrează caracteristicile de securitate complementare ale DSC-urilor dsPIC33C și microcontrolerelor PIC24F în combinație cu aceste circuite integrate de securitate însoțitoare. Dezvoltatorii utilizează tehnici de semnare a codului pentru a verifica autenticitatea și integritatea codului înainte de finalizarea operațiunilor de actualizare a firmware-ului. În acest caz, dezvoltatorii utilizează sistemele lor de dezvoltare pentru a crea un pachet de actualizare care conține codul, metadatele de cod și o semnătură utilizată pentru verificare (Figura 7).

Figura 7: Semnarea codului oferă un protocol vital utilizat frecvent pentru a verifica autenticitatea și integritatea codului înainte de actualizarea pe un sistem țintă. (Sursa imaginii: Microchip Technology)

Pe sistemul țintă, verificarea semnăturii bazată pe hardware elimină riscul de compromitere a protocoalelor de verificare care era posibil cu tipul de verificare a semnăturii bazată pe software utilizat în trecut. În schimb, un circuit integrat de securitate însoțitor, cum ar fi ATECC608 și TA100 de la Microchip, efectuează rapid și sigur operațiunile de verificare a semnăturii fără riscul de compromitere (Figura 8).

Pentru a accelera implementarea sistemelor securizate, Microchip oferă o combinație de instrumente de dezvoltare software și hardware.

Figura 8: Într-un sistem țintă, verificarea bazată pe hardware oferită de un circuit integrat de securitate precum ATECC608 sau TA100 este esențială pentru a asigura verificarea codului înainte de actualizarea firmware-ului de către bootloader. (Sursa imaginii: Microchip Technology)

Accelerarea dezvoltării software și hardware

În timp ce mediul integrat de dezvoltare (IDE) MPLAB X oferă programatorilor un mediu complet de dezvoltare software, compilatorul C MPLAB XC oferă suport de dezvoltare pentru lanțurile de instrumente existente. Pentru a accelera dezvoltarea în oricare dintre aceste medii, MPLAB Code Configurator (MCC) de la Microchip permite dezvoltatorilor să utilizeze o interfață grafică pentru a genera automat inițializatori, să construiască drivere, să aloce pini, să implementeze biblioteci și să contribuie în alt mod la accelerarea multor proceduri și procese critice de configurare de nivel scăzut asociate cu orice proiect de dezvoltare de software embedded.

Pentru a accelera implementarea unui bootloader securizat adecvat, Bootloader-ul Microchip pentru dispozitivele DSC dsPIC33 și MCU PIC24 de la Microchip oferă o interfață grafică care ajută dezvoltatorii să configureze și să genereze rapid bootloader-urile personalizate necesare pentru aplicația lor. O aplicație gazdă a bootloaderului aferent simplifică și mai mult transferul codului aplicației către dispozitivul țintă.

Figura 9: Platforme precum PIC-IoT Board AC164164 contribuie la accelerarea dezvoltării securității embedded prin încorporarea de circuite integrate de securitate care sunt pre-provizionate cu credențiale pentru AWS sau Google Cloud. (Sursa imaginii: Microchip Technology)

Pentru dezvoltarea hardware, Microchip oferă mai multe plăci de dezvoltare asociate pentru construirea de sisteme bazate pe DSC dsPIC33C sau MCU PIC24F. De fapt, PIC-IoT Board EV54Y39A și PIC-IoT Board AC164164 de la Microchip (figura 9) includ circuite integrate de securitate care sunt pre-provizionate cu credențialele de securitate pentru Amazon Web Services (AWS) și, respectiv, Google Cloud.

Pentru proiecte personalizate, Microchip oferă o placă de dezvoltare dsPIC33CH Curiosity (DM330028-2) bazată pe DSC-ul cu două nuclee dsPIC33CH512MP508. Alternativ, dezvoltatorii pot atașa modulul plug-in bazat pe dsPIC33CH128MP508 de la Microchip (MA330040) la o placă de evaluare embedded Microchip Explorer (DM240001-2) pentru a accelera dezvoltarea de sisteme embedded sigure.

Concluzie

Securitatea sistemelor embedded se bazează pe disponibilitatea unor mecanisme hardware, capabile să susțină principiile de bază ale securității cibernetice care includ integritatea firmware-ului, autentificarea, criptarea și stocarea securizată. În timp ce controlerele de semnal digital dsPIC33C și microcontrolerele PIC24F de la Microchip simplifică protecția codului, circuitele integrate de securitate ATECC608 și TA100 oferă mecanismele de securitate suplimentare necesare într-o platformă de securitate eficientă. Utilizând aceste dispozitive în combinație, dezvoltatorii pot satisface nevoia de securitate la nivel de sistem în soluțiile embedded pentru IoT, precum și pentru aplicațiile auto, industriale, de consum și medicale.

Autor: Rolf Horn – Inginer de aplicații
Rolf face parte din grupul European de Asistență Tehnică din 2014, având respon­sa­bi­li­tatea principală de a răspunde la întrebările venite din partea clienților finali din EMEA referitoare la Dezvoltare și Inginerie. Înainte de Digi-Key, el a lucrat la mai mulți producători din zona semiconductorilor, cu accent pe sistemele embedded ce conțin FPGA-uri, microcontrolere și pro­cesoare pentru aplicații industriale și auto. Rolf este licențiat în inginerie electrică și electronică la Universitatea de Științe Aplicate din Munchen, Bavaria.

DigiKey   |   https://www.digikey.ro

S-ar putea să vă placă și