Miten suunnitella turvallisia vähävirtaisia IoT-reunalaitteita Silicon Labsin PG23-mikrokontrollerien avulla

Kirjoittaja Jacob Beningo

Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa

Suunnittelijoiden on löydettävä sopiva tasapaino korkean suorituskyvyn ja alhaisen virrankulutuksen välillä - erityisesti akku/paristokäyttöisissä tuotteissa - sekä varmistettava samalla tuotteiden turvallisuus muun muassa erilaisissa kuluttaja- tai teollisuuskäyttöön tarkoitetuissa esineiden internetin (IoT) sovelluksissa, esimerkkeinä valokatkaisimet, mittareiden lukulaitteet ja älylukot aina aurinkosähköinverttereihin ja hälytyslaitteisiin saakka. Monissa tapauksissa tällaisten ratkaisujen perustana toimii mikrokontrolleri (MCU), joten suunnittelijan on harkittava tarkkaan, mitä mikrokontrolleria tuotteessa käytetään.

Laitteen on tuettava tehokkaita turvaominaisuuksia, mutta muita huomioon otettavia tekijöitä ovat mm. prosessoriytimen suorituskyky, tehokkuus, oheislaite- ja I/O-tuki, laitteen vaatima tila sekä ekosysteemin tarjoama tuki. Vaikka MCU voisikin täyttää suunnitteluvaatimukset suorituskyvyn ja tehon osalta, turvallisen ratkaisun toteuttaminen saattaa tarkoittaa jyrkkää oppimiskäyrää. Tämä voi aiheuttaa viivästyksiä tuotteelle tai johtaa siihen, että tietoturvatoteutus jää puutteelliseksi.

Tässä artikkelissa käsitellään lyhyesti IoT-reunalaitteiden turvallisuusnäkökohtia. Sen jälkeen artikkelissa esitellään Silicon Labsin EFM32PG23-mikrokontrolleri ja näytetään, miten sillä voidaan toteuttaa turvallisia ja vähävirtaisia IoT-reunaratkaisuja.

IoT-laitteiden tietoturvaongelmat

Internetiin kytkettyihin laitteisiin kohdistuvien etähyökkäysten määrä kasvaa jatkuvasti. Sulautettujen laitteiden kehittäjät saattavat ajatella, että heidän IoT-reunalaitteensa ei tarvitse suojausta, koska se ei sisällä "mitään arvokasta". Totuus kuitenkin on, että lähes jokaisessa laitteessa on jotakin, jota hakkeri voi pitää arvokkaana, olipa kyse sitten anturitiedoista, asiakastiedoista, laitteessa olevasta laiteohjelmistosta tai siitä, että laitetta voidaan käyttää takaovena siihen liitettyihin verkkoihin pääsemiseksi. Tietoturva on kriittinen ominaisuus, joka on suunniteltava jokaiseen IoT-reunalaitteeseen alusta alkaen: sitä ei pitäisi lisätä järjestelmään vasta suunnittelusyklin lopussa. Muutoin laite jää erittäin alttiiksi hyökkäyksille.

Jokaisessa IoT-reunalaitteessa on useita tietoturvallisuuden osa-alueita, jotka on otettava huomioon, kuten laitteen tunnistaminen, laitteen konfigurointi sekä ohjelmisto- ja laiteohjelmistopäivitykset. Kuvassa 1 esitetään luettelo tavallisista tietoturvan osatekijöistä ja siitä, miten nämä heijastuvat laitteen tietoturvavaatimuksiin. Jokaiseen turvallisuusvaatimukseen liittyy tekniikka, jota tavallisesti käytetään kyseisen vaatimuksen täyttämiseen ja mahdollisten hyökkääjien torjumiseen.

