Hlavní navigace

BigClown se představuje: IoT otevřeně a hlavně bezpečně

22. 6. 2016
Doba čtení: 8 minut

Sdílet

Internet věcí je bezesporu velké téma současnosti, které rezonuje mnoha odvětvími, od IT přes průmyslovou výrobu až po spotřebitelskou elektroniku. Jak ho ale udělat pořádně, otevřeně a bezpečně?

Na rovinu si přiznejme, že se nacházíme na vrcholu známé „hype křivky“, tedy v oblasti přehnaných očekávání. O Internetu věcí (IoT) se v současnosti mluví tak nadšeně, že by člověk neznalý věci snadno podlehl dojmu, že se jedná o univerzální stříbrnou kulku a zlaté kladívko, o nástroj, který vyřeší všechny světové problémy, od hladomoru až po hloupé komentáře v diskusních fórech, a jaksi mimochodem zlepší naše životy o 372 procent nejmíň. Analytici se předhánějí v disciplíně, nazvané „kdo hodí víc miliard připojených zařízení do své tiskové zprávy“ a kdekdo hledí přidat kouzelná písmena „IoT“ kam jen to jde. Samolepky „IoT inside“ budou co nevidět (zatím má Google na to vlastní názor, ale ono to přijde…)

Na druhé straně existuje obrovská poptávka po kitech a modulech, které lze využít ke konstrukci podobných zařízení, protože nápad a chuť něco z rodu IoT udělat má kdekdo, reálnou schopnost navrhnout hardware, otestovat a vyrobit už řádově míň lidí…

„Vývoj hardware je jako vývoj software. Jen s tím rozdílem, že každé kliknutí na Compile trvá několik týdnů a stojí třeba desítky tisíc…“

A do tohoto světa vstupuje spin-off Jablotronu s názvem BigClown Labs. Naší motivací je nabídnout lidem, kteří se snaží vyvíjet nějaká vlastní připojená zařízení, ucelenou sadu elektronických modulů, jejichž použití bude velmi snadné, a přitom budou udělané solidně a bezpečně. Naší cílovou skupinou jsou nejen nadšenci, amatéři a „bastliči“, co si chtějí postavit domácí automatizaci na míru nebo sledování chaty a dálkové ovládání garáže, ale i třeba startupy, které mají zmáknuté nějaké softwarové řešení a hodil by se jim i reálný hardware, nebo výrobci elektroniky, kteří by rádi přidali „connected“ ke svému portfoliu a nechtějí od začátku vymýšlet kolo.

Možná jsme šílenci, kteří se pouštějí do podnikání v přehypované oblasti, ale věříme, že to má smysl. Proto jsme se rozhodli představit vám, čtenářům Root.cz, celý koncept ještě před oficiálním spuštěním prodeje, popsat, v čem podle nás spočívá jeho síla, kde je ta, jak se říká, „killing feature“ a proč věříme tomu, že na trhu je pro náš BigClown místo.

Čemu věříme?

Do vínku jsme BigClown dali pět základních vlastností: Otevřenost, Bezpečnost, Přívětivost, Rozšiřitelnost a Spolehlivost.

Otevřeností myslíme to, co se nazývá „open-source“ a „free“ – tedy česky „svobodný“. Náš software je licencován pod licencí MIT, hardware pod licencí CERN OHL, dokumentace pod licencí CC-BY-SA. Nechceme stavět další proprietární řešení, především proto, že máme jako další základní vlastnost bezpečnost. Věříme totiž, že otevřené a zdokumentované řešení, které využívá ověřené a známé bezpečnostní mechanismy, je bezpečnější než „security by obscurity“.

Bezpečnost je téma, které se v souvislosti s IoT skloňuje snad nejčastěji, především ve spojení s přídavnými jmény „špatná“ nebo „žádná“. BigClown je, jak už padlo, spin-off (vedlejší projekt) skupiny Jablotron, která má své renomé vybudované na zabezpečovacích systémech, proto je logické, že ani my jsme neponechali bezpečnost náhodě. V dalším článku se ještě k bezpečnosti vrátíme a popíšeme si celý koncept, v tomto místě si jen řekneme, že BigClown je navržen tak, aby bezpečnostní principy byly „v genech“ a pokud možno návrháře zařízení samy vedly. Naší prioritou je především dostupnost a integrita (autentizace zpráv, detekce pozměnění apod.) Ohledně privátnosti jsme si vědomi některých slabin, které s sebou nese koncept low-bandwidth radiové sítě s bateriovým napájením. Snažíme se bezpečnost koncipovat tak, aby byla pro návrháře co nejvíc transparentní, aby neměl ani potřebu ji obcházet, ani aby se nemohl vymlouvat, že „zabezpečení by příliš ztížilo návrh“. Snažíme se, ve spolupráci s odborníky na počítačovou bezpečnost, tyto mechanismy udělat snadno použitelné, aby jejich používání pro návrháře znamenalo jen minimální obtíže a omezení, zhruba na úrovni „hygienických návyků“.

