Hoe de beveiliging van ingebedde systemen te garanderen met DSC's en MCU's
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2023-07-25
Met de migratie naar het Internet of Things (IoT) is beveiliging veel meer geworden dan een optionele functie in ingebedde toepassingen. Het is nu een must-have functie die nodig is om de integriteit van het systeem te waarborgen. Om te voldoen aan een groeiend aantal beveiligingsspecificaties hebben ontwikkelaars oplossingen nodig die niet alleen voldoen aan de vereisten van toepassingen voor laag vermogen of hoge prestaties, maar die ook hardware-gebaseerde beveiligingsmogelijkheden kunnen leveren, waaronder authenticatie, encryptie, veilige opslag en veilig opstarten.
Dit artikel geeft een korte inleiding in de principes van ingebedde beveiliging. Vervolgens wordt getoond hoe ontwikkelaars Microchip Technology's krachtige digitale signaalcontrollers (DSC's) en PIC24F-microcontrollerunits (MCU's) met laag vermogen, samen met Microchip's gespecialiseerde beveiligingsapparaten, kunnen gebruiken om te voldoen aan de opkomende vraag naar stringente ingebedde beveiliging.
Ingebedde beveiliging is gebaseerd op vier belangrijke principes
Slimme producten die verbonden zijn met het openbare internet kunnen worden samengevoegd in geavanceerde toepassingen waar weinig standalone producten aan kunnen tippen. De dreiging van cyberaanvallen via diezelfde connectiviteitspaden beperkt echter niet alleen de waarde van slimme producten, maar stelt die producten, de bijbehorende toepassingen en hun gebruikers ook bloot aan schijnbaar eindeloze bronnen van bedreigingen.
Naast de voortdurende vraag van consumenten naar cyberbeveiliging op systeemniveau, moeten ontwikkelaars steeds vaker voldoen aan beveiligingsspecificaties van nationale en regionale organisaties. Twee van de meest invloedrijke specificaties, de Europese ETSI EN 303 645, "Cybersecurity for Consumer Internet of Things: Baseline Requirements" en de NIST IR 8259 van de Verenigde Staten, "Foundational Cybersecurity Activities for IoT Device Manufacturers", suggereren dat cyberbeveiligingspraktijken afhankelijk zijn van vier belangrijke principes:
- Gebruik van unieke wachtwoorden
- Beschikbaarheid van beveiligde opslag op het apparaat voor gevoelige beveiligingsparameters
- Veilige communicatie via wederzijdse authenticatie en versleutelde communicatie
- Mogelijkheid om firmware-integriteit en -authenticiteit te garanderen via veilig opstarten en veilig bijwerken van firmware
Het leveren van systemen gebaseerd op deze kernprincipes vereist het gebruik van een vertrouwd platform dat voorkomt dat hackers gecompromitteerde code injecteren die de communicatie, opslag, firmware of zelfs de beveiligingsmechanismen zelf verandert.
Vertrouwde platformen helpen beveiliging te garanderen door beveiliging op systeemniveau vanaf de grond op te bouwen met behulp van onveranderlijke, hardwaregebaseerde beveiligingsmechanismen. Hoewel het concept eenvoudig is, is de implementatie van beveiliging op systeemniveau een uitdaging omdat een zwakke plek in de beveiliging in elk deel van het systeem een weg kan vormen voor cyberaanvallen. Door gebruik te maken van Microchip Technology's krachtige dsPIC33C DSC's en energiezuinige PIC24F MCU's, in combinatie met Microchip's bijbehorende beveiligingsapparaten, kunnen ontwikkelaars eenvoudiger embedded ontwerpen implementeren die beveiliging op systeemniveau garanderen.
Voldoen aan prestatie- en stroomvereisten
Apparaten in de dsPIC33C DSC en PIC24F MCU-families van Microchip, die zijn ontworpen om een breed scala aan toepassingen te ondersteunen, combineren elk robuuste uitvoerplatforms met toepassingsspecifieke mogelijkheden, waaronder een uitgebreide reeks geïntegreerde analoge, golfvormbesturings- en communicatie-randapparaten. Door gebruik te maken van de meervoudige pulsbreedtemodulatie (PWM), programmeerbare versterkers (PGA's), analoog-digitaalconvertors (ADC's) en andere randapparatuur op een dsPIC33C DSC, kunnen ontwikkelaars complexe systemen implementeren met een minimum aan extra componenten - meestal hebben ze alleen de voedingsapparaten nodig die nodig zijn in een dergelijk ontwerp. Een voorbeeld is het gebruik van de DSPIC33CK512MP608 single-core DSC voor het implementeren van een offline ononderbreekbare voeding (UPS) ontwerp (Afbeelding 1).
Afbeelding 1: Net als andere dsPIC33C DSC's integreert de DSPIC33CK512MP608 single-core DSC een uitgebreide set randapparaten, wat het ontwerp van complexe systemen zoals de afgebeelde offline UPS vereenvoudigt. (Bron afbeelding: Microchip Technology)
Voor toepassingen die zowel realtime besturingsmogelijkheden als digitale signaalverwerking vereisen, combineren dsPIC33C DSC's de mogelijkheden van een MCU en een DSC met zijn gespecialiseerde instructies en hardwarefunctionaliteit. Voor veiligheidskritische ontwerpen zijn de dsPIC33C DSC's klaar voor IEC 60730 functionele veiligheid en voldoen ze aan ISO 26262. Ze bieden meerdere hardwarefuncties die ontworpen zijn om de functionele veiligheidscertificering voor Automotive Safety Integrity Level B (ASIL-B) en SIL-2 veiligheidskritische toepassingen in de automobielsector en de industrie te vereenvoudigen.
Terwijl dsPIC33C DSC's zijn ontworpen voor toepassingen waarbij prestaties van het grootste belang zijn, bieden PIC24F MCU's een balans tussen prestaties en vermogensefficiëntie voor universele ingebedde systemen, consumentenelektronica, industriële automatisering, medische apparatuur en andere toepassingen die besturing en connectiviteit vereisen maar geen DSP-mogelijkheden. Net als de dsPIC33C DSC's zijn de PIC24F MCU's IEC 60730 functionele veiligheidsapparaten met klasse B veiligheidsdiagnosebibliotheken voor huishoudelijke toepassingen.
Zoals eerder opgemerkt, is firmware-integriteit een kernprincipe van ingebedde cyberbeveiliging. Om ontwikkelaars te helpen de integriteit van de firmware en algehele codebescherming te waarborgen, biedt Microchip Flash one-time programmeerbare (OTP) door in-circuit serial programming (ICSP) Write Inhibit en CodeGuard Flash-beveiliging in dsPIC33C DSC-apparaten, zoals de DSPIC33CK512MP608 single-core DSC en de DSPIC33CH512MP508 dual-core DSC, evenals PIC24F MCU-apparaten zoals de PIC24FJ512GU405 MCU, naast vele andere geconfigureerd met verschillende sets applicatie-specifieke randapparatuur.
Apparaatfirmware beschermen
Flash OTP door ICSP Write Inhibit stelt ontwikkelaars in staat om delen van het Flash-geheugen te configureren als OTP-geheugen en het Flash-geheugen lees-/schrijfbeveiligd te maken. Met Microchips eigen ICSP-mogelijkheid kunnen deze apparaten serieel worden geprogrammeerd via een paar pennen terwijl ze in de eindtoepassing draaien. Met deze mogelijkheid kunnen fabrikanten de programmering op productiekaarten voltooien. Terwijl ICSP het gebruik van een extern programmeerapparaat vereist om het Flash OTP-proces te besturen, staat Enhanced ICSP een on-board bootloader toe om het Flash OTP-proces te besturen. Deze apparaten ondersteunen ook run-time zelfprogrammering (RTSP), waardoor de code van de Flash-gebruikertoepassing zichzelf kan updaten tijdens de run-time.
Na het programmeren van hun productieapparaat kunnen ontwikkelaars ICSP Write Inhibit activeren, wat verder programmeren of wissen van ICSP voorkomt. RTSP Flash wissen en programmeren kan echter wel doorgaan, zelfs als de ICSP Write Inhibit geactiveerd is, als de juiste Flash-update code in het apparaat geprogrammeerd is voordat deze geactiveerd wordt. Het resultaat is dat ontwikkelaars een vertrouwde bootloader kunnen gebruiken om Flash te wijzigen, zelfs wanneer ICSP Write Inhibit is geactiveerd, waardoor ze veilig firmware kunnen bijwerken en toch externe pogingen om Flash bij te werken in productiesystemen kunnen beperken.
CodeGuard Flash-beveiliging biedt fijnkorrelige bescherming van programma Flash door het gebruik van aparte opstart en algemene segmenten. Ontwikkelaars definiëren de grootte van deze segmenten door het adres van het opstartsegment (BS) limiet (BSLIM) in het BSLIM register van het apparaat in te stellen; het algemene segment (GS) neemt het resterende geheugen in beslag. Om gevoelige informatie nog beter te beschermen, bevat elk segment extra partities. De BS bevat bijvoorbeeld de interruptvectortabel (IVT), de optionele alternatieve interruptvectortabel (AIVT) en extra ruimte voor het instructiewoord (IW); het configuratiesegment (CS), dat kritieke apparaatgebruikersconfiguratiegegevens bevat, ligt in de gebruikersadresruimte in de GS (afbeelding 2).
Afbeelding 2: De dsPIC33C DSC en PIC24F MCU-families ondersteunen codebeveiliging in aparte partities zoals de BS en GS. (Bron afbeelding: Microchip Technology)
Na het instellen van segmentpartities kunnen ontwikkelaars het firmwarebeveiligingsregister (FSEC) van het apparaat gebruiken om optioneel schrijfbeveiliging in te schakelen en het vereiste codebeveiligingsniveau voor elk segment in te stellen. Tijdens runtime voorkomt het apparaat dat code in een segment met een lager codebeschermingsniveau toegang krijgt tot code in een segment met een hoger codebeschermingsniveau. In een typisch systeem zouden ontwikkelaars de BS schrijfbeveiligd maken en de codebeveiliging op een hoog niveau zetten, waardoor externe pogingen om de BS te veranderen, inclusief de bootloader, beperkt worden.
Veilige over-the-air firmware-update implementeren
Softwareontwikkelaars worden onvermijdelijk geconfronteerd met de noodzaak om software bij te werken als reactie op de combinatie van nieuw ontdekte softwarebugs, verbeteringen door concurrenten of opkomende beveiligingsrisico's. In tegenstelling tot updates voor mobiele apps bestaat bij het uitvoeren van beveiligde updates voor firmware in ingebedde systemen het risico dat lopende toepassingen worden verstoord of dat het systeem wordt "gebrickt". Microchips dsPIC33C DSC's en PIC24F MCU's met laag vermogen bieden een dubbel partitiemechanisme dat is ontworpen om ontwikkelaars te helpen deze problemen te voorkomen.
In de standaard bedrijfsmodus gebruiken deze apparaten al het beschikbare fysieke geheugen als een continue geheugenruimte met één partitie (Afbeelding 3, links) die kan worden geconfigureerd in aparte BS'en en GS'en. In de dual-partition modus splitsen ontwikkelaars het fysieke geheugen op in aparte actieve en inactieve partities (Afbeelding 3, rechts).
Afbeelding 3: Ontwikkelaars kunnen de dsPIC33C DSC en PIC24F MCU-families bedienen in de standaard enkel-partitie modus of in de dual-partition modus. (Bron afbeelding: Microchip Technology)
In de dual-partition modus kunnen deze apparaten doorgaan met het uitvoeren van applicatiecode in de actieve partitie terwijl de inactieve partitie geprogrammeerd wordt. Nadat het programmeren is voltooid, zorgt het uitvoeren van de runtime instructie Boot Swap (BOOTSWP) ervoor dat het apparaat het opstartdoel naar de bijgewerkte partitie overschakelt. Als de code in de bijgewerkte partitie faalt of op een andere manier defect blijkt te zijn, zal een reset van het apparaat er automatisch voor zorgen dat het apparaat opstart in de originele partitie (Afbeelding 4).
Afbeelding 4: In dual-partition modus kunnen de dsPIC33C DSC's en PIC24F MCU's applicatiecode laden in de ene partitie terwijl ze applicatiecode blijven uitvoeren in de andere partitie. (Bron afbeelding: Microchip Technology)
Nadat het succes van de bijgewerkte partitie is verzekerd, kan de flash opstartvolgorde (FBTSEQ) van de bijgewerkte partitie op een lagere waarde worden ingesteld dan de originele partitie. Bij volgende apparaatresets zal het apparaat opstarten in de bijgewerkte partitie met de lagere FBTSEQ-waarde (Afbeelding 5).
Afbeelding 5: De dual-partition modus stelt ontwikkelaars in staat om de volgorde te specificeren voor het booten naar de gewenste partitie na het resetten van het apparaat. (Bron afbeelding: Microchip Technology)
Flash OTP door ICSP Write Inhibit en CodeGuard Flash-beveiliging biedt kritische ondersteuning voor statische en runtime code beveiliging, maar uitgebreide embedded beveiliging vereist aanvullende mechanismen, waaronder veilige sleutelopslag, code authenticatie en veilige communicatie.
Gebruik van aanvullende beveiligingsapparaten om de beveiliging van ingesloten systemen te garanderen
Door dsPIC33C DSC's en PIC24F-microcontrollers te combineren met Microchips' ATECC608 CryptoAuthentication of de TrustAnchor100(TA100) CryptoAutomotive beveiligings-IC, kunnen ontwikkelaars eenvoudiger de volledige aanvulling van hardware-gebaseerde beveiligingsmogelijkheden inzetten.
Deze beveiligings-IC's bieden hardwarematige manipulatiebestendige beveiligingsmechanismen, waaronder veilige opslag, hardwareversnelde cryptografie-engines, echte willekeurige getallengeneratoren en andere mechanismen die nodig zijn voor cryptografische algoritmen. De IC's zijn speciaal ontworpen als begeleidende apparaten en kunnen eenvoudig worden toegevoegd aan DSC- of MCU-systeemontwerpen om de implementatie van volledige beveiliging van ingebedde systemen te voltooien (Afbeelding 6).
Afbeelding 6: Beveiligings-IC's zoals de ATECC608 of TA100 vormen een aanvulling op de beveiligingsfuncties van de dsPIC33C DSC's en PIC24F MCU's en vereenvoudigen de implementatie van veilige embedded systemen. (Bron afbeelding: Microchip Technology)
Het uitvoeren van een kritieke bewerking zoals het veilig bijwerken van firmware illustreert de complementaire beveiligingsfuncties van dsPIC33C DSC's en PIC24F-microcontrollers in combinatie met deze bijbehorende beveiligings-IC's. Ontwikkelaars gebruiken code-signingtechnieken om de authenticiteit en integriteit van code te verifiëren voordat firmware-updates worden uitgevoerd. Hier gebruiken ontwikkelaars hun ontwikkelsystemen om een updatepakket te maken dat de code, metagegevens over de code en een handtekening voor verificatie bevat (Afbeelding 7).
Afbeelding 7: Het ondertekenen van codes is een belangrijk protocol dat routinematig wordt gebruikt om de authenticiteit en integriteit van code te verifiëren voordat deze wordt bijgewerkt op een doelsysteem. (Bron afbeelding: Microchip Technology)
Op het doelsysteem elimineert verificatie van hardwarematige handtekeningen het risico van gecompromitteerde verificatieprotocollen dat mogelijk was met het soort softwaregebaseerde handtekeningverificatie dat in het verleden werd gebruikt. In plaats daarvan voert een bijbehorend beveiligings-IC zoals Microchip's ATECC608 en TA100 snel en veilig handtekeningverificaties uit zonder risico op compromittering (afbeelding 8).
Afbeelding 8: In een doelsysteem is hardwarematige verificatie door een beveiligings-IC zoals de ATECC608 of TA100 essentieel voor het verifiëren van code voorafgaand aan firmware-updates door de bootloader. (Bron afbeelding: Microchip Technology)
Om de implementatie van veilige systemen te versnellen, biedt Microchip een combinatie van software- en hardware-ontwikkeltools.
Software- en hardwareontwikkeling versnellen
Terwijl de MPLAB X geïntegreerde ontwikkelomgeving (IDE) ontwikkelaars voorziet van een volledige softwareontwikkelomgeving, biedt de MPLAB XC C compiler ontwikkelondersteuning voor bestaande toolchains. Om de ontwikkeling in beide omgevingen te versnellen, kunnen ontwikkelaars met de Microchip MPLAB Code Configurator (MCC) een grafische interface gebruiken om automatisch initializers te genereren, stuurprogramma's te bouwen, pinnen toe te wijzen, bibliotheken te implementeren en op andere manieren veel van de kritieke low-level instellingsprocedures en -processen te versnellen die bij elk embedded softwareontwikkelingsproject horen.
Om de implementatie van een geschikte veilige bootloader te versnellen, biedt Microchip's bootloader voor dsPIC33 DSC's en PIC24 MCU's een grafische interface die ontwikkelaars helpt bij het snel configureren en genereren van de aangepaste bootloaders die nodig zijn voor hun toepassing. Een gerelateerde bootloader hostapplicatie vereenvoudigt verder de overdracht van applicatiecode naar het doelapparaat.
Voor hardwareontwikkeling levert Microchip diverse bijbehorende ontwikkelborden voor het bouwen van systemen op basis van dsPIC33C DSC's of PIC24F MCU's. Het PIC-IoT-bord EV54Y39A en PIC-IoT Board AC164164 (afbeelding 9) van Microchip integreren beveiligings-IC's die vooraf zijn voorzien van beveiligingsgegevens voor respectievelijk Amazon Web Services (AWS) en Google Cloud.
Afbeelding 9: Borden zoals het PIC-IoT-bord AC164164 helpen de ontwikkeling van ingebedde beveiliging te versnellen door het integreren van beveiligings-IC's die vooraf zijn voorzien van referenties voor AWS of Google Cloud. (Bron afbeelding: Microchip Technology)
Voor aangepaste ontwerpen biedt Microchip een dsPIC33CH Curiosity-ontwikkelbord(DM330028-2) op basis van de dsPIC33CH512MP508 dual-core DSC. Als alternatief kunnen ontwikkelaars Microchip's dsPIC33CH128MP508-gebaseerde plug-in module(MA330040) aansluiten op een Microchip Explorer ingebedde evaluatiebord (DM240001-2) om de ontwikkeling van veilige, ingebedde systemen te versnellen.
Conclusie
De beveiliging van ingebedde systemen is afhankelijk van de beschikbaarheid van op hardware gebaseerde mechanismen die in staat zijn om de belangrijkste cyberbeveiligingsprincipes te ondersteunen, waaronder firmware-integriteit, authenticatie, versleuteling en veilige opslag. Terwijl Microchip's dsPIC33C DSC's en PIC24F MCU's codebeveiliging vereenvoudigen, bieden de ATECC608 en TA100 beveiligings-IC's de extra beveiligingsmechanismen die nodig zijn in een effectief beveiligingsplatform. Door deze apparaten in combinatie te gebruiken, kunnen ontwikkelaars voorzien in de behoefte aan beveiliging op systeemniveau in ingebedde oplossingen voor het IoT, maar ook in toepassingen voor de auto-industrie, de industrie, de consument en medische toepassingen.
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.




