Slik sikrer du integrert systemsikkerhet ved å bruke DSC-er og mikrokontrollere

Av Stephen Evanczuk

Bidrag fra DigiKeys nordamerikanske redaktører

Med overgangen til tingenes Internett (IoT), har sikkerhet nå blitt langt mer enn en valgfri funksjon i integrerte konstruksjoner, og har utviklet seg til å bli en uunnværlig funksjon som kreves for å sikre systemintegritet. For å imøtekomme et økende antall sikkerhetsspesifikasjoner, trenger utviklere løsninger som ikke bare samsvarer med konstruksjonskravene for lav effekt eller høy ytelse, men som også kan levere maskinvarebaserte sikkerhetsfunksjoner, deriblant autentisering, kryptering, sikker lagring og sikker oppstart (secure boot).

Denne artikkelen gir en kort innføring i integrerte sikkerhetsprinsipper. Den viser deretter hvordan utviklere kan bruke Microchip Technology sine høyytelses digitale signalstyringer (DSC – digital signal controller) og laveffekts PIC24F-mikrokontrollere (MCU-er), sammen med Microchip sine spesialiserte sikkerhetsenheter, for å møte den voksende etterspørselen etter streng integrert sikkerhet.

Integrert sikkerhet bygger på fire hovedprinsipper

Smarte produkter er koblet til det offentlige Internettet, og kan knyttes sammen i sofistikerte konstruksjoner som få frittstående produkter kan matche. Trusselen om cyberangrep som bruker de samme tilkoblingsbanene vil ikke bare potensielt begrense verdien av smartprodukter, men også utsette disse produktene, de tilknyttede konstruksjonene og brukerne for tilsynelatende endeløse trusselkilder.

I tillegg til å oppleve kontinuerlig forbrukeretterspørsel etter cybersikkerhet på systemnivå, må utviklere i økende grad håndtere sikkerhetsspesifikasjoner fra nasjonale og regionale organisasjoner. To av de mest innflytelsesrike spesifikasjonene, Europas ETSI EN 303 645, «Cybersikkerhet for tingenes Internett for forbrukere: Grunnkrav» og USA sin NIST IR 8259, «Grunnleggende cybersikkerhetsaktiviteter for produsenter av IoT-enheter», antyder at rutiner for cybersikkerhet avhenger av fire hovedprinsipper:

  • Bruk av unike passord
  • Tilgjengelighet av sikker lagring på enheten for sensitive sikkerhetsparametere
  • Sikker kommunikasjon gjennom gjensidig autentisering og kryptert kommunikasjon
  • Mulighet for å sikre fastvareintegritet og -autentisitet gjennom sikker oppstart og sikker fastvareoppdatering

Det å levere systemer basert på disse kjerneprinsippene krever at det brukes en pålitelig plattform som hindrer hackere i å injisere kompromittert kode som endrer kommunikasjon, lagring, fastvare eller til og med selve sikkerhetsmekanismene.

Pålitelige plattformer bidrar til å sørge for sikkerhet ved å bygge opp sikkerhet på systemnivå fra grunnen av ved hjelp av uforanderlige maskinvarebaserte sikkerhetsmekanismer. Selv om konseptet er enkelt, har implementeringen av sikkerhet på systemnivå vært utfordrende, fordi en sikkerhetssvakhet i en hvilken som helst del av systemet kan utgjøre en aveny for cyberangrep. Ved å bruke Microchip Technology sine høyytelses dsPIC33C DSC-er og laveffekts PIC24F-mikrokontrollere, i kombinasjon med Microchip sine ledsagende sikkerhetsenheter, kan utviklere enklere implementere integrerte konstruksjoner som sørger for sikkerhet på systemnivå.

Oppfylle krav til ytelse og strømforbruk