Tekijä Tietoturvavaatimus Teknologia
Laitteen identifiointi IoT-laite voidaan identifioida yksikäsitteisesti loogisesti ja fyysisesti. Turvallinen varmennus
Laitekonfiguraatio IoT-laitteen ohjelmisto- ja laiteohjelmistokonfiguraatiota voidaan muuttaa, ja vain valtuutetut tahot voivat tehdä tällaisia muutoksia. Turvallinen päivitys
Ohjelmisto- ja laiteohjelmistopäivitys Valtuutetut tahot voivat päivittää IoT-laitteen ohjelmiston ja laiteohjelmiston ainoastaan turvallisen ja konfiguroitavan mekanismin avulla.
Tietojen suojaaminen IoT-laite voi suojata tallentamansa ja lähettämänsä tiedot luvattomilta tahoilta ja muokkaukselta. Turvallinen avainten hallinta
Looginen pääsy rajapintoihin IoT-laite voi rajoittaa paikallis- ja verkkoliitäntöjen loogisen käytön vain valtuutetuille entiteeteille. Turvallinen vianmääritys
Ohjelmisto- ja laiteohjelmistopäivitys Valtuutetut tahot voivat päivittää IoT-laitteen ohjelmiston ja laiteohjelmiston ainoastaan turvallisen ja konfiguroitavan mekanismin avulla. Turvallinen päivitys
Kyberturvallisuustapahtumien kirjaaminen IoT-laite voi kirjata kyberturvallisuustapahtumia ja näyttää lokit vain valtuutetuille entiteeteille. Peukaloinnin esto
Ohjelmiston koskemattomuus Tietoturvan loukkausyritykset kirjataan, ja kehittäjät voivat valita asianmukaiset järjestelmän vastatoimenpidetekniikat tietoturvan suojaamiseksi. Suojattu käynnistys

Kuva 1: IoT-reunasovellusten suunnittelijoiden on otettava huomioon monia turvallisuusongelmia, -vaatimuksia ja niihin liittyvää teknologiaa. (Kuvan lähde: Silicon Labs)

Monilla IoT-reunasovelluksia kehittävillä sulautettujen järjestelmien tiimeillä on suurena ongelmana se, että niillä ei ole sisäistä tietoturvaosaamista. Tästä seuraa se, että niiden on joko tehtävä parhaansa sisäisesti tietoturvan oppimiseksi ja toteuttamiseksi tai käytettävä ulkopuolista apua. Kustannukset ja ajoitus voivat kummassakin tapauksessa poiketa halutusta.

Tähän on olemassa vaihtoehto: kehitystiimi voi valita mikrokontrollerin, joka on suunniteltu tietoturvaa silmällä pitäen ja joka tarjoaa valmiit tietoturvaratkaisut, jotka vaativat vain pieniä konfigurointimuutoksia haluttua sovellusta varten.

Silicon Labsin PG23-sarjan mikrokontrollerien esittely

Silicon Labsin EFM32PG23-mikrokontrollerisarja tarjoaa mielenkiintoisen vaihtoehdon IoT-reunalaitesovelluksiin useista syistä. Ensinnäkin PG23-mikrokontrollerissa voidaan käyttää Silicon Labsin omaa Secure Vault IoT -turvaratkaisua. Secure Vault on IoT-laitteiden suojaamiseen ja tulevaisuuden vaatimuksiin valmistautumiseen tarkoitettu alusta. Se on ensimmäinen IoT-turvaratkaisu, jolle on myönnetty PSA Certified Level 3 -status. Secure Vault tuo PG23-mikrokontrolleriin muun muassa seuraavat ominaisuudet: suojattu laiteidentiteetti, turvallinen avainten hallinta and tallennus sekä kehittynyt peukaloinnin tunnistus.

Secure Vault hyödyntää ainutlaatuista digitaalista sormenjälkeä, joka on luotu PUF (Physically Unclonable Function) -funktiolla. PUF-funktion avulla voidaan luoda symmetrinen AES-avain, joka häviää fyysisesti, kun järjestelmä sammutetaan. Symmetristä AES-avainta ei ole enää olemassa kun siru on sammutettu, joten sitä on mahdotonta poistaa laitteesta. PUF on tehokas ratkaisu monien IoT-reunasovellusten avaintenhallintahaasteeseen. Itse asiassa PUF voi skaalautua tukemaan niin montaa avainta kuin sovelluksen tukemiseen tarvitaan. Secure Vault sisältää myös peukaloinnin tunnistusjärjestelmän, jonka ansiosta avainta ei voida rekonstruoida, kun laite sammutetaan peukaloinnin jälkeen. Tärkeimmät turvallisuusominaisuudet voidaan tiivistää seuraavasti:

  • Turvallinen varmennus
  • Turvallinen avainten hallinta
  • Turvallinen avainten tallennus
  • Peukaloinnin esto

