Jste zde

E-Paper: Jednoduchá signalizace závažných chyb a stavu zabezpečení

Existují aplikace, kde bezpečnost celé sítě je důležitější než funkčnost jednotlivých zařízení v dané síti. To znamená, že pokud IoT uzel zjistí, že byl napaden, je pak bezpečnější daný uzel okamžitě vypnout. Důvod vypnutí se ihned zobrazí na displeji elektronického papíru (EPD) a vydrží tam do příjezdu techniků, kteří na základě zobrazené informace provedou příslušnou akci.

Jakmile je však uzel vypnut, dojde ke ztrátě veškerého obsahu energeticky závislé paměti. Ukládání dat do energeticky nezávislé paměti, jako je EEPROM nebo Flash spotřebovává čas a energii, a to zvyšuje riziko narušení. Může nastat situace, kdy čtení dat při zapnutí nemusí poskytovat důvěryhodná data, jelikož sekvence zapnutí byla z vnějšku ovlivněna. Důvod vypnutí se zobrazuje na displeji elektronického papíru (EPD) a my si přestavíme displeje od Pervasive Displays a Display Visions. Popíšeme si, jak lze tyto displeje propojit s mikrokontrolerem a nakonfigurovat tak, aby poskytovaly diagnostické informace, a přitom odebírali velmi malý nebo žádný proud.

Zabezpečené IoT uzly

Návrh uzlu IoT obsahuje sofistikované metody zabezpečení, které zaručují spolehlivý provoz mikrokontroleru. Obecně existují tři druhy bezpečnostních hrozeb, proti kterým je nutné se chránit:

  1. Porucha firmware přímo v mikrokontroleru
  2. Neplatná vstupní data ze senzoru, klávesnice, periferie nebo jiného externího zařízení
  3. Cílený útok z vnějšku tzv. Malicious Actor nebo též Threat Actor

Nejčastější příčinou poruchy firmware bývá chyba v kódu, neplatný výpočet, který způsobí, že mikrokontroler zpomalí vykonávání dané funkce nebo ve velmi vzácných případech hardwarová porucha mikrokontroleru. V extrémních případech "zabere" watchdog a dojde k resetu mikrokontroleru.

K neplatným vstupním datům může dojít při poruše externího senzoru nebo při záměrné manipulaci s ním. Mohou vzniknout data, která jsou mimo rozsah, a to nemusí být správně ošetřeno v kódu aplikace. Například pokud snímač teploty v místnosti naměří hodnotu 250 °C. Tato naměřená hodnota může být způsobena poruchou snímače nebo úmyslnou manipulaci se senzorem. Může se stát, že programátor nepočítal s takovou vysokou hodnotou teploty, a při výpočtu dojde k závažné chybě v řídícím algoritmu, a tím pootevře vrátka neznámému vetřelci.

Cílený útok neboli Malicious Actor má za úkol vyřadit uzel IoT z funkce nebo jej použít jako vstupní bránu do sítě nebo dokonce do budovy. Například dveře mohou být automaticky odemčeny, pokud teplota v místnosti dosáhne teploty 250 °C a systém ho nesprávně vyhodnotí jako požár a odblokuje vstupní dveře.

Reakce na poruchy

Bez ohledu na zdroj chyby musí být firmware připraven na potenciální poruchy. Vstupy do podprogramů a funkcí je nutné mít robustní a všechna vstupní data ze snímače musí projít ochranným mechanismem, který rozhodne o validních nebo nevalidních datech. Watchdog musí znát maximální dobu jednotlivých funkcí, a při zpomalení ihned informovat systém, který provede adekvátní akci. Firmware musí poruchu, bez ohledu na to, zda je porucha náhodná nebo úmyslná, zachytit co nejdříve. U nefunkčního senzoru, který je trvale mimo rozsah, může po síti poslat chybový kód, který správce sítě upozorní na problém.

V některých uzlech IoT existuje speciální kategorie poruch, pro které je jediné řešení ochrany – vypnutí. To nastává například při detekci fyzické manipulace, selhání interního kontrolního součtu, některá selhání integrovaného autotestu (BIST) a jakékoli selhání, které může být způsobeno vnějším útokem.

Pokud se uzel vypnul bez odeslání zprávy o chybě a pokud uzel ignoruje síťové příkazy k restartu, znamená to, že došlo k závažné chybě a musí být vyslán technik, který fyzicky prozkoumá dané zařízení a zjistí důvody vypnutí.

Jakmile je však uzel vypnut, veškerá data z energeticky závislé paměti jsou okamžitě ztracena. Díky tomu je diagnostika příčiny vypnutí velmi obtížná, ne-li nemožná. Před vypnutím uzlu lze tyto diagnostická data uložit do energeticky nezávislé paměti, jako je EEPROM nebo Flash paměti. Problém je v tom, že zápis do těchto typů paměti trvá nějakou dobu, během níž musí uzel zůstat aktivní, a pokud se jedná o cílený útok z vnějšku, musí dojít k vypnutí ihned, jelikož každá další doba provozu ohrožuje celou zabezpečenou síť.

Diagnostika závažných chyb pomocí elektronického papíru

EPD (Displej elektronického papíru) má velmi nízkou spotřebu a lze jej použít k ukládání a zobrazování chybových a diagnostických informací těsně před vypnutím uzlu. Jakmile je uzel vypnutý EPD udržuje obraz na displeji i bez napájení po celé dny nebo týdny. Informace na displeji dává technikům vizuální informaci o důvodu vypnutí a umožňuje jim rozhodnout, zda je bezpečné opět IoT uzel zapnout, nebo zda by měl být odebrán ze sítě podrobit jej podrobné analýze.

