Google Cloud 之類的企業級云服務為物聯網開發人員提供了各種功能服務,從可擴展虛擬機服務到交鑰匙型人工智能 (AI) 應用,不一而足。而這些服務的基本要求則是使用特定的安全方法來建立并維護物聯網設備與云端之間的安全連接。但是對開發人員而言,實施適當的安全機制可能會導致延遲,從而增加本就交期緊迫的設計項目的復雜性。
Microchip Technology 的 PIC-IoT WG 開發板采用專用安全 IC 構建,為 Google Cloud 連接提供交鑰匙型解決方案。該套件使用專用安全 IC,可提供一個綜合性平臺,用于加速開發能夠安全連接到 Google Cloud 服務的物聯網設計。本文介紹了安全連接的關鍵要求,并闡示了開發人員如何在典型的物聯網設計中使用 PIC-IoT WG 來滿足這些要求。
安全的復雜性
確保物聯網設備與遠程主機服務器之間安全連接的能力,是全面保護物聯網應用和相關網絡企業資源的基礎。對于這些服務器和其他企業級系統可以提供的功能和性能,以資源有限的微控制器和最小內存構建的物聯網設備則完全無法提供。若是希冀簡單的物聯網設備能傳送傳感器數據或實時操控致動器,而出于物聯網設備本身的性質局限,即使只是實現最基本的安全算法,可能也無法達到處理要求。
安全方法所依賴的基本原則,即突破安全屏障所付出的代價應比屏障保護的資產價值更高昂。對于基于算法的安全方法,這意味著解密加密信息或破壞認證協議在計算方面應該是令人望而卻步的。至少,破壞基于算法的安全性應當需要一定水平的計算資源和所需時間,其代價超過受保護數據或通信通道的價值或時效。因此,加密算法試圖將有價值的數據掩藏在一系列復雜的計算密集型處理步驟之下,且必須使用密鑰才能解開。例如,廣泛使用的高級加密標準 (AES) 算法對數據進行多輪循環處理,各輪循環均包含數個步驟,即首先生成密鑰,然后再進行字節替換、移位和矩陣計算(圖 1)。
加密算法專門采用一系列復雜操作的示意圖
圖 1:為了使解密難以實現,甚至無法實現,加密算法專門采用一系列復雜操作,比如 AES 算法的這個步驟,將數據與私鑰生成的字節相結合。(圖片:Wikimedia Commons)
對于諸如 AES 一類的對稱加密算法,加密信息接收者需使用相同的密鑰才能解密數據。相反,非對稱算法使用一對密鑰,一個私鑰和一個公鑰,消除了因使用共享密鑰可能造成的風險,可代價卻是使計算變得更為復雜。采用這種算法時,發送者和接收者在交換公鑰的同時,對各自持有的私鑰保密。因此,其中一方可以使用另一方的公鑰來加密信息,但信息只能使用另一方的私鑰進行解密。
為了進一步提供保護,高級算法會建立在非對稱公鑰加密算法之上,僅在特定的信息交換會話期間,才允許安全交換用于加密數據的短期共享私鑰。考慮到這些密鑰交換的關鍵性,如橢圓曲線 Diffie-Hellman 算法 (ECDH) 等更高級的算法可將密鑰深深掩藏在復雜的橢圓曲線計算之下。諸如傳輸層安全 (TLS) 之類的認證協議通過使用數字證書,將 Diffie-Hellman 密鑰交換之類的機制與正式驗證方法相結合;而數字證書可在公鑰中嵌入來自認證機構(CA,可證明證書的真實性)的可驗證數字簽名。
正如簡要說明所述,安全方法依賴于各層的加密算法和協議,而最終仍取決于私鑰。雖然這些層次能經受住黑客的持續攻擊,但如若私鑰被發現了,整個安全結構頃刻就會分崩離析。
因此,基于硬件的安全密鑰存儲是物聯網設備安全性的基本要求。此外,這些算法和協議的計算復雜性決定了對專用加密引擎的需求,這些引擎必須能夠為資源有限的微控制器分擔復雜的計算。
基于硬件的安全
專用安全元件硬件設備,如 Microchip Technology 的 ATECC608A CryptoAuthentication IC,具備保護密鑰和提高加密算法執行速度所需的特性。除了這些特性外,ATECC608A 還提供片上 EEPROM,可安全存儲多達 16 個密鑰、證書和其他數據,以及其他必要的功能,包括符合 NIST SP 800-90A/B/C 標準的隨機數發生器。
ATECC608A 不僅是一種安全存儲設備,還可以提高多種算法的執行速度,包括用于對稱加密的 AES 和非對稱加密的 ECDH。此外,該器件還支持更高級別的服務,包括安全引導(請參閱“使用加密芯片為物聯網器件設計增加安全引導”)。
除了通過分擔這些算法的執行任務所獲得的直接性能優勢之外,ATECC608A 還具備加密引擎、安全存儲和其他功能,將安全性從根本上提升到另一個層次:密鑰與不受信任的實體保持隔離。這些實體包括不特別注重安全性的微控制器、微控制器上運行的軟件以及使用軟件的個人。設備還能生成私鑰,這為制造或分銷設施的部署提供更進一步的安全性。
與傳統基于軟件的安全方法相比,結果是減少了威脅向量的數量。這進而支持縱深防御原則,即有效安全策略的核心。
ATECC608A 的這種功能全面集成方式簡化了硬件接口的要求。該器件可作為另一個 I2C 外設運行,甚至可以與其他器件共享微控制器的 I2C 總線,如 Microchip Technology 的 MCP9808 等數字傳感器(圖 2)。
Microchip Technology 的 ATECC608A CryptoAuthentication IC 示意圖
圖 2:由于 Microchip Technology 的 ATECC608A CryptoAuthentication IC(左)完全在片上完成安全處理,因此可以提供簡單的 I2C 硬件接口,與其他 I2C 器件一起使用,如 Microchip Technology 的 MCP9808 I2C 數字溫度傳感器(右)。(圖片:Microchip Technology)
然而,就軟件層面而言,ATECC608A 豐富的功能會使接口復雜化。Microchip Technology 的 CryptoAuthLib 庫將接口抽象為一組直觀函數調用,可在 CryptoAuthLib 應用程序編程接口 (API) 中使用。該庫與 Microchip Technology 的 MPLAB X 集成開發環境 (IDE) 中的相關驅動程序和中間件捆綁在一起。雖然 CryptoAuthLib API 和驅動程序可為采用 ATECC608A 的定制設計提供基礎元素,但在實現安全連接到 Google Cloud 所需的完整安全鏈方面,開發人員仍面臨著其他挑戰。而 Microchip Technology 的 PIC-IoT WG 開發板也能消除這一障礙。
開發端到端的物聯網應用
PIC-IoT 板基于 ATECC608A 和 Microchip Technology 的低成本 PIC24FJ128GA705 16 位微控制器,這款無線物聯網設計包含了 Microchip Technology 的 ATWINC1510 Wi-Fi 模塊、Vishay Semiconductor 的 TEMT6000X01 環境光傳感器和 MCP9808 I2C 溫度傳感器。此外,開發人員通過添加數百種 MikroElektronika 的 Click 板提供的傳感器和致動器,可以輕松擴展硬件基礎平臺。對于軟件開發,Microchip Technology 提供了 MPLAB X IDE 及相關的 MPLAB 代碼配置器 (MCC) 快速原型開發工具。
該電路板和相關軟件可以為基本端到端物聯網應用評估提供交鑰匙型平臺,而這類應用的運行建立在物聯網傳感器設備與 Google Cloud 服務的安全連接基礎之上。該套件以獨特的方法實現了相互身份驗證,即使對于資源受限的物聯網設備也能進行驗證。使用該方法,物聯網設備可以使用輕型 TLS 服務來驗證 Google 端的連接,并用 JavaScript Object Notation (JSON) Web Token (JWT),向 Google 服務器證明自身身份(請參閱“將 IoT 設備安全連接到云端的更簡單的解決方案”)。除了器件驅動程序、板級支持包和中間件服務外,Microchip Technology 還通過 MPLAB 開發套件,并作為適用于 PIC-IoT 板的完整樣例物聯網應用一部分來演示該方法。
通過樣例應用程序,開發人員不僅可以獲得使用云應用的經驗,還可以獲得主要云服務提供商提供的物聯網專用服務,將物聯網設備連接到云端的經驗。例如,物聯網設備可通過 Google Cloud IoT Core 訪問 Google Cloud 資源,該 IoT Core 提供了設備連接、相關元數據管理等所需的一系列服務(圖 3)。
Google Cloud 提供專用服務 Google Cloud IoT Core 的示意圖
圖 3:與其他企業云提供商一樣,Google Cloud 也提供專用服務 Google Cloud IoT Core,旨在滿足將物聯網設備與云資源結合相關的獨特要求。
責任編輯:Ct
評論
查看更多