概念性理解 IoT 行业中的 X.509 CA 证书

本文介绍在 IoT 设备制造及向 IoT 中心进行身份验证时使用 X.509 证书颁发机构 (CA) 证书的重要性。 内容包括供应链设置及突出优点的相关信息。

本文介绍:

  • X.509 CA 证书的含义及获取方式
  • 如何向 IoT 中心注册 X.509 CA 证书
  • 如何为基于 X.509 CA 的身份验证设置制造供应链
  • 使用 X.509 CA 签名的设备如何连接到 IoT 中心

重要

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

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

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

概述

X.509 证书颁发机构 (CA) 身份验证可用于向 IoT 中心进行设备身份验证,所用方法极大地简化了设备标识创建和供应链中的生命周期管理。

X.509 CA 身份验证的一个特有属性是,CA 证书与其下游设备具有一对多关系。 由于此种关系,只需注册一次 X.509 CA 证书,即可将任意数目的设备注册到 IoT 中心,若使用设备唯一证书,则必须为每台设备预注册证书,然后设备才可连接。 这种一对多关系还可简化设备证书生命周期管理操作。

X.509 CA 身份验证的另一重要属性是简化了供应链逻辑。 设备的安全身份验证要求每台设备拥有唯一机密(如密钥),以作为信任基础。 在基于证书的身份验证中,此机密即为私钥。 典型的设备制造流程需要多个步骤及多个保管人。 跨多个保管人安全管理设备私钥并维持信任十分困难且成本高昂。 使用证书颁发机构即可解决此问题,因其将每个保管人签名到加密信任链,而不是将设备私钥委托给他们。 每个保管人转而在各自的制造流过程步骤中对设备进行签名。 整体结果是通过使用加密信任链、借助内置职责优化了供应链。 值得注意的是,在设备保护其唯一私钥时,此过程可实现最大安全性。 为此,我们强烈建议使用支持内部生成私钥的硬件安全模块 (HSM),让私钥得到最佳保护。

本文连贯地介绍如何使用 X.509 CA 身份验证(从供应链设置到设备连接),同时利用真实示例增强理解。

还可以将注册组与 Azure IoT 中心设备预配服务 (DPS) 配合使用,以便处理将设备预配到中心的操作。

简介

X.509 CA 证书是一种数字证书,该证书的持有者可对其他证书进行签名。 此数字证书为 X.509,因为它符合 IETF RFC 5280 标准规定的证书格式标准;它也是一个证书颁发机构 (CA),因为其持有者可对其他证书进行签名。

联系具体示例可更好地理解 X.509 CA 的用法。 假设 X 公司是智能 X 小组件的制造商,同时承诺专业安装。 X 公司将制造和安装外包。 合同规定生产商 Y 工厂负责生产智能 X 小组件、服务提供商 Z 技术人员负责安装。 X 公司希望将智能 X 小组件从 Y 工厂直接运送给 Z 技术人员以供安装,安装完成后,直接将小组件连接到 X 公司的 IoT 中心实例,而无需 X 公司更多干预。 为实现这一目的,X 公司需完成几个一次性安装操作,对智能 X 小组件进行优化以实现自动连接。 考虑到端到端方案,本文其余部分的结构如下:

  • 获取 X.509 CA 证书

  • 向 IoT 中心注册 X.509 CA 证书

  • 将设备签名到证书信任链

  • 设备连接

获取 X.509 CA 证书

X 公司可通过公共根证书颁发机构购买 X.509 CA 证书,也可通过自签名流程创建一个证书。 这两个选项中会有一个优于另一个,具体取决于应用程序方案。 无论选择哪个选项,过程均包含 2 个基础步骤:生成公钥/私钥对、将公钥签名到证书。

生成 X509CA 证书的流程

不同服务提供商完成这些步骤的方式详情有所不同。

购买 X.509 CA 证书

购买 CA 证书的好处是可让知名根 CA 充当可信第三方,确保设备连接时 IoT 设备的合法性。 如果 X 公司希望智能 X 小组件在与 IoT 中心进行初始连接后可与第三方产品或服务进行交互,则可选择此选项。

