使用 X.509 CA 证书对设备进行身份验证

本文介绍如何使用 X.509 证书颁发机构 (CA) 证书对连接到 IoT 中心的设备进行身份验证。 在本文中,将了解:

  • 如何获取 X.509 CA 证书
  • 如何将 X.509 CA 证书注册到 IoT 中心
  • 如何使用 X.509 CA 证书为设备签名
  • 如何对使用 X.509 CA 签名的设备进行身份验证

重要

使用 X.509 证书颁发机构 (CA) 身份验证的设备的以下功能尚未正式发布,必须启用预览模式:

  • HTTPS、基于 WebSocket 的 MQTT 和基于 WebSocket 的 AMQP 协议。
  • 文件上传(所有协议)。

这些功能在使用 X.509 指纹身份验证的设备上已正式发布。 若要了解有关使用 IoT 中心进行 x.509 身份验证的详细信息,请参阅支持的 x.509 证书

借助 X.509 CA 功能,可以使用证书颁发机构 (CA) 在 IoT 中心进行设备身份验证。 此功能简化了初始设备注册过程,以及设备制造期间的供应链后勤。 如果不熟悉 X.509 CA 证书,请参阅了解如何在 IoT 行业使用 X.509 CA 证书了解详细信息。

获取 X.509 CA 证书

X.509 CA 证书位于每个设备的证书链的顶层。 可以根据目标用途购买或创建该证书。

对于生产环境,建议从公共根证书颁发机构购买 X.509 CA 证书。 购买 CA 证书的好处是可让根 CA 充当受信任的第三方,确保设备的合法性。 如果设备是将在其中与第三方产品或服务进行交互的开放 IoT 网络的一部分,请考虑此选项。

也可以创建自签名的 X.509 CA 用于试验,或者在闭合型 IoT 网络中使用。

不管 X.509 CA 证书是如何获取的,都请确保保持其相应私钥的机密性,并始终对此私钥进行保护。 这是确保能够在 X.509 CA 身份验证中建立信任的必要措施。

了解如何创建自签名 CA 证书,可将此证书用于测试。

在证书信任链中为设备签名

X.509 CA 证书的所有者能以加密方式为某个中间 CA 签名,而该 CA 又能为另一个中间 CA 签名,依此类推,直到最后一个中间 CA 通过为设备证书签名来终止此过程。 结果是一个称为证书信任链的级联证书链。 在现实生活中,此过程的运作方式是向签名设备委托信任。 这种委托十分重要,因为它能够建立一种加密的可变监护链,并避免共享签名密钥。

img-generic-cert-chain-of-trust

设备证书(也称分支证书)必须将“使用者名称”设置为在 Azure IoT 中心注册 IoT 设备时使用的设备 ID (CN=deviceId)。 身份验证需要此设置。

了解如何像为设备签名时一样创建证书链

将 X.509 CA 证书注册到 IoT 中心

将 X.509 CA 证书注册到 IoT 中心,在注册和连接期间,此证书将用于对设备进行身份验证。 注册 X.509 CA 证书是一个两步过程,包括上传证书文件,然后建立所有权证明。

上传过程需要上传包含证书的文件。 此文件不得包含任何私钥。

所有权证明步骤涉及到在你与 IoT 中心之间执行加密质询和响应过程。 鉴于数字证书内容是公开的,因而容易遭到窃听,IoT 中心必须验证 CA 证书真正由你拥有。 为此,IoT 中心将会生成一个使用 CA 证书的相应私钥签名的随机质询。 如果按照建议保持私钥的机密性并对其进行保护,则只有你才能拥有所需的信息来完成此步骤。 私钥的机密性是此方法的信任源。 为质询签名后,可通过上传包含结果的文件来完成此步骤。

了解如何注册 CA 证书

在 IoT 中心创建设备

为了防止设备模拟,IoT 中心要求告知预期的设备。 为此,可在 IoT 中心的设备注册表中创建一个设备条目。 使用 IoT 中心设备预配服务时,此过程会自动执行。

了解如何在 IoT 中心手动创建设备

对使用 X.509 CA 证书签名的设备进行身份验证

注册 X.509 CA 证书并在证书信任链中为设备签名后,最后一步就是在设备连接时进行设备身份验证。 当 X.509 CA 签名的设备建立连接时,会上传其证书链用于验证。 该链包含所有中间 CA 和设备证书。 使用此信息,IoT 中心可通过一个两步过程对设备进行身份验证。 IoT 中心以加密方式验证证书链的内部一致性,然后向设备发出所有权证明质询。 如果设备返回了所有权证明成功响应,则 IoT 中心会声明该设备可信。 此声明假设设备的私钥受到保护,并且只有该设备才能成功响应此质询。 我们建议使用设备中的安全芯片(例如硬件安全模块 (HSM))来保护私钥。

设备成功连接到 IoT 中心后,身份验证过程即告完成,这也表明设置正确。 每次设备进行连接时,IoT 中心都会重新协商 TLS 会话并验证设备的 X.509 证书。

了解如何完成此设备连接步骤

后续步骤

了解 IoT 中 X.509 CA 身份验证的价值

开始使用 IoT 中心设备预配服务