设备标识和安全性

重要

这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。

一次可以部署和管理许多设备。 设备管理基于在需要时单独识别和访问每个设备的能力。 为使你能够执行此操作,每个 Azure Sphere 设备都会获得唯一的内部设备 ID,通过对设备的任何更新(包括恢复操作)持久保存。

但是,在数字系统中,设备 ID 很容易被欺骗、伪造或滥用。 因此,你应仅允许能够验证和验证其标识的设备访问高度有价值的数据并连接到服务。

Azure Sphere 提供了一个过程,用于使设备能够标识自身(身份验证)和确认设备的标识(证明)。 Azure Sphere 安全服务使用的身份验证和证明过程使用已知密钥、安全通信和专用硬件来确认设备的标识。 如果设备身份验证和证明成功,则会向设备颁发证书。 有效的证书指示:

  • 已验证设备的标识。
  • 设备可以受信任。

使用 Azure Sphere 时,设备证书首先链接到租户级证书(使组织能够轻松信任其自己的租户中的设备),然后链接到Microsoft证书,这反映了Microsoft已验证此硬件是否是运行安全Microsoft OS 的认证 Azure Sphere 芯片的已验证实例。

以下概念有助于以最安全且最有效的方式使用设备标识:

  • 信任是暂时性的
    系统信任可能会丢失,并且可以重新获得。 在 IoT 系统中实现零信任体系结构的原则是显式验证。 这意味着每次与设备交互时,都会显式确定设备的真实性,并证明数据事务可信。 Azure Sphere 设备使用 Azure Sphere 云安全服务每 24 小时自动执行身份验证和证明过程。 指示设备标识已成功验证是否存在加密签名的证书,该证书植根于 Azure Sphere 云安全服务Microsoft。

  • 标识 = 标识符 + 证明
    可以复制和复制标识符。 因此,设备不能简单地通过标识符来识别。 必须将设备的标识(或用户标识)视为标识符和证明的组合,证明此类标识符在特定上下文中有效。 不应将标识符分配给设备,并且不应将它们与证明过程无关。 在可能的情况下,将标识符与系统中每个交互层的证明证据组合在一起。

  • 标识符 + 信任证书
    应将标识符视为不超过引用。 单独,不应假定它指示它所引用对象的可信度的任何内容。 例如,使用标识符订阅 MQTT 消息,使用标识符在门户中将受信任的数据组合在一起,并使用标识符路由系统中的流量和数据。 但是,当涉及到信任(而不是信任标识符)时,信任经过加密签名和链接的证书。 证书对系统组件之间的无密码数据流特别有利,并且是经过测试和证明在特定上下文中可信的标识证据。

使用Azure IoT 中心时,如果根据记录的建议进行配置,这些概念已经合并,简化了安全且可复原系统的部署。

连接到直接控制的非 Azure 终结点或服务时,还必须应用这些概念。 例如,如果使用 MQTT,设备可能包含自己的标识作为其发布到的 MQTT 主题的一部分。 但是,在接受来自设备的主题更新之前,MQTT 服务器必须验证设备提供的证书是否对它进行身份验证以发布到此特定主题。

Azure Sphere 设备证书和设备 ID 访问

  • 若要访问应用程序中的设备证书,请使用 DeviceAuth_GetCertificatePath 函数。

  • 若要访问设备的唯一设备 ID,请使用 wolfSSL_X509_get_subject_name 函数从 DeviceAuth_GetCertificatePath() 函数提供的证书中分析使用者。

代码片段 “获取 Azure Sphere 设备 ID ”演示如何在高级应用程序中获取 Azure Sphere 设备 ID。 它将设备 ID 作为字符缓冲区返回 128 个字符。 此代码片段命令 wolfSSL 打开与证书的会话,拉取上下文和证书,分析证书的主题 ID,该证书是 Azure Sphere 设备的设备 ID,并将其作为 char 指针返回。