Rutronik GmbH
Avtor: Dipl. Ing. Martin Motz
2019_280_24
Boljše in bolj dosegljive ko bodo internetne povezave ter zmogljivejše ko bodo komponente, ki napravam sploh zagotavljajo inteligenco, več področij uporabe bomo lahko z njimi pokrili. Mikrokrmilniki skupaj s programsko opremo tvorijo srce in možgane tehnologije tipal za industrijo 4.0 ter internet stvari. V celoti v omrežja povezane tovarne in pametni domovi zato prinašajo izredne potenciale rasti ter inovacij – vendar pa so tudi ranljivi.
V ospredju so mikrokrmilniki
V okviru interneta stvari, industrije 4.0 in robotike so mikrokrmilniki vedno pogosteje ščit pred manipulacijami ter kibernetskimi napadi. Različne družine mikrokrmilnikov že imajo široko paleto varnostnih funkcij. Kot osrednji del, ki izvaja krmiljenje in regulacije, so mikrokrmilniki ključnega pomena za omrežne sisteme. Proizvajalci že delajo z razvojnimi procesi, ki so certificirani po ustreznih varnostnih standardih. Proizvajalci polprevodnikov poleg tega z varno proizvodno verigo zagotavljajo skozi celotno pot zavarovano končno rešitev za svoje stranke.
Glede varnosti ločimo različne kategorije mikrokrmilnikov glede na ciljne načine uporabe:
- Rešitve za overjanje in enote za zaupanja vredne platforme (angl. »Trusted Platform Module« – TPM), na primer za zaščito blagovnih znamk ter omrežij IoT
- Bančne in identifikacijske rešitve za podjetja s klasičnimi pametnimi karticami na področju plačil, identifikacije oseb, prevoza ter plačljive televizije
- Mobilne varnostne rešitve za mobilne izdelke in načine uporabe stroj-stroj (angl. »Machine-to-Machine« – M2M) s karticami SIM
- Avtomobilske rešitve za komunikacijo v bližnjem polju (NFC, eSE) in varno vožnjo
Vgrajene funkcije za varnost podatkov
V okviru interneta stvari, industrije 4.0 in robotike se večinoma uporabljajo standardni mikrokrmilniki za industrijo ter široko potrošnjo (angl. »General Purpose Microcontroller«). Tudi tu so že na voljo modeli z vgrajenimi varnostnimi funkcijami. Družina STM32 ima na primer številne funkcije, ki zagotavljajo zaščito na naslednjih področjih:
- Kraja identitete (zaščita pred zlorabo, celovitost, sledljivost)
- Onemogočanje podatkovnih storitev (omejevanje pretoka)
- Vohunjenje in manipuliranje podatkov ter kod (zaščita pomnilnika, upravljanje pravic, raven razhroščevanja, zaščita pred nedovoljenim spreminjanjem, celovitost, varne posodobitve vgrajene programske opreme)
- Fizični oz. mehanski napadi (zaščita pred posegi na samem gradniku)
Te funkcije so izvedene pretežno z integracijo znotraj integriranega vezja (angl. »On-Chip-Integration«) in zagotavljajo zanesljivo overjanje, celovitost platforme ter celovito varnost podatkov, kar zagotavlja zasebnost končnih uporabnikov in popolno zaščito podatkov, intelektualne zaščite ter blagovnih znamk in izpolnjuje najstrožje zahteve za varnost podatkov v standardnih izdelkih. Tipični ciljni načini uporabe so na primer tiskalniki, računalniki, prehodi, končne točke interneta stvari in tipala.
Funkcije, ki temeljijo na strojni opremi
Celovitost in zanesljivost obratovanja: Preverjanje ciklične redundance zagotovi vrednost za preverjanje, ki omogoča prepoznavanje napak pri prenosu ali shranjevanju podatkov. Tako ni mogoče preveriti le celovitosti podatkov, ampak celo preveriti podpis programa med izvajanjem. Nadzor omrežja je posebej zaščiten nadzor napajanja: zastavice POR (ponastavitev ob vklopu, angl. »Power on RESET«), PDR (ponastavitev ob izklopu, angl. »Power Down RESET«), BOR (ponastavitev ob padcu napajalne napetosti pod mejno vrednost, angl. »Brown out RESET«) in PVD (programirljivo zaznavanje napetosti, angl. »Programmable Voltage Detector«) omogočajo ugotavljanje vzroka za ponastavitev in s tem preverjanje, ali je do nje prišlo zaradi ustreznih vzrokov. Dopolnjuje ga funkcija branja med zapisovanjem (angl. »Read while Write«), ki omogoča učinkovito zaznavanje in beleženje nedovoljenih posegov.
Sistem za varno sistemsko uro (angl. »Clock Security System« – CSS) temelji na dejstvu, da ura in sistem za obnovitev ure tako kot notranja ter zunanja ura delujejo medsebojno neodvisno. Enako medsebojno neodvisno delujeta tudi varnostni časovnik (angl. »Watchdog«) in varnostni časovnik z oknom (angl. »Windows Watchdog«).
Celovitost in verodostojnost vsebin pomnilnika sta zagotovljena s kodo za popravljanje napak (angl. »Error Correction Code« – ECC) ter preverjanjem parnosti. Hkrati to zagotavlja razširjeno zaščito pred napadi, ki imajo za cilj vnašanje napak. Temperaturno tipalo stalno meri temperaturo okolja integriranega vezja, kar preprečuje, da bi to zaradi namenskega segrevanja padlo zunaj meja predpisanega območja delovanja in se trajno poškodovalo.
Šifriranje – vendar pravilno
Metode šifriranja ščitijo izvorno besedilo pred nepooblaščenim dostopom, tako da izvorno besedilo šifrirajo s kodo. Če kdo premaga kodo, lahko tudi dešifrira šifrirano besedilo. Zahtevnejše kriptografske tehnike uporabljajo simetrično ali asimetrično šifriranje. Pri simetričnem šifriranju obstaja le en ključ za šifriranje in dešifriranje, tj. pošiljatelj ter prejemnik uporabljata isti ključ. Pri asimetričnih tehnikah ima vsak komunikacijski partner svoj ključ, s katerim se ustvari par ključev. Tega sestavlja javni ključ, ki se uporablja za šifriranje podatkov, in zasebni ključ, ki se uporablja za dešifriranje.
Pri nekaterih serijah STM32 je za šifriranje v integrirano vezje v celoti integriran celotni generator resnično naključnih števil. Šifriranje temelji na metodi simetrični metodi AES (angl. »Advanced Encryption Standard« – standard za napredno šifriranje). Serije STM32 F2, F4, F7, L4 imajo pri tem prosto določljive dolžine ključev 128 ali 256 bitov in ponujajo več postopkov šifriranja (ECB, CBC, CTR, GCM, GMAC, CMAC), seriji STM32 L0/L1 pa imata izvedeno 128-bitno šifriranje AES.
Prednost simetrične metode: Ker obstaja le en ključ, je upravljanje ključev lažje kot pri asimetričnih postopkih. Poleg sta tudi šifriranje in dešifriranje veliko hitrejša. Nekateri modeli STM32 imajo tudi popolnoma integrirano funkcijo razprševanja. Ta podatke razseka in razprši, tako da iz velike količine vhodnih dobimo manjšo količino ciljnih podatkov. Poleg tega je vgrajena še koda za overjanje sporočil z razprševanjem s ključem (angl. »Keyed-Hash Message Authentication Code« – HMAC). Zgradba te kode za overjanje sporočil (angl. »Message Authentication Code« – MAC) temelji na kriptografski funkciji za razprševanje. Funkcije HMAC so predpisane v standardu RFC (internetni standard, angl. »Request for Comments«) 2104 in standardu nacionalnega inštituta ZDA za standarde in tehnologijo (NIST – angl. »National Institute of Standards and Technology«) FIPS 198.
Preprečevanje manipulacij
Zaščita pred manipulacijami je namenjena za preprečevanje namernih ali nenamernih fizičnih posegov v sistem strojne opreme zunaj mikrokrmilnika. Pomožno napajanje (angl. »Backup Power Domain«), ki za delovanje uporablja različne vire bujenja, zagotavlja ohranjanje zaščite tudi v načinu nizke porabe (angl. »Low Power Mode«). Ura realnega časa (angl. »Real Time Clock« – RTC) zagotavlja časovne oznake za vse dogodke zaradi manipulacij. Nekatere serije STM32 imajo tudi zaščito registra RTC. Ta preprečuje nedovoljeno zapisovanje in deluje neodvisno od ponastavitve sistema. To pa ne vključuje zaščite pred zapisovanjem zaporedja tipk. Če je zaznana manipulacija, zagotavlja varnostni register samodejno brisanje pri tem zapisanih vsebin. Poleg tega je mogoče nadzorovano onemogočiti komunikacijske kanale z zaporo konfiguracije GPIO. To blokira izbrani večnamenski vhodni/izhodni priključek (GPIO), ki pa ga je mogoče odpraviti pri naslednji ponastavitvi.
Dodatna orožja proti napadom
Zapora razhroščevanja preprečuje nepooblaščen dostop do mikrokrmilnika skozi vmesnik za razhroščevanje. Raven zaščite je mogoče izbirati glede na način uporabe oz. potrebe, vendar pa je po tem ni več mogoče znižati.
Pooblastila za dostop dajejo uporabnikom ali skupinam uporabnikov pooblastila za izvajanje določenih dejanj. Vgrajena enota za zaščito pomnilnika (angl. »Memory Protection Unit« – MPU) pri tem pomnilnik razdeli na območja z različnimi dovoljenji in pravili za dostop.
Med prenosom podatkov požarni zid varuje kodni ali podatkovni del bliskovnega pomnilnika ali pomnilnika SRAM pred (preostankom) kode, ki se izvaja zunaj zaščitenega območja. Požarni zid je strožji od enote za zaščito pomnilnika (MPU) in je vgrajen samo v serijah STM32L0 ter L4. Zaščita pred branjem je namenjena za upravljanje dostopa do pomnilnika. Tako je mogoče preprečiti branje pomnilnika, na primer shranjevanje intelektualne lastnine podjetja. Z zaščito pred pisanjem je mogoče vsak sektor zaščititi pred neželenimi postopki zapisovanja. Posebna zaščita kode omogoča, da določena območja pomnilnika označite samo za izvajanje (angl. »execute only«), kar pomeni, da je mogoče tukaj kodo le izvajati, ne pa tudi zapisovati.
S funkcijami za količinsko (angl. »Mass Erase«) ali varno (angl. »Secure Erase«) brisanje je mogoče zanesljivo izbrisati intelektualno lastnino in zaupne podatke, saj s tem postopkom pomnilnik v celoti povrnete na tovarniške nastavitve.
Za sledljivost končnega izdelka imajo številne serije STM32 posebno 96-bitno edinstveno oznako (angl. »Unique ID«). Ta je primerna tudi za širitve varnostnih ključev.
Številne serije imajo poleg tega tudi funkcije za varno posodobitev vgrajene programske opreme. Strojno izvedene varnostne funkcije je mogoče še razširiti s programskimi ukrepi.
Varnost končnega izdelka pri manipulacijah tretjih oseb se opredeli na podlagi izvedenih programskih rešitev in uporabljenih elektronskih strojnih komponent. Mikrokrmilniki in pomnilniške komponente, v nekaterih primerih v kombinaciji s tipali ter namenskimi integriranimi vezji, imajo ključno vlogo pri načinih uporabe za internet stvari in industrijo 4.0. Podjetje Rutronik integrirane funkcije družin mikrokrmilnikov, ki so pomembne za varnost, združilo v beli knjigi: zaščita pred manipulacijami, enote za šifriranje, upravljanje dovoljenj, raven zaklepanja razhroščevanja in ukrepi za zaščito pomnilnika, celovitost ter funkcionalno varnost so tam našteti v tabelah. (Povezava za prenos: Glejte informacije o literaturi na koncu besedila.)
Podjetje Infineon s svojima serijama XMC-1xxx in XMC-4xxx prav tako ponuja obsežno integrirano varnostno zaščito podatkov, kot lahko vidimo na straneh 74 in 75 v brošuri o varnostnih vidikih (glejte informacije o literaturi). Pri posebnih zahtevah za simetrično ali asimetrično šifriranje se proizvajalec sklicuje na programski paket Crypto Software Package. Če razvijalec opravi lastno oceno varnostnih tveganj za končni izdelek oz. njegove sestavne dele, lahko hitro oceni, ali je določen mikrokrmilnik primeren za skladnost z določili SUVP v okviru načrtovanja tiskanega vezja.
Ko razvijalec opredeli varnostne zahteve za končni izdelek, je v ponudbi izdelkov podjetja Rutronik široka paleta družin mikrokrmilnikov različnih proizvajalcev polprevodnikov, ki omogočajo ustrezno izvedbo varnostnih funkcij glede na izzive zakonodaje SUVP.
Za področje industrije 4.0 je pomemben zaključek, da poslovanje s podatki in storitvami ni izdelek, ampak dejavnost na platformi. V prihodnje bo manj pomembno prodati enega ali več strojev ali sistemov v velikih količinah. Namesto tega bo na mestih uporabe uporabljenih veliko več najrazličnejših naprav, ki bodo proizvajale podatke, upravljavec platforme pa bo služil predvsem s s tem povezanimi podatkovnimi storitvami za stranke. To bo bistveno spremenilo poslovne modele klasične izgradnje strojev in storitve dobaviteljev.
Literatura:
Rutronik: Security Aspects: (Varnostni vidiki:) White Paper on How to Make State of the Art Electronic Designs. (Bela knjiga o načrtovanju najsodobnejših elektronskih naprav) Na voljo je na naslovu http://www.rutronik.com/security-aspects