最近研究了一些物聯網平臺技術資料,以作選型參考。腦子裏積累大量信息,便想寫出來作一些普及。做爲科普文章,力爭通俗易懂,不確保概念嚴謹性。我會給考據癖者提供相關英文連接,以便深刻研究。html
—— 馮立超 HiwebFrankgit
5. 安 全
github
我想用遙控器把隔壁鄰居家的電視給關了!web
不知是否能夠,但至少,我拿着一個空調遙控器能夠到各個房間開關空調。安全
若是物聯網設備沒有任何安全措施,那麼情況將沒法設想。網絡
如何作到全方位安全?架構
微軟早在2003年就提出了可信賴的計算 Trustworthy Computing 和基於 STRIDE 網絡安全風險模型的縱深防護 Defence in Depth 理念。運維
這些理念並非針對微軟產品及其解決方案的,而是被業界充分承認的通用的理念。ide
咱們將根據這些理念與模型,爲你們展開討論物聯網安全。工具
微軟基於上述網絡安全模型與理念,給出了通用的 物聯網安全構架 和 物聯網安全最佳實踐。具體信息請參見:
- 物聯網安全架構
在上述資料中,微軟對物聯網的物理安全層面進行了細分,將其分爲 設備、現場網關(Field Gateway)、雲網關 及 服務等多個分區Zone。指出各區域都是分離的信任邊界,每一個分區都應有本身的數據安全、驗證、受權機制。
在這些分區之間數據與信息的傳輸都應考慮 STRIDE 各類風險,即:
- Spoofing 欺騙
- Tampering 篡改
- Repudiation 抵賴
- Information disclosure 信息泄露
- Denial of service 拒絕服務
- Elevation of privilege 特權提高
微軟給出的物聯網安全構架示意圖以下所示:圖中紅色虛線框爲不一樣的分區Zone,紅色虛弧線則爲信任邊界。
下圖是用微軟威脅建模工具所創建的數據流原理模型:
關於上述模型的詳細信息,原文在 Internet of Things security architecture,中文能夠參見 物聯網安全體系結構,這篇文檔好像是人翻譯的:),中文可讀。(謝謝Sunny Deng和v-cchen)
微軟 Azure IoT Suite 物聯網安全
具體到微軟本身的 Azure IoT Suite 物聯網部署構架,則主要包括以下三個安全領域:
- 設備安全:在實際部署物聯網設備時,保護設備安全
- 鏈接安全:確保物聯網設備和 Azure IoT Hub 之間數據傳輸的機密性和防篡改性
- 雲安全:確保數據在雲中傳輸、移動和存儲時的安全
下圖給出微軟 Azure IoT 物聯網安全相關概念:
- 設備預配與驗證安全
微軟 Azure IoT Suite 使用兩種方法確保設備安全:
- 爲每一個設備提供惟一標識密鑰(安全令牌),設備可以使用該密鑰與 IoT Hub 通訊。
- 使用設備內置 X.509 證書和私鑰做爲一種向 IoT Hub 驗證設備的方式。 此身份驗證方式可確保任什麼時候候都沒法在設備外部獲知設備上的私鑰,從而提供更高級別的安全性。
- IoT Hub 安全令牌
IoT Hub 使用安全令牌對設備和服務進行身份驗證,而不在網絡上發送密鑰。,安全令牌的有效期和範圍有限。 Azure IoT SDK 無需任何特殊配置便可自動生成令牌。 但在某些狀況下,須要用戶生成並直接使用安全令牌。 包括 MQTT 、AMQP 或 HTTP 應用層協議的直接使用,以及令牌服務模式的實現。
- 鏈接安全
使用傳輸層安全性 (TLS) 標準來保護 IoT 設備和 IoT 中心之間的 Internet 鏈接安全。 Azure IoT 支持 TLS 1.2、TLS 1.1 和 TLS 1.0
- 雲安全
Azure IoT Hub 爲每一個安全密鑰定義訪問控制策略。 它使用設備註冊表讀寫、服務鏈接、設備鏈接等權限,向每一個 IoT Hub 的終結點授予訪問權限。
另外,在雲端的各類服務中,如 Azure DocumentDB、Azure Stream Analytics、Azure App Service、Logic App、Azure Blob Storage等服務,都應設置響應的安全權限配置。
亞馬遜 AWS 物聯網安全
亞馬遜一樣有一套完善的物聯網安全方案。
所鏈接的每臺設備必須擁有憑證才能訪問消息代理或物聯網設備影子服務。對於往返 AWS 物聯網的全部流量,都必須經過傳輸層安全性 (TLS) 進行加密。必須保證設備憑證的安全,以便安全地將數據發送到消息代理。數據到達消息代理後在 AWS IoT 和其餘設備或 AWS 服務之間移動時,AWS 雲安全機制可爲數據提供保護。
下圖是亞馬遜物聯網安全與標識示意圖:
- 咱們須要管理設備上的設備憑證(X.509 憑證、AWS 憑證)及 AWS IoT 中的策略。將惟一身份分配給每臺設備並管理設備或設備組的權限。
- 設備將按照 AWS IoT 鏈接模式使用所選身份(X.509 證書、IAM 用戶和組,或者 Amazon Cognito 身份)來創建安全鏈接。
- AWS IoT 消息代理 針對帳戶內的全部操做執行身份驗證和受權。消息代理負責對設備執行身份驗證、安全地接收設備數據,以及支持經過策略授予設備的訪問權限。
- AWS IoT 規則引擎 根據所定義的規則將設備數據轉發到其餘設備和其餘 AWS 服務。利用 AWS 訪問管理系統將數據安全地傳輸到最終目標。
AWS IoT 消息代理和設備影子服務利用傳輸層安全 TLS 對全部通訊進行加密。TLS 用於確保受 AWS IoT 支持的應用程序協議(MQTT、HTTP)的保密性。
對於 MQTT,TLS 可將設備與代理之間的鏈接加密。AWS IoT 使用 TLS 客戶端身份驗證來識別設備。對於 HTTP,TLS 可將設備與代理之間的鏈接加密。身份驗證工做委派給 AWS Signature Ver. 4 執行。
IBM Watson IoT 物聯網安全
一樣,IBM Watson IoT 物聯網解決方案也包含完備的安全方案。
在 IBM Watson IoT Platform Security 一文中, 首先強調了安全性的合規性、驗證、受權、加密四各方面,並指出 Watson IoT Platform 以 Bluemix 爲基礎,而 Bluemix 基礎構架的安全性與可靠性是 Watson IoT Platform 的基石。
而後,IBM 像個學生同樣老老實實認認真真地道出他的安全方案。
首先,掏出證書。指出 Watson IoT Platform 得到了 ISO 27001:2013 認證。
而後,在 Watson IoT Platform 構架圖的基礎上,分別講述了以下幾個方面:
- 如何實現物聯網信息管理安全
- 如何實現設備與應用程序憑據安全
- 如何實現設備鏈接安全
- 如何防止設備數據在設備之間泄露
- 如何防止數據在組織之間泄露
上面每一方面,都有較詳細的描述和示意圖,此不一一列出,僅如下圖設備與應用程序憑據安全爲例供你們參考:
另外,IBM 給出了安全風險管理建議,包括客戶端證書、組織規劃與安全策略、鏈接策略、黑白名單策略等。
總之,物聯網安全是一個重要的、同時也是複雜的問題。不只僅包括物聯網特定的設備與構架,還牽涉到網絡安全及軟件開發安全的各個方面。須要在構架設計、開發、部署、運維、應用的各個方面確保安全與合規。