Microchip sine dsPIC33C DSC-er og PIC24F-mikrokontrollere er utviklet for å støtte et bredt spekter av bruksområder, og de kombinerer robuste eksekveringsplattformer med anvendelsesspesifikke funksjoner, deriblant et omfattende komplement av integrert periferiutstyr for analog, bølgeformstyring og kommunikasjon. Ved å bruke flere programmerbare forsterkere (PGA – programmable gain amplifier) med pulsbreddemodulasjon (PWM – analog-to-digital converter), A-D-omformere (ADC – analog-to-digital converter) og annet periferiutstyr på en dsPIC33C DSC, kan utviklere implementere komplekse systemer med et minimum av tilleggskomponenter – som vanligvis bare trenger strømforsyningene som kreves i en slik konstruksjon. Et eksempel på dette er bruken av DSPIC33CK512MP608 DSC-en med én kjerne for å implementere en frakoblet UPS-konstruksjon (UPS – uninterruptible power supply) (figur 1).

Skjema over Microchip DSPIC33CK512MP608 DSC med én kjerne (klikk på for å forstørre)Figur 1: I likhet med andre dsPIC33C DSC-er, integrerer den énkjernede DSPIC33CK512MP608 DSC-en et omfattende sett med periferiutstyr, noe som forenkler utformingen av komplekse systemer, slik som den frakoblede UPS-en som vises. (Bildekilde: Microchip Technology)

For konstruksjoner som krever både sanntidsstyring og digital signalbehandling, kombinerer dsPIC33C DSC-ene funksjonene til en mikrokontroller med de spesialiserte instruksjonene og maskinvarefunksjonaliteten til en DSC. For sikkerhetskritiske konstruksjoner er dsPIC33C DSC-er IEC 60730-klare for funksjonssikkerhet og ISO 26262-kompatible, og tilbyr flere maskinvarefunksjoner som er utviklet for å forenkle sertifisering for kjøretøysikkerhetsnivå B (ASIL-B – Automotive Safety Integrity Level B) og SIL-2 for sikkerhetskritiske kjøretøy- og industrikonstruksjoner.

Selv om dsPIC33C DSC-er er utviklet for konstruksjoner der ytelsen er avgjørende, tilbyr PIC24F-mikrokontrolleren en balanse mellom ytelse og strømeffektivitet for universelle integrerte systemer, forbrukerelektronikk, industriautomasjon, medisinsk utstyr og andre konstruksjoner som krever styring og tilkobling, men som ikke trenger DSP-funksjonalitet. I likhet med dsPIC33C DSC-er, er PIC24F-mikrokontrollere IEC 60730-klare for funksjonssikkerhet med diagnostiske biblioteker i klasse B for bygging av husholdningskonstruksjoner.

Som nevnt tidligere, er fastvareintegritet et kjerneprinsipp for integrert cybersikkerhet. For å hjelpe utviklere med å sikre fastvareintegritet og generell kodebeskyttelse, tilbyr Microchip engangsprogrammerbar (OTP – one-time programmable) Flash ved å bruke ICSP-skrivebeskyttelse (ICSP – in-circuit serial programming – seriell programmering i krets) og CodeGuard Flash-sikkerhet i dsPIC33C DSC-enheter, for eksempel den enkjernede DSPIC33CK512MP608 DSC-en og den tokjernede DSPIC33CH512MP508 DSC-en, samt PIC24F-mikrokontrollere som PIC24FJ512GU405-mikrokontrolleren, i tillegg til mange andre som er konfigurert med forskjellige sett av anvendelsesspesifikke periferienheter.

Beskyttelse av enhetens fastvare

Flash OTP via ICSP-skrivebeskyttelse (write inhibit) gjør det mulig for utviklere å konfigurere deler av flashminnet som OTP-minne og å lese-/skrivebeskytte flashminnet. Microchip sin proprietære ICSP-funksjon gjør at disse enhetene kan serieprogrammeres gjennom et par pinner samtidig som de kjører den endelige applikasjonen. Med denne egenskapen kan produsenter fullføre programmering på produksjonskort. Selv om ICSP krever at en ekstern programmeringsenhet brukes for å styre Flash OTP-prosessen, gir forsterket ICSP (Enhanced ICSP) en innebygd oppstartslaster muligheten til å styre Flash OTP-prosessen. Disse enhetene støtter også RTSP (run-time self-programming), som gjør at Flash-brukerapplikasjonskoden kan oppdatere seg selv under kjøring.

