IoT- eli esineiden internetiin liittyneet laitteet, jotka lähettävät ja vastaanottavat dataa ja komentoja maailman universaaleimman verkon yli, ovat alttiina paljon suuremmalle joukolle uhkia kuin aiemmat vanhat M2M-tietoliikennelaitteet, jotka tyypillisesti toimivat suljetussa yksityisverkossa. Tätä varten on kehitetty uuden sukupolven mikro-ohjaimia.
Artikkelin on kirjoittanut Jack Ogawa, joka toimii Cypress Semiconductorilla markkinoinnin johtajana. |
Microsoftin alun perin kehittämä uhkien luokittelumalli STRIDE listaa tietoturvauhat, jotka IoT-laite tai käyttäjä voi kohdata: väärän identiteetin käyttö (Spoofing), tiedon muokkaaminen (Tampering), toimien kiistäminen (Repudiation), informaation paljastaminen (Information disclosure), palvelunesto (Denial of service) ja oikeuksien lisääminen (Elevation of privilege).
Turvatoiminnot ja -resurssit, joita IoT-laitteen suojaaminen näitä uhkia vastaan vaaditaan ovat tällä hetkellä tarjolla erikoistuneina erillispiireinä, kuten
- turvapiiri – järjestelmäpiiri, jolla on yhdistetty mikro-ohjain kryptograafisine toimintoineen, turvamuisti sekä liitännät
- turvattu haihtumaton muistipiiri, jolla on tyypillisesti salausmoottori/prosessori, jonka avulla muisti paritetaan turvallisesti auktorisoituihin laitteisiin
Näiden erillispiirien käyttäminen kasvattaa kuitenkin IoT-laitteen komponenttien määrää, lisää monimutkaisuutta ja nostaa materiaalikustannuksia verrattuna sellaiseen suunnitteluun, jossa käytetään isäntäohjaimen (tai jossakin tapauksessa sovellusprosessorin) integroituja turvaominaisuuksia. Keskeinen kysymys IoT-laitesuunnittelijalle onkin, riittävätkö isäntäohjaimen kyvyt vastaamaan STRIDE-mallissa kuvattuihin uhkiin.
Tässä artikkelissa tarkastellaan reaalimaailmaan kuluttaja- ja teollisuus-IoT-laitteiden turvavaatimuksia ja kuvaillaan suoja/turvatekniikoita, joita seuraavan polven IoT-ohjainpiirien pitää tarjota pystyäkseen vastaamaan näihin vaatimuksiin.
Tarve suojauskerroksille
IoT-laitteet ovat haavoittuvia jo verkkotoiminnallisuutensa takia. Esimerkiksi verkkoon liitetty ranneke, joka seuraa potilaan sykettä ja veren happitasapainoa, voi jatkuvasti lähettää sensitiivistä yksityisdataa langattoman linkin yli lääketieteelliseen sovellukseen, joka pyörii pilvipalvelussa.
Tämäntyyppisen laitteen haavoittuvuutta - ja siten sen vaatimaa suojausta - on hyödyllistä ajatella kerrosten kautta. Esimerkiksi yksi kerros on PAN-yhteys (personal area network), joka on tyypillisesti Bluetooth Low Energy -linkki älypuhelimeen tai tablettiin, johon rannelaite on liitetty.
Tämän kerroksen laajennus voi olla esimerkiksi älypuhelimen tai tabletin tuoma wifi-yhteys kotireitittimeen tai yhdyskäytävään. Toinen kerros voisi olla pilvialusta, kuten Microsoftin Azure tai Amazonin AWS, ja kolmas kerros itse pilvessä ajettava sovellus. Muitakin kerroksia voidaan määritellä arkkitehtuurin mukaisesti.
Tietenkin rannelaitteen käyttäjä odottaa täyttä mielenrauhaa eli huolettomuutta mahdollisista tietoturvauhkista. STRIDE-mallista tulevia uhkia voivat olla:
- väärän identiteetin käyttö (Spoofing) – toinen laite tekeytyy käyttäjän rannekkeeksi ja pääsee näin kiinni sen sovellusdataan pilvessä
- tiedon muokkaaminen (Tampering) – rannekkeen tuottaman sykelukeman tai veren happitason mittauksen väärentäminen pilvisovelluksiin
- tiedon paljastaminen (Information disclosure) – hyökkääjä nuuskii potilaan yksityistä hoitodataa
- palvelunesto (Denial of service) – mahdollisesti väliaikainen kyvyttömyys käyttää pilvipalvelua. Jos potilas tarvitsee pilvipohjaista sovellusta hälyttämään välittömästä hoidon tai lääkityksen tarpeesta, palvelunestolla voisi olla vakavia terveysseurauksia.
Ranneke voi olla haavoittuvainen yhdelle tai useammalle näistä uhkista jokaisessa ylläkuvatussa kerroksessa. Ei lisäksi riitä, että yhdellä turvamekanismilla katetaan koko verkottunut järjestelmä. Esimerkiksi laajasti raportoitu yksittäinen haavoittuvuus Yahoo!n tietoturvassa antoi hyökkääjille mahdollisuuden käyttää väärennettyjä keksejä oikeiksi käyttäjiksi tekeytymiseen ja sen jälkeen päästä näiden käyttäjien tileille ilman salasanaa.
Tällainen spoofing-hyökkäys pilvipalvelun tarjoajaa vastaan voisi avata rannelaitteen kanavan pilveen. Siksi on äärimmäisen tärkeätä, että muita kerroksia suojaavat mekanismit - pilvipalvelua sekä wifi- ja BLE-yhteyttä nettiin suojaavat - toteutetaan erillisesti. Esimerkiksi pilvisovellukseen syötettävän sykedatan salaavan avaimen pitäisi olla eri kuin rannekkeen pilvipalveluun autentikoivan avaimen.
Ydinsuojauksen vaatimukset
Jokaista STRIDE-uhkakategoriaa vastaavat turvavaatimukset (ks. kuva 1). Lisäksi IoT-laitteen turvallisuus riippuu kolmesta elementistä:
- Tietoturvakäytännöt - nämä määrittelevät, mitä suojausvaatimuksia käytetään tuottamaan pääsy järjestelmään, verkkoon ja/tai dataan.
- Salaus - aritmeettiset algoritmit, joita käytetään toteuttamaan erilaisia tietoturvavaatimuksia.
- Muokkaamisen estäminen - järjestelmän kyky tehdä salausta ja pakottaa omat käytäntönsä ilman, että sensitiivinen data vuotaa tai tulee muutetuksi.
Kuva 1. Jokainen kuudesta STRIDE-uhasta vaatii suojaavan vastatoimenpiteen.
Tyypillisesti IoT-laitteen tietoturvakäytännöt ja sen käyttäjät päätetään ensin. Seuraavaksi järjestelmäsuunnittelijan pitää päättää, voidaanko tietuturvavaatimukset ja datan muokkaamisen estäminen riittävästi toteuttaa IoT-laitteen mikro-ohjaimella. Tämä nostaa seuraavat kysymykset:
- Voidaanko salausavaimet tallentaa turvallisesti?
- Onko käytettävissä laitekiihdytyslohkoja standardeille salausalgoritmeille kuten RSA, ECC, AES ja SHA?
- Onko ohjaimella aito satunnaislukugeneraattori? Onko se sertifioitu?
- Onko piirin fyysinen näpelöinti mahdollista havaita?
Tähän asti näitä toimintoja on saanut käyttöönsä vain erikoistuneiden erillispiirien avulla. IoT-laitteiden määrän räjähdysmäinen kasvu on kuitenkin luomassa kysyntää mikro-ohjaimille, joille on integroitu nämä ja muita toimintoja, joilla IoT:n ainutlaatuisiin vaatimuksiin voidaan vastata. Tämän Cypress Semiconductor on oivaltanut ja siihen vastataan uudella PSoC 6 -mikro-ohjainperheellä, jossa ultra-alhaiseen tehonkulutukseen on liitetty IoT-laitteiden vaatima korkea suorituskyky, sekä edistynyt monikerroksinen tietoturva, joka vastaa IoT-tyyppisiin uhkiin.
PSoC 6 -mikro-ohjaimissa on kaksiytiminen arkkitehtuuri:
- Suorituskykyinen ARM Cortex-M4 -ydin, joka pystyy tekemään laskennallisesti raskaita tehtäviä nopeasti, ja siirtymään alahisen tehonkulutukseen tai kokonaan pysähdyksiin tehtävät suoritettuaan
- ARM Cortex-M0+ -ydin, joka ajaa yksinkertaisia jatkuvia toimintoja, kuten anturikeskittimen (hub) ohjaaminen tai BLE-yhteyden hallinta ultra-alhaiseilla tehotasoilla
PSoC 6 -ohjainarkkitehtuuri hyödyntää kahden ytimen käytettävyyttä, toteuttaakseen laitetasolla suojatun muistin. Yksiytiminen mikro-ohjain voi toimia vain yhdessä osoiteavaruudessa. Turvadata kuten avaimet tallennetaan tähän tilaan tavanomaisen firmware-ohjelmiston kanssa. Reaaliaikainen ohjaustoiminto - tyypillisesti RTOS-käyttöjärjestelmän osa - hallinnoi näitä turvattuja osoitteista normaalin toiminnan aikana niin, että vain auktorisoidut ohjelmistot pääsevät niihin käsiksi.
PSoC 6 -ohjaimissa pääsynvalvonta voidaan konfiguroida arkkitehtuuritasolla ennen kuin ohjain siirtyy normaalitoimintotilaan. Esmerkiksi osio jaetusta muistista voidaan konfiguroida niin, että siihen pääsee käsiksi vain Cortex-M0+ -ydin. Tällä tavalla PSoC 6 -ohjain tarjoaa laitepohjaisen turvatun muistin, joka lisää yhden ylimääräisen suojauskerroksen laittomia tunkeutumisia vastaan (ks. kuva 2).
Kuva 2: Cortex-M0+ -ydintä PSoC 6 -ohjaimen kaksiydinarkkitehtuurissa voidaan käyttää tuomaan tietoturvapalveluja.
PSoC 6 -ohjaimissa on myös dedikoitu laitekiihdytyslohko, joka tukee suosittuja salausalgoritmeja kuten AES, RSA, ECC ja SHA. Sillä on myös aito satunnaislukugeneraattori (TRNG). Kuten ohjaimella olevaan muistiin, myös tähän lohkoon pääsyä voidaan kontrolloida arkkitehtuuritasolla.
Lopulta toiminnot, joilla tunnistetaan piirin kotelon fyysinen näpelöinti, on myös integroitu PSoC 6 -piirille. Ohjelmoitavat analogialohkot voidaan konfiguroida aistimaan jännitettä ja virtaa ja kellosignaalin monitorointia samalla, kun Cypressin omaa kapasitiivisen kosketuksen CapSense-tekniikkaa voidaan käyttää havaitsemaan laittomat yritykset avata koteloa.
IoT-turvaa mittatilaustyönä
Koskaan aiemmin ei IoT-sovellusten perusmikro-ohjaimessa ole tarjottu mahdollisuutta integroituun laitepohjaiseen turvatallennukseen, salauksen kiihdytykseen ja tiedon muokkaamisen havaitsemiseen. IoT:n nostamat uudet vaatimukset peräänkuuluttavat uusia mikro-ohjaimia, jotka on rakennettu IoT-käyttöön mittatilaustyönä niillä turvatoiminnoilla, pienellä tehonkulutuksella ja laskentateholla, joita IoT-laitteen kaipaavat.