最近研究了一些物聯網平臺技術資料,以做選型參考。腦子裏積累大量信息,便想寫出來做一些普及。作爲科普文章,力爭通俗易懂,不確保概念嚴謹性。我會給考據癖者提供相關英文鏈接,以便深入研究。
—— 馮立超 HiwebFrank
5. 安 全
我想用遙控器把隔壁鄰居家的電視給關了!
不知是否可以,但至少,我拿着一個空調遙控器可以到各個房間開關空調。
如果物聯網設備沒有任何安全措施,那麼狀況將無法設想。
如何做到全方位安全?
微軟早在2003年就提出了可信賴的計算 Trustworthy Computing 和基於 STRIDE 網絡安全風險模型的縱深防禦 Defence in Depth 理念。
這些理念並不是針對微軟產品及其解決方案的,而是被業界充分認可的通用的理念。
我們將根據這些理念與模型,爲大家展開討論物聯網安全。
微軟基於上述網絡安全模型與理念,給出了通用的 物聯網安全構架 和 物聯網安全最佳實踐。具體信息請參見:
- 物聯網安全架構
在上述資料中,微軟對物聯網的物理安全層面進行了細分,將其分爲 設備、現場網關(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 給出了安全風險管理建議,包括客戶端證書、組織規劃與安全策略、連接策略、黑白名單策略等。
總之,物聯網安全是一個重要的、同時也是複雜的問題。不僅僅包括物聯網特定的設備與構架,還牽涉到網絡安全及軟件開發安全的各個方面。需要在構架設計、開發、部署、運維、應用的各個方面確保安全與合規。