Pod přívětivostí máme na mysli to, že naše komponenty jsou navržené tak, aby je dokázal poskládat a rozchodit i člověk, co nemá doma páječku, dráty ani voltmetr. Tedy podobně, jako například nábytek IKEA: jen spojíte podle návodu toto s tímto a vyberete si místo, kde bude váš nový stolek stát. Na druhou stranu počítáme samozřejmě s tím, že někdo může mít jiné nároky a požadavky, bude chtít jiný konektor, jiné uspořádání, naše standardní mu nebude vyhovovat, takže jsme schopni dodávat i „holé“ desky pro ty, co si s páječkou tykají. Zároveň se držíme známé strategie KISS a věci děláme tak jednoduché, jak jen mohou být (ale ne jednodušší!)

Rozšiřitelnost vyplývá z předchozích bodů, totiž otevřenosti a přívětivosti. Nenecháváme si nic pro sebe, veškerou dokumentaci, schémata a zdrojové kódy dáme k dispozici na GitHubu, a navíc tam, kde to jde, používáme osvědčené otevřené technologie a standardy – JSON, MQTT, I2C apod. Naše SW i HW rozhraní jsou otevřená, postavená na rozšířených technologiích a navržená především tak, aby bylo snadné je používat (tedy např. jednoduchá práce s modelem publisher / subscriber, bez náročného adresování, směřování, bez API se spoustou metod, …)

Poslední, ovšem nikoli nejméně důležitá, je spolehlivost. Jdeme cestou jednoduchých zařízení a jednoduchého uspořádání, namísto vysoké komplexnosti, která vede k nepřehlednosti a hůř se v ní hledají chyby. Z hlediska hardware jsme vsadili na osvědčené produkty a dodavatele komponent, a díky úzké kooperaci s Jablotronem máme k dispozici i prověřené výrobní postupy a linky. Nechceme podstřelovat cenu čínských dodavatelů z eBay a Alibaby, to bychom se pouštěli do předem prohraného boje právě na úkor spolehlivosti. Místo toho jsme se rozhodli dát na veškeré produkty desetiletou záruční dobu a ke všemu poskytovat non-stop podporu 24/7.

Co je tedy vlastně BigClown?

BigClown je modulární systém hardware a software, pomocí kterého můžete prototypovat i stavět reálné aplikace pro telemetrii, automatizaci a další použití, včetně IoT (naše koncepce ovšem počítá i s věcmi, které nejsou nutně připojené na internet). Pokud vám „systém“ zní jako příliš vznešené slovo, klidně si ho nahraďte slovem „stavebnice“ a představte si BigClown jako sadu komponent s jednotným rozhraním, které si můžete k sobě spojovat tak, jak potřebujete pro svou aplikaci.

Srdcem každého podobného systému je samotné zařízení, tedy node. Základem našeho nodu je takzvaný Core Module. Ten je poháněn jednočipem s jádrem Cortex-M0+, konkrétně jde o STM32L083CZ. Zvolili jsme tento čip hned z několika důvodů: jde o obvod z ověřené a používané řady ARM procesorů STM32, má velmi nízký odběr (což je důležité pro napájení nodů z baterií), má integrované USB s ROM bootloaderem, dostatečný počet rozhraní, dostatečnou velikost pamětí (Flash, RAM i EEPROM) a především má dvě komponenty, důležité pro kryptografii: TRNG (True Random Number Generator) a akcelerátor pro výpočet AES-128.

S tímto čipem úzce spolupracuje čip ATSHA204A. Jde o paměť EEPROM, navrženou pro ukládání klíčů, která zároveň implementuje několik kryptografických operací s pomocí algoritmu SHA-256. Výrobce garantuje, že klíče v této paměti uložené nelze přečíst ani pomocí metod přímého útoku na hardware či postranními kanály (power analysis, power glitching, dekapsulace – odstranění pouzdra, …). My jej používáme pro kryptografickou autentizaci nodu (uzlu) vůči gateway a gateway vůči node, a pro kryptografickou aktualizaci AES klíče, používaného pro šifrování a zajištění integrity spojení Node – Gateway.