要购买 X.509 CA 证书,X 公司可选择根证书服务提供商。 通过 Internet 搜索词语“根 CA”可找到一些好线索。 根 CA 将指导 X 公司了解如何创建公钥/私钥对以及如何为其服务生成证书签名请求 (CSR)。 CSR 是从证书颁发机构申请证书的正式过程。 此次购买的证书可用作证书颁发机构证书。 由于 X.509 证书普遍存在,所以该证书格式可能已按照 IETF RFC 5280 标准正确设置。

创建自签名 X.509 CA 证书

除了需要根证书颁发机构等第三方签名人之外,创建自签名 X.509 CA 证书的过程与购买过程相同。 在本例中,X 公司要对其授权证书进行签名,而不是向根证书颁发机构购买。 在 X 公司准备好购买证书颁发机构证书前,他们可能会选择此选项进行测试。 如果 X 公司不打算将智能 X 小组件连接到 IoT 中心外任何第三方服务,则他们也可以在生产中使用自签名 X.509 CA 证书。

向 IoT 中心注册 X.509 证书

X 公司需要向 IoT 中心注册 X.509 CA,IoT 中心将在智能 X 小组件进行连接时对其进行身份验证。 这个过程是一次性的,完成后即可对任何数量的智能 X 小组件设备进行身份验证和管理。 由于 CA 证书和通过 CA 证书或中间证书签名的设备证书之间的一对多关系,因此这是一次性过程。 此关系是使用 X.509 CA 身份验证方法的主要优点之一。 另一种方法是为每个智能 X 小组件设备上传单个证书指纹,但这会增加运营成本。

注册 X.509 CA 证书的过程包含 2 个步骤:证书上传、证书所有权证明。

注册 X509CA 证书

X.509 CA 证书上传

X.509 CA 证书上传进程指将 CA 证书上传到 IoT 中心。 IoT 中心希望证书包含在文件内。 X 公司只需上传证书文件。 在任何情况下,证书文件都不能包含任何私钥。 公钥基础结构 (PKI) 标准的最佳做法要求,X 公司在此情况下的专有知识完全属于 X 公司。

证书的所有权证明

与所有数字证书相同,X.509 CA 证书也是易遭窃听的公共信息。 因此,窃听者可能会拦截证书并尝试将其作为自己的证书进行上传。 在本示例中,IoT 中心会确保 X 公司上传的 CA 证书确实属于 X 公司。 实现这一目的的方法是:要求 X 公司通过所有权证明 (PoP) 流程证明他们实际上拥有该证书。 所有权证明流程要求 IoT 中心生成随机数字,X 公司将使用其私钥对该数字进行签名。 如果 X 公司遵循了 PKI 最佳做法并保护了私钥,那么只有他们才能够正确响应所有权证明质疑。 成功响应所有权证明质疑后,IoT 中心会继续注册 X.509 CA 证书。

成功响应 IoT 中心的所有权证明质疑后,即可完成 X.509 CA 注册。

将设备签名到证书信任链

IoT 要求每台设备均拥有唯一标识。 这些标识位于表单证书中,可用于基于证书的身份验证方案。 在本示例中,这意味着每个智能 X 小组件必须拥有唯一设备证书。 X 公司如何在其供应链中对此进行设置?

一种方法是为智能 X 小组件预生成证书,并将相应唯一设备私钥的知识委托给供应链合作伙伴。 对于 X 公司,这意味着委托 Y 工厂和 Z 技术人员。 虽然这种方法有效,但同时也必须解决一些问题才可确保信任度,如下所示:

  1. 除了忽略 PKI 最佳做法(绝不共享私钥)外,还必须与供应链合作伙伴共享设备私钥,这使得供应链中的信任构建成本高昂。 这意味着需要安装资本系统(如存放设备私钥的安全空间)和建立定期安全审核等流程。 这两者均会增加供应链成本。

  2. 从设备唯一证书(和私钥)生成到设备停用,对每个密钥-设备对而言,在供应链中安全照管设备以及之后在部署中管理它们都是一项一对一任务。 这妨碍设备的组管理,除非以某种方式将组的概念明确嵌入该过程。 因此,安全照管设备和设备生命周期管理成为沉重的运营负担。 在本例中,X 公司须自行承担该负担。

X.509 CA 证书身份验证通过使用证书链为前面列出的问题提供了漂亮的解决方案。 证书链如此生成:一个 CA 对一个中间 CA 进行签名,这个中间 CA 转而对另一个中间 CA 进行签名,这样继续,直到最后一个中间 CA 对设备进行签名。 在本例中,X 公司对 Y 工厂进行签名,Y 工厂转而对 Z 技术人员进行签名,而 Z 技术人员最后要对智能 X 小组件进行签名。