Toinen syy siihen, että PG23-mikrokontrollerit soveltuvat hyvin IoT-reunasovelluksiin, on se, että ne on suunniteltu vähävirtaisia sovelluksia varten. PG23-piirin aktiivinen virrankulutus on 21 mikroampeeria megahertsiä kohti (µA/MHz). EM2-tilassa 16 kilotavun RAM-muistilla virrankulutus on 1,03 µA ja 0,7 µA, kun reaaliaikainen kello (RTC) on käytössä EM4-tilassa. Näin alhaiset virrankulutustasot auttavat kehittäjiä suunnittelemaan energiatehokkaita laitteita, olivatpa ne sitten verkkovirtaan kytkettyjä tai paristo/akkukäyttöisiä.

Viimeiseksi tarkastelemme PG23-mikrokontrollerin ominaisuuksia. PG23 käyttää Arm® Cortex®-M33 -prosessoria jopa 80 MHz:n kellotaajuudella. Prosessori käyttää yksinkertaista yhden jännitteen tulojännitealuetta 1,71 – 3,8 volttia. Anturisovellusten parissa työskenteleville kehittäjille on tarjolla vähäenerginen anturiliitäntä (LESENSE). Mikrokontrolleri käyttää 40 jalan QFN-koteloa kooltaan 5×5 millimetriä (mm) tai 48 jalan QFN-koteloa kooltaan 6×6 mm. PG23-piirin lohkokaavio on esitetty kuvassa 2. Mikrokontrolleri tarjoaa myös viisi virransäästötilaa: EM0 on suoritustila, EM1 on lepotila, EM2 on syvä lepotila, EM3 on pysäytystila ja lopuksi tilassa EM4 laite on sammutettu.

Kaavio: Silicon Labs PG23-mikrokontrolleri tarjoaa laajan valikoiman oheislaitteita (suurenna klikkaamalla)Kuva 2: PG23-mikrokontrolleri tarjoaa laajan valikoiman oheislaitteita, muistia ja virransäästötiloja. (Kuvan lähde: Silicon Labs)

Aloittaminen PG23-PK2504A-kehitysalustan avulla

Paras tapa aloittaa PG23-mikrokontrollerin käyttö on hyödyntää PG23-PK2504A-kehitysalustaa. Alusta käyttää EFM32PG23B310F512-prosessoria, joka sisältää 512 kilotavua flash-muistia ja 64 kilotavua RAM-muistia. Kehitysalusta sisältää laajan valikoiman kortilla sijaitsevia antureita, liitäntöjä sekä 4×10 segmentin LCD-näytön (kuva 3).

Kaaviossa Silicon Labs PG23-2504A -kehitysalustaKuva 3: PG23-2504A-kehitysalusta sisältää EFM32PG23-mikrokontrollerin sekä 4×10 segmentin LCD-näytön, lämpötila- ja kosteusanturit, referenssijännitteen ja laajennusrajapinnat. (Kuvan lähde: Silicon Labs)

Kun kehittäjillä on alusta käsissään, he voivat ladata ja asentaa Simplicity Studio -ympäristön (Aloitusopas-välilehdellä). Simplicity Studio on laukaisualusta kaikelle, kun EFM32-mikrokontrollereja halutaan arvioida, konfiguroida ja käyttää kehityksessä. Ohjelmisto sisältää aloitusmateriaalin, dokumentaation, yhteensopivat työkalut ja resurssit.

Kun kehittäjä avaa Simplicity Studion ja yhdistää kehitysalustan tietokoneeseen, ohjelmisto tunnistaa kortin ja suosittelee esimerkiksi projekteja, dokumentaation ja demoja (kuva 4). Kehittäjä voi sen jälkeen valita itselleen parhaiten sopivan tavan päästä vauhtiin ja aloittaa testaaminen PG23-piirin kanssa.

Kuvassa Silicon Labs Simplicity Studio (suurenna klikkaamalla)Kuva 4: Silicon Labs Simplicity Studio tunnistaa kortin ja suosittelee räätälöityä tapaa päästä vauhtiin, tarjoaa dokumentaatiota, esimerkkiprojekteja jne. (Kuvan lähde: Silicon Labs)

