Sikring af indlejrede systemer ved hjælp af PSoC 64
Bidraget af DigiKeys nordamerikanske redaktører
2022-07-27
Antallet af produkter, der er forbundet til internettet, vokser fortsat eksponentielt. Problemet for mange produktteams er, at udviklere af indlejret software ikke har tilstrækkelig erfaring med sikkerhed. Manglende erfaring kan føre til oversete sikkerhedskrav, sikkerhedshuller og dårlig implementering. Resultatet er tilsluttede systemer, der er dårligt beskyttet og er let tilgængelige for tyveri af intellektuel ejendom samt enheds- og brugerdata.
Designere af mikrocontroller-baserede systemer har flere løsninger til rådighed, som kan bruges til at forenkle sikkerhedsimplementeringer og give dem værktøjerne til at gøre det med succes. Single-core-mikrocontrollere kan f.eks. bruge Arm's TrustZone, som er en del af Armv8-M-arkitekturen (og senere). Der findes også løsninger med multicore-mikrocontrollere.
Denne artikel viser, hvordan udviklere kan bruge multicore-processorer til at sikre deres indlejrede løsninger. Specielt undersøges den sikre Cypress PSoC 64-mikrocontroller og de værktøjer, den giver mulighed for at implementere en sikker løsning.
Grundlæggende principper for indlejret sikkerhed
Et af de grundlæggende principper for udformning af et sikkert produkt er at udnytte hardware-baseret isolation. Denne isolering kan have mange former, f.eks. et isoleret eksekveringsmiljø eller isoleret hukommelse baseret på en hukommelsesbeskyttelsesenhed (MPU). På det højeste niveau skal en mikrocontroller være i stand til at opdele sit eksekveringsmiljø i et sikkert behandlingsmiljø (SPE) og et ikke-sikkert behandlingsmiljø (NSPE).
En SPE er et isoleret eksekveringsmiljø, hvor hukommelse, komponenter og programkode er adskilt fra NSPE'en. SPE kan opfattes som en sikkerhedsprocessor. SPE'en kører sikker kode og sikre operationer som f.eks. et sikkert operativsystem og/eller en root-of-trust (RoT). SPE'en vil også udføre Trusted Services som f.eks. kryptografi, sikker lagring, attestering og sikker logning. Et begrænset antal betroede applikationer, der er relateret til sikre operationer, vil køre i SPE.
NSPE kan for sin del betragtes som et funktionsrigt udførelsesmiljø, der kører alt undtagen sikre operationer. NSPE er faktisk den velkendte programmeringsmodel, som de fleste udviklere af indlejrede applikationer er vant til; den har en RTOS og de fleste af applikationens komponenter.
Hardware-baseret isolering er en af de centrale principper eller bedste praksis, som Arm® Platform Security Architecture (PSA) tilbyder for at opbygge sikre systemer. De forskellige isoleringslag, som vi lige har diskuteret, kan ses implementeret i figur 1, med PSoC 64 som eksempel. I dette eksempel skaber SPE og NSPE (1) hardwareisolation ved at have kørselstidsmiljøerne på separate processorer. Ud over adskillelse af kørselstid er RoT og Trusted Services yderligere isoleret (2). Endelig er hver enkelt betroet applikation i SPE'en også isoleret ved hjælp af værktøjer som f.eks. betroede partitioner og MPU'er (3).
Figur 1: En sikker applikation bruger hardware-baseret isolation til at adskille eksekveringsmiljøer. 1) NSPE og SPE er isoleret 2) RoT- og Trusted Services er isoleret 3) Trusted-applikationer er isoleret. (Billedkilde: Arm/Cypress)
PSoC 64 er en mikrocontroller med to kerner, hvor NSPE udføres på en Arm Cortex®-M4 processor, og SPE udføres på en Arm Cortex-M0+-processor. Arm Cortex-M0+ kører alle sikkerhedsfunktioner og kan kommunikere med Cortex-M4 via en IPC-bus (inter-processor communication). Arkitekturen begrænser adgangen til SPE'en, som er hardwareisoleret.
Hvis du vil i gang med at bruge PSoC 64, kan udviklere tjekke PSoC 64 Secure Boot Pioneer Kit ud.
PSoC 64 Secure Boot Pioneer Kit
PSoC 64 Secure Boot Pioneer Kit (Figur 2) indeholder alt, hvad udviklere har brug for at komme i gang med at sikre deres applikationer. For det første har den et PSoC 64-modul med PSoC 64-mikrocontroller, ekstern hukommelse og alle støttekredsløb (vist i rødt). Den eksterne hukommelse kan bruges til at gemme programkode eller til at gemme nye firmwareimages til sikre FOTA-opdateringer (Firmware-Over-The-Air).
Figur 2: PSoC 64 Secure Boot Pioneer Kit indeholder alt, hvad udviklere har brug for for at komme i gang med at udvikle sikre IoT-applikationer. (Billedkilde: Cypress)
Dernæst har den et Wi-Fi-modul, der gør det muligt for udviklere at tilslutte kortet til et netværk. Wi-Fi-modulet er især nyttigt til IoT-applikationer, hvor kortet skal oprette forbindelse til cloud-tjenester som AWS eller Azure. Udviklingskortet understøtter Amazon FreeRTOS, som vi vil diskutere i næste afsnit.
Endelig understøtter Pioneer Kit en lang række udvidelsesmuligheder som f.eks. pin headers, Arduino headers og en række sensorer. Udviklere kan udnytte den indbyggede touch-slider og touch-knapper, trykknapper, potentiometer og meget mere. Kortet er også indrettet til at gøre det nemt at tilpasse det til næsten alle applikationer.
PSoC 64 Secure Software Suite
Det kan være tidskrævende og udfordrende at designe en sikker indlejret applikation. Udviklere bør søge efter løsninger, der hjælper med at reducere omkostningerne og time-to-market, samtidig med at de sikrer, at deres applikation er sikker. PSoC 64 har en bred vifte af software, som gør det muligt for udviklere at opbygge en sikker applikation hurtigt.
CySecureTools giver f.eks. udviklere et værktøjssæt til at oprette nøgler og certifikater samt værktøjer til signering af brugerprogrammer og til at forsyne Cypress-mikrocontrollere. Værktøjet gør det muligt for udviklere at overføre Cypress RoT og derefter indskyde deres egne sikkerhedsaktiver. Du kan finde oplysninger om, hvordan du konfigurerer og bruger CySecureTools, i README-filen i github-repositoriet.
Et værktøj, som IoT-udviklere vil finde nyttigt, er understøttelse af AWS ved hjælp af FreeRTOS. Github-repositoriet indeholder nyttige eksempler på brug af FreeRTOS og AWS med PSoC 64. Det første eksempel, som udviklere vil være interesseret i, er programmet "Hello World", der sender MQTT-meddelelser fra PSoC 64 til AWS-cloud'en. Dette eksempel giver udvikleren mulighed for at gennemgå provisioneringsprocessen, nøglegenerering og implementeringsfaserne. I slutningen af eksemplet har udviklerne en sikker indlejret enhed, der er forbundet til AWS. Du kan finde flere oplysninger om, hvordan du kommer i gang, i vejledningen Getting Started with CY8CKIT-064S0S204343-kit guide.
Sikre applikationer med Trusted Firmware-M (TF-M)
PSoC 64 giver udviklere en sikkerhedsramme, der er klar til brug i en applikation, og som nemt kan tilpasses til en applikation. Udviklere kan finde det nyttigt at forstå, hvad der foregår bag kulisserne ud fra et softwareperspektiv. PSoC 64-firmwaren udnytter specifikt en open source-baseline-sikkerhedsramme kendt som Trusted Firmware-M eller TF-M.
TF-M er en referenceimplementering af Arm PSA IoT Security Framework. Den giver udviklere nyttige sikkerhedsværktøjer såsom enhedsattestering, firmware-verifikation, kryptografiske tjenester, håndtering af enhedshemmeligheder og sikker partitionering, for blot at nævne nogle få. Cypress har brugt TF-M til at opbygge sin sikkerhedsramme, så udviklerne kan bruge den i deres applikationer.
Udviklere kan ændre deres sikkerhedsramme ved at tilføje deres egen kode, tilføje sikkerhedsprofiler og meget mere. Det er dog vigtigt at huske på, at jo mere SPE-softwaren ændres, jo større er risikoen for, at der tilføjes en sårbarhed. Udviklerne skal nøje afveje de risici, der er forbundet med ændringer, tilføjelser i forhold til basisfirmwaren.
Tips og tricks til sikring af indlejrede applikationer
Udviklere, der ønsker at sikre deres indlejrede applikationer for første gang, har meget at overveje. Her er flere "tips og tricks", der kan forenkle og fremskynde udviklingen:
- Udfør en trusselsmodel og sikkerhedsanalyse (TMSA) tidligt i udviklingscyklussen.
- Brug et udviklingskort til at afprøve enhedens RoT, Secure Bootloader, enhedens provisioneringsproces og firmwareopdateringer.
- Du skal ikke implementere sikkerhed alene! Udnyt eksisterende open source- og sikre firmware stacks for at minimere spild af tid.
- Sørg for at gennemtænke enhedens levetid, herunder hvordan den skal tages ud af drift på en sikker måde.
- Udforsk værktøjer som CySecureTools, da disse værktøjer leveres med sikkerhedsskabeloner, software og eksempler.
- Når du kloner FreeRTOS' github-repositorium, skal du klone den seneste taggede version. Ved at klone den aktive hovedlinje finder man ofte værktøjsinkompatibilitet og fejl, som stadig er under udvikling.
- Start et projekt ved at gennemgå Introduktionssættet til Cypress CY8CKIT-064S0S0S2-4343W-kittet. Den indeholder alle de nødvendige oplysninger til at få et basisprogram til at køre, som derefter kan ændres til specifikke produktformål.
Udviklere, der følger disse "tips og tricks", vil opdage, at de sparer en hel del tid og ærgrelse.
Konklusion
Sikkerhed behøver ikke at være svært. Udviklere af Indlejrede applikationer bør fokusere på deres produkts differentiatorer - Deres hemmelige sauce. I de fleste tilfælde er det ikke sikkerhed. I denne artikel blev det undersøgt, hvordan PSoC 64 kan hjælpe udviklere med hurtigt at sikre deres applikationer ved ikke blot at levere et hardwarebaseret isoleringsmiljø, men også ved at levere en ramme af softwareværktøjer. Sammen giver hardware- og softwareløsningerne udviklerne en hurtigere udviklingscyklus for sikkerhed.
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.