Na Core modulu je zároveň integrován tříosý akcerelometr (LIS2DH12), teploměr (TMP112) a bezdrátový komunikační modul (SPSGRF). Samotný Core Module tak může sloužit jako snímač pohybu a teploty (akcelerometr lze využít i pro detekci fyzického útoku, např. že se někdo dobývá do zařízení) a může předávat data buď přes rádio, přes USB CDC nebo i jinými způsoby (I2C, UART, SPI, GPIO).

Core Module má vyvedené sběrnice, díky kterým je možné k němu připojit další senzory, aktuátory či celé systémy. Podporuje rozšířená rozhraní typu I2C, SPI, 1-Wire a UART.

Core modul může fungovat i samostatně, ale lze k němu připojit další moduly – například modul pro napájení z baterií nebo takzvaný „Tag Module“, což je deska, která umožňuje připojení až šesti různých I2C zařízení ve formě tzv. tagů. Tagy jsou malé desky se snímači, namátkou snímač intenzity osvětlení, teploměr, vlhkoměr nebo NFC tag. K dispozici je i CO2 senzor a ve vývoji je i modul displeje a ovladače (otočný enkodér s tlačítkem).

Samotný Core Module (či s rozšiřujícími tagy a moduly) může fungovat jako autonomní jednotka, připojená přes USB například k Raspberry Pi či k Turris Omnia. Zajímavější možná bude ale jejich zapojení do bezdrátové sítě (využívá frekvenci 868 MHz, popř. 915 MHz). Více Core modulů pak komunikuje s jedním centrálním modulem (koncentrátorem), který je připojen k počítači. V tuto chvíli počítáme s využitím linuxových strojů Raspberry Pi nebo Turris Omnia. Zde běží MQTT broker, který se stará o předávání a směřování zpráv (o MQTT a MQTT-SN si povíme podrobněji v dalších dílech), hub (napsaný v Pythonu), který řeší příjem zpráv od modulů, a k tomu volitelně např. webserver (takže můžete Raspberry připojit k monitoru / televizi a mít přehled o naměřených datech, popřípadě rovnou ovládat potřebné periferie) nebo různé automatizační moduly pro lokální zpracování dat (technicky jde o libovolné spustitelné aplikace, napsané v Pythonu, Node.js, C++ či v jiných jazycích, které komunikují s MQTT brokerem). Samozřejmě je možné vše připojit na internet a integrovat s existujícími službami (Azure IoT, Amazon IoT, Thingspeak či s vaším vlastním řešením) pomocí MQTT over TLS, MQTT over WebSocket, nebo pomocí HTTPS REST API.

CS24_early

V jakém je teď BigClown stavu?

Ostrý oficiální start BigClown je naplánován na září 2016. Ve chvíli ostrého spuštění bude veřejně dostupná i dokumentace a zdrojové kódy veškerého firmware a software. V současné době intenzivně pracujeme na některých částech firmware a obslužného software, a zároveň je ve výrobě předprodukční série, kterou bychom rádi nabídli vybraným zájemcům pro vyzkoušení a otestování, i s tím, že v té době nebude software kompletní. Nabízíme tuto možnost i čtenářům Root.cz – pokud chcete vyzkoušet náš hardware a software s předstihem, napište nám, spojíme se s vámi a domluvíme se na případném zapůjčení předprodukčních sad. Pokud vás zajímá, jak pokračují práce, a chcete být u toho, přihlašte si odběr našeho newsletteru na webu BigClown.com.

V textu jsem několikrát naznačil, že tento text bude mít pokračování. Na co se tedy můžete těšit? Například na podrobnější popis zabezpečení BigClown, na to, jak řešíme výměnu klíčů („párování“), na to, jak implementujeme standardní sadu ovládacích příkazů, jak přenášíme JSON komprimovaně (abychom šetřili rádiové pásmo), a třeba se bude někomu hodit i osvětová pasáž s popisem protokolu MQTT, který se stal v oblasti IoT nepsaným standardem.

Byl pro vás článek přínosný?

Autor článku

Martin Malý je autorem serveru Bloguje, mikroblogu Teidu či služby pro zkracování odkazů Jdem.cz. Vedl také magazín Zdroják.