裝置身分識別和安全性
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
您可以一次部署和管理許多裝置。 裝置管理是以在必要時個別識別和存取每個裝置的能力為基礎。 為了讓您這樣做,每個 Azure Sphere 裝置都會獲得唯一的內部裝置識別碼,可透過裝置的任何更新保存,包括復原作業。
不過,在數字系統中,裝置的標識符很容易被詐騙、偽造或濫用。 因此,您應該只允許可驗證和驗證其身分識別的裝置,以存取您的高價值數據並連線到您的服務。
Azure Sphere 提供一個程式,讓裝置能夠識別自己(驗證),以及確認裝置的身分識別(證明)。 Azure Sphere 安全性服務採用的驗證和證明程式會使用已知的密鑰、安全通訊和特製化硬體來確認裝置的身分識別。 如果裝置驗證和證明成功,則會向裝置發出憑證。 有效的憑證表示:
- 已驗證裝置的身分識別。
- 裝置可以信任。
使用 Azure Sphere 時,裝置憑證會先鏈結至租用戶層級憑證(讓組織能夠輕鬆地只信任自己租使用者的裝置),然後鏈結至Microsoft憑證,這反映出Microsoft已驗證此硬體是執行安全Microsoft操作系統之認證 Azure Sphere 晶片的已驗證實例。
下列概念可協助以最安全且有效的方式使用裝置身分識別:
信任是暫時性的
系統的信任可能會遺失,而且可以重新取得。 在 IoT 系統中實作 零信任 架構的原則是明確驗證。 這表示每次您與裝置互動時,都會明確判斷裝置的真實性,並證明數據交易值得信任。 Azure Sphere 裝置會使用 Azure Sphere 雲端安全性服務,每隔 24 小時自動執行驗證和證明程式。 指出裝置的身分識別已成功驗證,就是是否有密碼編譯簽署的憑證,其根位於 Azure Sphere 雲端安全性服務Microsoft。身分識別 = 識別碼 + 證明
可以複製和複製識別碼。 因此,裝置不能簡單地由其標識碼來得知。 裝置的身分識別(或使用者的身分識別)必須視為標識符與證明的組合,證明這類標識碼在特定內容中有效。 您不應該將標識碼指派給裝置,並將它們與證明程序無關。 在可能的情況下,結合標識碼與系統內每一層互動證明的證據。標識碼 + 信任憑證
應將標識碼視為不超過參考。 單獨使用,就不應該假設它指出它所參考之物件的可信度。 例如,使用標識碼來訂閱 MQTT 訊息、使用識別碼將信任的數據群組在入口網站內,以及使用標識碼來路由傳送系統中的流量和數據。 不過,當涉及到信任,而不是信任標識符時,請信任密碼編譯簽署和鏈結的憑證。 憑證對於系統元件之間的無密碼數據流特別有説明,而且是經過測試並證明在特定內容中值得信任的識別證據。
使用 Azure IoT 中樞 時,如果根據記載的建議進行設定,這些概念已經納入,可簡化安全且復原系統的部署。
當您連線到直接控制的非 Azure 端點或服務時,您也必須套用這些概念。 例如,如果使用 MQTT,裝置可能會在其發佈的 MQTT 主題中包含自己的身分識別。 不過,在接受來自裝置的主題更新之前,MQTT 伺服器必須確認裝置提供的憑證驗證它以發佈至此特定主題。
Azure Sphere 裝置憑證和裝置標識碼存取
若要存取您應用程式中的裝置憑證,請使用 DeviceAuth_GetCertificatePath 函式。
若要存取裝置的唯一裝置標識符,請使用 wolfSSL_X509_get_subject_name 函式,從 DeviceAuth_GetCertificatePath() 函式所提供的憑證剖析主體。
代碼段 取得 Azure Sphere 裝置識別碼 示範如何在高階應用程式中取得 Azure Sphere 裝置標識碼。 它會以 128 個字元的字元緩衝區傳回裝置標識碼。 此代碼段會命令 wolfSSL 開啟具有憑證的會話、提取內容和憑證、剖析憑證的主體標識碼,這是 Azure Sphere 裝置的裝置標識碼,並將它當做 char
指標傳回。