摘要: AliOS Things自組織網絡(uMesh)結合阿里雲Link ID²設備身份認證平臺爲物聯網嵌入式設備提供了自主安全認證受權接入無線mesh網絡的解決方案,而且兼容IEEE802.1X端口控制訪問協議和EAP(RFC3748)擴展認證協議,提供了一種靈活可擴展的安全認證機制框架。html
點此查看原文算法
AliOS Things 是 AliOS 家族旗下的、面向 IoT 領域的、輕量級物聯網嵌入式操做系統。 AliOS Things 致力於搭建雲端一體化 IoT 基礎設施,具有極致性能、極簡開發、雲端一體、豐富組件、安全防禦等關鍵能力,並支持終端設備鏈接到阿里雲Link,可普遍應用在智能家居、智慧城市、新出行等領域。安全
近年隨着愈來愈多被曝光的物聯網安全漏洞問題以及遭受到的網絡攻擊,安全將會成爲物聯網生態體系要面對的一個尖銳問題,尤爲是嵌入式安全由於設備的數量巨大使得常規的更新和維護操做面臨挑戰,而基於雲的操做使得邊界安全不太有效。服務器
針對上述物聯網安全的痛點,做爲AliOS Things核心組件之一自組織網絡(uMesh)不只提供了AliOS Things原生自組織網絡能力,本地互聯互通的能力,也將更多的注意力放到了如何保障嵌入式設備可以自主安全接入自組織網絡,並保證和雲端數據通訊的完整性和機密性。uMesh具備自組織、自修復、多跳、兼容標準端口網絡訪問控制和擴展認證協議,可擴展多種標準安全認證方式等特性。適用於須要大規模部署且對設備節點有安全性需求的場景,如智能家居,智能照明,及商業樓宇等場景。主要功能特性包括:網絡
無縫支持IPv4 和IPv6
支持WiFi、BLE和802.15.4等通訊媒介
支持不一樣通訊媒介間的異構組網
支持樹狀拓撲和網狀拓撲
支持低功耗特性
支持阿里雲設備身份認證平臺ID²對接入設備進行安全認證受權
支持AES-128共享對稱密鑰在全網範圍內點對點的數據加密解密
兼容標準IEEE802.1x端口控制協議和EAP擴展認證協議(RFC3748)
阿里雲Link ID²設備身份認證平臺
ID²(Internet Device ID),是一種物聯網設備的可信身份標識,具有不可篡改、不可僞造、全球惟一的安全屬性,是實現萬物互聯、服務流轉的關鍵基礎設施。架構
ID²設備身份認證平臺由互聯網設備,ID²分發中心,雲端ID²認證中心和部署在本地或者雲端的互聯網服務組成。芯片廠商產線經過調用提供的ID²產線燒錄SDK(可集成到廠商的燒錄工具)完成向ID²分發中心在線的ID²申請,獲取和燒錄。燒錄完成後,可經過調用燒錄回執相關的API來確認是否已經成功燒錄到芯片。具體產線燒錄ID²過程可參考:ID²申請和產線燒錄。app
燒錄ID²的同時也會將相應的私鑰(private key)燒錄到芯片內,公鑰(public key)會上傳給雲端ID²認證中心,該私鑰可用於解密由雲端ID²認證中心下發的加密數據,這種模式可用於實現應用層協議的通道認證或者祕鑰協商。ID²的一個重要應用場景就是鏈接協議的安全性加強,ID²和各類鏈接協議(如MQTT,CoAP)結合,爲鏈接提供設備認證和密鑰協商等基礎能力,爲整個IoT管理系統提供基礎的安全保障。後面也會介紹利用該安全特性將ID²設備身份認證平臺與AliOS Things自組織網絡節點安全入網相結合。ID²認證平臺系統架構以下:框架
ID²設備身份認證平臺提供了兩種認證模式:基於挑戰應答模式(challenge-response Based)和基於時間戳(Timestamp-Based),可防止重放(replay)攻擊。以挑戰應答認證模式爲例,sp server(業務服務器)做爲消息代理(proxy),轉發設備節點和雲端ID²認證中心之間的交互消息(默認設備節點已經預置燒錄ID²)。具體認證消息交互流程圖以下:dom
設備端發送認證請求給sp server,向雲端ID²認證中心申請挑戰隨機數(challenge)
sp server調用POP SDK Java API:getServerRandom()從雲端ID²認證中心獲取到挑戰隨機數並轉發給終端設備節點
設備節點獲取到挑戰隨機數後,根據預置根ID²,challenge,extra data(可選)做爲計算auth code的參數,調用端上提供的TFS API:tfs_id2_get_challenge_auth_code()計算auth code
設備節點將計算出的auth code發送給sp server, 將幫助轉發給雲端ID²認證中心
sp server調用POP SDK Java API:VerifyRequest() 與雲端ID²認證中心作認證
sp server最後將根據雲端ID²認證中心返回的認證結果作相應的業務處理
此外,對於容許接入該sp server服務的設備,ID²可以確保設備和server之間的雙向認證。即,不只sp server須要確認該擁有ID²身份信息的設備是否容許接入,同時接入設備也須要確認該sp server是否具備提供認證服務的合法性。經過雙向認證的方式從而能夠過濾掉那些雖擁有合法的ID²身份信息,但不屬於sp server所提供服務的範疇內的一些接入設備。不一樣的廠商可自行定義設備具體的接入sp server方式,這一部分暫時不在本文討論範圍以內。工具
具體認證過程當中sp server所用到的POP SDK API用法可參考相應的sample code:獲取隨機數; 認證請求; 認證請求並加密。終端節點上調用的TFS API可參考相應的API說明,tfs靜態庫的路徑:AliOS-Things/security/tfs/lib.
AliOS Things自組織網絡的安全認證架構
傳統的AAA(Authentication、Authorization、Accounting)服務在部署和配置上都須要額外的專業IT人員操做,而對於像物聯網這樣擁有大量設備節點的場景,手動的爲每個設備節點生成證書顯然有些不切實際。此外,x.509證書不只須要出廠預置佔用較多的flash資源,而且在ASN.1解析和認證過程當中的消息傳遞也會消耗大量的MCU資源(根據不一樣的簽名算法,密鑰協商算法,加密算法而生成的證書的大小各不相同,大一點的證書可能會超過1KBytes),所以對於資源受限的嵌入式設備節點,基於證書的認證方式可能不是一個最優選擇。
ID²設備身份認證平臺是一個更爲輕量級的基於身份信息的雙向認證服務平臺,尤爲適合硬件資源不足的嵌入式設備的認證方式。認證服務中心雲端化也省去大量IT人員的時間來重複相同的部署和配置過程,客戶所須要作的僅僅是調用相應的SDK對接雲端ID²認證中心。基於這個優點,設計自組織網絡(uMesh)的設備節點端安全認證過程時也依託於上述ID²設備身份認證平臺的挑戰應答認證模式。目前新加入的設備節點和已經入網節點之間的認證通訊協議兼容標準的IEEE802.1x和EAP擴展認證協議,利用IEEE802.11 WiFi協議標準進行數據傳輸。EAP擴展協議也爲後續擴展和兼容多種標準認證方式(如MD5, OTP, TLS等)提供了基本協議框架。
自組織網絡uMesh和ID²設備身份認證平臺結合的安全認證架構框圖以下:
樹莓派3做爲直接和AP相關聯的節點充當網絡的Leader角色來建立一個新的自組織網絡並負責分配短地址(16 bits)給後續加入網絡的設備節點,該地址用於在uMesh網絡內通訊,同時在樹莓派3上利用iptables創建NAT來相互轉發tun0接口和eth0接口之間的ip數據包(NAT更改ip數據包頭裏的源地址),這樣就可讓uMesh網絡內的節點成功和外網的sp server通訊,從而和雲端ID²認證中心進行身份認證。
uMesh網絡節點和雲端ID²認證中心的安全認證消息交互流程以下:
EAP擴展認證協議框架不只定義了標準的認證類型(如MD5, OTP, GTC, TLS等),還定義了擴展類型(Expanded Types, type值爲254)用來兼容不一樣的vendor現有的自定義認證方式。EAP-ID²即爲基於ID²設備身份認證所設計的一種認證協議用於uMesh自組織網絡節點的安全認證方式之一。詳細的擴展類型包頭格式以下:
總結 兼容IEEE802.1x端口訪問控制協議和EAP擴展認證協議爲自組織網絡(uMesh)的安全認證體系提供了更爲豐富,更加靈活可擴展的協議認證框架,能夠知足不一樣客戶現有自定義或者標準的認證流程。目前經過搭建實際測試環境驗證了AliOS Things自組織網絡(uMesh)結合ID²設備身份認證平臺提供對新加入節點作身份信息的認證方案,也爲後續大規模的商業場景部署提供了有力支撐。