Cum să obțineți securitatea sistemelor integrate utilizând DSC și MCU

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

Odată cu migrarea către Internetul lucrurilor (IoT), securitatea a depășit cu mult stadiul de caracteristică opțională în aplicațiile integrate, devenind o funcționalitate 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ă îndeplinesc cerințele aplicațiilor în ceea ce privește consumul redus de energie sau performanțele ridicate, dar pot oferi și funcționalități de securitate bazate pe hardware, inclusiv autentificare, criptare, stocare securizată și pornire securizată.

Acest articol oferă o scurtă introducere în principiile de securitate integrată. Apoi, arată cum pot dezvoltatorii să utilizeze controlerele de semnal digital (DSC) de înaltă performanță de la Microchip Technology și unitățile microcontroler PIC24F (MCU) de mică putere, împreună cu dispozitivele de securitate specializate de la Microchip, pentru a îndeplini cererea emergentă de securitate integrată strictă.

Securitatea integrată se bazează pe patru principii cheie

Conectate la internetul public, produsele inteligente pot fi legate între ele în 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ă poate limita 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ă respecte din ce în ce mai mult specificațiile 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
  • Comunicare securizată prin autentificare reciprocă și comunicare criptată
  • Capacitatea de a asigura integritatea și autenticitatea firmware-ului prin inițializare securizată și actualizarea securizată a firmware-ului

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

Platformele de încredere ajută la obținerea 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 în ceea ce privește securitatea în orice parte a sistemului poate oferi o cale de atac cibernetic. Prin utilizarea DSC-urilor dsPIC33C de înaltă performanță și a MCU-urilor PIC24F de joasă putere de la Microchip Technology, în combinație cu dispozitivele de securitate Microchip, dezvoltatorii pot implementa mai ușor proiecte integrate care oferă securitate la nivel de sistem.

Respectarea cerințelor de performanță și de putere

Proiectate pentru a susține o gamă largă de cazuri de utilizare, dispozitivele din familiile DSC dsPIC33C și MCU PIC24F de la Microchip combină platformele de execuție robuste cu capabilități specifice aplicațiilor, inclusiv o gamă extinsă de periferice integrate analogice, de control al formei de undă și de comunicații. De fapt, folosind multiple dispozitive de modulare în lățime a impulsului (PWM), amplificatoare cu câștig programabil (PGA), convertoare analogice-digitale (ADC) și alte periferice de pe un DSC dsPIC33C, 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 cu un singur nucleu DSPIC33CK512MP608 pentru implementarea unui proiect de sursă de alimentare neîntreruptibilă (UPS) offline (Figura 1).

Diagrama DSC DSPIC33CK512MP608 cu un singur nucleu de la Microchip (faceți clic pentru mărire)Figura 1: Ca și în cazul altor DSC-uri dsPIC33C, DSC-ul cu un singur nucleu DSPIC33CK512MP608 integrează un set cuprinzător de periferice, simplificând proiectarea unor sisteme complexe, cum ar fi UPS-ul offline prezentat. (Sursă imagine: Microchip Technology)

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

În timp ce DSC-urile dsPIC33C sunt concepute pentru aplicații în care performanța este esențială, MCU-urile PIC24F oferă un echilibru între performanță și eficiență energetică pentru sisteme integrate 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. La fel ca și DSC-urile dsPIC33C, MCU-urile PIC24F sunt dispozitive potrivite pentru siguranța funcțională IEC 60730 cu biblioteci de diagnosticare a siguranței de clasă B pentru aplicații casnice.

După cum s-a menționat anterior, integritatea firmware-ului este un principiu de bază al securității cibernetice integrate. 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 programare serială în circuit (ICSP) Write Inhibit și CodeGuard Flash în dispozitivele DSC dsPIC33C, cum ar fi DSC DSPIC33CK512MP608 cu un singur nucleu și DSC DSPIC33CH512MP508 cu două nuclee, precum și dispozitive MCU PIC24F, cum ar fi MCU 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 pentru citire/scriere. Funcționalitatea ICSP brevetată a Microchip permite ca aceste dispozitive să fie programate în serie printr-o pereche de pini în timp ce rulează în aplicația finală. Cu această funcționalitate, 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, ICSP îmbunătățit permite unui bootloader integrat să controleze procesul Flash OTP. Aceste dispozitive acceptă, de asemenea, autoprogramarea în timpul execuției (RTSP), care permite codului aplicației de utilizator Flash să se actualizeze singur în timpul execuției.

