Azure Sphere 是什麼?
Azure Sphere 是個安全的高階應用程式平台,它有適用於網際網路連線裝置的內建通訊及安全性功能。 具有安全的連線交叉微控制器單元 (MCU)、自訂的高階 Linux 作業系統,以及可持續更新安全防護的雲端安全性服務。
Azure Sphere MCU 會將即時處理功能與執行高階作業系統的能力整合在一起。 Azure Sphere MCU 及其作業系統和應用程式平台可供建立安全的網際網路連線裝置,這些裝置可從遠端更新、控制、監視及維護。 包含 Azure Sphere MCU 或取代現有 MCU 的連線裝置,可提供增強的安全性、生產力和商機。 例如:
- 受保護的應用程式環境、已驗證的連線,以及選擇使用外圍設備,可降低因詐騙、惡意軟體或阻斷服務攻擊等所造成的安全性風險。
- 軟體更新可以從雲端自動部署到任何連線的裝置,以修正問題、提供新功能或反擊新興的攻擊方法,進而提升支援人員的生產力。
- 產品使用量數據可透過安全的連線向雲端回報,以協助診斷問題和設計新產品,從而增加產品服務的機會、積極的客戶互動,以及未來的開發。
Azure Sphere 安全性服務是 Azure Sphere 不可或缺的層面。 使用此服務,Azure Sphere MCU 安全地連線到雲端和 Web。 此服務可確保裝置只會以經授權的正版核准軟體開機。 此外,它也提供安全的通道,Microsoft可以自動下載並安裝操作系統更新,以在欄位中部署的裝置,以減輕安全性問題。 製造商和使用者都不需要介入,因此關閉了常見的安全性漏洞。
注意
Azure Sphere 將 PAPI 型介面稱為 Azure Sphere(舊版),而整合式 Azure Resource Manager 介面則稱為 Azure Sphere(整合式)。
Azure Sphere 案例
若要瞭解 Azure Sphere 在真實世界中的運作方式,請考慮此案例。
Contoso, Ltd., 是一家白色產品製造商,將 Azure Sphere MCU 內嵌至其洗碗機。 DW100 洗碗機結合 MCU 與數個感測器,以及可在 Azure Sphere MCU 上執行的上線高階應用程式。 應用程式會與 Azure Sphere 安全性服務和 Contoso 的雲端服務通訊。 下圖說明此案例:
Contoso 網路連線的洗碗機
從左上方開始,順時針移動:
Microsoft 會透過 Azure Sphere 安全性服務發佈 Azure Sphere OS 的更新。
Contoso 產品工程會透過 Azure Sphere 安全性服務發行其 DW100 應用程式的更新。
Azure Sphere 安全性服務會將更新的OS和 Contoso DW100 應用程式軟體安全地部署到使用者位置的洗碗機。
Contoso 洗碗機支援會與 Azure Sphere 安全性服務通訊,以判斷哪個版本的 Azure Sphere 軟體和 DW100 應用程式軟體應該在每個使用者裝置上執行,並收集已向服務報告的任何錯誤報告數據。 Contoso 洗碗機支援也會與 Contoso 雲端服務通訊以取得其他資訊。
Contoso 雲端服務支援應用程式進行疑難解答、數據分析和客戶互動。 Contoso 的雲端服務可能由 azure Microsoft、另一個廠商的雲端服務或 Contoso 自己的雲端所裝載。
使用者位置的 Contoso DW100 模型會透過連線至 Azure Sphere 安全性服務,下載更新的 OS 和應用程式軟體。 他們也可以與 Contoso 的雲端服務應用程式通訊,以報告其他數據。
例如,洗碗機上的感測器可能會監視水溫、乾燥溫度和沖洗劑等級,並將此數據上傳至 Contoso 的雲端服務,其中雲端服務應用程式會分析它是否有潛在問題。 如果乾燥的溫度似乎異常熱或非經常性冷,這可能表示故障部分,Contoso 會從遠端執行診斷,並通知客戶需要修復。 如果洗碗機處於保固之下,雲端服務應用程式也可能確保客戶的本地維修店有更換部分,進而減少維修訪問和庫存需求。 同樣地,如果沖洗劑很低,洗碗機可能會向客戶直接從製造商購買更多的沖洗劑。
所有通訊都會透過安全且已驗證的連線進行。 Contoso 支援和工程人員可以使用 Azure Sphere 安全性服務、Microsoft Azure 功能或 Contoso 特定的雲端服務應用程式,將數據可視化。 Contoso 也可能提供面向客戶的 Web 和行動應用程式,讓洗碗機擁有者可以要求服務、監視洗碗機資源使用量,或與公司互動。
使用 Azure Sphere 部署工具,Contoso 會將每個應用程式軟體更新的目標設為適當的洗碗機模型,而 Azure Sphere 安全性服務會將軟體更新發佈至正確的裝置。 只有簽署和已驗證的軟體更新可以安裝在洗碗機上。
Azure Sphere 和高度安全裝置的七個屬性
Azure Sphere 平臺的主要目標是以低成本提供高價值的安全性,讓價格敏感的微控制器供電裝置可以安全地連線到因特網。 隨著網路連接的玩具、電器和其他消費者裝置變得司空見慣,安全至關重要。 裝置硬體本身不僅必須受到保護,還必須保護其軟體和雲端連線。 作業環境中任何位置的安全性失誤都會威脅到整個產品,而且有可能是任何或附近的任何人。
Azure Sphere 小組根據Microsoft數十年的因特網安全性經驗,識別出 高度安全裝置的七個屬性。 Azure Sphere 平台是針對下列七個屬性所設計:
以硬體為基礎的信任根目錄。 以硬體為基礎的信任根可確保裝置及其身分識別無法分開,從而防止裝置偽造或詐騙。 每個 Azure Sphere MCU 都會由無法預測的密碼編譯密鑰來識別,此金鑰是由Microsoft設計的 Pluton 安全性子系統硬體所產生及保護。 這可確保從處理站到終端使用者的防竄改、安全硬體根信任。
深層防禦。 深度防禦提供多層的安全性,因此可針對每個威脅提供多個防護功能。 Azure Sphere 平臺中的每個軟體層都會驗證其上方的層級是否受到保護。
小型信任運算基礎。 大部分裝置的軟體都保留在受信任的運算基礎之外,因此減少了攻擊的介面區。 只有受保護的安全性監視器、Pluton 運行時間和 Pluton 子系統,所有Microsoft都可在信任的運算基底上執行。
動態區間。 動態區間會限制任何單一錯誤的到達範圍。 Azure Sphere MCU 包含矽計數器措施,包括硬體防火牆,以防止某個元件的安全性缺口傳播至其他元件。 受限制的「沙盒化」運行時間環境可防止應用程式損毀受保護的程式代碼或數據。
無密碼驗證。 使用由不可預知的密碼編譯密鑰驗證的已簽署憑證,可提供比密碼更強的驗證。 Azure Sphere 平臺需要簽署每個軟體元素。 裝置到雲端和雲端到裝置通訊需要進一步的驗證,這是透過憑證達成的。
錯誤報告。 裝置軟體或硬體中的錯誤在新興的安全性攻擊中很常見;導致裝置失敗的錯誤構成阻斷服務攻擊。 裝置到雲端通訊提供潛在錯誤的早期警告。 Azure Sphere 裝置可以自動向雲端式分析系統報告操作數據和錯誤,而且可以從遠端執行更新和服務。
可更新的安全性。 裝置軟體會自動 更新 ,以更正已知的弱點或安全性缺口,不需要產品製造商或終端使用者介入。 Azure Sphere 安全性服務會自動更新 Azure Sphere OS 和您的應用程式。
Azure Sphere 架構
Azure Sphere 硬體、軟體和安全性服務共同運作,可啟用裝置維護、控制和安全性的獨特整合方法。
硬體架構可為連線裝置提供基本安全的運算基礎,讓您專注於您的產品。
軟體架構,在Microsoft撰寫的安全性監視器上執行安全的自定義OS核心,同樣地可讓您將軟體工作集中在增加值的IoT和裝置特定功能上。
Azure Sphere 安全性服務支援透過安全的雲端到裝置和裝置到雲端通道進行驗證、軟體更新和錯誤報告。 結果是安全的通訊基礎結構,其可確保產品會執行最新的 Azure Sphere OS。 如需雲端架構的架構圖表和範例,請參閱 流覽 Azure 架構。
硬體架構
Azure Sphere 交叉 MCU 是由單一 die 上的多個核心所組成,如下圖所示。
Azure Sphere MCU 硬體架構
每個核心及其相關聯的子系統都位於不同的信任網域中。 信任的根位於 Pluton 安全性子系統中。 架構的每個層級都假設其上方的圖層可能會遭到入侵。 在每個層級內,資源隔離和動態區間可提供額外的安全性。
Microsoft普盧頓安全性子系統
Pluton 安全性子系統是 Azure Sphere 的硬體型(晶片中)安全信任根。 它包含安全性處理器核心、密碼編譯引擎、硬體隨機數產生器、公用/私鑰產生、非對稱式和對稱加密、支援橢圓曲線數位簽名演算法 (ECDSA) 驗證的安全開機,以及矽中的測量開機,以支援雲端服務的遠程證明,以及各種竄改計數器措施,包括 entropy 偵測單位。
作為安全開機程式的一部分,Pluton 子系統會開機各種軟體元件。 它也提供運行時間服務、處理裝置其他元件的要求,以及管理裝置其他元件的重要元件。
高階應用核心
高階應用程式核心具有具有完整記憶體管理單元 (MMU) 的 ARM Cortex-A 子系統。 它會使用信任區域功能來啟用程式的硬體型分割,並負責執行作業系統、高階應用程式和服務。 它支援兩種作業環境:一般世界(NW),在使用者模式和監督模式中執行程序代碼,以及只執行Microsoft提供之安全性監視器的安全世界(SW)。 您的高階應用程式會在 NW 使用者模式中執行。
即時核心
即時核心具有 ARM Cortex-M I/O 子系統,可以以裸機程式代碼或即時作業系統 (RTOS) 的形式執行即時可用的應用程式。 這類應用程式可以對應周邊,並與高階應用程式通訊,但無法直接存取因特網。
線上能力與通訊
第一個 Azure Sphere MCU 提供 802.11 b/g/n Wi-Fi 無線電,可在 2.4GHz 和 5GHz 運作。 高階應用程式可以設定、使用及查詢無線通信子系統,但無法直接進行程序設計。 除了或不使用Wi-Fi之外,適當裝備的Azure Sphere裝置也可以在乙太網路上通訊。
多任務 I/O
Azure Sphere 平臺支援各種不同的 I/O 功能,讓您可以設定內嵌裝置以符合您的市場和產品需求。 I/O 周邊可以對應至高階應用程式核心或即時核心。
Microsoft防火牆
硬體防火牆是晶元對策,可提供「沙箱」保護,以確保I/O周邊只能存取其對應的核心。 防火牆會強制進行區間化,從而防止在高階應用程式核心中本地化的安全性威脅,而不會影響即時核心對其周邊的存取。
整合式 RAM 和快閃
Azure Sphere MCU 至少包含 4 MB 的整合式 RAM 和 16 MB 的整合式快快閃記憶體。
軟體架構和 OS
高階應用程式平台會執行 Azure Sphere OS 以及裝置特定的高階應用程式,以便與因特網通訊,以及即時核心上執行的即時支援應用程式。 下圖顯示此平台的元素。
Microsoft提供的專案會以灰色顯示。
高階應用程式平臺
Microsoft提供和維護裝置特定應用程式以外的所有軟體。 在裝置上執行的所有軟體,包括高階應用程式,都會由Microsoft證書頒發機構單位 (CA) 簽署。 應用程式更新會透過受信任的Microsoft管線傳遞,且安裝之前會先驗證每個更新與 Azure Sphere 裝置硬體的相容性。
應用程式運行時間
Microsoft提供的應用程式運行時間是以 POSIX 標準的子集為基礎。 它包含以 NW 使用者模式執行的連結庫和運行時間服務。 這會 環境支援 您建立的高階應用程式。
應用程式連結庫支持高層級應用程式所需的網路、記憶體和通訊功能,但不支援直接一般檔案 I/O 或殼層存取,以及其他條件約束。 這些限制可確保平臺保持安全,且Microsoft可以提供安全性和維護更新。 此外,受限制的連結庫提供長期穩定的 API 介面,讓系統軟體可以更新,以增強安全性,同時保留應用程式的二進位相容性。
OS 服務
OS 服務裝載高階應用程式容器,並負責與 Azure Sphere 安全性服務通訊。 他們會管理所有輸出流量的網路驗證和網路防火牆。在開發期間,OS 服務也會與連線的計算機和正在偵錯的應用程式通訊。
自訂Linux核心
以Linux為基礎的自定義核心會在監督模式中執行,以及開機載入器。 核心會仔細調整,以取得 Azure Sphere MCU 的快閃和 RAM 使用量。 它提供一個介面,可在個別的虛擬位址空間中預先執行使用者空間進程。 驅動程式模型會將 MCU 周邊公開給 OS 服務和應用程式。 Azure Sphere 驅動程式包括Wi-Fi(包括 TCP/IP 網路堆疊)、UART、SPI、I2C 和 GPIO 等。
安全性監視器
Microsoft提供的安全性監視器會在 SW 中執行。 其負責保護安全性敏感硬體,例如記憶體、快閃和其他共用 MCU 資源,以及安全地公開對這些資源的有限存取。 安全性監視器代理和閘道存取 Pluton 安全性子系統和硬體信任根目錄,並充當 NW 環境的監督機構。 它會啟動開機載入器、向 NW 公開運行時間服務,以及管理無法存取 NW 的硬體防火牆和其他晶片元件。
Azure Sphere 安全性服務
Azure Sphere 安全性服務包含三個元件:無密碼驗證、更新和錯誤報告。
無密碼驗證。 驗證元件提供遠端證明和無密碼驗證。 遠程證明服務會透過使用 Pluton 子系統上測量開機功能的挑戰回應通訊協議進行連線。 它不僅會使用正確的軟體來驗證裝置開機,而且會使用正確的軟體版本進行驗證。
證明成功之後,驗證服務會接管。 驗證服務會透過安全的 TLS 連線進行通訊,併發出憑證,讓裝置可以呈現給 Web 服務,例如Microsoft Azure 或公司的私人雲端。 Web 服務會驗證憑證鏈結,因此確認裝置為正版、其軟體為最新狀態,且Microsoft為其來源。 然後,裝置就可以安全地與在線服務連線。
更新。 更新 服務 會散發 Azure Sphere OS 和應用程式的自動更新。 更新服務可確保持續作業,並啟用應用程式軟體的遠端服務與更新。
錯誤報告。 錯誤 報告 服務提供已部署軟體的簡單當機報告。 若要取得更豐富的數據,請使用 Microsoft Azure 訂用帳戶隨附的報告和分析功能。
根據預設,使用 Azure Sphere 安全性服務儲存的所有數據都會在待用時加密。 安全性服務會使用每個這類服務的數據加密實作,將數據儲存在 Azure 儲存體、Azure Cosmos DB 和 Azure 金鑰保存庫。