搭配 Azure Sphere 使用的憑證
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
本主題提供 Azure Sphere 憑證「橫向」的概觀:各種 Azure Sphere 元件所使用的憑證類型、來源、儲存位置、更新方式,以及如何在必要時存取它們。 它也說明 Azure Sphere OS、SDK 和服務如何讓您更輕鬆地管理憑證。 我們假設您已熟悉證書頒發機構單位和信任鏈結。
Azure Sphere 裝置
每個 Azure Sphere 裝置都依賴受信任的根存放區,這是 Azure Sphere OS 的一部分。 受信任的根存放區包含一份跟證書清單,當裝置連線以進行裝置驗證和證明(DAA)、無線 (OTA) 更新或錯誤報告時,用來驗證 Azure Sphere 安全性服務的身分識別。 這些憑證會隨附於OS。
當每日證明成功時,裝置會收到兩個憑證:更新憑證和客戶憑證。 更新憑證可讓裝置連線到 Azure Sphere 更新服務,以取得軟體更新並上傳錯誤報告;應用程式或透過命令行無法存取。 客戶憑證有時稱為 DAA 憑證,可由應用程式用來連線到使用傳輸層安全性的第三方服務,例如使用傳輸層安全性 (TLS) 的第三方服務。 此憑證有效期為24小時。 應用程式可以透過呼叫 DeviceAuth_GetCertificatePath 函式,以程式設計方式擷取它。
聯機到 Azure 型服務的裝置,例如 Azure IoT 中樞、Azure IoT Central 和 Azure IoT Edge,必須出示其 Azure Sphere 租使用者 CA 憑證,才能驗證其 Azure Sphere 租使用者。 CLI 中的 azsphere ca-certificate download 命令會傳回這類用途的租使用者 CA 憑證。
EAP-TLS 網路連線
線上到 EAP-TLS 網路的裝置需要憑證才能向網路的 RADIUS 伺服器進行驗證。 若要以用戶端身分進行驗證,裝置必須將用戶端憑證傳遞至RADIUS。 若要執行相互驗證,裝置也必須有RADIUS伺服器的根CA憑證,才能驗證伺服器。 Microsoft不提供其中一個憑證;您或您的網路管理員須負責確定您網路 RADIUS 伺服器的正確證書頒發機構單位,然後從簽發者取得必要的憑證。
若要取得RADIUS伺服器的憑證,您必須向證書頒發機構單位進行驗證。 您可以針對此目的使用 DAA 憑證,如先前所述。 取得RADIUS伺服器的憑證之後,您應該將它們儲存在裝置證書存儲中。 裝置證書存儲僅適用於使用 EAP-TLS 向安全網路進行驗證。 (DAA 憑證不會保留在裝置證書存儲中;它會安全地保留在OS中。 CLI 中的 azsphere device certificate 命令可讓您從命令行管理證書存儲。 Azure Sphere 應用程式可以使用 CertStore API ,在裝置證書存儲中儲存、擷取及管理憑證。 CertStore API 也包含傳回個別憑證相關信息的函式,讓應用程式可以準備憑證到期和更新。
如需 EAP-TLS 網路中使用的憑證完整描述,請參閱 在 Microsoft 技術社群的 Azure Sphere 上使用 EAP-TLS ,以取得詳細資訊,請參閱 保護企業 Wi-Fi 存取:Azure Sphere 上的 EAP-TLS。
Azure Sphere 應用程式
Azure Sphere 應用程式需要憑證才能向 Web 服務和某些網路進行驗證。 根據服務或端點的需求,應用程式可以使用來自外部證書頒發機構單位的 DAA 憑證或憑證。
使用 wolfSSL 或類似連結庫連線到第三方服務的應用程式可以呼叫 DeviceAuth_GetCertificatePath 函式,以取得 DAA 憑證以進行驗證。 此函式是在 20.10 SDK 的 deviceauth.h 標頭中引進的。
內建於 Azure Sphere 的 Azure IoT 連結庫已經信任必要的根 CA,因此使用此連結庫來存取 Azure IoT 服務的應用程式(Azure IoT 中樞、Azure IoT Central、裝置布建服務)不需要任何其他憑證。
如果您的應用程式使用其他 Azure 服務,請洽詢這些服務的檔,以判斷需要哪些憑證。
Azure Sphere 公用 API
Azure Sphere 公用 API (PAPI) 會與 Azure Sphere 安全性服務通訊,以要求和擷取已部署裝置的相關信息。 安全性服務會使用 TLS 憑證來驗證這類連線。 這表示任何使用公用 API 的程式代碼或腳本,以及 Azure Sphere SDK 等其他任何安全性服務用戶端(包括 Azure Sphere 傳統 CLI 和 Azure Sphere CLI),都必須信任此憑證,才能連線到安全性服務。 SDK 會使用主計算機系統證書存儲中的憑證來進行 Azure Sphere 安全性服務驗證,就像許多公用 API 應用程式一樣。
2020 年 10 月 13 日,資訊安全服務將其公用 API TLS 憑證更新為從 DigiCert 全域根 G2 憑證簽發的憑證。 Windows 和 Linux 系統都包含 DigiCert 全域根 G2 憑證,因此所需的憑證已可供使用。 不過,如先前的 部落格文章所述,只有涉及主體、名稱或簽發者 (SNI) 的客戶案例必須進行釘選變更,以配合此更新。
Azure Sphere 安全性服務
Azure Sphere 雲端服務一般,特別是安全性服務,會管理許多用於安全服務對服務通訊的憑證。 這些憑證大多是服務及其客戶端的內部,因此Microsoft視需要協調更新。 例如,除了在 10 月更新公用 API TLS 憑證之外,Azure Sphere 安全性服務也會更新 DAA 服務和更新服務的 TLS 憑證。 在更新之前,裝置會收到信任的跟證書存放區的 OTA 更新,其中包含新的必要跟證書。 不需要客戶採取任何動作,即可維護與安全性服務的裝置通訊。
Azure Sphere 如何讓客戶更容易變更憑證?
憑證到期是 Azure Sphere 可避免的 IoT 裝置失敗的常見原因。
由於 Azure Sphere 產品同時包含 OS 和安全性服務,因此這兩個元件所使用的憑證都會由 Microsoft 管理。 裝置會透過 DAA 程式、OS 和應用程式更新以及錯誤報告來接收更新的憑證,而不需要變更應用程式。 Microsoft新增 DigiCert 全域根 G2 憑證時,不需要客戶變更,才能繼續 DAA、更新或錯誤報告。 更新時脫機的裝置在重新連線到因特網時立即收到更新。
Azure Sphere OS 也包含 Azure IoT 連結庫,因此,如果Microsoft對 Azure IoT 連結庫使用的憑證進行進一步變更,我們會更新 OS 中的連結庫,讓您的應用程式不需要變更。 我們也會透過其他部落格文章讓您知道任何可能需要修改應用程式或腳本的邊緣案例或特殊情況。
這兩個案例都說明 Azure Sphere 如何藉由移除應用程式維護更新來處理憑證變更的需求,簡化應用程式管理。 由於每個裝置都會在其每日證明中收到更新憑證,因此您可以輕鬆地管理裝置和應用程式所使用之任何本機管理的憑證更新。 例如,如果您的應用程式驗證企業營運伺服器的身分識別(應該如此),您可以部署包含更新憑證的更新應用程式映像套件。 Azure Sphere 平臺所提供的應用程式更新服務會傳遞這些更新,而不必擔心更新服務本身會產生憑證到期問題。