După ce își programează dispozitivul 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 este activat ICSP Write Inhibit, în cazul în care codul de actualizare Flash adecvat este programat în dispozitiv înainte de activarea acestuia. Prin urmare, dezvoltatorii pot utiliza un bootloader de încredere pentru a modifica Flash chiar și atunci când ICSP Write Inhibit este activat, permițându-le să actualizeze în siguranță firmware-ul și, în același timp, să atenueze încercările externe de a actualiza Flash-ul în sistemele de producție.

Securitatea CodeGuard Flash asigură o protecție fină a memoriei Flash a programelor prin utilizarea de segmente de inițializare și generale separate. Dezvoltatorii definesc dimensiunea acestor segmente prin setarea adresei de limitare a segmentului de inițializare (BS) (BSLIM) în registrul BSLIM al dispozitivului; segmentul general (GS) ocupă restul memoriei. Pentru a proteja și mai mult informațiile sensibile, fiecare segment conține partiții suplimentare. De exemplu, BS conține tabela de vectori de întrerupere (IVT), tabela de vectori de întrerupere alternativă opțională (AIVT) și spațiul suplimentar pentru cuvintele de instrucțiuni (IW); segmentul de configurare (CS), care conține date critice de configurare a dispozitivului de către utilizator, se află în spațiul de adrese ale utilizatorului din GS (Figura 2).

Diagrama familiilor DSC dsPIC33C și MCU PIC24F de la MicrochipFigura 2: Familiile de DSC dsPIC33C și MCU PIC24F acceptă protecția codului în partiții separate, cum ar fi BS și GS. (Sursă imagine: Microchip Technology)

După stabilirea partițiilor de segmente, dezvoltatorii pot utiliza registrul de securitate firmware (FSEC) al dispozitivului pentru a activa în mod opțional protecția la scriere și pentru a seta nivelul de protecție a codului necesar pentru fiecare segment. În timpul execuției, dispozitivul nu permite codului 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 ar proteja prin scriere BS și ar seta protecția codului său la un nivel ridicat, reducând încercările externe de a modifica BS, inclusiv bootloader-ul.

Implementarea actualizării securizate a firmware-ului over-the-air

Dezvoltatorii de software se confruntă în mod inevitabil cu necesitatea de a actualiza software-ul ca răspuns la o combinație de erori software nou descoperite, îmbunătățiri ale concurenței sau amenințări de securitate emergente. Spre deosebire de actualizările aplicațiilor mobile, efectuarea de actualizări securizate ale firmware-ului în sistemele încorporate riscă, în cel mai bun caz, să interfereze cu aplicațiile care rulează în acel moment sau, în cel mai rău caz, riscă să „blocheze” sistemul. Familiile DSC dsPIC33C și MCU PIC24F de mică putere de la Microchip oferă un mecanism cu partiție dublă conceput pentru a-i ajuta pe dezvoltatori să evite aceste probleme.

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

Diagrama familiilor DSC dsPIC33C și MCU PIC24F de la Microchip în modurile cu partiție unică sau dublă (faceți clic pentru a mări)Figura 3: Dezvoltatorii pot opera familiile DSC dsPIC33C și MCU PIC24F în modul implicit cu o singură partiție sau în modul cu două partiții. (Sursă imagine: Microchip Technology)

Funcționând în modul cu două partiții, 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 de execuție boot swap (BOOTSWP) determină dispozitivul să schimbe ținta de inițializare pe partiția actualizată. În cazul în care codul din partiția actualizată eșuează sau se constată că este deficitar, o resetare a dispozitivului va determina pornirea automată a acestuia în partiția originală (Figura 4).