Etter å ha programmert produksjonsenheten, kan utviklere aktivere ICSP-skrivebeskyttelse, som forhindrer ytterligere ICSP-programmering eller -sletting. Likevel kan RTSP Flash-sletting og programmeringsfunksjoner fortsette selv når ICSP-skrivebeskyttelse er aktivert, hvis egnet Flash-oppdateringskode er programmert inn i enheten før aktivering. Som et resultat kan utviklere bruke en pålitelig oppstartslaster til å endre Flash selv når ICSP-skrivebeskyttelse er aktivert, slik at de kan oppdatere fastvaren på en sikker måte, samtidig som de reduserer eksterne forsøk på å oppdatere Flash i produksjonssystemer.

CodeGuard Flash-sikkerhet gir detaljert beskyttelse av program-Flash ved å bruke separate oppstartssegmenter og generelle segmenter. Utviklere definerer størrelsen på disse segmentene ved å angi adressen til BS-grensen (BSLIM – boot segment limit) i enhetens BSLIM-register. Det generelle segmentet (GS) opptar det gjenværende minnet. For å ytterligere beskytte sensitiv informasjon, inneholder hvert segment flere partisjoner. For eksempel inneholder BS-en avbruddsvektortabellen (IVT – interrupt vector table), den valgfrie alternative avbruddsvektortabellen (AIVT) og det ekstra instruksjonsord-området (IW – instruction word). Konfigurasjonssegmentet (CS – configuration segment), som inneholder viktige brukerkonfigurasjonsdata for enheten, ligger i brukeradresseområdet i GS-en (figur 2).

Skjema over Microchip sine dsPIC33C DSC-er og PIC24F-mikrokontrollereFigur 2: dsPIC33C DSC-er og PIC24F-mikrokontrollere støtter kodebeskyttelse i separate partisjoner, slik som BS og GS. (Bildekilde: Microchip Technology)

Etter å ha angitt segmentpartisjoner, kan utviklere bruke enhetens FSEC-register (FSEC – firmware security – fastvaresikkerhet) for å valgfritt aktivere skrivebeskyttelse og angi det nødvendige kodebeskyttelsesnivået for hvert segment. Under kjøring vil enheten hindre at kode i et segment med lavere kodebeskyttelsesnivå får tilgang til kode i et segment med høyere kodebeskyttelsesnivå. I et typisk system vil utviklere skrivebeskytte BS-en og angi kodebeskyttelsen til et høyt nivå, noe som reduserer eksterne forsøk på å endre BS-en, inkludert oppstartslasteren.

Implementering av sikker trådløs (over-the-air) fastvareoppdatering

Det er ikke til å unngå at programvareutviklere vil møte kravet om å oppdatere programvare som respons på kombinasjonen av nyoppdagede programvarefeil, konkurransedyktige forbedringer og nye sikkerhetstrusler. I motsetning til oppdateringer av mobilapper, kan det å utføre sikre oppdateringer av fastvaren i integrerte systemer i beste fall forstyrre programmer som er i gang, eller i verste fall fullstendig «ødelegge» systemet. Microchip sine dsPIC33C DSC-er og laveffekts PIC24F-mikrokontrollere er konstruert for å hjelpe utviklere med å unngå disse problemene.

I standard driftsmodus bruker disse enhetene alt tilgjengelig fysisk minne som et kontinuerlig minne med én partisjon (figur 3, venstre) som kan konfigureres i separate BS-er og GS-er. I modusen med to partisjoner deler utviklerne det fysiske minnet i separate aktive og inaktive partisjoner (figur 3, høyre).

Skjema over Microchip dsPIC33C DSC-er og PIC24F-mikrokontrollere i moduser med én eller to partisjoner (klikk for å forstørre)Figur 3: Utviklere kan bruke dsPIC33C DSC-er og PIC24F-mikrokontrollere i standardmodusene med én eller to partisjoner. (Bildekilde: Microchip Technology)

Disse enhetene fungerer i modusen med to partisjoner, og de kan fortsette å kjøre applikasjonskoden i den aktive partisjonen mens de programmerer den inaktive partisjonen. Etter at programmeringen er fullført, vil kjøring av BOOTSWP (boot swap – oppstartsbytte) føre til at enheten bytter oppstartsmålet til den oppdaterte partisjonen. Hvis koden i den oppdaterte partisjonen mislykkes eller på annen måte blir funnet mangelfull, vil en tilbakestilling av enheten automatisk føre til at enheten starter opp i den opprinnelige partisjonen (figur 4).

