Laitteiston eristämisen periaatteeseen perustuva Arm TrustZone - teknologia tarjoaa CPU-pohjaisen tietoturvafilosofian järjestelmäpiireille useissa eri järjestelmissä. Tämä mahdollistaa turvallisten IoT-solmujen ja luotettavan laiteytimen luomisen. ARMv8-M -arkkitehtuuri laajentaa TrustZone-teknologian Cortex-M-pohjaisiin järjestelmiin, esittää Rutronik uudessa ETNdigi-lehden artikkelissa.
Yhä useammat esineet ovat yhteydessä toisiinsa langattomasti Internetin välityksellä. Tämä on lisännyt luotettavien turvaominaisuuksien tarvetta IoT-solmuissa ja etenkin kulutustavaroissa, teollisuus- laitteissa ja kodinkoneissa, koska tällaiset Internet-yhteydet tarjoavat hyökkäysvektorin hakkereiden hyökkäyksille. Mahdollisuudet yltävät DDoS-hyökkäyksistä eli hajautetuista palvelunestohyökkäyksistä luvattomaan pääsyyn sisäisiin verkkoihin.
Etusija annetaan toimenpiteille, jotka tarjoavat peukaloinnin estävän suojauksen järjestelmään integroidussa laitteistossa – toisin sanoen verkottuneissa, sulautetuissa laitteissa. Ennen kaikkea fyysisen tason järjestelmissä tulisi kuitenkin olla turvatut secure boot - käynnistysprosessit, koska hakkerit hyökkäävät usein juuri järjestelmien reboot-mekanismeihin.
Tämän uhan torjumiseksi käytetään erilaisia ohjelmistoratkaisuja, jotka hyödyntävät laitteistojen turvamekanismeja. Yksi näistä on Arm:n TrustZone-teknologia. Kuten muutkaan nykyisin saatavilla olevat tekniikat ei edes TrustZone kykene tarjoamaan täydellistä ja ikuista puolustusta ulkopuolelta tulevia hyökkäyksiä vastaan, mutta TrustZone vaikeuttaa järjestelmään tunkeutumista huomattavasti.
LUOTETTAVIA TURVATOIMINTOJA PIIRITASOLLA
TrustZone-lähestymistavan ydin koostuu kahdesta laitteistotasolla eristetystä alueesta: ”suojattu" (secure) ja ”suojaamaton” (non- secure) alue. Ne voidaan toteuttaa samanaikaisesti yhdellä ytimellä. Tämä estää suojattua ohjelmistoa pääsemästä suoraan kiinni suojaamattomiin resursseihin. Näiden kahden alueen eristäminen järjestelmäpiirillä kattaa prosessorin lisäksi myös muistin, väylätoiminnot, keskeytykset ja oheislaitteet.
TrustZone-teknologia luo perustan koko järjestelmän kattavalle turvallisuudelle ja luo luotettavan alustan, jolla mikä tahansa järjestelmän osa voidaan suunnitella joustavasti osaksi tämän perustan turvallista maailmaa. Turva-alijärjestelmän luominen mahdollistaa kohteiden suojaamisen ohjelmisto- ja laitteistopohjaisilta hyökkäyksiltä.
TrustZone voi suojata sekä ohjelmistokirjaston että koko käyttöjärjestelmän turvallisessa alueessa ajoa varten. Suojaamattomia ohjelmistoja ei voi käyttää, kun suojattua sivua ja siinä olevia resursseja käytetään.
TRUSTZONE-TEKNOLOGIA CORTEX-M -OHJAIMILLA
ARMv8-M -arkkitehtuuri laajentaa TrustZone-tekniikan Cortex-M- pohjaisiin järjestelmiin ja tarjoaa vankan suojan alhaisemmilla kustannuksilla kuin erillispiiri- toteutus. Se vähentää huomattavasti prosessoripohjaisen tietoturvan kustannuksia ja kehitystyötä, ja varmistaa siten, että tietoturvalaitteistot eivät ole enää merkittäviä kustannustekijöitä.
Cortex-M- ja Cortex-A-prosessoreilla on periaatteessa samat tietoturvakonseptit, mutta niissä on myös keskeisiä eroja. Cortex-M:n tärkein etu on, että suojatun ja suojaamattoman alueen väliset kontekstinvaihdot suoritetaan laitteistotasolla, mikä mahdollistaa nopeammat kytkennät ja paremman energiatehokkuuden. Toisin kuin Cortex-A:n kohdalla mitään turvallista seurantaohjelmistoa ei tarvita. Cortex-A-prosessoreissa saavutettu tietoturvataso on kuitenkin paljon parempi.
TrustZone perustuu periaatteeseen, jonka mukaan käyttöoikeuksia myönnetään mahdollisimman pieni määrä. Tämä tarkoittaa, että järjestelmämoduuleille, kuten ohjaimille ja sovelluksille annetaan pääsy resurssiin vain tarvittaessa. Ohjelmisto suoritetaan yleensä sekä turvallisissa että ei-suojatuissa ympäristöissä. Sisältöä siirretään kahden ympäristön välillä rutiinin avulla, jota kutsutaan ”ydinlogiikaksi” (Cortex-M-prosessoreilla) tai ”turvamonitoroinniksi” (Cortex-A- prosessoreilla).
ARMv8-M:m TrustZone on ihanteellinen tekniikka PSA-käyttöjärjestelmälle (Platform Security Architecture), koska normaalin koodin ja luotettavan koodin välinen laitteisto on eristetty. Se tarjoaa joustavan perustan, jolla SoC-suunnittelijat
voivat valita tietyt toiminnot turvallisella ympäristöllä, mikä mahdollistaa kustannustehokkaiden ja vähän energiaa käyttävien ratkaisujen kehittämisen. TrustZone sisältää menettelyt, jotka tarjoavat luotettavan laitteiston laitteisto- pohjaiselle suojatulle tallennukselle, satunnaislukugeneraattorille ja referenssikellon turvallisen ajan määrittämiseen.
Vähävirtainen Cortex-M23-mikro- ohjain on pienin, mutta myös tehokkain prosessori tässä TrustZone-piirien kategoriassa. Cortex-M33-sarja on optimoitu kustannusten ja virrankulutuksen suhteen. Ohjainsarja on suunniteltu sekasignaalisovelluksiin, ja erityisesti sellaisiin, joissa vaaditaan tehokasta suojausta ja tarvittaessa digitaalisen signaalin ohjausta.
STANDARDISÄÄNNÖT OHJELMISTOKEHITYKSELLE
TrustZonesta saadaan kuitenkin täysi hyöty irti vain, jos ohjelmiston kehityksessä käytetään tunnustettuja datan tietoturvasääntöjä. Tässä kohtaa mukaan astuu C CERT - standardi, joka määrittelee ”hyvän koodauskäytännön” ja joka muun muassa varmistaa, että:
- noudatetaan muuttujien elinkaarisopimuksia (paikallinen, globaali, auto jne.)
- prosessorin esikäskyt ovat yksiselitteisiä (käyttäminen pitää sisällään suojaukset)
- muuttujien arvorajoja noudatetaan
- muistirajoituksia (esimerkiksi matriisien osalta) tarkkaillaan ja noudatetaan
Tämä toteutetaan integroimalla kehitysympäristöön työkalu, joka tarkistaa sääntöjen noudattamisen ohjelmistokehityksen aikana aina, kun se kootaan/käännetään. Ole- massa olevan koodin takautuvat toteutukset voivat - autoteollisuuden MISRA-C -ohjelmointistandardin hengessä - olla monimutkaisia, koska standardin rikkomukset edellyttävät, että suuria osia ohjelmasta suunnitellaan ja koodataan uudelleen.
Sekä C CERT- että MISRA-C- käytännöissä koodille tehdään staattinen analyysi ja se tarkistetaan tiettyjen koodaussääntöjen suhteen. Ero näiden kahden välillä on se, että MISRA-C-säännöt takaavat toimivan laitteen tietoturvan, kun taas C CERT takaa datan suojauksen ja tieto- turvan.
STM32L5-perhe on STM32L4 + Cortex-M -perheen seuraaja ja samalla ensimmäinen STMicroelectronicsin tuoteperhe, joka perustuu ARMv8-M-arkkitehtuuriin ja TrustZoneen. Tämän ansiosta kehittäjien on paljon helpompi luoda luotettavia PSA-kehykseen perustuvia laitteita Cortex-M33-prosessorin, TrustZone-tekniikan ja parannettujen SoC- turvaominaisuuksien avulla.
Laajan integroitujen digitaalisten ja analogisten oheislaitteiden ja rajapintojen kuten CAN FD, USB Type-C ja USB PD (tehonsyöttö) ansiosta STM32L5-ohjaimet tarjoavat ihanteellisen alustan esimerkiksi teollisuusantureille, ohjaimille, kodin automaatiolaitteille, älykkäille mittareille, fitnessrannekkeille, älykelloille, lääketieteellisille laitteille, kuten pumpuille ja mittalaitteille, sekä monille muille.
Päivitys Cortex-M33-prosessoriin ja välimuistin lisääminen sisäiseen ja ulkoiseen ohjelmamuistiin parantaa STM32L5-ohjaimen suorituskykyä edeltäjään verrattuna. Optimoitu virransyöttö vähentää virrankulutusta 33 nanoampeeriin shutdown-tilassa ja tarjoaa maksimaalisen energia- tehokkuuden pitkiksi toimintajaksoiksi.
STM32L5 tyydyttää myös kasvaneet turvallisuustarpeet uusien turvallisuusominaisuuksien ansiosta, joita ei tyypillisesti ole mikro-ohjaimissa. Näitä ovat erillinen salausprosessori ja ulkoisten tallennusvälineiden salaus. Lisäparannuksia ovat ohjelmistojen eristäminen, turvallinen käynnistys ja erityisesti suojattu tallennusalue salausavaimille.
Seuraavaksi annetaan tarkat selitykset erilaisista oheislaitteista (integroiduista toiminnallisista yksiköistä) ja niiden toteutuksesta TrustZone-turvakonseptin yhteydessä mikro-ohjainten sarjassa.
VÄYLÄLIITÄNNÄT
Konfiguroitavat SAU-yksiköt (SAU, Secure Attribute Units) tukevat jopa kahdeksaa muistialuetta, joko turvallisina tai ei-suojattuina alueina. Cortex-M33-prosessori tukee S- AHB- (System AHB)- ja C-AHB- (Code AHB) -väylärajapintoja. S- AHB:tä käytetään jokaisessa kutsutussa käskyssä ja jokaisessa pääsyssä osoitettuun SRAM-muistin dataan, samoin kuin käskykutsuihin ja SoC-oheislaitteisiin, ulkoiseen RAM-muistiin ja muihin ulkoisiin laitteisiin osoitettaessa. C-AHB:tä käytetään jokaisessa käskykutsussa ja tiedon käsittelyssä muistin koodi- alueella.
REAALIAIKAKELLO
TrustZone tarjoaa täysin suojattavan reaaliaikakellon (RTC) A- ja B- herätysajastimille sekä mukautettavan aikaleiman suojatuille / suojaamattomille kokoonpanoille.
GLOBAALIN TRUSTZONE- OHJAIMEN YLEISKUVAUS
Globaali TrustZone-ohjain (GTZC) käsittää kolme alilohkoa:
- TrustZone-tietoturvaohjain (TZSC) määrittelee isäntä / orja-oheislaitteiden suojatun, etuoikeutetun tilan ja määrittää suojaamattoman alueen koon MPCWM-ohjaimessa (Watermark Memory Peripheral Controller). Se ilmoittaa valituille integroiduille oheislaitteille RCC:n ja I/O-logiikan jaetun käytön yhteydessä "suojattavien oheislaitteiden", kuten RCC:n ja GPIO:n turvatilasta.
- Lohkopohjainen muisti- suojausohjain (MPCBB) ohjaa SRAM-muistin kaikkien lohkojen (256-tavuiset sivut) suojattua tilaa.
- Laittomien pääsytapahtumien TrustZone-ohjain (TZIC) kerää kaikki järjestelmän luvattomat pääsytapahtumat ja luo turvallisen keskeytyksen NVIC-ohjaimelle (Nested Vectored Interrupt Controller). Alilohkojen avulla TrustZone ja etuoikeutetut attribuutit määritetään koko järjestelmän alueella.
GTZC-ohjaimen tärkeimmät ominaisuudet ovat:
- kolme itsenäistä 32-bittistä AHB- liitäntää TZSC-, MPCBB- ja TZIC- ohjaimille
- MPCBB ja TZIC ovat käytettävissä vain suojatuilla tapahtumilla
- TZSC:n yksityistä ja ei-yksityistä aluetta tuetaan suojatun / suojaamattoman pääsyn muodossa
TRUSTZONE-TUKI TAMP- REKISTERISSÄ
Tiedon muokkaamisen estäville / suojaamattomille kokoonpanoille TAMP tarjoaa varmuuskopio- rekisterien määritykset useilla konfiguroitavilla muistialueilla seuraavasti: turvallinen luku-kirjoitus- alue, turvallinen kirjoitus-luku-alue, suojaamaton luku-kirjoitus-alue ja monotoninen laskuri.
TRUSTZONE INTEGROIDUSSA FLASH-MUISTISSA
Sulautetussa flash-muistissa oleva TrustZone muodostaa 512 kilotavun alueen ohjelmien ja datan tallentamiseksi ja sallii ”yhden / kahden muistipankin” toimintatilat ja ”read- while-write” eli RWW-tilan kaksoispankkitilassa.
Flash-muistissa on saatavana neljä suojaustasoa:
- Taso 0.5 on käytettävissä vain, kun TrustZone aktivoidaan. Kaikki luku / kirjoitusoperaatiot suojaamattomalta flash-muistialueelta ja takaisin ovat mahdollisia sillä edellytyksellä, että TrustZone on aktivoitu ja vain luku - tilaa ei ole asetettu. Debug-pääsy suojattuun alueeseen ei ole mahdollista, vaikka suojaamattomille alueille on silti mahdollista kirjoittaa.
- Taso 0: Ei lukusuojausta
- Taso 1: Muistin lukusuojaus: Flash- muistiin ei voida lukea tai kirjoittaa, kun virheenkorjaustoiminnot on kytketty tai ”Boot in RAM” tai Bootloader-käynnistyslatain ovat käytössä. Jos TrustZone on aktivoitu, ”ei-turvallinen virheen- korjaus” on mahdollista, mutta käynnistys SRAM-muistista ei ole.
- Taso 2: IC-lukusuojaus
TRUSTZONE-TURVATILA
Jos ”TrustZone Security” -tila aktivoidaan, koko flash-muisti on turvattu resetoinnin jälkeen ja seuraavat turvatoimet ovat käytettävissä:
Haihtumaton, turvattu flash-alue integroidulla varmennuksella (vesileimattu):
Suojattuun alueeseen on pääsy käsiksi vain tässä "suojatussa tilassa". Osoitettavuuden kannalta muistipankkiin voidaan osoittaa vain yksipankkitilassa 1 kilotavun välein, tai koko pankki on jaettu 4 kilotavun lohkoihin.
Asiakaskohtainen koodinlukusuojaus (PCROP):
Tämä on osa flash-muistin suojattua aluetta, joka tarjoaa suojan kolmansien osapuolten luvattomilta luku- ja kirjoitusoperaatioilta. Suojattuun alueeseen viitataan "execute only" eli ”vain suorita” -alueena, ja vain STM32-prosessori voi osoittaa siihen käskykoodilla.
Mikään muu käyttötapa (DMA eli suora muistin käyttö, virheen- korjaus, CPU-tietojen lukeminen, kirjoittaminen tai poistaminen) ei ole mahdollinen. Yksipankkitilassa voidaan valita kaksi aluetta, joissa molemmat turvatut alueet ovat. Kaksipankkitilassa voidaan valita yksi alue muistipankkia kohti suojatun alueen rinnalla.
”Suojattu piilosuojausalue” eli secure hide protection area on osa suojattua flash-muistin aluetta, ja se voidaan suojata estämään luku- ja kirjoitusoperaatiot tai pääsyn dataan tällä alueella.
Haihtuvassa lohkopohjaisessa suojatussa flash-osassa jokainen sivu voidaan ohjelmoida reaaliajassa joko suojattuna tai suojaamattomana.
AKTIVOINTI JA PÄÄSYOIKEUDET
Suojausarkkitehtuuri perustuu ARM:n TrustZone-tekniikkaan ja sen ARMv8-M -laajennukseen.
FLASH_OPTR-rekisterissä oleva TZEN-asetusbitti (Trust Zone Enable) aktivoi TrustZone-turvan. Tässä tapauksessa SAU-yksikkö (Security Attribution Unit) ja IDAU-yksikkö (Implementation Defined Attribution Unit) määrittävät suojattuun ja suojaamatomaan tilaan liittyvät käyttöoikeudet.
SAU on turvallisuuteen liittyvä määritysyksikkö, jota käytetään laitteistojen tietoturvaominaisuuksien hallintaan. Suojaus voidaan määrittää enintään kahdeksalle konfiguroitavalle SAU-alueelle.
IDAU on käyttöoikeuksien attribuuttien määritysyksikkö. Se kattaa ensimmäisen muistiosion suojaamattomille / suojaamattomasti käytettäville attribuuteille, joihin koodi tai data voidaan tallentaa. Ne yhdistetään sitten SAU-turvallisuus- määrittelyn tuloksiin ja sen jälkeen valitaan korkeampi turvataso. IDAU kahdentaa flash-muistin, järjestelmän SRAM:n ja oheislaitteiden muistin suojattujen ja suojaamattomien tilojen mahdollistamiseksi. Tätä prosessia ei kuitenkaan suoriteta ulkoiselle tallennukselle.
Tässä määriteltyjen mekanismien avulla TrustZone vaikuttaa myös muihin mikro-ohjaimen alueisiin laitteistoratkaisun mukaisesti.
Artikkeli on ilmestynyt uudessa ETNdigi-lehdessä.