Diagrama cu DSC dsPIC33C și MCU PIC24F de la Microchip în modul cu două partiții (faceți clic pentru mărire)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 în timp ce continuă să execute codul aplicației în cealaltă partiție. (Sursă imagine: Microchip Technology)

După succesul partiției actualizate, secvența de inițializare flash (FBTSEQ) 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 FBTSEQ mai mică (Figura 5).

Diagrama modului cu două partiții permite dezvoltatorilor să specifice secvența de inițializare în partiția dorită (faceți clic pentru mărire)Figura 5: Modul cu două partiții permite dezvoltatorilor să specifice secvența de inițializare în partiția dorită după resetarea dispozitivului. (Sursă imagine: Microchip Technology)

Flash OTP prin ICSP Write Inhibit și securitatea CodeGuard Flash oferă un sprijin esențial pentru securitatea codului static și de execuție, dar securitatea integrată completă necesită mecanisme suplimentare, inclusiv stocarea securizată a cheilor, autentificarea codului și comunicațiile securizate.

Utilizarea dispozitivelor de securitate însoțitoare pentru a obține securitatea sistemelor integrate

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 o gamă completă de funcționalități de securitate bazate pe hardware.

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

Diagrama circuitelor integrate de securitate Microchip ATECC608 sau TA100 (faceți clic pentru mărire)Figura 6: Circuitele integrate de securitate, cum ar fi ATECC608 sau TA100, completează caracteristicile de securitate ale DSC-urilor dsPIC33C și ale MCU-urilor PIC24F, simplificând implementarea sistemelor integrate securizate. (Sursă imagine: 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. 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).

Diagrama de semnare a codului oferă un protocol vitalFigura 7: Semnarea codului reprezintă un protocol vital utilizat în mod obișnuit pentru a verifica autenticitatea și integritatea codului înainte de a fi actualizat pe un sistem țintă. (Sursă imagine: Microchip Technology)

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

Diagramă de verificare bazată pe hardwareFigura 8: Într-un sistem țintă, verificarea bazată pe hardware oferită de un circuit integrat de securitate, cum ar fi ATECC608 sau TA100, este esențială pentru a asigura verificarea codului înainte de actualizarea firmware-ului de către bootloader. (Sursă imagine: Microchip Technology)

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

Dezvoltarea rapidă a software-ului și a hardware-ului

În timp ce mediul de dezvoltare integrat (IDE) MPLAB X oferă dezvoltatorilor un mediu complet de dezvoltare software, compilatorul MPLAB XC C oferă compatibilitate de dezvoltare pentru lanțurile de instrumente existente. Pentru a accelera dezvoltarea în ambele medii, MPLAB Code Configurator (MCC) de la Microchip permite dezvoltatorilor să utilizeze o interfață grafică pentru a genera automat inițializatori, a construi drivere, a aloca pini, a implementa biblioteci și a ajuta la accelerarea multor proceduri și procese critice de configurare de nivel scăzut asociate cu orice proiect de dezvoltare software încorporat.

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

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, plăcile PIC-IoT Board EV54Y39A și PIC-IoT Board AC164164 de la Microchip (Figura 9) integrează circuite integrate de securitate care sunt preaprovizionate cu date de autentificare de securitate pentru Amazon Web Services (AWS) și, respectiv, Google Cloud.

Imagine cu PIC-IoT Board AC164164 MicrochipFigura 9: Plăcile precum PIC-IoT Board AC164164 contribuie la accelerarea dezvoltării securității integrate prin integrarea circuitelor integrate de securitate care sunt preaprovizionate cu date de autentificare pentru AWS sau Google Cloud. (Sursă imagine: Microchip Technology)

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

Concluzie

Securitatea sistemelor integrate se bazează pe disponibilitatea mecanismelor bazate pe 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 DSC-urile dsPIC33C și MCU-urile PIC24F de la Microchip simplifică protecția codului, circuitele integrate de securitate ATECC608 și TA100 oferă mecanismele de securitate suplimentare necesare pentru 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 integrate pentru IoT, precum și pentru aplicațiile auto, industriale, de consum și medicale.

DigiKey logo

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.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

DigiKey's North American Editors