Sådan leverer du sikkerheden i embeddede systemer med DSC'er og MCU'er
Bidraget af DigiKeys nordamerikanske redaktører
2023-07-25
Med overgangen til Internet of Things (IoT) har sikkerhed bevæget sig langt ud over en valgfri funktion i embeddede applikationer og udviklet sig til en must-have-funktion, der er nødvendig for at sikre systemintegritet. For at kunne leve op til det voksende antal sikkerhedsspecifikationer har udviklerne brug for løsninger, der ikke kun matcher applikationernes krav til lavt strømforbrug eller høj ydeevne, men som også kan levere hardwarebaserede sikkerhedsfunktioner, herunder autentifikation, kryptering, sikker lagring og sikker opstart.
Denne artikel giver en kort introduktion til sikkerhedsprincipper for embeddede enheder. Derefter viser den, hvordan udviklere kan bruge Microchip Technologys højtydende digitale signalcontrollere (DSC'er) og strømbesparende PIC24F-mikrocontrollerenheder (MCU'er) sammen med Microchips specialiserede sikkerhedsenheder til at imødekomme den nye efterspørgsel efter streng sikkerhed for embeddede enheder.
Embedded sikkerhed bygger på fire nøgleprincipper
Med forbindelse til det offentlige internet kan smarte produkter forbindes med hinanden i sofistikerede applikationer, som kun få enkeltstående produkter kan matche. Men truslen om cyberangreb, der bruger de samme forbindelsesveje, begrænser ikke kun potentielt værdien af smarte produkter, men udsætter også disse produkter, de tilknyttede applikationer og deres brugere for tilsyneladende endeløse kilder til trusler.
Ud over forbrugernes fortsatte krav om cybersikkerhed på systemniveau, skal udviklerne i stigende grad forholde sig til sikkerhedsspecifikationer fra nationale og regionale organisationer. To af de mest indflydelsesrige specifikationer, Europas ETSI EN 303 645, "Cyber Security for Consumer Internet of Things": Baseline Requirements," og USA's NIST IR 8259, "Foundational Cybersecurity Activities for IoT Device Manufacturers," foreslår, at cybersikkerhedspraksis afhænger af fire nøgleprincipper:
- Brug af unikke adgangskoder
- Tilgængelighed af sikker lagring på enheden til følsomme sikkerhedsparametre
- Sikker kommunikation gennem gensidig autentifikation og krypteret kommunikation
- Mulighed for at sikre firmwarens integritet og autentifikation gennem sikker opstart og sikker firmwareopdatering
At levere systemer baseret på disse kerneprincipper kræver brug af en pålidelig platform, der forhindrer hackere i at indføre kompromitteret kode, der ændrer kommunikation, lagring, firmware eller endda selve sikkerhedsmekanismerne.
Trusted platforms hjælper med at øge sikkerheden ved at opbygge sikkerhed på systemniveau fra bunden af ved hjælp af uforanderlige hardwarebaserede sikkerhedsmekanismer. Selvom konceptet er ligetil, har implementeringen af sikkerhed på systemniveau været en udfordring, fordi en sikkerhedssvaghed i en hvilken som helst del af systemet kan give mulighed for cyberangreb. Ved at bruge Microchip Technologys højtydende dsPIC33C DSC'er og strømbesparende PIC24F MCU'er i kombination med Microchips ledsagende sikkerhedsenheder kan udviklere lettere implementere embedded designs, der giver sikkerhed på systemniveau.
Opfylder krav til ydeevne og effekt
Enhederne i Microchips dsPIC33C DSC- og PIC24F MCU-familier er designet til at understøtte en lang række anvendelser og kombinerer hver især robuste eksekveringsplatforme med applikationsspecifikke funktioner, herunder et omfattende udvalg af integrerede perifere enheder til analog, bølgeformskontrol og kommunikation. Ved at bruge de mange pulsbreddemodulationer (PWM), programmerbare forstærkere (PGA'er), analog-til-digital-konvertere (ADC'er) og andre perifere enheder på en dsPIC33C DSC kan udviklere faktisk implementere komplekse systemer med et minimum af ekstra komponenter - typisk behøver man kun de strømforsyninger, der kræves i et sådant design. Et eksempel er brugen af DSPIC33CK512MP608 single-core DSC til at implementere et offline UPS-design (uninterruptible power supply) (figur 1).
Figur 1: Som med andre dsPIC33C DSC'er integrerer DSPIC33CK512MP608 single-core DSC et omfattende sæt perifere enheder, der forenkler designet af komplekse systemer som den viste offline UPS. (Billedkilde: Microchip Technology)
Til applikationer, der kræver både realtidsstyringsfunktioner og digital signalbehandling, kombinerer dsPIC33C DSC'er funktionerne i en MCU og en DSC med dens specialiserede instruktioner og hardwarefunktionalitet. Til sikkerhedskritiske designs er dsPIC33C DSC'er klar til IEC 60730 funktionel sikkerhed og ISO 26262-kompatible, hvilket giver flere hardwarefunktioner, der er designet til at forenkle funktionel sikkerhedscertificering til Automotive Safety Integrity Level B (ASIL-B) og SIL-2 sikkerhedskritiske applikationer til biler og industri.
Mens dsPIC33C DSC'er er designet til applikationer, hvor ydeevne er altafgørende, giver PIC24F MCU'er en balance mellem ydeevne og energieffektivitet til generelle indlejrede systemer, forbrugerelektronik, industriel automatisering, medicinsk udstyr og andre applikationer, der kræver kontrol og tilslutningsmuligheder, men ikke har brug for DSP-funktioner. Som med dsPIC33C DSC'er er PIC24F MCU'er IEC 60730 funktionelle sikkerhedsklare enheder med klasse B sikkerhedsdiagnostiske biblioteker til bygning af husholdningsapplikationer.
Som tidligere nævnt er firmware-integritet et kerneprincip i embedded cybersikkerhed. For at hjælpe udviklere med at sikre firmware-integritet og generel kodebeskyttelse, leverer Microchip Flash engangsprogrammerbar (OTP eller one-time programmable) med in-circuit seriel programming (ICSP) Write Inhibit og CodeGuard Flash-sikkerhed i dsPIC33C DSC-enheder, såsom DSPIC33CK512MP608 single-core DSC og DSPIC33CH512MP508 dual-core DSC, samt PIC24F MCU-enheder såsom PIC24FJ512GU405 MCU, blandt mange andre konfigureret med forskellige sæt af applikationsspecifikke periferienheder.
Beskyttelse af enhedens firmware
Flash OTP med ICSP Write Inhibit gør det muligt for udviklere at konfigurere dele af Flash-hukommelsen som OTP-hukommelse og at læse-/skrivebeskytte Flash-hukommelsen. Microchips proprietære ICSP-funktion gør det muligt at serieprogrammere disse enheder via et par ben, mens de kører i slutapplikationen. Med denne mulighed kan producenterne færdiggøre programmeringen på produktionskort. Mens ICSP kræver brug af en ekstern programmeringsenhed til at styre Flash OTP-processen, tillader Enhanced ICSP en indbygget bootloader at styre Flash OTP-processen. Disse enheder understøtter også run-time self-programming (RTSP), som gør det muligt for Flash-brugerprogrammets kode at opdatere sig selv under kørslen.
Når udviklerne har programmeret deres produktionsenhed, kan de aktivere ICSP Write Inhibit, som forhindrer yderligere ICSP-programmering eller sletning. Ikke desto mindre kan RTSP Flash-sletning og programmering fortsætte, selv når ICSP Write Inhibit er aktiveret, hvis en passende Flash-opdateringskode er programmeret ind i enheden, før den aktiveres. Som et resultat kan udviklere bruge en betroet bootloader til at ændre Flash, selv når ICSP Write Inhibit er aktiveret, hvilket giver dem mulighed for sikkert at opdatere firmware, mens de stadig afbøder eksterne forsøg på at opdatere Flash i produktionssystemer.
CodeGuard Flash-sikkerhed giver finkornet beskyttelse af programflash ved hjælp af separate boot- og generelle segmenter. Udviklere definerer størrelsen på disse segmenter ved at indstille adressen på boot-segmentets (BS) grænse (BSLIM) i enhedens BSLIM-register; det generelle segment (GS) optager den resterende hukommelse. For yderligere at beskytte følsomme oplysninger indeholder hvert segment yderligere partitioner. BS indeholder f.eks. interruptvektortabellen (IVT), den valgfrie alternative interruptvektortabel (AIVT) og ekstra plads til instruktionsord (IW); konfigurationssegmentet (CS), som indeholder kritiske brugerkonfigurationsdata for enheden, ligger i brugeradresserummet i GS (figur 2).
Figur 2: MCU-familierne dsPIC33C DSC og PIC24F understøtter kodebeskyttelse i separate partitioner som BS og GS. (Billedkilde: Microchip Technology)
Efter at have indstillet segmentpartitioner kan udviklere bruge enhedens firmwaresikkerhedsregister (FSEC) til valgfrit at aktivere skrivebeskyttelse og indstille det nødvendige kodebeskyttelsesniveau for hvert segment. Under kørslen forhindrer enheden kode i et segment med et lavere kodebeskyttelsesniveau i at få adgang til kode i et segment med et højere kodebeskyttelsesniveau. I et typisk system vil udviklerne skrivebeskytte BS og sætte kodebeskyttelsen til et højt niveau, hvilket mindsker eksterne forsøg på at ændre BS, herunder bootloaderen.
Implementering af sikker over-the-air firmwareopdatering
Softwareudviklere står uundgåeligt over for behovet for at opdatere software som reaktion på kombinationen af nyopdagede softwarefejl, konkurrenceforbedringer eller nye sikkerhedstrusler. I modsætning til opdateringer af mobilapps risikerer sikre opdateringer af firmware i embeddede systemer i bedste fald at forstyrre de applikationer, der kører i øjeblikket, eller i værste fald at "bricke" systemet. Microchips dsPIC33C DSC'er og strømbesparende PIC24F MCU'er har en dobbeltpartitioneringsmekanisme, der er designet til at hjælpe udviklere med at undgå disse problemer.
I standarddriftstilstand bruger disse enheder al tilgængelig fysisk hukommelse som et kontinuerligt hukommelsesrum med én partition (Figur 3, venstre), der kan konfigureres i separate BS'er og GS'er. I dobbeltpartition-tilstand opdeler udviklerne den fysiske hukommelse i separate aktive og inaktive partitioner (Figur 3, højre).
Figur 3: Udviklere kan betjene dsPIC33C DSC og PIC24F MCU-familierne i standard enkeltpartition-tilstand eller i dobbeltpartition-tilstand. (Billedkilde: Microchip Technology)
I dobbeltpartition-tilstand kan disse enheder fortsætte med at afvikle programkode i den aktive partition, mens de programmerer den inaktive partition. Når programmeringen er afsluttet, får udførelsen af runtime-instruktionen boot swap (BOOTSWP) enheden til at skifte boot-target til den opdaterede partition. Hvis koden i den opdaterede partition fejler eller på anden måde er mangelfuld, vil en nulstilling af enheden automatisk få enheden til at boote i den oprindelige partition (figur 4).
Figur 4: I dobbeltpartition-tilstand kan dsPIC33C DSC'erne og PIC24F MCU'erne indlæse applikationskode i én partition, mens de fortsætter med at afvikle applikationskode i den anden partition. (Billedkilde: Microchip Technology)
Når man er sikker på, at den opdaterede partition virker, kan flashbootsekvensen (FBTSEQ) for den opdaterede partition indstilles til en lavere værdi end den oprindelige partition. Ved efterfølgende nulstilling af enheden starter den op i den opdaterede partition med den laveste FBTSEQ-værdi (figur 5).
Figur 5: dobbeltpartition-tilstand giver udviklere mulighed for at specificere rækkefølgen for opstart til den ønskede partition efter nulstilling af enheden. (Billedkilde: Microchip Technology)
Flash OTP med ICSP Write Inhibit og CodeGuard Flash-sikkerhed giver kritisk støtte til statisk og runtime kodesikkerhed, men omfattende embedded sikkerhed kræver yderligere mekanismer, herunder sikker nøgleopbevaring, kodeautentificering og sikker kommunikation.
Brug af ledsagende sikkerhedsenheder til at sikre indlejrede systemer
Ved at kombinere dsPIC33C DSC'er og PIC24F mikrocontrollere med Microchips' ATECC608 CryptoAuthentication eller TrustAnchor100 (TA100) CryptoAutomotive sikkerheds-IC, kan udviklere lettere implementere det fulde supplement af hardwarebaserede sikkerhedsfunktioner.
Disse sikkerheds-IC'er giver hardwarebaserede sikkerhedsmekanismer, der er modstandsdygtige over for manipulation, herunder sikker opbevaring, hardwareaccelererede kryptografimotorer, ægte tilfældige talgeneratorer og andre mekanismer, der kræves af kryptografiske algoritmer. IC'erne er designet specifikt som ledsagende enheder og kan nemt føjes til DSC- eller MCU-systemdesign for at fuldføre implementeringen af fuld sikkerhed i indlejrede systemer (figur 6).
Figur 6: Sikkerheds-IC'er som ATECC608 eller TA100 supplerer sikkerhedsfunktionerne i dsPIC33C DSC'erne og PIC24F MCU'erne, hvilket forenkler implementeringen af sikre embeddede systemer. (Billedkilde: Microchip Technology)
Udførelse af en kritisk handling som sikker firmwareopdatering illustrerer de komplementære sikkerhedsfunktioner i dsPIC33C DSC'er og PIC24F-mikrocontrollere sammen med disse ledsagende sikkerheds-IC'er. Udviklere bruger kodesigneringsteknikker til at verificere kodens autenticitet og integritet, før firmwareopdateringen afsluttes. Her bruger udviklerne deres udviklingssystemer til at skabe en opdateringspakke, der indeholder koden, metadata om koden og en signatur, der bruges til verifikation (figur 7).
Figur 7: Kodesignering er en vigtig protokol, der rutinemæssigt bruges til at verificere autenticiteten og integriteten af kode, før den opdateres på et målsystem. (Billedkilde: Microchip Technology)
På målsystemet eliminerer hardwarebaseret signaturverifikation risikoen for kompromitterede verifikationsprotokoller, hvilket var muligt med den slags softwarebaseret signaturverifikation, der blev brugt tidligere. I stedet kan en ledsagende sikkerheds-IC som Microchips ATECC608 og TA100 hurtigt og sikkert udføre signaturverificering uden risiko for kompromittering (figur 8).
Figur 8: I et målsystem er hardwarebaseret verifikation leveret af en sikkerheds-IC som ATECC608 eller TA100 afgørende for at sikre verifikation af kode før firmwareopdatering af bootloaderen. (Billedkilde: Microchip Technology)
For at fremskynde implementeringen af sikre systemer tilbyder Microchip en kombination af software- og hardwareudviklingsværktøjer.
Hurtig udvikling af software og hardware
Mens det integrerede udviklingsmiljø (IDE) MPLAB X giver udviklere et komplet softwareudviklingsmiljø, giver MPLAB XC C-compileren udviklingsstøtte til eksisterende værktøjskæder. For at fremskynde udviklingen i begge miljøer lader Microchip MPLAB Code Configurator (MCC) udviklere bruge en grafisk interface til automatisk at generere initialisatorer, bygge drivere, allokere ben, implementere biblioteker og på anden måde hjælpe med at fremskynde mange af de kritiske opsætningsprocedurer og processer på lavt niveau, der er forbundet med ethvert embedded softwareudviklingsprojekt.
For at fremskynde implementeringen af en passende sikker bootloader giver Microchips Bootloader til dsPIC33 DSC'er og PIC24 MCU'er en grafisk grænseflade, der hjælper udviklere med hurtigt at konfigurere og generere de brugerdefinerede bootloadere, der kræves til deres applikation. En tilhørende bootloader-værtsapplikation forenkler yderligere overførslen af applikationskode til målenheden.
Til hardwareudvikling tilbyder Microchip flere tilhørende udviklingskort til opbygning af systemer baseret på dsPIC33C DSC'er eller PIC24F MCU'er. Faktisk integrerer Microchips PIC-IoT-kort EV54Y39A og PIC-IoT-kort AC164164 (figur 9) sikkerheds-IC'er, der er forsynet med sikkerhedsoplysninger til henholdsvis Amazon Web Services (AWS) og Google Cloud.
Figur 9: Kort som PIC-IoT-kort AC164164 er med til at fremskynde udviklingen af embedded sikkerhed ved at integrere sikkerheds-IC'er, der på forhånd er forsynet med legitimationsoplysninger til AWS eller Google Cloud. (Billedkilde: Microchip Technology)
Til specialdesign tilbyder Microchip et dsPIC33CH Curiosity-udviklingskort (DM330028-2) baseret på dsPIC33CH512MP508 dual-core DSC. Alternativt kan udviklere tilslutte Microchips dsPIC33CH128MP508-baserede plug-in-modul (MA330040) til et Microchip Explorer embedded evalueringskort (DM240001-2) for at fremskynde udviklingen af sikre embeddede systemer.
Konklusion
Embedded systemsikkerhed afhænger af tilgængeligheden af hardwarebaserede mekanismer, der kan understøtte centrale cybersikkerhedsprincipper, som omfatter firmwareintegritet, autentifikation, kryptering og sikker opbevaring. Mens Microchips dsPIC33C DSC'er og PIC24F MCU'er forenkler kodebeskyttelsen, giver deres ATECC608 og TA100 sikkerheds-IC'er de ekstra sikkerhedsmekanismer, der kræves på en effektiv sikkerhedsplatform. Ved at bruge disse enheder i kombination kan udviklere opfylde behovet for sikkerhed på systemniveau i indlejrede løsninger til IoT samt bil-, industri-, forbruger- og medicinske applikationer.

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.