Skjema over Microchip dsPIC33C DSC-er og PIC24F-mikrokontrollere i modus med to partisjoner (klikk for å forstørre)Figur 4: I modus med to partisjoner kan dsPIC33C DSC-er og PIC24F-mikrokontrollere laste inn applikasjonskode i én partisjon mens de fortsetter å kjøre applikasjonskode i den andre partisjonen. (Bildekilde: Microchip Technology)

Når oppdateringen av partisjonen er fullført, kan flash-oppstartssekvensen (FBTSEQ – flash boot sequence) for den oppdaterte partisjonen angis til en lavere verdi enn den opprinnelige partisjonen. Under påfølgende tilbakestillinger av enheten, vil enheten starte opp i den oppdaterte partisjonen med den lavere FBTSEQ-verdien (figur 5).

Skjema over modus med to partisjoner gjør det mulig for utviklere å angi rekkefølgen for oppstart til ønsket partisjon (klikk for å forstørre)Figur 5: Modus med to partisjoner gjør det mulig for utviklere å spesifisere sekvensen for oppstart i den ønskede partisjonen etter en tilbakestilling av enheten. (Bildekilde: Microchip Technology)

Flash OTP fra ICSP-skrivebeskyttelse og CodeGuard Flash-sikkerhet gir kritisk støtte for statisk og kjøretid (runtime) kodesikkerhet, men omfattende integrert sikkerhet krever flere mekanismer, deriblant sikker nøkkellagring, kodeautentisering og sikker kommunikasjon.

Bruke ledsagende sikkerhetsenheter til å sikre integrert systemsikkerhet

Ved å kombinere dsPIC33C DSC-er og PIC24F-mikrokontrollere med Microchip sin ATECC608 CryptoAuthentication eller TrustAnchor100 (TA100) CryptoAutomotive-sikkerhets-IC-en, kan utviklere enklere distribuere hele utvalget av maskinvarebaserte sikkerhetsfunksjoner.

Disse sikkerhets-IC-ene gir maskinvarebaserte sabotasjesikre sikkerhetsmekanismer, inkludert sikker lagring, maskinvareakselerert kryptografimotorer, sanne tilfeldige tallgeneratorer og andre mekanismer som kreves av kryptografiske algoritmer. IC-ene er spesialkonstruert som ledsagerenheter, og kan enkelt legges til i konstruksjoner med DSC- eller mikrokontroller-systemer for å ferdiggjøre implementeringen av fullstendig integrert systemsikkerhet (figur 6).

Skjema over Microchip ATECC608- eller TA100-sikkerhets-IC-er (klikk for å forstørre)Figur 6: Sikkerhets-IC-er som ATECC608 eller TA100 kompletterer sikkerhetsfunksjonene til dsPIC33C DSC-er og PIC24F-mikrokontrollere, og forenkler implementeringen av sikre integrerte systemer. (Bildekilde: Microchip Technology)

Eksekvering av en kritisk operasjon, f.eks. sikker fastvareoppdatering, illustrerer de komplementære sikkerhetsfunksjonene til dsPIC33C DSC-er og PIC24F-mikrokontrollere i forbindelse med disse ledsagende sikkerhets-IC-ene. Utviklere bruker teknikker for kodesignering for å verifisere autentisiteten og integriteten til koden før operasjoner med fastvareoppdatering fullføres. Her bruker utviklere utviklingssystemene sine til å opprette en oppdateringspakke som inneholder koden, kodemetadata og en signatur som brukes til verifisering (figur 7).

Skjema over kodesignering gir tilgang til en viktig protokollFigur 7: Kodesignering gir tilgang til en viktig protokoll som rutinemessig brukes til å verifisere autentisiteten og integriteten til koden før oppdatering på et målsystem. (Bildekilde: Microchip Technology)

