Hardvérové základy na zabezpečenie internetu vecí

Základnou požiadavkou bezpečnosti zariadení internetu vecí je integrita systému. Zariadenie musí byť chránené proti neoprávneným úpravám a prienikom. Hackeri sú vynaliezaví a využijú všetky slabiny, ktoré dokážu zistiť, aby sa pokúsili ohroziť systém. Bezpečnosť zrealizovaná vo viacerých úrovniach je prostriedok, pomocou ktorého môžu OEM znížiť svoju zraniteľnosť voči úspešným pokusom o ohrozenie časti systému. Napríklad zahltenie vyrovnávacej pamäte (zásobníka) je bežne používaný mechanizmus používaný na prienik do systému a funguje tak, že využíva rozloženie dát v pamäti. Nadmerné sieťové pakety môžu viesť k tomu, že útočník uloží program, ktorý je mimo pamäte vyhradenej na sieťové vyrovnávacie pamäte, a potom ho cieľový systém môže neúmyselne spustiť. Z pohľadu útočníka to poskytuje bod, cez ktorý môže nahrať nový spustiteľný obraz systému. Po reštarte zariadenia, po ktorom sa inicializuje nový obraz systému, získa útočník úplnú kontrolu nad systémom a prístup k utajeným informáciám a iným hodnotným údajom.

Mechanizmus bezpečného nábehu (bootovania) poskytuje prostriedky na ukončenie už uvedených akcií a ďalších útokov tak, že sa dajú spustiť iba. exe súbory poskytnuté oprávnenou stranou. Základnou požiadavkou na implementáciu mechanizmu zabezpečeného nábehu je oblasť energeticky nezávislej pamäte (napr. Flash pamäť), ktorá je už od výroby určená len na čítanie – obsahuje bootovací program, ktorý núti procesor skontrolovať integritu bootovacieho obrazu nahrávaného do systému. Ak sa nepodarí skontrolovať integritu, zariadenie nenabehne, kým nebude vybavené platným bootovacím obrazom.

Najjednoduchším mechanizmom kontroly integrity je nejaká forma kontrolného súčtu. To však nekontroluje pôvod bootovacieho obrazu. Falošný bootovací obrazec môže stále potenciálne prejsť kontrolou integrity, ak útočník vie, ako ho zostaviť na základe identifikačného čísla výrobcu alebo podobného zdieľaného programu, ktorý sa považuje za tajný. Používatelia môžu dosiahnuť omnoho efektívnejšiu kontrolu integrity: takú, ktorá kombinuje ID výrobcu s vlastným zariadením tým, že zabezpečí, že program načítaný do Flash pamäte určený na spustenie v nasledujúcom bootovaní bude podpísaný zakódovaným heslom (hashing) vygenerovaným pomocou jedinečného ID uloženého lokálne. Na ochranu pred útokmi, ktoré by sa mohli použiť na nájdenie tohto ID, by zariadenie tiež malo mať hardvérový základ dôvery.

Hardvérový základ dôvery

Hardvérový základ dôvery je chránená oblasť na vykonávanie operácií citlivých na bezpečnosť, ktorá by zaistila ochranu pred fyzickými zásahmi a vzdialenými útokmi. Na zabezpečenie tejto ochrany implementuje základ dôvery zabezpečený procesor, ktorý má výhradný prístup k programom umiestneným na procesore a v dátovej pamäti. V týchto oblastiach sú uložené šifrovacie kľúče a iné zabezpečené údaje a základ dôvery je nakonfigurovaný tak, aby nikdy neumožňoval prístup k týmto prvkom zvonka. Bezpečný procesor je často podporovaný kryptografickým procesorom na urýchlenie týchto operácií a generátorom pravých náhodných čísel (TRNG), ktorý sa používa na generovanie softvéru a systémov bežiacich mimo základu dôvery, aby sa určilo, či majú mať prístup k systémovým zdrojom. Príkladom hardvéru dôveryhodnosti je bezpečnostný subsystém Pluton implementovaný ako hlavná súčasť modulu Azure Sphere, ktorý je k dispozícii prostredníctvom spoločnosti Farnell.

Po zavedení hardvéru dôveryhodnosti má zariadenie potenciál nielen zabezpečiť seba a všetky údaje, ktoré odošle, ale preukáže, že ide o legitímne zariadenie, ktoré odosiela dôveryhodné údaje do iných uzlov na internete, či už ide o iné zariadenia internetu vecí alebo servery v cloude. Vďaka tomu sa zlepšuje bezpečnosť, pretože zariadenia môžu odmietnuť interakciu s akýmkoľvek sieťovým pripojením, ktoré nemá prijateľné poverenia. Tým sa predovšetkým znižuje pravdepodobnosť pretečenia vyrovnávacej pamäte a podobných útokov. Pluton tiež vynucuje bezpečnosť v systéme na kontrolu činnosti periférnych zariadení, ktoré môžu byť sami ohrozené. Bezpečnostné zábrany (firewall) v procesore bránia neoprávnenému prístupu k citlivým funkciám a pokusom o prevzatie systému napríklad pomocou falošných periférií.
Potvrdenie je mechanizmus, ktorým softvér alebo vzdialené zariadenia dokážu preukázať svoju totožnosť alebo pravosť. Typicky sa toto osvedčenie rieši pomocou protokolov založených na mechanizmoch infraštruktúry verejného kľúča (PKI). V rámci PKI sú správy šifrované pomocou verejných kľúčov, ktoré možno voľne šíriť bez toho, aby došlo k narušeniu protokolu, pretože správu môže dešifrovať iba zodpovedajúci súkromný kľúč. Je to taký kľúč, ktorý sa uloží v hardvérovom adresári základu dôvery v zabezpečenej pamäti a zvyčajne sa načíta počas výroby.

