Sulautettujen järjestelmien tietoturva mikrokontrollerilla PSoC 64
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2022-07-27
Internetiin yhdistettävien tuotteiden määrä kasvaa eksponentiaalisesti. Monien tuotetiimien ongelmana on se, että sulautettujen ohjelmistojen kehittäjillä ei ole riittävästi tietoturvakokemusta. Kokemuksen puute voi johtaa tietoturvavaatimuksien laiminlyöntiin, tietoturva-aukkoihin ja tietoturvan puutteelliseen toteutukseen. Seurauksena voi olla huonosti suojattuja verkkoon kytkettyjä järjestelmiä, jotka ovat helppo kohde immateriaalioikeuksien sekä laite- ja käyttäjätietojen varkauksille.
Mikrokontrolleripohjaisten järjestelmien suunnittelijoilla on käytettävissä useita ratkaisuja, joilla voidaan yksinkertaistaa tietoturvatoteutuksia ja jotka tarjoavat työkalut niiden onnistuneeseen toteutukseen. Esimerkiksi yhden ytimen mikrokontrollereissa voidaan käyttää Arm TrustZonea, joka kuuluu Armv8-M-arkkitehtuuriin (ja siitä ylöspäin). Myös moniydinmikrokontrollereita varten on olemassa ratkaisuja.
Tässä artikkelissa kerrotaan, miten kehittäjät voivat käyttää moniydinprosessoreita sulautettujen ratkaisujen suojaamiseen. Siinä tarkastellaan erityisesti turvallista Cypress PSoC 64 -mikrokontrolleria ja sen tarjoamia työkaluja turvallisen ratkaisun toteuttamiseen.
Sulautetun tietoturvan perusteet
Turvallisen tuotteen suunnittelussa yksi tärkeimmistä perustekijöistä on laitteistopohjaisen erotuksen hyödyntäminen. Erotus voidaan toteuttaa monella tapaa, esimerkkeinä erotettu suoritusympäristö ja muistinsuojausyksikköön (MPU) perustuva erotettu muisti. Korkeimmalla tasolla mikrokontrollerin on kyettävä erottamaan toisistaan turvallinen prosessointiympäristö (SPE) ja ei-turvallinen prosessointiympäristö (NSPE).
Turvallinen prosessointiympäristö on erotettu ympäristö, jossa muisti, komponentit ja sovelluskoodi pidetään erillään ei-turvallisesta prosessointiympäristöstä. Turvallista prosessointiympäristöä voidaan ajatella turvallisena prosessorina. Turvallisessa prosessointiympäristössä suoritetaan turvallista koodia ja turvallisia toimintoja, kuten suojattu käyttöjärjestelmä ja/tai Root-of-Trust (RoT). Turvallinen prosessointiympäristö suorittaa myös luotettavia palveluita, kuten kryptografia, turvallinen tallennus, todentaminen ja turvallinen kirjautuminen. Turvallisessa prosessointiympäristössä suoritetaan rajoitettua määrää turvallisiin toimintoihin liittyviä luotettavia sovelluksia.
Ei-turvallista prosessointiympäristöä voidaan puolestaan pitää runsaasti ominaisuuksia tarjoavana suoritusympäristönä, jossa suoritetaan kaikkea muuta paitsi turvallisia toimintoja. Ei-turvallinen prosessointiympäristö on oikeastaan sama tuttu ohjelmointimalli, johon useimmat sulautettujen järjestelmien kehittäjät ovat tottuneita: siihen kuuluu reaaliaikainen käyttöjärjestelmä (RTOS) ja suurin osa sovelluskomponenteista.
Laitteistopohjainen erotus on yksi Arm® Platform Security Architecture (PSA) -arkkitehtuurin tarjoamista tärkeimmistä ominaisuuksista eli parhaista käytännöistä turvallisten järjestelmien luonnissa. Edellä mainitut eri erotuskerrokset on toteutettu kuvassa 1 käyttämällä esimerkkinä mikrokontrolleria PSoC 64. Tässä esimerkissä turvallinen ja ei-turvallinen (1) prosessointiympäristö tarjoavat laitteistoerotuksen siten, että ajoympäristöt suoritetaan erillisillä prosessoreilla. Ajoympäristöerotuksen lisäksi myös RoT- ja Trusted Services -palvelut on erotettu (2). Lisäksi turvallisen prosessointiympäristön jokainen luotettu sovellus erotetaan yleensä myös sellaisilla työkaluilla kuten luotetulla osioinnilla ja muistinsuojausyksiköillä (3).
Kuva 1: Suojattu sovellus käyttää laitteistopohjaista erotusta suoritusympäristöjen erotukseen. 1) Ei-turvallinen ja turvallinen on erotettu 2) RoT ja luotetut palvelut on erotettu 3) Luotetut sovellukset on erotettu. (Kuvan lähde: Arm/Cypress)
PSoC 64 on kaksiytiminen mikrokontrolleri, jossa ei-turvallinen prosessointiympäristö suoritetaan Arm Cortex®-M4 -prosessorilla ja turvallinen prosessointiympäristö Arm Cortex-M0+ -prosessorilla. Arm Cortex-M0+ suorittaa kaikki suojaustoiminnot ja kommunikoi Cortex-M4-prosessorin kanssa IPC (Inter-Processor Communication) -väylän kautta. Arkkitehtuuri rajoittaa pääsyä turvalliseen prosessointiympäristöön, joka on laitteistopohjaisesti erotettu.
Kehittäjien kannattaa tutustua PSoC 64 Secure Boot Pioneer Kit -sarjaan, kun he haluavat aloittaa PSoC 64 -mikrokontrollerin käytön.
PSoC 64 Secure Boot Pioneer Kit -sarja
PSoC 64 Secure Boot Pioneer Kit (kuva 2) sisältää kaiken, mitä kehittäjät tarvitsevat päästäkseen alkuun sovellusten suojaamisessa. Ensinnäkin se sisältää PSoC 64 -moduulin, johon kuuluu PSoC 64 -mikrokontrolleri, ulkoinen muisti ja kaikki tukipiirit (kuvassa punaisella). Ulkoista muistia voidaan käyttää sovelluskoodin tallentamiseen tai uusien laiteohjelmistokuvien tallennukseen turvallisia FOTA-päivityksiä (firmware-over-the-air) varten.
Kuva 2: PSoC 64 Secure Boot Pioneer Kit sisältää kaiken, mitä kehittäjät tarvitsevat päästäkseen alkuun turvallisten IoT-sovellusten kehittämisessä. (Kuvan lähde: Cypress)
Lisäksi siihen kuuluu Wi-Fi-moduuli, jonka avulla kehittäjät voivat yhdistää kortin verkkoon. Wi-Fi-moduuli on erityisen hyödyllinen IoT-sovelluksissa, joissa kortti muodostaa yhteyden pilvipalveluihin, kuten AWS tai Azure. Kehitysalusta tukee Amazon FreeRTOS -käyttöjärjestelmää, jota käsitellään seuraavassa kappaleessa.
Pioneer Kit tukee lisäksi monia erilaisia laajennusmahdollisuuksia, kuten piikkirimoja, Arduino-liittimiä sekä erilaisia antureita. Kehittäjät voivat käyttää kortille integroitua kosketusliukusäädintä ja kosketuspainikkeita, muita painikkeita, potentiometriä ja niin edelleen. Kortti voidaan myös rakenteensa puolesta räätälöidä lähes mihin tahansa sovellukseen.
PSoC 64 Secure Software Suite
Turvallisen sulautetun sovelluksen suunnittelu voi olla haastavaa ja viedä paljon aikaa. Kehittäjien tulisi etsiä ratkaisuja, jotka auttavat vähentämään kustannuksia ja markkinoilletuontiaikaa ja jotka samalla takaavat sovelluksen turvallisuuden. PSoC 64 tarjoaa tähän tarkoitukseen laajan valikoiman ohjelmistoja, joiden avulla kehittäjät voivat rakentaa nopeasti turvallisen sovelluksen.
Esimerkiksi CySecureTools tarjoaa kehittäjille työkalut avainten ja varmenteiden luontiin sekä käyttäjäsovellusten allekirjoittamiseen ja käyttöönottoon Cypress-mikrokontrollereissa. Kehittäjät voivat työkalun avulla siirtää Cypressin RoT -tiedot ja lisätä sen jälkeen omat tietoturvaelementtinsä. Katso lisätietoja CySecureTools-ohjelmiston käyttöönotosta ja käytöstä github-repositorion README-tiedostosta.
AWS FreeRTOS -tuki on IoT-kehittäjille hyödyllinen työkalu. Github-repositorio sisältää hyödyllisiä esimerkkejä FreeRTOS-käyttöjärjestelmän ja AWS-alustan käytöstä PSoC 64 -mikrokontrollerin kanssa. Ensimmäinen kehittäjiä kiinnostava esimerkki on ”Hello World” -sovellus, joka lähettää MQTT-viestejä PSoC 64 -mikrokontrollerista AWS-pilveen. Tämän esimerkin avulla kehittäjä voi käydä läpi käyttöönottoprosessin, avaimen luonnin ja käyttöönottovaiheet. Esimerkin päättyessä kehittäjillä on turvallinen sulautettu AWS-palveluun yhdistetty laite. Getting Started with CY8CKIT-064S0S204343 -opas tarjoaa yksityiskohtaiset ohjeet vauhtiin pääsemiseksi.
Turvalliset sovellukset Trusted Firmware-M (TF-M) -ohjelmistolla
PSoC 64 tarjoaa kehittäjille valmiin tietoturvakehyksen, jota voidaan räätälöidä helposti sovelluksen vaatimuksien mukaan. Kehittäjien on hyödyllistä ymmärtää ohjelmiston näkökulmasta, mitä kulissien takana tapahtuu. PSoC 64 -laiteohjelmisto hyödyntää erityisesti yleistä avoimen lähdekoodin tietoturvakehystä, joka tunnetaan nimellä Trusted Firmware-M eli TF-M.
TF-M on Arm PSA IoT Security Frameworkin referenssitoteutus. Se tarjoaa kehittäjille hyödyllisiä tietoturvatyökaluja, kuten laitteen todentamisen, laiteohjelmiston varmentamisen, kryptografiset palvelut, laitesalaisuuden hallinnan ja turvallisen osioinnin. Cypress kehitti TF-M-kehyksen päälle oman tietoturvakehyksensä, jota kehittäjät voivat käyttää omissa sovelluksissaan.
Kehittäjät voivat muokata tietoturvakehystä lisäämällä siihen omaa koodiansa, tietoturvaprofiileja ja niin edelleen. On kuitenkin tärkeää pitää mielessä, että mitä enemmän turvallisen prosessointiympäristön ohjelmistoa muokataan, sitä suurempi on haavoittuvuuden mahdollisuus. Kehittäjien on punnittava huolellisesti peruslaiteohjelmiston muuttamiseen, koodilisäyksiin ja poisjättämisiin liittyvät riskit.
Vinkkejä sulautettujen sovellusten tietoturvaa varten
Kehittäjien, jotka haluavat aloittaa sulautettujen sovelluksien suojaamisen, on otettava lukuisia asioita huomioon. Seuraavassa on eräitä vinkkejä, jotka voivat yksinkertaistaa ja nopeuttaa kehitystyötä:
- Suorita uhkamalli- ja tietoturva-analyysi (TMSA) kehityssyklin varhaisessa vaiheessa.
- Käytä kehitysalustaa laitteen RoT:n, Secure Bootloaderin, laitteen käyttöönottoprosessin ja laiteohjelmistopäivityksien testaukseen.
- Älä toteuta tietoturvaa yksin! Minimoi turha työ hyödyntämällä olemassa olevaa avointa lähdekoodia ja turvallisia laiteohjelmistopinoja.
- Älä unohda ottaa huomioon laitteen koko elinkaarta, myös sitä, miten laite poistetaan turvallisesti käytöstä.
- Tutustu CySecureToolsin kaltaisiin työkaluihin. Tällaisten työkalujen mukana tulee esimerkkitietoturvamalleja, ohjelmistoja ja esimerkkejä.
- Kun kloonaat FreeRTOS github-repositorion, kloonaa uusin virallinen versio. Aktiivisen päähaaran kloonaaminen johtaa usein siihen, etteivät työkalut toimi yhteen ja koodista löytyy vikoja, joita ei ole vielä ratkaistu.
- Aloita projekti käymällä läpi Cypress CY8CKIT-064S0S2-4343W -sarjan aloitusohjeet. Se tarjoaa kaikki tarvittavat tiedot, joilla saat perussovelluksen toimimaan. Tätä voidaan sen jälkeen muokata tuotekohtaisien tarkoituksien mukaan.
Näitä vinkkejä noudattavat kehittäjät säästävät melkoisesti aikaa ja vaivaa.
Yhteenveto
Tietoturvan ei tarvitse olla hankalaa. Sulautettujen järjestelmien kehittäjien pitäisi keskittyä tuotteensa erityispiirteisiin, sen "salaiseen kastikkeeseen". Useimmissa tapauksissa se ei ole tietoturva. Tässä artikkelissa tarkasteltiin sitä, miten PSoC 64 -mikrokontrolleri voi auttaa kehittäjiä suojaamaan sovellus nopeasti ja se tarjoaa laitteistopohjaisen erotusympäristön lisäksi myös ohjelmistotyökalukehyksen. Kun niitä käytetään yhdessä, laitteisto- ja ohjelmistoratkaisut nopeuttavat tietoturvaratkaisuiden kehityssykliä.
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.