På målsystemet eliminerer maskinvarebasert signaturverifisering risikoen for kompromitterte verifiseringsprotokoller, noe som var mulig med den programvarebaserte signaturverifiseringstypen som ble brukt tidligere. I stedet utfører en ledsagende sikkerhets-IC, for eksempel Microchips ATECC608 og TA100, raske og sikre signaturverifiseringshandlinger uten risiko (figur 8).

Skjema over maskinvarebasert verifiseringFigur 8: I et målsystem er maskinvarebasert verifisering av en sikkerhets-IC, for eksempel ATECC608 eller TA100, avgjørende for å sikre kodeverifisering før fastvareoppdatering av oppstartslasteren. (Bildekilde: Microchip Technology)

Microchip tilbyr en kombinasjon av programvare- og maskinvareutviklingsverktøy for å akselerere implementeringen av sikre systemer.

Få fart på programvare- og maskinvareutviklingen

Selv om det MPLAB X-integrerte utviklingsmiljøet (IDE – integrated development environment) gir utviklere et fullverdig programvareutviklingsmiljø, gir MPLAB XC C-kompilatoren utviklingsstøtte til eksisterende verktøykjeder. Med Microchip sin MPLAB-kodekonfigurator (MCC – MPLAB Code Configurator) kan utviklere få fart på utviklingen i alle miljøer ved å bruke et grafisk grensesnitt til å automatisk generere initialiseringer, bygge drivere, tildele pinner, implementere biblioteker og ellers bidra til å øke hastigheten på mange av de kritiske oppsettprosedyrene og -prosessene på lavnivå som er knyttet til et hvilket som helst integrerte programvareutviklingsprosjekt.

For å fremskynde implementeringen av en egnet sikker oppstartslaster, tilbyr Microchip sin oppstartslaster for dsPIC33 DSC-er og PIC24-mikrokontrollere et grafisk grensesnitt som gjør det enklere for utviklere å raskt konfigurere og generere de egendefinerte oppstartslasterene som kreves for bruken. En relatert vertsapplikasjon for oppstartslasteren forenkler overføringen av applikasjonskoden til målenheten.

For maskinvareutvikling, tilbyr Microchip flere tilknyttede utviklingskort for bygging av systemer basert på dsPIC33C DSC-er eller PIC24F-mikrokontrollere. Faktisk integrerer Microchip sitt PIC-IoT-kort EV54Y39A og PIC-IoT-kort AC164164 (figur 9) sikkerhets-IC-er som er forhåndsklargjort med sikkerhetsopplysningene for henholdsvis Amazon Web Services (AWS) og Google Cloud.

Bilde av Microchip sitt PIC-IoT-kort AC164164Figur 9: Kort som PIC-IoT-kortet AC164164 bidrar til å akselerere den integrerte sikkerhetsutviklingen ved å integrere sikkerhets-IC-er som er forhåndsklargjort med opplysninger for AWS eller Google Cloud. (Bildekilde: Microchip Technology)

For tilpassede konstruksjoner tilbyr Microchip et dsPIC33CH Curiosity-utviklingskort (DM330028-2) basert på dsPIC33CH512MP508 DSC-en med to kjerner. Alternativt kan utviklere koble Microchip sin dsPIC33CH128MP508-baserte innstikksmodul (MA330040) til et integrert Microchip Explorer-utviklingskort (DM240001-2) for å fremskynde utviklingen av sikre integrerte systemer.

Konklusjon

Integrert systemsikkerhet er avhengig av tilgjengeligheten til maskinvarebaserte mekanismer, som kan støtte kjerneprinsipper for cybersikkerhet, som inkluderer fastvareintegritet, autentisering, kryptering og sikker lagring. Selv om Microchip sine dsPIC33C DSC-er og PIC24F-mikrokontrollere forenkler kodebeskyttelsen, tilbyr sikkerhets-IC-ene ATECC608 og TA100 de ekstra sikkerhetsmekanismene som kreves i en effektiv sikkerhetsplattform. Ved å bruke disse enhetene i kombinasjon, kan utviklere dekke behovet for sikkerhet på systemnivå i integrerte løsninger for IoT, samt utrustninger for kjøretøy, industrien, forbrukere og medisinske områder.

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.

Om skribenten

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.

Om denne utgiveren

DigiKeys nordamerikanske redaktører