我們將探討兩種基于 Linux 的面向 Docker 的容器技術(shù),這些技術(shù)被提出作為物聯(lián)網(wǎng)安全解決方案。容器還可以幫助解決我們?cè)谖锫?lián)網(wǎng)框架中探討的開發(fā)復(fù)雜性和互操作性障礙的問題。 -- Eric Brown
在這個(gè)最后的物聯(lián)網(wǎng)系列文章中,Canonical 和 Resin.io 向以 Linux 容器技術(shù)作為解決方案向物聯(lián)網(wǎng)安全性和互操作性發(fā)起挑戰(zhàn)。
盡管受到日益增長(zhǎng)的安全威脅,但對(duì)物聯(lián)網(wǎng)(IoT)的炒作沒有顯示減弱的跡象。為了刷存在感,公司們正忙于重新規(guī)劃它們的物聯(lián)網(wǎng)方面的路線圖。物聯(lián)網(wǎng)大潮迅猛異常,比移動(dòng)互聯(lián)網(wǎng)革命滲透的更加深入和廣泛。IoT 像黑洞一樣,吞噬一切,包括智能手機(jī),它通常是我們通向物聯(lián)網(wǎng)世界的窗口,有時(shí)也作為我們的匯聚點(diǎn)或終端。
新的針對(duì)物聯(lián)網(wǎng)的處理器和嵌入式主板繼續(xù)重塑其技術(shù)版圖。自從 9 月份推出 面向物聯(lián)網(wǎng)的 Linux 和開源硬件[1] 系列文章之后,我們看到了面向物聯(lián)網(wǎng)網(wǎng)關(guān)的 “Apollo Lake]” SoC 芯片 Intel Atom E3900[2] 以及三星 新的 Artik 模塊[3],包括用于網(wǎng)關(guān)并由 Linux 驅(qū)動(dòng)的 64 位 Artik 7 COM 及自帶 RTOS 的 Cortex-M4 Artik。 ARM 為具有 ARMv8-M 和 TrustZone 安全性的 IoT 終端發(fā)布了 Cortex-M23 和 Cortex-M33[4] 芯片。
Artik 7
講道理,安全是這些產(chǎn)品的賣點(diǎn)。最近攻擊 Dyn 服務(wù)并在一天內(nèi)摧毀了美國大部分互聯(lián)網(wǎng)的 Mirai 僵尸網(wǎng)絡(luò)將基于 Linux 的物聯(lián)網(wǎng)推到臺(tái)前 - 當(dāng)然這種方式似乎不太體面。就像 IoT 設(shè)備可以成為 DDoS 的幫兇一樣,設(shè)備及其所有者同樣可能直接遭受惡意攻擊。
Cortex-M33 和 -M23
Dyn 攻擊事件更加證明了這種觀點(diǎn),即物聯(lián)網(wǎng)將更加蓬勃地在受控制和受保護(hù)的工業(yè)環(huán)境發(fā)展,而不是家用環(huán)境中。這不是因?yàn)闆]有消費(fèi)級(jí)物聯(lián)網(wǎng)安全技術(shù)[5],但除非產(chǎn)品設(shè)計(jì)之初就以安全為目標(biāo),否則如我們的智能家居集線器系列[6]中的許多解決方案一樣,后期再考慮安全就會(huì)增加成本和復(fù)雜性。
在物聯(lián)網(wǎng)系列的最后這個(gè)未來展望的部分,我們將探討兩種基于 Linux 的面向 Docker 的容器技術(shù),這些技術(shù)被提出作為物聯(lián)網(wǎng)安全解決方案。容器還可以幫助解決我們?cè)谖锫?lián)網(wǎng)框架[7]中探討的開發(fā)復(fù)雜性和互操作性障礙的問題。
我們與 Canonical 的 Ubuntu 客戶平臺(tái)工程副總裁 Oliver Ries 討論了 Ubuntu Core 和適用于 Docker 的容器式 Snaps 包管理技術(shù)。我們還就新的基于 Docker 的物聯(lián)網(wǎng)方案 ResinOS 采訪了 Resin.io 首席執(zhí)行官和聯(lián)合創(chuàng)始人 Alexandros Marinos。
Ubuntu Core Snaps
Canonical 面向物聯(lián)網(wǎng)的 Snappy Ubuntu Core[8] 版本的 Ubuntu 是圍繞一個(gè)類似容器的快照包管理機(jī)制而構(gòu)建的,并提供應(yīng)用商店支持。 snaps 技術(shù)最近自行發(fā)布了[9]用于其他 Linux 發(fā)行版的版本。去年 11 月 3 日,Canonical 發(fā)布了 Ubuntu Core 16[10],該版本改進(jìn)了白標(biāo)應(yīng)用商店和更新控制服務(wù)。
傳統(tǒng) Ubuntu(左)架構(gòu) 與 Ubuntu Core 16
快照機(jī)制提供自動(dòng)更新,并有助于阻止未經(jīng)授權(quán)的更新。 使用事務(wù)系統(tǒng)管理,快照可確保更新按預(yù)期部署或根本不部署。 在 Ubuntu Core 中,使用 AppArmor 進(jìn)一步加強(qiáng)了安全性,并且所有應(yīng)用程序文件都是只讀的且保存在隔離的孤島中。
LimeSDR
Ubuntu Core 是我們最近展開的開源物聯(lián)網(wǎng)操作系統(tǒng)調(diào)查[11]的一部分,現(xiàn)在運(yùn)行于 Gumstix 主板、Erle 機(jī)器人無人機(jī)、Dell Edge 網(wǎng)關(guān)、Nextcloud Box[12]、LimeSDR、Mycroft 家庭集線器、英特爾的 Joule 和符合 Linaro 的 96Boards 規(guī)范的 SBC(單板計(jì)算機(jī)) 上。 Canonical 公司還與 Linaro 物聯(lián)網(wǎng)和嵌入式(LITE)部門集團(tuán)在其 96Boards 物聯(lián)網(wǎng)版(IE)[13] 上達(dá)成合作。最初,96Boards IE 專注于 Zephyr 驅(qū)動(dòng)的 Cortex-M4 板卡,如 Seeed 的 BLE Carbon[14],不過它將擴(kuò)展到可以運(yùn)行 Ubuntu Core 的網(wǎng)關(guān)板卡上。
“Ubuntu Core 和 snaps 具有從邊緣到網(wǎng)關(guān)到云的相關(guān)性,”Canonical 的 Ries 說。 “能夠在任何主要發(fā)行版(包括 Ubuntu Server 和 Ubuntu for Cloud)上運(yùn)行快照包,使我們能夠提供一致的體驗(yàn)。 snaps 可以使用事務(wù)更新以免故障方式升級(jí),可用于安全性更新、錯(cuò)誤修復(fù)或新功能的持續(xù)更新,這在物聯(lián)網(wǎng)環(huán)境中非常重要。”
Nextcloud盒子
安全性和可靠性是關(guān)注的重點(diǎn),Ries 說。 “snaps 應(yīng)用可以完全獨(dú)立于彼此和操作系統(tǒng)而運(yùn)行,使得兩個(gè)應(yīng)用程序可以安全地在單個(gè)網(wǎng)關(guān)上運(yùn)行,”他說。 “snaps 是只讀的和經(jīng)過認(rèn)證的,可以保證代碼的完整性。
Ries 還說這種技術(shù)減少開發(fā)時(shí)間。 “snap 軟件包允許開發(fā)人員向支持它的任何平臺(tái)提供相同的二進(jìn)制包,從而降低開發(fā)和測(cè)試成本,減少部署時(shí)間和提高更新速度。 “使用 snap 軟件包,開發(fā)人員完可以全控制開發(fā)生命周期,并可以立即更新。 snap 包提供了所有必需的依賴項(xiàng),因此開發(fā)人員可以選擇定制他們使用的組件。”
ResinOS: 為 IoT 而生的 Docker
Resin.io 公司,與其商用的 IoT 框架同名,最近剝離了該框架的基于 Yocto Linux 的 ResinOS 2.0[15],ResinOS 2.0 將作為一個(gè)獨(dú)立的開源項(xiàng)目運(yùn)營。 Ubuntu Core 在 snap 包中運(yùn)行 Docker 容器引擎,ResinOS 在主機(jī)上運(yùn)行 Docker。 極致簡(jiǎn)約的 ResinOS 抽離了使用 Yocto 代碼的復(fù)雜性,使開發(fā)人員能夠快速部署 Docker 容器。
ResinOS 2.0 架構(gòu)
與基于 Linux 的 CoreOS 一樣,ResinOS 集成了 systemd 控制服務(wù)和網(wǎng)絡(luò)協(xié)議棧,可通過異構(gòu)網(wǎng)絡(luò)安全地部署更新的應(yīng)用程序。 但是,它是為在資源受限的設(shè)備(如 ARM 黑客板)上運(yùn)行而設(shè)計(jì)的,與之相反,CoreOS 和其他基于 Docker 的操作系統(tǒng)(例如基于 Red Hat 的 Project Atomic)目前僅能運(yùn)行在 x86 上,并且更喜歡資源豐富的服務(wù)器平臺(tái)。 ResinOS 可以在 20 中 Linux 設(shè)備上運(yùn)行,并不斷增長(zhǎng),包括 Raspberry Pi,BeagleBone 和Odroid-C1 等。
“我們認(rèn)為 Linux 容器對(duì)嵌入式系統(tǒng)比對(duì)于云更重要,”Resin.io 的 Marinos 說。 “在云中,容器代表了對(duì)之前的進(jìn)程的優(yōu)化,但在嵌入式中,它們代表了姍姍來遲的通用虛擬化“
BeagleBone Black
當(dāng)應(yīng)用于物聯(lián)網(wǎng)時(shí),完整的企業(yè)級(jí)虛擬機(jī)有直接訪問硬件的限制的性能缺陷,Marinos 說。像 OSGi 和 Android 的Dalvik 這樣的移動(dòng)設(shè)備虛擬機(jī)可以用于 IoT,但是它們依賴 Java 并有其他限制。
對(duì)于企業(yè)開發(fā)人員來說,使用 Docker 似乎很自然,但是你如何說服嵌入式黑客轉(zhuǎn)向全新的范式呢? “Marinos 解釋說,”ResinOS 不是把云技術(shù)的實(shí)踐經(jīng)驗(yàn)照單全收,而是針對(duì)嵌入式進(jìn)行了優(yōu)化。”此外,他說,容器比典型的物聯(lián)網(wǎng)技術(shù)更好地包容故障。 “如果有軟件缺陷,主機(jī)操作系統(tǒng)可以繼續(xù)正常工作,甚至保持連接。要恢復(fù),您可以重新啟動(dòng)容器或推送更新。更新設(shè)備而不重新啟動(dòng)它的能力進(jìn)一步消除了故障引發(fā)問題的機(jī)率。”
據(jù) Marinos 所說,其他好處源自與云技術(shù)的一致性,例如擁有更廣泛的開發(fā)人員。容器提供了“跨數(shù)據(jù)中心和邊緣的統(tǒng)一范式,以及一種方便地將技術(shù)、工作流、基礎(chǔ)設(shè)施,甚至應(yīng)用程序轉(zhuǎn)移到邊緣(終端)的方式。”
Marinos 說,容器中的固有安全性優(yōu)勢(shì)正在被其他技術(shù)增強(qiáng)。 “隨著 Docker 社區(qū)推動(dòng)實(shí)現(xiàn)鏡像簽名和鑒證,這些自然會(huì)轉(zhuǎn)移并應(yīng)用到 ResinOS,”他說。 “當(dāng) Linux 內(nèi)核被強(qiáng)化以提高容器安全性時(shí),或者獲得更好地管理容器所消耗的資源的能力時(shí),會(huì)產(chǎn)生類似的好處。
容器也適合開源 IoT 框架,Marinos 說。 “Linux 容器很容易與幾乎各種協(xié)議、應(yīng)用程序、語言和庫結(jié)合使用,”Marinos 說。 “Resin.io 參加了 AllSeen 聯(lián)盟,我們與使用 IoTivity 和 Thread的 伙伴一起合作。”
IoT的未來:智能網(wǎng)關(guān)與智能終端
Marinos 和 Canonical 的 Ries 對(duì)未來物聯(lián)網(wǎng)的幾個(gè)發(fā)展趨勢(shì)具有一致的看法。 首先,物聯(lián)網(wǎng)的最初概念(其中基于 MCU 的端點(diǎn)直接與云進(jìn)行通信以進(jìn)行處理)正在迅速被霧化計(jì)算架構(gòu)所取代。 這需要更智能的網(wǎng)關(guān),也需要比僅僅在 ZigBee 和 WiFi 之間聚合和轉(zhuǎn)換數(shù)據(jù)更多的功能。
其次,網(wǎng)關(guān)和智能邊緣設(shè)備越來越多地運(yùn)行多個(gè)應(yīng)用程序。 第三,許多這些設(shè)備將提供板載分析,這些在最新的智能家居集線器[16]上都有體現(xiàn)。 最后,富媒體將很快成為物聯(lián)網(wǎng)組合的一部分。
最新設(shè)備網(wǎng)關(guān): Eurotech 的 ReliaGate 20-26
最新設(shè)備網(wǎng)關(guān): Advantech 的 UBC-221
“智能網(wǎng)關(guān)正在接管最初為云服務(wù)設(shè)計(jì)的許多處理和控制功能,”Marinos 說。 “因此,我們看到對(duì)容器化的推動(dòng)力在增加,可以在 IoT 設(shè)備中使用類似云工作流程來部署與功能和安全相關(guān)的優(yōu)化。去中心化是由移動(dòng)數(shù)據(jù)緊縮、不斷發(fā)展的法律框架和各種物理限制等因素驅(qū)動(dòng)的。”
Ubuntu Core 等平臺(tái)正在使“可用于網(wǎng)關(guān)的軟件爆炸式增長(zhǎng)”,Canonical 的 Ries 說。 “在單個(gè)設(shè)備上運(yùn)行多個(gè)應(yīng)用程序的能力吸引了眾多單一功能設(shè)備的用戶,以及現(xiàn)在可以產(chǎn)生持續(xù)的軟件收入的設(shè)備所有者。”
兩種 IoT 網(wǎng)關(guān): MyOmega MYNXG IC2 Controller
兩種 IoT 網(wǎng)關(guān): TechNexion 的 LS1021A-IoT Gateway
不僅是網(wǎng)關(guān) - 終端也變得更聰明。 “閱讀大量的物聯(lián)網(wǎng)新聞報(bào)道,你得到的印象是所有終端都運(yùn)行在微控制器上,”Marinos 說。 “但是我們對(duì)大量的 Linux 終端,如數(shù)字標(biāo)牌,無人機(jī)和工業(yè)機(jī)械等直接執(zhí)行任務(wù),而不是作為操作中介(數(shù)據(jù)轉(zhuǎn)發(fā))感到驚訝。我們稱之為影子 IoT。”
Canonical 的 Ries 同意,對(duì)簡(jiǎn)約技術(shù)的專注使他們忽視了新興物聯(lián)網(wǎng)領(lǐng)域。 “輕量化的概念在一個(gè)發(fā)展速度與物聯(lián)網(wǎng)一樣快的行業(yè)中初現(xiàn)端倪,”Ries 說。 “今天的高級(jí)消費(fèi)硬件可以持續(xù)為終端供電數(shù)月。”
雖然大多數(shù)物聯(lián)網(wǎng)設(shè)備將保持輕量和“無頭”(一種配置方式,比如物聯(lián)網(wǎng)設(shè)備缺少顯示器,鍵盤等),它們裝備有如加速度計(jì)和溫度傳感器這樣的傳感器并通過低速率的數(shù)據(jù)流通信,但是許多較新的物聯(lián)網(wǎng)應(yīng)用已經(jīng)使用富媒體。 “媒體輸入/輸出只是另一種類型的外設(shè),”Marinos 說。 “總是存在多個(gè)容器競(jìng)爭(zhēng)有限資源的問題,但它與傳感器或藍(lán)牙競(jìng)爭(zhēng)天線資源沒有太大區(qū)別。”
Ries 看到了工業(yè)和家庭網(wǎng)關(guān)中“提高邊緣智能”的趨勢(shì)。 “我們看到人工智能、機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺和上下文意識(shí)的大幅上升,”Ries 說。 “為什么要在云中運(yùn)行面部檢測(cè)軟件,如果相同的軟件可以在邊緣設(shè)備運(yùn)行而又沒有網(wǎng)絡(luò)延遲和帶寬及計(jì)算成本呢?“
當(dāng)我們?cè)谶@個(gè)物聯(lián)網(wǎng)系列的開篇故事[21]中探索時(shí),我們發(fā)現(xiàn)存在與安全相關(guān)的物聯(lián)網(wǎng)問題,例如隱私喪失和生活在監(jiān)視文化中的權(quán)衡。還有一些問題如把個(gè)人決策交給可能由他人操控的 AI 裁定。這些不會(huì)被容器,快照或任何其他技術(shù)完全解決。
如果 AWS Alexa 可以處理生活瑣事,而我們專注在要事上,也許我們會(huì)更快樂。或許有一個(gè)方法來平衡隱私和效用,現(xiàn)在,我們?nèi)栽谔剿鳎绱松鹾谩#ū疚挠?LCTT 原創(chuàng)編譯,Linux中國 榮譽(yù)推出)