Hur man säkerställer säkerheten i inbäddade system med hjälp av digitala signalstyrenheter och microcontrollers
Bidraget med av DigiKeys nordamerikanska redaktörer
2023-07-25
Övergången till IoT (Internet of Things) har medfört att säkerhet har gått långt bortom att vara en valfri funktion i inbäddade tillämpningar och utvecklats till ett måste för att säkerställa systemens integritet. För att klara av en ökande mängd säkerhetsspecifikationer behöver utvecklare lösningar som inte bara uppfyller tillämpningskraven på låg strömförbrukning eller hög prestanda utan även kan leverera säkerhetsfunktioner baserade på hårdvara, inklusive autentisering, kryptering, säker lagring och säker start.
Artikeln tillhandahåller en kort introduktion med principerna för inbäddad säkerhet. Därefter visas hur utvecklare kan använda högeffektiva digitala signalstyrenheter (DSC) och den strömsnåla microcontrollern (MCU) PIC24F tillsammans med specialiserade säkerhetsenheter från Microchip Technology, för att möta den växande efterfrågan på strängt inbäddad säkerhet.
Inbäddad säkerhet bygger på fyra viktiga principer
Smarta produkter anslutna till det allmänna internet kan kopplas samman i sofistikerade tillämpningar som få fristående produkter kan uppfylla. Hotet om att cyberattacker använder samma anslutningsvägar begränsar dock inte bara värdet av smarta produkter utan utsätter även produkter, tillhörande tillämpningar och användare för till synes oändliga källor av hot.
Utöver att utvecklare tvingas hantera konsumenternas ständiga efterfrågan på cybersäkerhet på systemnivå måste de i allt högre grad uppfylla säkerhetsspecifikationer från nationella och regionala organisationer. Två av de mest betydelsefulla kravspecifikationerna, den europeiska ETSI EN 303 645, "Cyber Security for Consumer Internet of Things: Baseline Requirements", och den amerikanska NIST IR 8259, "Foundational Cybersecurity Activities for IoT Device Manufacturers", föreslår att praxis för cybersäkerhet ska bygga på fyra viktiga principer:
- Användning av unika lösenord
- Tillgång till säker lagring på enheten för känsliga säkerhetsparametrar
- Säker kommunikation med gemensam autentisering och krypterad kommunikation
- Möjlighet att säkerställa integritet och autenticitet hos firmware genom säker start och säker uppdatering av firmware
För att kunna leverera system som bygger på dessa grundläggande principer måste man använda en betrodd plattform som hindrar hackare från att injicera skadlig kod som ändrar kommunikation, lagring, firmware eller till och med säkerhetsmekanismer.
Betrodda plattformar bidrar till att garantera säkerheten genom att bygga säkerheten på systemnivån från grunden med hjälp av varaktiga säkerhetsmekanismer baserade på hårdvara. Även om konceptet är enkelt har det varit utmanande att implementera säkerhet på systemnivå eftersom en säkerhetsbrist i någon del av systemet kan öppna upp för cyberattacker. Genom att använda den högeffektiva digitala signalstyrenheten dsPIC33C och den strömsnåla microcontrollern PIC24F i kombination med tillhörande säkerhetsenheter, båda från Microchip Technology, kan utvecklare lättare implementera inbäddade konstruktioner som garanterar säkerhet på systemnivå.
Tillgodose kraven på prestanda och effekt
Enheter i serierna dsPIC33C och PIC24F från Microchip är konstruerade för att stödja en mängd olika användningsområden och kombinerar robusta exekveringsplattformar med tillämpningsspecifika funktioner, inklusive ett omfattande tillägg av integrerad analog vågformskontroll och kringutrustning för kommunikation. Faktum är att vid användning av många pulsbreddsmoduleringar (PWM), programmerbara förstärkare (PGA), analog-till-digital-omvandlare (ADC) och annan kringutrustning för en digital signalstyrenhet dsPIC33C kan utvecklare implementera avancerade system med ett minimum av övriga komponenter - vanligtvis behövs bara de nätaggregat som krävs oavsett konstruktion. Ett exempel är användningen av den digitala signalstyrenheten DSPIC33CK512MP608 med en kärna för att implementera en offline-konstruktion för avbrottsfri strömförsörjning (UPS) (figur 1).
Bild 1: I likhet med övriga digitala signalstyrenheter av typen dsPIC33C kan den digitala signalstyrenheten DSPIC33CK512MP608 med en kärna integreras med en omfattande uppsättning kringutrustning, vilket förenklar konstruktionen av komplicerade system som t.ex. den offline-UPS som visas här. (Bildkälla: Microchip Technology)
För tillämpningar som kräver både realtidsstyrning och digital signalbehandling kombinerar den digitala signalstyrenheten dsPIC33C egenskaperna hos en microcontroller och en digital signalstyrenhet med dess specialiserade instruktioner och hårdvarufunktioner. För säkerhetskritiska konstruktioner är den digitala signalstyrenheten dsPIC33C ansedd som en funktionellt säker enhet enligt IEC 60730 och i överensstämmelse med ISO 26262. Den tillhandahåller även flera hårdvarufunktioner konstruerade för att förenkla certifieringen enligt ASIL-B (Automotive Safety Integrity Level B) för funktionell säkerhet och SIL-2 för säkerhetskritiska tillämpningar i fordon och industri.
Även om den digitala signalstyrenheten dsPIC33C är konstruerad för tillämpningar där prestanda är avgörande, tillhandahåller microcontrollern PIC24F en balans mellan prestanda och energieffektivitet för allmänt förekommande inbäddade system, konsumentelektronik, industriell automation, medicinteknisk utrustning samt andra tillämpningar som kräver styrning och anslutning men inte behöver kapacitet för digital signalbehandling. Precis som med den digitala signalstyrenheten dsPIC33C är microcontrollern PIC24F ansedd som en funktionellt säker enhet enligt IEC 60730 med säkerhetsdiagnostiska bibliotek i klass B för att utveckla hushållstillämpningar.
Som tidigare nämnts är firmware-integritet en grundläggande princip för inbäddad cybersäkerhet. För att hjälpa utvecklare att säkerställa firmware-integritet och generellt skydd av kod, tillhandahåller Microchip Flash OTP (one-time programmable) med ICSP (in-circuit serial programming) Write Inhibit och CodeGuard-säkerhet för flashminnet i de digitala signalstyrenheterna dsPIC33C, bland annat i DSPIC33CK512MP608, som har en kärna, i DSPIC33CH512MP508, som har två kärnor, såväl som i microcontrollerserien PIC24F, som t.ex. PIC24FJ512GU40, som precis som många andra konfigurerats med olika uppsättningar av kringutrustning för specifika tillämpningar.
Skydd av enhetens firmware
Flash OTP med ICSP Write Inhibit gör det möjligt för utvecklare att konfigurera delar av flash-minnet som OTP-minne och att läs-/skrivskydda flash-minnet. Den egenutvecklade funktionen med ICSP från Microchip gör att enheterna kan programmeras seriellt via ett par stift samtidigt som de körs i den avslutande tillämpningen. Med den här funktionen kan tillverkare slutföra programmeringen på produktionskort. Medan ICSP kräver att en extern programmeringsenhet används för att styra processen för Flash OTP tillåter Enhanced ICSP att en inbäddad bootloader styr processen för Flash OTP. Enheterna har även stöd för RTSP (run-time self-programming) vilket innebär att användarkoden för flash-minnet kan uppdatera sig själv vid körning.
Efter programmering av produktionsenheten kan utvecklare aktivera ICSP Write Inhibit vilket förhindrar ytterligare programmering eller radering av ICSP. Radering av flash-minnets RTSP och programmeringssessioner kan dock fortsätta även när ICSP Write Inhibit är aktivt om lämplig uppdateringskod för flash-minnet programmeras in i enheten innan aktivering. Detta medför att utvecklare kan använda en betrodd bootloader för att ändra flash-minnet även när ICSP Write Inhibit är aktiverat, vilket gör att de kan uppdatera firmware på ett säkert sätt samtidigt som externa försök att uppdatera flash-minnet i produktionssystem motverkas.
CodeGuard-säkerhet för flash-minnet tillhandahåller ett detaljerat skydd av flash-programmet genom att använda sig av åtskilda startsegment och allmänna segment. Utvecklare definierar storleken på segmenten genom att ange adressen för boot-segmentet (BS) och gränsen (BSLIM) i enhetens register; Generella segment (GS) upptar det återstående minnet. För att skydda känslig information ytterligare, innehåller respektive segment ytterligare partitioner. Boot-segmentet innehåller exempelvis avbrottsvektortabellen (IVT), den valfria alternativa avbrottsvektortabellen (AIVT) samt ytterligare utrymme för instruktionsord (IW); Konfigurationssegmentet (CS), som innehåller enhetens viktiga konfigurationsdata för användaren, ligger inom utrymmet för användaradressen i det generella segmentet (figur 2).
Figur 2: Serierna dsPIC33C och PIC24F stödjer skydd av kod i separata partitioner, som t.ex. BS och GS. (Bildkälla: Microchip Technology)
Efter att ha ställt in partitioner för segmenten kan utvecklare använda enhetens FSEC-register (firmware security) för att aktivera skrivskydd och ställa in önskad skyddsnivå för koden i respektive segment. Vid körning förhindrar enheten att kod som finns i ett segment med en lägre skyddsnivå får åtkomst till kod som finns i ett segment med en högre skyddsnivå. I ett typiskt system skulle utvecklare skrivskydda BS och ställa in kodskyddet på en hög nivå för att motverka externa försök att ändra BS, inklusive bootloader.
Implementering av säker trådlös uppdatering av firmware
Programutvecklare ställs oundvikligen inför behovet av att uppdatera mjukvaran för att hantera en kombination av nyligen upptäckta fel i mjukvaran, konkurrensförbättringar eller nya säkerhetshot. Till skillnad från uppdateringar av mobilappar riskerar säkra uppdateringar av firmware i inbäddade system i bästa fall att störa tillämpningar som för tillfället körs, eller i värsta fall göra systemet obrukbart. Serierna dsPIC33C och strömsnåla PIC24F från Microchip tillhandahåller en mekanism för dubbel partitionering för att hjälpa utvecklare att undvika sådana problem.
I normalt driftläge använder enheterna allt tillgängligt fysiskt minne som ett kontinuerligt minnesutrymme med en partition (figur 3, vänster) som kan konfigureras som separata boot-segment eller generella segment. I tillståndet med dubbla partitioner separerar utvecklarna det fysiska minnet i aktiva och inaktiva partitioner (figur 3, höger).
Figur 3: Utvecklare kan använda sig av serierna dsPIC33C PIC24F i standardläge med en partition eller med två partitioner. (Bildkälla: Microchip Technology)
Med dubbla partitioner kan enheterna fortsätta att köra tillämpningens kod i den aktiva partitionen samtidigt som de programmerar den inaktiva partitionen. När programmeringen har slutförts leder utförande av instruktionen BOOTSWP (boot swap) till att enheten byter uppstartsmål till den uppdaterade partitionen. Om koden i den uppdaterade partitionen misslyckas eller på annat sätt visar sig vara bristfällig, kommer en återställning av enheten automatiskt att leda till att den startar i den ursprungliga partitionen (figur 4).
Figur 4: I läget med dubbla partitioner kan den digitala signalstyrenheten dsPIC33C och microcontrollern PIC24F ladda tilllämpningens kod i en partition och samtidigt fortsätta att köra tillämpningen skod i den andra partitionen. (Bildkälla: Microchip Technology)
När den uppdaterade partitionen är säker kan startsekvensen för flashminnet (FBTSEQ) för den uppdaterade partitionen ställas in på ett värde som är lägre än värdet för den ursprungliga partitionen. Vid efterföljande återställning av enheten startas enheten i den uppdaterade partitionen med det lägre värdet för FBTSEQ (figur 5).
Figur 5: I läget med dubbla partitioner kan utvecklare, efter återställning av enheten, rikta uppstartssekvensen mot önskad partition. (Bildkälla: Microchip Technology)
Flash OTP med ICSP Write Inhibit och CodeGuard-säkerhet för flash-minnet tillhandahåller viktigt stöd för kodens säkerhet, statiskt och vid körning, men omfattande inbäddad säkerhet kräver ytterligare mekanismer, inklusive säker nyckellagring, kodautentisering och säker kommunikation.
Användning av kompletterande enheter för att säkerställa säkerheten i inbäddade system
Genom att kombinera den digitala signalstyrenheten dsPIC33C och microcontrollern PIC24F med säkerhetskretsarna ATECC608 CryptoAuthentication eller TrustAnchor100 (TA100) CryptoAutomotive från Microchip kan utvecklare lättare använda alla kompletterande hårdvarubaserade säkerhetsfunktioner.
Säkerhetskretsarna tillhandahåller manipulationsskyddade hårdvarubaserade säkerhetsmekanismer inklusive säker lagring, hårdvaruaccelererade krypteringsmotorer, äkta slumptalsgeneratorer samt andra mekanismer som krävs av kryptografiska algoritmer. Kretsarna är särskilt utformade som kompletterande enheter och kan enkelt läggas till i system med digitala signalstyrenheter eller microcontrollers för att slutföra säkerhetsimplementeringen i inbäddade system (figur 6).
Figur 6: Säkerhetskretsar som t.ex. ATECC608 eller TA100 kompletterar säkerhetsfunktionerna i den digitala signalstyrenheten dsPIC33C och microcontrollern PIC24F vilket förenklar implementeringen i säkra inbäddade system. (Bildkälla: Microchip Technology)
Utförandet av ett kritiskt moment som till exempel en säker firmware-uppdatering illustrerar de kompletterande säkerhetsfunktionerna hos den digitala signalstyrenheten dsPIC33C och microcontrollern PIC24F i kombination med kompletterande säkerhetskretsar. Utvecklare använder tekniker för kodsignering för att verifiera kodens äkthet och integritet innan uppdateringen av firmware slutförs. Här använder utvecklare sina utvecklingssystem för att skapa ett uppdateringspaket som innehåller koden, metadata för koden och en signatur som används för verifiering (figur 7).
Figur 7: Kodsignering är ett viktigt protokoll som rutinmässigt används för att verifiera äktheten och integriteten hos en kod innan den uppdateras i ett målsystem. (Bildkälla: Microchip Technology)
I målsystemet eliminerar hårdvarubaserad signaturverifiering risken för förvanskade verifieringsprotokoll, vilket var möjligt med den typ av signaturverifiering som baserades på mjukvara och som tidigare användes. Istället kan en tillhörande säkerhetskrets som t.ex. ATECC608 och TA100 från Microchip snabbt och säkert utföra signaturverifiering utan risk för förvanskning (figur 8).
Figur 8: I ett målsystem är den hårdvarubaserade verifieringen som tillhandahålls av en säkerhetskrets, som t.ex. ATECC608 eller TA100, avgörande för att säkerställa kodverifiering innan firmware uppdateras av en bootloader. (Bildkälla: Microchip Technology)
För att påskynda implementeringen av säkra system tillhandahåller Microchip en kombination av utvecklingsverktyg för mjuk- och hårdvara.
Snabba på utvecklingen av mjuk- och hårdvara
Medan MPLAB X IDE ( Integrated Development Environment) tillhandahåller en komplett utvecklingsmiljö för mjukvaruutvecklare. så tillhandahåller kompilatorn MPLAB XC C utvecklingsstöd för befintliga verktygskedjor. MPLAB Code Configurator (MCC) från Microchip låter utvecklare använda ett grafiskt gränssnitt för att automatiskt generera initialiserare, bygga drivrutiner, allokera stift, implementera bibliotek och på andra sätt påskynda flertalet av de kritiska installationsförfaranden och processer på låg nivå som förknippas med alla utvecklingsprojekt för inbäddad programvara.
För att snabba på implementeringen av en lämplig och säker bootloader har bootloadern för den digitala signalstyrenheten dsPIC33 och microcontrollern PIC 2 från Microchip. ett grafiskt gränssnitt som hjälper utvecklare att snabbt konfigurera och generera den anpassade bootloader som krävs av deras tillämpning. En tillhörande värdtillämpning för bootloader förenklar överföringen av tillämpningskod till målenheten ytterligare.
För hårdvaruutveckling tillhandahåller Microchip flera tillhörande utvecklingskort för att bygga system baserade på den digitala signalstyrenheten dsPIC33C eller microcontrollern PIC24F. PIC-IoT-kort EV54Y39A från Microchip och PIC-IoT-kort AC164164 (figur 9) innehåller säkerhetskretsar som är förinstallerade med säkerhetsuppgifter för Amazon Web Services (AWS) respektive Google Cloud.
Figur 9: Kretskort som t.ex. PIC-IoT Board AC164164 bidrar till att påskynda utvecklingen av inbäddad säkerhet genom att integrera säkerhetskretsar som i förinstallerats med inloggningsuppgifter för AWS eller Google Cloud. (Bildkälla: Microchip Technology)
För anpassade konstruktioner erbjuder MicroChip utvecklingskortet dsPIC33CH Curiosity (DM330028-2), som är baserat på den digitala signalstyrenheten dsPIC33CH512MP508 med dubbla kärnor. Alternativt kan utvecklare koppla in en plug-in-modul (MA330040) som är baserad på dsPIC33CH128MP508 från Microchip till ett Explorer Embedded Evaluation-kort(DM240001-2) från Microchip för att påskynda utvecklingen av säkra inbäddade system.
Sammanfattning
Säkerheten i inbäddade system är beroende av att det finns hårdvarubaserade mekanismer som kan stödja grundläggande principer för cybersäkerhet, inklusive firmware-integritet, autentisering, kryptering och säker lagring. Samtidigt som den digitala signalstyrenheten dsPIC33C och microcontrollern PIC24F från Microchip förenklar skyddet för koden tillhandahåller deras säkerhetskretsar ATECC608 och TA100 de övriga säkerhetsmekanismer som krävs i en effektiv säkerhetsplattform. Genom att kombinera enheterna kan utvecklare tillgodose behovet av säkerhet på systemnivå i inbäddade lösningar för IoT liksom för fordons-, industri-, konsument- och medicintekniska tillämpningar.
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.