Příkladem EPD vhodného pro zobrazení diagnostických informací je modul E2271CS091 od Pervasive Displays. K mikrokontroleru se připojuje pomocí sériového rozhraním SPI a má vysoce kontrastní 2,71 palcový displej (obrázek 1).

Obrázek 1: Modul E2271CS091 má vysoce kontrastní displej o velikosti 2,71 palce s rozlišením 264 x 176 pixelů. Má široký pozorovací úhel a k mikrokontroleru se připojuje pomocí rozhraní SPI. (Zdroj obrázku: Všudypřítomné displeje)

Modul E2271CS091 EPD používá displej s aktivní TFT technologii s nativním rozlišením 264 x 176 pixelů při 117 bodech na palec (dpi). To umožňuje, aby se na displej zobrazilo mnoho informací, které pomohou technikům v diagnostice. Antireflexní obrazovka má široký pozorovací úhel téměř 180°. Díky tomu je umožněno snadné sledování displeje v neobvyklých montážních místech. EPD vyžaduje je napájen napětím o velikosti 3,0 V.

Mikrokontroler odesílá data do EPD přes rozhraní SPI, které je součástí 24 pinového páskového konektoru. Jedinou komunikací zpět z EPD do mikrokontroleru je pomocí pinu „device busy“, který signalizuje zaneprázdní displeje.

Pokud je zjištěna chyba nebo pokus o „hacknutí“ a pokud je chyba natolik závažná, že vyžaduje vypnutí uzlu, musí být chyba nejprve zachycena firmwarem, watchdogem nebo jinou metodou. Poté musí dojít k předání informace o poruše do rutiny, kde dojde k pojmenování chyby a přiřazení příslušného kódu či příslušných informací, které mají být zobrazeny na displeji. Tato rutina by měla mít v kódu nejvyšší prioritu, aby se zabránilo přerušení nebo poškození dat. Pro maximální spolehlivost se doporučuje, aby rutina byla zcela samostatná, bez volání externích podprogramů nebo funkcí. V ideálním případě by rutina měla být uložena v místě s ochranou proti zápisu, aby byla zaručena integrita kódu, a to i po aktualizaci firmwaru.

Před aktualizací displeje EPD by mikrokontroler měl nejprve odeslat příkaz měkkého resetu přes rozhraní SPI, aby se vymazal displej s předešlými informacemi. Poté odešle nové aktuální informace v řadě bajtových sekvencí, kde každý bit v bajtu představuje pixel na EPD. Po dokončení sekvence může dojít k vypnutí mikrokontroleru a celého zařízení. Různí výrobci mikrokontrolerů mají různé způsoby vypnutí, protože to závisí na dané architektuře.

V některých situacích a z bezpečnostních důvodů může mít výrobce speciální způsob vypnutí, které je k dispozici pouze na vyžádání. Lze použít externí obvod k přerušení napájení mikrokontroleru. To však zvyšuje složitost systému a snižuje spolehlivost a bezpečnost. Proto je upřednostňováno systémové vypínání mikrokontroleru. Pro vývoj zařízení s displejem elektronického papíru je možno použít sadu B3000MS034 od Pervasive Displays (obrázek 2).

Obsahuje 24 pinový konektor pro displej EPD, ale také 24 či 40 pinový konektor, který používají jiné typy EPD displejů. Sada je kompatibilní s vývojovými sadami LaunchPad od Texas Instruments. K 20 pinovému konektoru lze připojit můstkový kabel, který umožňuje sledovat řídicí signály do EPD během vývoje.

Obrázek 2: Rozšiřující sada pro modul Pervasive Displays E2271CS091 EPD obsahuje 4pinový konektor pro plochý kabel displeje. Obsahuje také přemosťovací kabel a 90 pólový 20 pinový konektor. (Zdroj obrázku: Všudypřítomné displeje)

Další displej EPD je EA EPA20-A od Display Visions (obrázek 3).

Obrázek 3: EA EPA20-A od Display Visions je displej o rozměrech 172 x 72, který dokáže udržovat stav displeje bez připojeného napájení. (Zdroj obrázku: Vize zobrazení)

Toto EPD má displej ve stupních šedi 172 x 72 a také používá rozhraní SPI pro komunikaci s mikrokontrolerem. EPD má extrémně nízkou spotřebu a vyžaduje jediné napájení 3,3 V a při změně zobrazení odebírá pouze 40 mW. Displej EA EPA20-A EPD je schopen udržovat obraz čitelný, i když není připojeno napájení.

Závěr

Uzly IoT se někdy musí vypnout v reakci na detekci závažné poruchy nebo vážného bezpečnostního ohrožení. To může mít za následek ztrátu všech důležitých informací, které slouží k diagnostice zařízení. Stavová a diagnostická data mohou být před vypnutím zaslána na připojený displej EPD a zobrazena několik dní nebo dokonce týdnů. Tím se poskytnou data technikům, kteří určí příčinu vypnutí a v případě potřeby provedou preventivní opatření k ještě větší bezpečnosti daného uzlu či sítě.

 

Článek vyšel v originále na webu DigiKey.com, autorem je Bill Giovino.

Hodnocení článku: