Paper Note: Internet of Things: A survey on the security of IoT frameworks
2019.3.13-2019.4.01
感覺這篇文章看的意義不大,但是由於已經開頭了,所以還是看完了。文章的主要內容為介紹了一些IoT開發框架以及這些框架的架構、應用規範、硬體規範以及一些安全特色,作用算是幫助瞭解了一些框架吧。
緒論
物聯網的普及極大的方便了人們的生活,但是它的安全問題也是需要注意的。
開發IoT程式具有以下挑戰,使得開發者需要實現各種軟硬體功能:
- 分散式計算的高度複雜性
- 缺乏處理低級別通訊和簡化高階實現的一般準則或框架
- 多種程式語言
- 各種通訊協議。
近來,出現了一些IoT框架,本文比較了最近比較流行的IoT框架的安全特點包括:
- Amazon的AWS IoT
- ARM Bed
- 微軟的Azure IoT元件
- 谷歌的Brillo/Weave
- Ericsson的Calvin
- 蘋果的HomeKit
- Eclipse的Kura
- 以及Samsung的SmartThing
主要貢獻有:
- 提供當前最先進的物聯網平臺的總結圖,並確定此類平臺當前設計的趨勢。
- 提供各種框架的不同架構之間的高級別比較。
- 專注於為確保這些框架中的安全性和隱私而設計的模型和方法。
- 說明每個框架在滿足安全要求和滿足標準指南方面的優缺點。
- 探索設計缺陷並開啟大門,對潛在威脅進行更深入的安全分析。
背景知識
所有IoT裝置的相似之處在於連線網路並交換資料。
關係的IoT框架主要涉及物理實體以及協議實現。物理試題包括:智慧裝置(感測器等)、伺服器(作為路由儲存的雲端伺服器)、終端(接入IoT裝置的應用);協議是指不同層以及端到端通訊的協議。
目前還沒有標準的IoT框架。我們考慮一個三層的架構:應用層(Application)、網路層(Network)以及感知層(Perception)。
IoT裝置的模型如圖所示。IoT框架的意義在於隱藏了開發應用的複雜性,簡化了響應的過程。框架提供了感知計算以及傳遞與處理資料的過程。
IoT框架的設計過程主要會產生以下問題:
- 如何處理裝置與雲端、雲端與終端的通訊?
- 每個框架中的硬體和軟體依賴是什麼?
- 框架使用的安全標準是什麼
- 框架中每層提供的安全相關功能是什麼?
- 如何解決在相關方中保護安全和隱私的問題? 用於提供身份驗證,授權,訪問控制,加密和其他安全功能的技術是什麼?
相關工作
IoT領域已經發表了一些綜述。
Al-Fuqaha等人查了物聯網,提到物聯網領域的各種物聯網架構、市場機會、物聯網元素、通訊技術、標準應用協議、主要挑戰和開放研究問題
Al-Fuqaha A, Guizani M, Mohammadi M, Aledhari M, Ayyash M. Internet of things: a survey on enabling technologies, protocols, and applications. IEEE Commun Surveys Tutorials 2015;17(4):2347–76.
Derhamy等人提出了許多商業物聯網框架,並提供了基於利用方法、支援的協議、工業用途、硬體要求和應用程式開發的比較分析。
Derhamy H, Eliasson J, Delsing J, Priller P. A survey of commercial frame- works for the internet of things. In: 2015 IEEE 20th conference on emerging technologies & factory automation (ETFA). IEEE; 2015. p. 1–8.
安全相關的有:
一篇論文從四個方面調查了IoT遇到的安全與隱私問題。
Yang Y, Wu L, Yin G, Li L, Zhao H. A survey on security and privacy issues in internet-of-things. IEEE Internet Things J 2017.
兩篇論文主要描述了IoT三層架構中的安全與隱私問題
Kumar JS, Patel DR. A survey on internet of things: security and privacy is- sues. Int J Comput Appl 2014;90(11). Vikas B. Internet of things (iot): A survey on privacy issues and security 2015.
據調查,本綜述是第一個通過評估商業化物聯網框架安全特性來解決程式設計層面的物聯網安全問題。
IoT 框架
AWS IoT
AWS (Amazon Web Services)IoT是亞馬遜釋出的雲平臺。
架構
如圖是AWS的框架,由四個元件構成:
Device SDK
智慧應用規範沒有平臺或程式語言的限制。
硬體規範AWS IoT提供了一個開源客戶端庫和裝置SDK使框架可用於多個嵌入式作業系統和微控制器平臺。
安全特色使用多層安全架構,如圖所示:
認證:要連線一個新的裝置,裝置需要經過認證。AWS IoT提供了三種驗證身份的方法:X.509證書[34]、AWS IAM使用者組和角色以及AWS Cognito認證。
授權和訪問控制:AWS IoT中的授權過程基於策略。為每個證書或者是認證的使用者授予相應的規則和策略。
安全通訊:所有的流量都是通過SSL/TLS協議加密的。支援許多的加密元件如:ECDHE- ECDSA-AES128-GCM-SHA256、AES128-GCM-SHA256,、AES256- GCM-SHA384等,AWS IoT云為每個合法使用者分配一個私有主目錄。 使用對稱金鑰密碼加密儲存所有私有資料。
ARM mbed IOT
ARM mbed IoT是一個基於ARM微控制器開發物聯網應用程式的平臺。它的優勢在於提供一個通用作業系統以及支援裝置與端的通訊。
架構ARM mbed IoT平臺的關鍵構建鏈是mbed作業系統、mbed客戶端庫、mbed雲、mbed裝置聯結器和基於ARM微控制器的硬體裝置。 mbed OS代表了該平臺的支柱。 因此我們首先討論該OS,該OS架構如圖所示。 該框架是開源的框架。
智慧應用規範IoT是被需使用C++語言進行開發,而對於使用者端沒有要求,只要支援REST API即可。
硬體規範主要是支援基於ARM Cortex-M 32位的處理器,支援RISC指令結構。
安全特色mbed IoT平臺的安全機制主要在以下三個層次實施:
- 裝置本身(作為硬體和mbed OS)。
- 通訊渠道。
- 開發嵌入式和智慧應用程式的生命週期。
安全架構如上圖所示,核心元件包括:
- mbed uVisor:裝置端安全解決方案,能夠將各種軟體與其他軟體以及作業系統隔離開來。
- mbed TLS:主要用於安全通訊以及認證授權。
這些元件提供系統的認證、授權與訪問控制(多道程式設計,程序記憶體互相隔離)、安全通訊。
Azure IoT 元件
該元件是微軟實現的平臺。
架構
架構如下圖所示: 裝置通過一個預定義的雲網關與Azure通訊。
Azure IoT Hub 是一種Web服務,它支援裝置和雲後端服務之間的雙向通訊,同時考慮到所有安全要求。
主要有兩類IoT裝置:IP-capable(支援IP)、PAN。IP-capable主要通過支援的通訊協議(AMQPs、MQTT、HTTP等)以IP與Hub進行交流。
Field 閘道器是PAN(個人區域網)裝置的聚合點。因為這些裝置無法支援安全的HTTP會話,所以他們將資料傳送至閘道器,再通過閘道器去通訊。
IoT solution 後端層表示一系列的Azure雲服務(機器學習等)
智慧應用規範該框架提供了不同的SDK以支援不同的裝置及平臺,支援C、Node.js、Java、Python以及.Net等語言。
硬體規範該框架支援一系列的作業系統以及硬體裝置,滿足一下條件的裝置均可與雲端通訊:
- 支援TLS:用於安全通訊。
- 支援SHA-256:用於認證
- memory footprint
- 實時時鐘:用於建立安全TLS連線等。
安全特色安全架構如圖所示。
包括一下功能:
- 認證。TLS以及使用X.509證書。
- 授權與訪問控制。使用AAD(Azure Active Directory)提供基於策略的授權模型,隔離裝置資料。
- 安全通訊。
Brillo/Weave
由谷歌開發的IoT框架,主要由Brillo及Weave兩個部分組成。前者是一個基於安卓的作業系統,用於開發嵌入式裝置;後者用於通訊。
架構下圖提供了該框架的一個基本架構。
Brillo是一個C/C++編寫的基於安卓的作業系統。
OTA是更新元件,Metrics元件用於收集資訊。
Weave提供通訊,主要提供的服務包括認證、發現以及交流等。使用JSON資料格式。有一套SDK用於開發。
智慧應用規範
支援iOS以及安卓。
硬體規範
Brillo作業系統只與Microprocessor(MPU)裝置相容,要求至少有35M記憶體,只支援ARM、Intel(x86)以及MIPS架構。
安全特色
安全在該框架的優先順序很高。
認證:主要由Weave提供,支援OAuth 2.0。
授權與訪問控制:由核心確保訪問控制,提供沙箱為每個使用者提供獨立的空間。
安全通訊:主要通過支援SSL/TLS協議實現。
Calvin
Calvin是由Ericsson釋出的開源IoT框架。
架構下圖提供了該框架的一個基本架構。
下面的兩部分組成了執行環境的基礎。再往上是一個 platform dependent runtim
層,它提供不同環境下所有的通訊方式,同時也提供了硬體的抽象介面。 platform independent runtime
層則是提供給Actors的介面。
Proxy Actors是Calvin實現的一個特色,使用該屬性,基於Calvin的應用程式可以使用非Calvin應用程式進行擴充套件和執行。 Proxy Actors通過處理通訊和執行將資料轉換為兩個系統都能理解的訊息或令牌的任務,幫助將不同系統整合為一個系統。
智慧應用規範
該框架將一個應用的開發分成了四步:
Describe:編寫actor,描述任務,定義埠。 Connect:使用CalvinScript連線actor Deploy:為actor提供接入點 Manage:監控應用的生命週期
硬體規範
Calvin支援不同的平臺,從感應器到資料中心。支援分散式雲環境。硬體中唯一需要的是支援其中一種相容的通訊協議。
安全特色
認證:三種模式。本地認證;認證伺服器;使用RADIUS伺服器。 認證與訪問控制:只支援本地認證或者是使用認證伺服器。 安全通訊:下圖是通訊模型,使用TLS通訊,支援ECC演算法加密以及提供數字證書。
HomeKit
HomeKit是蘋果支援的IoT框架,支援使用者通過智慧app控制裝置。
架構核心元件包括:配置資料庫、附件協議(Accessory Protocol)、API以及裝置
智慧應用規範主要是為家用設計的平臺框架。它提供了簡單的介面,同時也允許使用者遠端訪問。
硬體規範該框架只與支援HomKit的裝置相容,也支援使用蘋果MFi授權的第三方硬體。
安全特色利用了iOS的很多特性來實現安全。
認證:使用公私鑰簽名演算法Ed25519來實現認證。蜜月儲存在iCloud的Keychain中。
授權與訪問控制:應用要訪問home資料需經過使用者允許,app使用沙箱技術隔離。實現了ASLR技術來防止溢位等漏洞攻擊。
安全通訊:由於集成了iOS系統的安全元件,所以只有可信任的程式碼可以在裝置中執行。
Kura
Kura是一個Eclipse的IoT工程,致力於為MM應用提供一個基於Java/OSGi-based的框架。
架構架構如圖所示,只支援基於linux的裝置。
智慧應用規範Java是主要開發語言,一個應用被當作一個OSGi模組並被容器包裝。提供一個web管理介面允許開發者遠端管理應用。
硬體規範有兩個硬性要求:基於linux系統;Java7以後的版本。
安全特色
認證:使用java執行時環境所提供的安全socket。
授權與訪問控制:有安全管理元件確保檔案不被惡意訪問,提供api來管理安全策略。
安全通訊:支援SSL協議,所有的通訊都使用該協議。
SmartThings
該框架由Samsung開發。
架構架構如圖所示,主要由以下幾部分組成:雲後端、hub/home控制器、客戶端app、IoT裝置。
智慧應用規範app應該是使用一個基於web的IDE實現,程式語言為Groovy。由五部分構成:definition、preferences、predefined callbacks、event handlers以及mappings。
** 硬體規範 ** 支援很多裝置,唯一的要求是需要支援一個相容的協議。
安全特色
認證:使用OAuth/OAuth2協議來認證。
安全通訊:使用128位-aes通訊,也支援SSL/TLS。
總結
總的如下表所示: