Upotettujen järjestelmien tietoturvan varmistaminen digitaalisilla signaaliohjaimilla ja mikrokontrollereilla
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2023-07-25
Esineiden Internetiin (Internet of Things, IoT) siirtyminen on tuonut upotettujen sovellusten tietoturvan keskiöön aivan uudenlaisella tavalla, ja siitä onkin tullut pakollinen ominaisuus järjestelmän eheyden varmistamiseksi. Vaadittavien tietoturvamäärityksien määrä kasvaa ja kehittäjät tarvitsevat ratkaisuja, jotka täyttävät matalaa virrankulutusta sekä korkeaa suorituskykyä koskevat sovellusvaatimukset ja mahdollistavat samalla laitteistopohjaiset tietoturvaominaisuudet, mm. todentaminen, salaus sekä suojattu tallennus ja käynnistys.
Tässä artikkelissa esitellään lyhyesti upotettujen sovellusten tietoturvaperiaatteet. Siinä osoitetaan myös, kuinka kehittäjät voivat täyttää upotettujen sovellusten alati tiukemmat tietoturvavaatimukset hyödyntämällä Microchip Technologyn korkean suorituskyvyn digitaalisia signaaliohjaimia (Digital Signal Controller, DSC), vähävirtaisia PIC24F-mikrokontrollereita (Microcontroller Unit, MCU) ja erityisiä tietoturvalaitteita.
Upotettu tietoturva rakentuu neljän periaatteen ympärille
Julkiseen Internetiin yhdistetyillä älytuotteilla voidaan muodostaa edistyneitä sovelluksia tavalla, johon harvat itsenäiset tuotteet voivat vastata. Kuitenkin samoja yhteyksiä hyödyntävät kyberhyökkäykset voivat rajoittaa älytuotteiden arvoa sekä altistaa tuotteet ja niihin liittyvät sovellukset ja käyttäjät lähes loputtomalle virralle uhkia.
Kuluttajat vaativat järjestelmätason kyberturvaa, minkä lisäksi kehittäjien on enenevissä määrin täytettävä kansallisten ja alueellisten organisaatioiden tietoturvamääräyksiä. Kaksi vaikutusvaltaisinta standardia, Euroopan ETSI EN 303 645, ”Cyber Security for Consumer Internet of Things: Baseline Requirements”, ja Yhdysvaltain NIST IR 8259, ”Foundational Cybersecurity Activities for IoT Device Manufacturers”, määrittelevät kyberturvatoimintojen neljä perusperiaatetta:
- yksilöllisten salasanojen käyttö
- laitteen suojattu tallennustila sensitiivisiä tietoturvaparametreja varten
- suojattu tiedonsiirto molemminpuolisella todentamisella ja tiedonsiirron salauksella
- tuki laiteohjelmiston eheyden ja aitouden varmistamiselle käyttämällä suojattua käynnistystä ja laiteohjelmiston suojattua päivitystä.
Näihin perusperiaatteisiin pohjautuvien järjestelmien toteuttamiseen tarvitaan luotettu alusta, joka estää hakkereita syöttämästä järjestelmään muutettua koodia, joka voisi muokata tiedonsiirron, tallennuksen, laiteohjelmiston tai itse tietoturvamenetelmien toimintaa.
Luotetut alustat turvaavat sovellusta tarjoamalla järjestelmätason tietoturvan aivan alusta lähtien käyttäen laitteistopohjaisia tietoturvamekanismeja, joita ei voi muuttaa. Vaikka tämä on suoraviivainen konsepti, järjestelmätason tietoturvan toteutus on ollut haasteellista, koska tietoturvaheikkous järjestelmän missä tahansa osassa voi avata oven kyberhyökkäyksille. Kehittäjät voivat varmistaa upotetun sovelluksen järjestelmätason tietoturvan helposti Microchip Technologyn korkean suorituskyvyn dsPIC33C-DSC-piireillä, matalan virrankäytön PIC24F-MCU-yksiköillä ja tietoturvakomponenteilla.
Suorituskyky- ja virrankulutusvaatimusten täyttäminen
Microchipin dsPIC33C-DSC- ja PIC24F-MCU-sarjat on suunniteltu tukemaan mitä erilaisimpia käyttökohteita. Niissä yhdistyvät suojatut suoritusalustat ja sovelluskohtaiset ominaisuudet, kuten laaja valikoima oheislaitteita analogisiin toimintoihin, aaltomuotojen ohjaukseen ja tiedonsiirtoon. Käyttämällä useita pulssileveysmodulaattoreita (Pulse-Width Modulation, PWM), ohjelmoitavan vahvistuksen vahvistimia (Programmable Gain Amplifier, PGA), analogi-digitaalimuuntimia (Analog-to-Digital Converter, ADC) ja muita dsPIC33C-DSC-piirin oheislaitteita kehittäjät voivat toteuttaa kompleksisia järjestelmiä lisäämällä hyvin vähän komponentteja. Tyypillisesti tällaiseen ratkaisuun tarvitsee lisätä vain tehokomponentit. Tästä esimerkkinä on yhden ytimen DSPIC33CK512MP608-DSC-piirin käyttö verkkovirralle tarkoitetun UPS-laitteen (Uninterruptible Power Supply) toteuttamisessa (kuva 1).
Kuva 1: Kuten muutkin dsPIC33C-DSC-piirit, yhden ytimen DSPIC33CK512MP608-DSC tarjoaa kattavan valikoiman lisälaitteita, jotka yksinkertaistavat kompleksisten järjestelmien suunnittelua, mukaan lukien aiemmin esitelty verkkovirralle tarkoitettu UPS. (Kuvan lähde: Microchip Technology)
Sovelluksissa, joissa tarvitaan sekä reaaliaikaisia ohjaustoimintoja että digitaalista signaalinkäsittelyä, voidaan käyttää dsPIC33C-DSC-piirejä, joissa yhdistyvät MCU ja DSC sekä erityiset komennot että laitetason toiminnot. Turvakriittisiä sovelluksia varten dsPIC33C-DSC-piirit tarjoavat IEC 60730 -standardin mukaisen toiminnallisen turvallisuuden, ja ne täyttävät ISO 26262 ‑vaatimukset. Niissä on useita laitetason ominaisuuksia, jotka yksinkertaistavat toiminnallisen turvallisuuden sertifiointia Automotive Safety Integrity Level B (ASIL-B) ‑tason sekä ajoneuvo-alan ja teollisuuden turvakriittisten sovellusten SIL-2-vaatimusten mukaisesti.
Suorituskykyiset dsPIC33C-DSC-piirit on suunniteltu tehoa vaativiin sovelluksiin, kun taas PIC24F-MCU-piirit tarjoavat tasapainoisemman yhdistelmän suorituskykyä ja energiatehokkuutta yleiskäyttöisiin upotettuihin järjestelmiin, kuten kuluttajaelektroniikka, teollisuusautomaatio, lääkinnälliset laitteet ja muut sovellukset, joissa tarvitaan ohjausta ja verkkoyhteyksiä mutta ei DSP-ominaisuuksia. Kuten dsPIC33C-DSC-piirit, myös PIC24F-MCU-piirit ovat IEC 60730 -standardin mukaisia toiminnalliseen turvallisuuteen valmiita laitteita, joiden Class B ‑turvallisuusdiagnostiikkakirjastot sopivat kotitaloussovellusten kehittämiseen.
Kuten aiemmin mainittiin, laiteohjelmiston eheys on yksi upotetun kyberturvan perusperiaatteista. Jotta kehittäjät voivat varmistaa laiteohjelmiston eheyden ja suojata koodinsa, Microchip tarjoaa dsPIC33C-DSC-laitteilleen, kuten yhden ytimen DSPIC33CK512MP608-DSC-piirille ja kahden ytimen DSPIC33CH512MP508-DSC-piirille, sekä PIC24F-MCU-laitteille, kuten PIC24FJ512GU405-MCU, piirinsisäisen sarjaohjelmoinnin (In-Circuit Serial Programming, ICSP) ja Write Inhibit ‑toiminnolla toteutetun Flash-muistin kertaohjelmoinnin (One-Time Programmable, OTP) sekä CodeGuard-tietoturvaominaisuudet. Ominaisuudet on satavana myös moniin muihin konfiguraatioihin, joissa käytetään erilaisia sovelluskohtaisia oheislaitteita.
Laiteohjelmiston suojaaminen
ICSP Write Inhibit ‑toiminnolla toteutetun Flash-muistin kertaohjelmoinnin ansiosta kehittäjät voivat määrittää osia Flash-muistista kertaohjelmoitavaksi sekä luku-/kirjoitussuojata Flash-muistin. Microchipin valmistajakohtaiset ICSP-ominaisuudet mahdollistavat näiden laitteiden sarjaohjelmoinnin kahden nastan kautta laitteen suorittaessa loppusovellusta. Tämän ominaisuuden ansiosta valmistajat voivat suorittaa ohjelmoinnin tuotantopiirilevyillä. ICSP vaatii ulkoisen ohjelmointilaitteen kertaohjelmointiprosessin ohjaamiseen, kun taas Enhanced ICSP mahdollistaa ohjelmoinnin ohjaamisen piirin sisäisellä käynnistyslataajalla. Nämä laitteet tukevat myös suorituksenaikaista itseohjelmointia (Run-Time Self-Programming, RTSP), jotta Flash-muistiin tallennettu käyttäjän sovelluskoodi voi päivittää itsensä suorituksen aikana.
Kun tuotantolaite on ohjelmoitu, kehittäjät voivat aktivoida ICSP Write Inhibit ‑toiminnon, joka estää muistin ohjelmoinnin ja pyyhkimisen ICSP-toiminnon kautta. Flash-muistin RTSP-pyyhkimis- ja ohjelmointitoimintoja voi kuitenkin käyttää myös ICSP Write Inhibit ‑toiminnon ollessa aktiivisena, jos laitteeseen ohjelmoitiin ennen aktivointia erityinen Flash-muistin päivityskoodi. Näin ollen kehittäjät voivat käyttää luotettua käynnistyslataajaa Flash-muistin muokkaukseen ja laiteohjelmiston päivittämiseen suojatulla tavalla ICSP Write Inhibit ‑toiminnon ollessa aktiivinen samalla, kun Flash-muistin ulkoiset päivitysyritykset estetään tuotantojärjestelmässä.
Flash-muistin CodeGuard-tietoturvaominaisuudet mahdollistavat Flash-ohjelmamuistin suojauksen hienosäädön erillisillä käynnistys- ja yleissegmenteillä. Kehittäjät määrittelevät näiden segmenttien koot määrittämällä käynnistyssegmentin (Boot Segment, BS) osoiterajan (BSLIM) laitteen BSLIM-rekisteriin. Loput muistista käytetään yleissegmenttinä (General Segment, GS). Sensitiivisten tietojen suojausta tehostetaan siten, että kukin segmentti sisältää lisäosioita. Esimerkiksi BS sisältää Interrupt Vector Table (IVT) ‑osion, valinnaisen Alternate Interrupt Vector Table (AIVT) ‑osion ja Instruction Word (IW) ‑lisätilan. Laitteen käyttäjän kriittisiä määritystiedostoja sisältävä Configuration Segment (CS) ‑osio sisältyy käyttäjän GS-osoitetilaan (kuva 2).
Kuva 2: dsPIC33C-DSC- ja PIC24F-MCU-tuoteperheet tukevat koodin suojausta erillisten osioiden avulla, esimerkkeinä BS ja GS. (Kuvan lähde: Microchip Technology)
Kun segmenttiosiot on määritetty, kehittäjät voivat halutessaan käyttää laiteohjelmiston tietoturvan (Firmware Security, FSEC) rekisteriä kirjoitussuojauksen aktivointiin ja määrittää vaaditun koodisuojaustason kullekin segmentille. Suorituksen aikana laite estää alemman koodisuojaustason segmentissä olevaa koodia käyttämästä korkeamman koodisuojaustason segmenttiin tallennettua koodia. Tyypillisessä järjestelmässä kehittäjät kirjoitussuojaavat BS-osion ja määrittävät sille korkean koodisuojaustason, mikä ehkäisee BS-osion (sisältää mm. käynnistyslataajan) ulkoisia muutosyrityksiä.
Miten toteuttaa laiteohjelmiston turvallinen OTA-päivitys
Ohjelmistokehittäjät joutuvat väistämättä päivittämään ohjelmistoaan löydettyjen bugien, kilpailuetuja tarjoavien parannusten ja tietoturvauhkien myötä. Toisin kuin mobiilisovellusten päivittämiseen, upotettujen järjestelmien laiteohjelmistojen päivittämiseen liittyy vaara, että suoritettavat sovellukset vioittuvat ja pahimmassa tapauksessa laite lakkaa toimimasta kokonaan. Microchipin dsPIC33C-DSC-piirit ja vähävirtaiset PIC24F-MCU-piirit tarjoavat kahden osion mekanismin, joka auttaa kehittäjiä välttämään näitä ongelmia.
Vakiotilassa nämä laitteet käyttävät kaikkea fyysistä muistiaan jatkuvana yhden osion muistitilana (kuva 3), jonka voi määrittää erillisiksi BS- ja GS-osioiksi. Kahden osion tilassa kehittäjät jakavat fyysisen muistin erikseen aktiiviseen ja passiiviseen osioon (kuva 3, oikealla).
Kuva 3: Kehittäjät voivat käyttää dsPIC33C-DSC- ja PIC24F-MCU-tuoteperheitä yhden osion oletustilassa tai kahden osion tilassa. (Kuvan lähde: Microchip Technology)
Kahden osion tilassa nämä laitteet voivat suorittaa aktiivisen osion sisältämää sovelluskoodia samalla, kun passiivista osiota ohjelmoidaan. Kun ohjelmointi on valmis, laitteen voi määrätä vaihtamaan käynnistyksen päivitettyyn osioon suorituksenaikaisella Boot Swap (BOOTSWP) ‑komennolla. Jos päivitetyn osion sisältämä koodi ei toimi tai on muuten puutteellinen, laite vaihtaa uudelleenkäynnistyksen yhteydessä automaattisesti alkuperäiseen osioon (kuva 4).
Kuva 4: dsPIC33C-DSC ja PIC24F-MCU voivat kahden osion tilassa ladata sovelluskoodia yhteen osioon suorittaessaan samaan aikaan toisessa osiossa olevaa koodia. (Kuvan lähde: Microchip Technology)
Kun osion päivityksen onnistuminen on varmistettu, päivitetyn osion Flash-käynnistysjärjestys (Flash Boot Sequence, FBTSEQ) voidaan määrittää alkuperäistä osiota alhaisempaan arvoon. Seuraavilla käyttökerroilla laite käynnistää automaattisesti päivitetyssä osiossa olevan FBTSEQ-arvoltaan alhaisemman ohjelman (kuva 5).
Kuva 5: Kahden osion tilassa kehittäjät voivat määrittää osioiden uudelleenkäynnistyksen aikaisen käynnistysjärjestyksen. (Kuvan lähde: Microchip Technology)
Flash-muistin kertaohjelmointi ICSP Write Inhibit ‑toiminnolla ja CodeGuard-suojaus tarjoavat staattisen ja käytönaikaisen koodin kriittisen suojauksen, mutta upotetun sovelluksen kattava suojaus vaatii muitakin mekanismeja, mukaan lukien turvallinen avainten säilytys, koodin todennus ja suojattu tiedonsiirto.
Lisäturvakomponenttien käyttö varmistamaan upotettujen järjestelmien tietoturva
Käyttämällä dsPIC33C-DSC- ja PIC24F-MCU-piirien kanssa Microchipin ATECC608 CryptoAuthentication- tai TrustAnchor100 (TA100) CryptoAutomotive ‑tietoturvapiirejä kehittäjät voivat ottaa helposti käyttöön täyden valikoiman laitteistopohjaisia tietoturvaominaisuuksia.
Nämä tietoturvapiirit tarjoavat laitteistopohjaiset peukaloinnilta suojatut tietoturvamekanismit, mukaan lukien suojattu tallennus, laitteistokiihdytetyt salaustoiminnot, todelliset satunnaislukugeneraattorit ja muut salausalgoritmien vaatimat mekanismit. Nämä erityisesti lisäkomponenteiksi suunnitellut piirit on helppo lisätä DSC- ja MCU-pohjaisiin järjestelmiin upotetun järjestelmän tietoturvan täydentämiseksi (kuva 6).
Kuva 6: Tietoturvapiirit, kuten ATECC608 ja TA100, täydentävät dsPIC33C-DSC- ja PIC24F-MCU-piirien tietoturvaominaisuuksia, mikä helpottaa upotettujen järjestelmien tietoturvan toteutusta. (Kuvan lähde: Microchip Technology)
Kriittisten toimintojen suorittaminen, kuten laiteohjelmiston suojattu päivitys, on esimerkki dsPIC33C-DSC- ja PIC24F-MCU-piirien käytöstä yhdessä näiden tietoturvapiirien kanssa. Kehittäjät hyödyntävät koodin allekirjoitusta sen aitouden ja eheyden varmistamiseksi ennen laiteohjelmiston päivitystoimintojen suoritusta. Kehitysjärjestelmällä luodaan päivityspaketti, joka sisältää koodin, koodin metatiedot ja varmistukseen käytettävän allekirjoituksen (kuva 7).
Kuva 7: Koodin allekirjoitus on tärkeä rutiininomainen suojausprotokolla, jolla varmistetaan koodin aitous ja eheys ennen kohdejärjestelmän päivitystä. (Kuvan lähde: Microchip Technology)
Kohdejärjestelmän laitteistopohjainen allekirjoituksen vahvistus ehkäisee peukaloidut vahvistusprotokollat, jotka olivat mahdollisia aiemmin käytössä olleiden ohjelmistopohjaisten allekirjoituksen vahvistusmenetelmien kanssa. Tietoturvapiiri, kuten Microchipin ATECC608 tai TA100, suorittaa allekirjoituksen vahvistuksen nopeasti ja turvallisesti ilman peukaloinnin riskiä (kuva 8).
Kuva 8: Kohdejärjestelmässä on huipputärkeää vahvistaa koodi laitteistopohjaisesti tietoturvapiirillä, kuten ATECC608 tai TA100, ennen kuin käynnistyslataaja suorittaa laiteohjelmiston päivityksen. (Kuvan lähde: Microchip Technology)
Turvattujen järjestelmien käyttöönoton nopeuttamiseksi Microchip tarjoaa ohjelmisto- ja laitteistopohjaisia kehitystyökaluja.
Ohjelmisto- ja laitteistokehityksen nopeuttaminen
MPLAB X on integroitu kehitysympäristö (Integrated Development Environment, IDE), joka tarjoaa kehittäjille kattavan kehitysalustan. MPLAB XC C ‑kääntäjä taas tarjoaa kehitystuen olemassa oleville työkaluketjuille. Kehityksen nopeuttamiseksi kummassa tahansa ympäristössä Microchip tarjoaa MPLAB Code Configurator (MCC) ‑ohjelmiston, jonka graafisen käyttöliittymän avulla kehittäjät voivat automaattisesti generoida alustajia, kääntää ajureita, allokoida nastoja, ottaa käyttöön kirjastoja ja suorittaa muita upotetun ohjelmiston kehitysprojektin kriittisiä matalan tason määritystoimintoja ja -prosesseja.
Sopivan suojatun käynnistyslataajan käyttöönoton nopeuttamiseksi Microchipin Bootloader for dsPIC33 DSCs and PIC24 MCUs tarjoaa graafisen käyttöliittymän, jonka avulla kehittäjät voivat nopeasti määrittää ja generoida sovelluksensa tarvitsemat räätälöidyt käynnistyslataajat. Käynnistyslataajan isäntäsovellus yksinkertaistaa sovelluskoodin siirtämistä kohdelaitteeseen.
Microchip tarjoaa laitteistokehitystä varten useita kehityspiirilevyjä dsPIC33C-DSC- ja PIC24F-MCU-pohjaisten järjestelmien kehittämiseen. Microchipin PIC-IoT-kortteihin EV54Y39A ja AC164164 (kuva 9) onkin integroitu tietoturvapiirit, joihin on määritetty etukäteen Amazon Web Services (AWS)- ja Google Cloud ‑kirjautumistiedot.
Kuva 9: Sellaiset kehityskortit kuten PIC-IoT-kortti AC164164 nopeuttavat upotetun tietoturvan kehittämistä käyttäen integroituja tietoturvapiirejä, joihin on määritetty etukäteen AWS- tai Google Cloud ‑kirjautumistiedot. (Kuvan lähde: Microchip Technology)
Microchip tarjoaa mukautettujen suunnitelmien kehitykseen dsPIC33CH Curiosity ‑kehityskortin (DM330028-2), joka pohjautuu kahden ytimen dsPIC33CH512MP508-DSC-piiriin. Vaihtoehtoisesti kehittäjät voivat kytkeä Microchipin dsPIC33CH128MP508-pohjaisen plug-in-moduulin (MA330040) Microchip Explorer Embedded Evaluation Board ‑arviointikorttiin (DM240001-2) suojattujen upotettujen järjestelmien kehityksen nopeuttamiseksi.
Yhteenveto
Upotettujen järjestelmien tietoturva tukeutuu laitteistopohjaisiin mekanismeihin, joilla tuetaan kyberturvan ydinperiaatteita, kuten laiteohjelmiston eheys, todennus, salaus ja suojattu tallennus. Microchipin dsPIC33C-DSC ja PIC24F-MCU yksinkertaistavat koodin suojausta, kun taas ATECC608- ja TA100-tietoturvapiirit tarjoavat tehokkaan tietoturva-alustan vaatiman lisäsuojan. Käyttämällä näitä laitteita yhdessä kehittäjät voivat täyttää IoT:n, autoteollisuuden, teollisuuden, kuluttajasegmentin ja lääkinnällisten sovellusten upotettujen ratkaisujen järjestelmätason tietoturvavaatimukset.
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.