Bezpečnosť komunikácie

Ak chce zariadenie nadviazať komunikáciu alebo preukázať svoju totožnosť, použije protokoly na generovanie certifikátov a podpisov pomocou jedného alebo viacerých týchto súkromných kľúčov. Podpisové a certifikačné protokoly kombinujú náhodné hodnoty, v ideálnom prípade vytvorené pomocou TRNG, so súkromným kľúčom na vytváranie hodnôt, ako sú kľúče relácií, ktoré sa používajú krátko pred tým, ako sa vyradia, aby sa útočníkom zabránilo zachytiť správy a znovu ich vytvoriť pri takzvaných opakovaných útokoch. Vytvorené protokoly PKI zaisťujú, že k súkromnému kľúču sa nedostane nikto mimo zabezpečenej oblasti.

V prípade Azure Sphere sa počas výroby generujú dva základné súkromné kľúče podsystémom Pluton na samotnom zariadení, vďaka čomu ich žiaden softvér nemôže neskôr priamo prečítať. Všetky správy odvodené zo súkromných kľúčov sú vytvárané kryptoprocesorom v subsystéme Pluton. To je výborné riešenie slabiny mnohých systémov, kde sú privátne kľúče generované externe a naprogramované do zariadenia, čo otvára možnosť odpočúvania.

Súkromné kľúče môže generovať a interne ukladať akékoľvek zariadenie. Ďalším problémom je, či sú kľúče platné, keď sa zariadenie prvýkrát objaví v sieti. Azure Sphere to dosahuje generovaním zhodných verejných kľúčov: jeden na osvedčenie a jeden na bezpečné služby definované používateľom. Tieto verejné kľúče sa poskytujú pri výrobe spoločnosti Microsoft na použitie prostredníctvom cloudovej služby Azure. V zariadení sú uložené aj digitálne certifikáty generované pomocou mechanizmov PKI, ktoré sa používajú na kontrolu správ pochádzajúcich zo serverov Azure.

Keď sa zariadenie Azure Sphere pripojí ku cloudu, overí identitu servera kontrolou správ voči certifikátu vytvorenému Azure, ktorý ukladá v zabezpečenej pamäti. V tomto okamihu sa zariadenie musí autentifikovať na serveri, čo je úloha splniteľná pomocou protokolu vzdialeného osvedčovania. V systéme Azure Sphere nie je identifikované iba zariadenie, ale aj program, ktorý spúšťa. To sa vykonáva vytvorením kľúča relácie založeného na kryptografickom zakódovaní častí programu počas procesu bezpečného bootovania zariadenia. Tieto hodnoty sú podpísané súkromným kľúčom na osvedčenie generované zabudovaným kryptoprocesorom. Pretože služba Azure môže vygenerovať zodpovedajúci verejný kľúč na základe verejného kľúča zariadenia, ktorý má vo svojej databáze, môže overiť totožnosť zariadení, ktoré nabehli (prešli procesom bootovania), pomocou autorizovaného firmvéru.

Dostupnosť cloudovej služby na autentifikáciu zariadení má ďalšie výhody: napríklad keď sa v prípade Azure Sphere zistí, že zariadenie je overené a prevádzkuje správny softvér, získa certifikát, ktorý môže byť v spojení s vlastným uloženým poverením predložený iným online službám a zariadeniam na preukázanie identity. Certifikát je platný zhruba jeden deň, čo obmedzuje potenciál útokov a ak chce zariadenie zachovať spojenie so službami internetu vecí, bude nútené pravidelne preukazovať svoj stav. To je úroveň ochrany, ktorú samostatné zariadenie nemôže dosiahnuť, pretože ak je ohrozený fyzickým útokom, nemožno ho opraviť bez manuálnej kontroly.

Ak zariadenie neprejde bezpečným bootovacím procesom, klientske zariadenie nemôže získať certifikát, ktorý mu umožní fungovať v režime oprávneného, autentifikovaného systému, bude odrezané od internetu vecí a nebude schopné fungovať spôsobom, ktorý je užitočný pre útočníka. Okrem toho zlyhanie autentifikácie poskytuje prostriedky na nápravu situácie a zariadenie môže mať povolenie na pripojenie k službám Azure, aby si stiahlo a nainštalovalo autentický a aktuálny bootovací obraz. Poskytuje to dodatočnú úroveň ochrany pred útokmi, ktoré využívajú slabiny starších verzií overeného firmvéru.

Aj keď je podpora pripojenia na internet v súčasnosti pre mnohých návrhárov zabudovaných systémov prakticky nevyhnutnosťou, hrozbu, ktorá je s tým spojená, možno efektívne riadiť. Prostredníctvom platforiem ako Azure Sphere poskytuje pripojenie na internet odolnejšie riešenie, ako by bolo možné s nepripojenými zariadeniami.

Cliff Ortmeyer
globálny vedúci technického marketingu
Farnell
www.farnell.com