将证书与 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 中的 az sphere ca-certificate download 命令返回目录 CA 证书以供此类使用。
EAP-TLS 网络连接
连接到 EAP-TLS 网络的设备需要证书才能通过网络的 RADIUS 服务器进行身份验证。 若要以客户端身份进行身份验证,设备必须将客户端证书传递给 RADIUS。 若要执行相互身份验证,设备还必须具有 RADIUS 服务器的根 CA 证书,以便它可以对服务器进行身份验证。 Microsoft不提供其中任一证书;你或你的网络管理员负责确定网络 RADIUS 服务器的正确证书颁发机构,然后从颁发者获取必要的证书。
若要获取 RADIUS 服务器的证书,需要向证书颁发机构进行身份验证。 为此,可以使用 DAA 证书(如前所述)。 获取 RADIUS 服务器的证书后,应将它们存储在设备证书存储中。 设备证书存储仅用于使用 EAP-TLS 对安全网络进行身份验证。 (DAA 证书未保留在设备证书存储中;它安全地保存在 OS 中。 通过 CLI 中的 az sphere device certificate 命令,可以从命令行管理证书存储。 Azure Sphere 应用程序可以使用 CertStore API 在设备证书存储中存储、检索和管理证书。 CertStore API 还包括返回有关单个证书的信息的函数,以便应用可以准备证书过期和续订。
有关 EAP-TLS 网络中使用的证书的完整说明,请参阅安全企业 Wi-Fi 访问:Azure Sphere 上的 EAP-TLS Microsoft,了解其他信息。
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 REST API
Azure Sphere REST API 是一组服务终结点,支持用于创建和管理 Azure Sphere 资源(例如目录、产品、部署和设备组)的 HTTP 操作。 Azure Sphere REST API 使用 REST(REpresentational State Transfer)HTTP 协议发送操作请求和响应。 操作响应中返回的数据采用 JSON 格式(JavaScript 对象表示法)。 可用操作记录在 Azure Sphere REST API 参考中。
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、更新或错误报告。 更新时处于脱机状态的设备在重新连接到 Internet 后立即收到更新。
Azure Sphere OS 还包括 Azure IoT 库,因此,如果Microsoft对 Azure IoT 库使用的证书进行进一步更改,我们将更新 OS 中的库,以便无需更改应用程序。 我们还将通过有关可能需要修改应用或脚本的任何边缘情况或特殊情况的其他博客文章告知你。
这两种情况都说明了 Azure Sphere 如何通过删除应用程序维护更新来处理证书更改来简化应用程序管理。 由于每个设备在其每日证明过程中都会收到更新证书,因此可以轻松管理设备和应用程序使用的任何本地托管证书的更新。 例如,如果应用程序验证业务线服务器(如应所示)的标识,则可以部署包含更新证书的更新的应用程序映像包。 Azure Sphere 平台提供的应用程序更新服务提供这些更新,消除了更新服务本身将产生证书过期问题的担忧。