Yksi PG23-PK2504A-kehitysalustan merkittävä ominaisuus on kytkin, jolla asetetaan, miten kehitysalusta saa virtaa. Vaihtoehtoja on kaksi: AEM ja BAT (kuva 5). AEM-tilassa virtamittausvastus on kytketty sarjaan LDO-virtalähteen ja PG23-mikroprosessorin kanssa. Tämän tilan etuna on se, että kehittäjät voivat mitata prosessorin virrankulutuksen laitteen tehonkulutuksen optimointia varten. Kun sovellus on optimoitu, kehittäjät voivat siirtyä BAT-tilaan ja käyttää kehitysalustaa nappiparistolla.

Kaavio: Silicon Labsin PG23-PK2504A tarjoaa vaihtoehdon syöttää kortille virtaa USB-C:n kautta.Kuva 5: PG23-PK2504A tarjoaa vaihtoehdon syöttää kortille virtaa USB-C:n kautta laitteen ollessa AEM-tilassa, mikä mahdollistaa prosessorin käyttämän virran mittaamisen. Vaihtoehtoisesti prosessori voi käyttää CR2032-nappiparistoa. (Kuvan lähde: Silicon Labs)

Vinkkejä ja niksejä energiankäytön minimoimiseksi IoT-sovelluksessa

Energiankulutuksen minimointi on kriittisen tärkeää jokaisessa IoT-reunaratkaisussa, olivatpa ne akkukäyttöisiä tai eivät. Energiankäytön optimointi voi viedä paljon aikaa, jos kehittäjät eivät ole tarkkoja. Alla esitettävien "vinkkien ja niksien” avulla kehittäjät voivat optimoida IoT-sovelluksen virrankulutusta:

  • Käytä tapahtumapohjaista ohjelmistoarkkitehtuuria. Kun järjestelmä ei käsittele tapahtumaa, aseta se virransäästötilaan.
  • Profiloi järjestelmän akunkulutusta useiden lataus/purkujaksojen ajan. Kirjaa virrankulutus ja käyttöjännite ja piirrä niistä kuvaajat ajan funktiona.
  • Hyödynnä virransäästötiloja, jotka kytkevät automaattisesti kellot, oheislaitteet ja suorittimen pois käytöstä.
  • Yksinkertaisissa sovelluksissa kannattaa tutustua Arm Cortex-M -prosessorin “sleep on exit” -toimintoon, joka minimoi keskeytysten aiheuttamaa kuormitusta aina kun järjestelmä herätetään.
  • Jos laitteessa käytetään RTOS-käyttöjärjestelmää, kannattaa hyödyntää sen "tickless"-tilaa, jotta RTOS ei turhaan herätä järjestelmää.
  • Kun optimointia iteroidaan, kannattaa seurata kunkin muutoksen tuomaa energiansäästöä. Jossain vaiheessa kehittäjät havaitsevat, että optimointiin käytetty aika ei enää tuota tulosta eikä juurikaan vähennä virrankulutusta. Tällöin on aika lopettaa optimointi ja siirtyä seuraavaan vaiheeseen.

Näitä vinkkejä noudattavat kehittäjät säästävät runsaasti aikaa ja vaivaa aloittaessaan seuraavaa turvallista ja vähävirtaista IoT-ratkaisuaan.

Yhteenveto

IoT-reunasovelluksissa tarvitaan yhä turvallisempia ja vähävirtaisempia mikrokontrollereja. Reunateknologiaan perustuvat ratkaisut vaativat, että laitteen on tuettava tehokkaita turvaominaisuuksia, mutta muita huomioon otettavia tekijöitä ovat mm. prosessoriytimen suorituskyky, tehokkuus, oheislaite- ja I/O-tuki, laitteen vaatima tila ja ekosysteemin tarjoama tuki.

Kuten artikkelissa on esitetty, Silicon Labsin EFM32PG23 MCU voi auttaa kehittäjiä ratkaisemaan useita virransäästösuunnitteluun ja laiteturvallisuuteen liittyviä ongelmia. Siihen liittyvä kehitysalusta tarjoaa kaikki tarvittavat työkalut alkuun pääsemiseksi, ja noudattamalla eräitä tärkeitä "vinkkejä ja niksejä" vähävirtainen ratkaisu voidaan toteuttaa nopeasti.

DigiKey logo

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.

Tietoja kirjoittajasta

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

Tietoja tästä julkaisijasta

DigiKeyn kirjoittajat Pohjois-Amerikassa