证书链层次结构

上述证书链中的证书传递体现了授权的逻辑转移。 许多供应链都遵循这种逻辑转移,每个中间 CA 在接收所有上游 CA 证书时被签名到链中,最后一个中间 CA 最后对每台设备进行签名并将链中的授权构证书引入设备。 这种做法常见于具有工厂层次结构的合同制造公司委托特定工厂进行生产的情况。 层次结构可能是多级深度(例如,地理/产品类型/生产线),只有最后的工厂才会与设备进行交互,但供应链是从层次结构顶部进行维护的。

备用链中可能会有其他中间 CA 与设备进行交互,在这种情况下,与设备进行交互的 CA 此时会插入证书链内容。 如果只有某些 CA 与设备进行物理交互,也可使用混合模型。

在本例中,Y 工厂和 Z 技术人员都会与智能 X 小组件进行交互。 虽然 X 公司拥有智能 X 小组件的所有权,但它实际上在整个供应链中并未与该产品进行物理交互。 因此,智能 X 小组的证书信任链包括:X 公司对 Y 工厂进行签名、Y 工厂转而对 Z 技术人员进行签名,然后 Z 技术人员最后对智能 X 小组件进行签名。 智能 X 小组件的制造和安装过程包括:Y 工厂和 Z 技术人员使用各自的中间 CA 证书对每个智能 X 小组件进行签名。 整个过程的最终结果是,具有唯一设备证书和证书信任链的智能 X 小组件被纳入 X 公司 CA 证书。

从一个公司的证书到另一个公司的证书的信任链

这一点很好地体现了 X.509 CA 方法的重要性。 X 公司只需对 Y 工厂签名一次,而无需为每个智能 X 小组件预先生成证书并移交到供应链中。 X 公司无需在整个设备生命周期中跟踪每台设备,他们现在可以通过供应链过程中自然生成的组来跟踪和管理设备,例如,某年七月后由 Z 技术人员安装的设备。

最后一项要点是,CA 身份验证方法将安全责任引入了设备制造供应链。 由于证书链流程,链中每位成员的操作均已加密记录且可验证。

此过程的完成依赖于某些必须提供的假设。 这要求独立创建设备唯一的公钥/私钥对,并且私钥在设备内受到保护。 幸运的是,硬件安全模块 (HSM) 形式的安全硅芯片能够在内部生成密钥并保护私钥。 X 公司只需将该种芯片之一添加到智能 X 小组件的组件材料清单即可。

设备连接

前面部分一直在构建设备连接。 简单通过向 IoT 中心注册一次 X.509 CA 证书,数百万台设备在首次连接时即可通过身份验证,这怎么可能? 答案很简单。通过之前注册 X.509 CA 证书所用的相同证书上传和所有权证明流程即可实现。

针对 X.509 CA 身份验证所制造的设备配有设备唯一证书和其各自制造供应链的证书链。 即使是首次连接,也只需 2 步即可实现设备连接:证书链上传、所有权证明。

证书链上传过程中,设备会将设备唯一证书与其内部安装的证书链一并上传到 IoT 中心。 使用预注册的 X.509 CA 证书,IoT 中心可加密验证两个事项:上传的证书链是否内部一致;该链是否来自有效的 X.509 CA 证书所有者。 与 X.509 CA 注册过程一样,IoT 中心会启动一个所有权证明质疑-响应流程,以确定链和设备证书确实属于上传设备。 实现这一过程的方法是:生成随机质询,设备使用其私钥对该质询进行签名,然后由 IoT 中心进行验证。 成功响应将促使 IoT 中心认为设备可信并允许其进行连接。

在本示例中,每个智能 X 小组件都会将其设备唯一证书与 Y 工厂和 Z 技术人员的 X.509 CA 证书一并上传,然后响应 IoT 中心发出的所有权证明质疑。

从一个证书到中心的另一个弹出质询的流

请注意,信任的基础在于保护私钥(包括设备私钥)。 因此,我们一再强调使用硬件安全模块 (HSM) 形式的安全硅芯片保护设备私钥的重要性,也一再强调绝不共享任何私钥(如某工厂将其私钥委托给另一工厂)这一整体最佳做法。