你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Azure IoT 设备制造商的安全做法

随着越来越多的制造商发行 IoT 设备,了解常见做法指导会很有帮助。 本文汇总了在制造与 Azure IoT 设备预配服务 (DPS) 配合使用的设备时要考虑的建议安全做法。

  • 选择设备身份验证选项
  • 在 IoT 设备上安装证书
  • 将受信任的平台模块 (TPM) 集成到制造过程中

选择设备身份验证选项

任何 IoT 设备安全措施的终极目标都是创建安全的 IoT 解决方案。 但是,硬件限制、成本和安全专业知识水平等问题都会影响选择的选项。 此外,安全措施会影响 IoT 设备连接到云的方式。 尽管要考虑的 IoT 安全要素有很多,但每个客户面对的一个关键要素是使用哪种身份验证类型。

三种广泛使用的身份验证类型为 X.509 证书、受信任的平台模块 (TPM) 和对称密钥。 尽管还存在其他身份验证类型,但在 Azure IoT 上构建解决方案的大多数客户都会使用这三种类型之一。 本文的其余部分回顾了使用每种身份验证类型的优缺点。

X.509 证书

X.509 证书是可用于身份验证的数字标识类型。 IETF RFC 5280 中阐述了 X.509 证书标准。 在 Azure IoT 中,可通过两种方式对证书进行身份验证:

  • 指纹。 将对证书运行一种指纹算法来生成一个十六进制字符串。 生成的字符串是该证书的唯一标识符。
  • 基于完整链的 CA 身份验证。 证书链是对最终实体 (EE) 证书进行身份验证所需的所有证书的分层列表。 若要对 EE 证书进行身份验证,需要对证书链中的每个证书(包括受信任的根 CA)进行身份验证。

X.509 的优点:

  • X.509 是 Azure IoT 支持的最安全的身份验证类型。
  • 使用 X.509 时,能够以较高的控制度实现证书管理。
  • 许多供应商都可以提供基于 X.509 的身份验证解决方案。

X.509 的缺点:

  • 许多客户可能需要依赖外部供应商来获得证书。
  • 证书管理的成本可能很高,并且会增加解决方案的总体成本。
  • 如果物流没有经过深思熟虑,证书生命周期管理可能会很困难。

受信任的平台模块 (TPM)

TPM(也称为 ISO/IEC 11889)是用于安全地生成和存储加密密钥的标准。 TPM 也指与实现了该标准的模块进行交互的虚拟或物理 I/O 设备。 TPM 设备的存在形式可以是离散硬件、集成硬件、基于固件的模块或基于软件的模块。

TPM 与对称密钥之间有两个重要区别:

  • TPM 芯片还可以存储 X.509 证书。
  • DPS 中的 TPM 证明使用 TPM 认可密钥 (EK) - 一种非对称身份验证形式。 使用非对称身份验证时,公钥将用于加密,一个单独的私钥将用于解密。 相反,对称密钥使用对称身份验证,私钥用于加密和解密。

TPM 的优点:

  • TPM 作为标准硬件包含在许多 Windows 设备上,内置了对操作系统的支持。
  • 与基于共享访问签名 (SAS) 令牌的对称密钥证明相比,TPM 证明更便于提供保护。
  • 你可以轻松续订、滚动更新设备凭据或使其过期。 每当 TPM 设备需要重新预配时,DPS 就会自动滚动更新 IoT 中心凭据。

TPM 的缺点:

  • TPM 较为复杂且难以使用。
  • 除非你有物理 TPM 或优质的仿真器,否则使用 TPM 进行应用程序开发会有难度。
  • 可能必须重新设计设备的板,以便在硬件中包含 TPM。
  • 如果滚动更新 TPM 上的 EK,将会销毁该 TPM 的标识并创建新的标识。 尽管物理芯片保持不变,但它会在 IoT 解决方案中使用新的标识。

对称密钥

使用对称密钥时,将使用同一个密钥来加密和解密消息。 因此,设备以及对该设备进行身份验证的服务都知道同一个密钥。 Azure IoT 支持基于 SAS 令牌的对称密钥连接。 对称密钥身份验证要求所有者负责保护密钥并实现与 x.509 身份验证同等级别的安全性。 如果使用对称密钥,建议的做法是使用硬件安全模块 (HSM) 保护密钥。

对称密钥的优点:

  • 使用对称密钥是开始进行身份验证的最简单且成本最低的方式。
  • 使用对称密钥可以简化过程,因为无需生成任何额外的信息。

对称密钥的缺点:

  • 对称密钥要求付出大量的精力来保护密钥。 同一密钥在设备与云之间共享,这意味着,在这两个位置都必须保护该密钥。 相比之下,使用 TPM 和 X.509 证书的难点在于,如何在不透露私钥的情况下证明公钥的所有权。
  • 使用对称密钥时很容易使用糟糕的安全做法。 对称密钥的常见用法趋势是对设备上未加密的密钥进行硬编码。 尽管这种做法很方便,但会使密钥容易受到攻击。 可以通过在设备上安全地存储对称密钥来缓解一些风险。 但是,如果你优先考虑的是最终安全性而不是方便性,请使用 X.509 证书或 TPM 进行身份验证。

共享对称密钥

对称密钥身份验证有一个称为共享对称密钥的变体。 此方法涉及到在所有设备中使用同一个对称密钥。 建议避免在设备上使用共享对称密钥。

共享对称密钥的优点:

  • 易于实现,且能以较低的开销大规模生产。

共享对称密钥的缺点:

  • 很容易受到攻击。 攻击风险超过易于实现的好处。
  • 如果某人获取了共享密钥,就可以模拟你的设备。
  • 如果依赖的共享对称密钥被泄露,可能无法控制设备。

根据设备做出正确的选择

若要选择身份验证方法,请务必考虑适合你的独特制造过程的每种方法的优点和成本。 对于设备身份验证,给定方法的安全性及其方便性之间往往存在一种对立的关系。

在 IoT 设备上安装证书

如果使用 X.509 证书对 IoT 设备进行身份验证,本部分提供了有关如何将证书集成到制造过程的指导。 需要做出多项决策,包括有关常见证书变量、何时生成证书以及何时安装证书的决策。

如果习惯使用密码,可能会想要知道为什么不能在所有设备上使用相同的证书,这类似于可能会如何使用同一密码。 首先,在所有地方都使用同一密码会有风险,会导致严重的 DDoS 攻击,例如几年前美国东海岸 DNS 出现中断就是如此。 切勿重复使用密码,即使对于个人帐户也是如此。 其次,证书并非密码;它是唯一的标识。 密码就像一个机密代码,任何人都可以用它来解锁安全建筑中的门 - 这是你知道和可以共享的内容。 相比之下,证书就像一张带有照片和详细信息的驾驶证,可以向门卫出示这些证书来获得访问权限。 它与标识相关。 只要门卫正确匹配持有驾照的人员,则只有你才能使用驾照(标识)进入。

证书决策中涉及的可变因素

考虑以下可变因素,以及每个可变因素对总体制造过程的影响。

证书信任根来自何处

管理公钥基础结构 (PKI) 可能成本高昂且复杂, 尤其是当你的公司在管理 PKI 方面没有任何经验时。 选项包括:

  • 使用第三方 PKI。 可以向第三方证书供应商购买中间签名证书。 或者,可以使用专用证书颁发机构 (CA)。
  • 使用自我管理的 PKI。 你可以维护自己的 PKI 系统并生成自己的证书。

证书的存储位置

有多个因素会影响有关证书存储位置的决策。 这些因素包括设备类型、预期利润率(是否能负担得起安全存储)、设备功能,以及可能能够使用的设备上的现有安全技术。 请考虑以下选项:

  • 在硬件安全模块 (HSM) 中。 强烈建议使用 HSM。 检查设备的控制板是否已安装 HSM。 如果知道没有 HSM,请与硬件制造商合作,确定满足需求的 HSM。
  • 在磁盘上的安全位置(例如受信任的执行环境 (TEE))中。
  • 在本地文件系统或证书存储中。 例如 Windows 证书存储。

工厂的连接

出厂时的连接决定了获取要在设备上安装的证书的方式和时间。 连接选项如下:

  • 有连接。 有连接是最好的,因为它简化了在本地生成证书的过程。
  • 无连接。 在这种情况下,可以使用 CA 签名的证书在本地离线生成设备证书。
  • 无连接。 在这种情况下,可以获取提前生成的证书。 或者,可以使用离线 PKI 在本地生成证书。

审核要求

根据你生产的设备类型,可以制定规章来要求创建审核线索,规定如何在设备上安装设备标识。 审核会大幅增加生产成本。 因此,在大多数情况下,仅当有必要时才进行审核。 如果你不确定是否需要审核,请咨询公司的法务部门。 审核选项包括:

  • 非敏感行业。 无需审核。
  • 敏感行业。 应根据合规认证要求,在安全的房间中安装证书。 如果需要安全机房来安装证书,可能已经了解证书在设备中安装证书的方式。 另外,你可能已部署了一个审核系统。

证书有效期

与驾驶证一样,证书的到期日期可在创建证书时设置。 需要在设备的生命周期内续订证书。 证书有效期的长度取决于上下文,因此需要续订策略。 该策略应包括获取证书的位置,以及设备在续订过程中必须使用的无线功能类型。

何时生成证书

工厂的 Internet 连接功能会影响证书生成流程。 对于何时生成证书,存在多个选项:

  • 预加载的证书。 某些 HSM 供应商提供高级服务,其中 HSM 供应商会为客户安装证书。 首先,客户向 HSM 供应商提供签名证书的访问权限。 然后,HSM 供应商将该签名证书已签名的证书安装到客户购买的每个 HSM 上。 客户只需在设备上安装 HSM。 虽然此服务会增加成本,但有助于简化制造过程。 它可解答何时安装证书的问题。
  • 设备生成的证书。 如果设备在内部生成证书,则必须从设备中提取公共 X.509 证书,以便在 DPS 中注册该设备。
  • 联网工厂。 如果你的工厂已建立连接,则你随时可根据需要生成设备证书。
  • 具有你自己的 PKI 的离线工厂。 如果工厂没有连接,并且使用的是自己的 PKI 和离线支持,则可以在需要时生成证书。
  • 具有第三方 PKI 的离线工厂。 如果工厂没有连接,并且使用的是第三方 PKI,则必须提前生成证书。 而且,需要从具有连接的位置生成证书。

何时安装证书

为 IoT 设备生成证书后,可将其安装到设备中。

如果将预加载的证书与 HSM 结合使用,则会简化此流程。 在设备中安装 HSM 后,设备代码就可以访问。 然后调用 HSM API,以访问存储在 HSM 中的证书。 此方法对制造过程而言是最方便的。

如果不使用预加载的证书,则必须在生产过程中安装证书。 最简单的方法是在刷新初始固件映像的同时在 HSM 中安装证书。 必须在流程中添加在每个设备上安装映像的步骤。 在此步骤之后,可以在将设备打包并发货之前运行最终质量检查和任何其他步骤。

可以使用一些软件工具通过单个步骤来运行安装过程和最终质量检查。 可以修改这些工具以生成证书,或者从预生成的证书存储区中拉取证书。 然后,软件可以在需要安装证书的位置安装证书。 使用此类软件工具可以大规模运行生产质量级别的制造。

在设备上安装证书后,下一步是了解如何向 DPS 注册设备。

将 TPM 集成到制造过程

如果你使用 TPM 对 IoT 设备进行身份验证,本部分提供了相关指导。 指导中涉及广泛使用的 TPM 2.0 设备,该设备支持基于哈希的消息身份验证代码 (HMAC) 密钥。 TPM 芯片的 TPM 规范是由受信任计算组维护的 ISO 标准。 有关 TPM 的详细信息,请参阅 TPM 2.0ISO/IEC 11889 的规范。

获取 TPM 的所有权

制造包含 TPM 芯片的设备的一个关键步骤是获取 TPM 的所有权。 必须执行此步骤才能向设备所有者提供密钥。 第一步是从设备中提取认可密钥 (EK)。 下一步是实际主张所有权。 认可密钥提取方式取决于使用的 TPM 和操作系统。 如果需要,请联系 TPM 制造商或设备操作系统开发商来确定如何主张所有权。

在制造过程中随时可以提取 EK 和主张所有权,因此提高了灵活性。 许多制造商添加硬件安全模块 (HSM) 来增强其设备的安全性,从而充分利用这种灵活性。 本部分提供了有关何时提取 EK、何时主张 TPM 所有权的指导,以及将这些步骤集成到制造时间线时的注意事项。

重要

以下指导假设使用离散 TPM、固件 TPM 或集成式 TPM。 在适当的位置,指导中添加了有关使用非离散 TPM 或软件 TPM 的说明。 如果使用软件 TPM,可能需要执行本指导中未提到的其他步骤。 软件 TPM 的实现方式多种多样,这超出了本文的范畴。 通常,可将软件 TPM 集成到以下常规制造时间线。 但是,尽管软件仿真的 TPM 适用于原型制作和测试,但它不能提供与离散 TPM、固件 TPM 或集成式 TPM 相同的安全级别。 常规做法是避免在生产环境中使用软件 TPM。

常规生产时间线

以下时间线显示了 TPM 如何经历生产过程并在设备中结束。 每个制造过程都是独特的,此时间线显示的是最常见模式。 时间线提供了有关何时对密钥采取特定措施的指导。

步骤 1:制造 TPM

  • 如果从制造商处购买 TPM 来用于设备,请了解他们是否提取公共认可密钥 (EK_pub)。 如果制造商随交付的设备一起提供了 EK_pub 列表,则很有帮助。

    注意

    可以在预配服务中使用共享访问策略,向 TPM 制造商授予对你的注册列表的写入访问权限。 此方法允许制造商替你将 TPM 添加到注册列表中。 但该操作在制造过程的早期阶段发生,需要信任该 TPM 制造商。 这样做时需要自控风险。

  • 如果你是向设备制造商销售 TPM 的 TPM 制造商,请考虑随物理 TPM 为客户提供 EK_pub 列表。 为客户提供 EK_pub 可让客户省去一个过程步骤。

  • 如果你是 TPM 制造商,并且制造的 TPM 与你自己的设备配合使用,请确定在过程中的哪个阶段最方便提取 EK_pub。 可以在时间线中的任意剩余时间点提取 EK_pub。

步骤 2:将 TPM 安装到设备中

在生产流程的这个时间点,应该知道设备使用的 DPS 实例。 因此,你可将设备添加到注册列表以进行自动预配。 有关自动的设备预配的详细信息,请参阅 DPS 文档

  • 如果尚未提取 EK_pub,现在就是提取的好时机。
  • 也很适合在此步骤中获取 TPM 的所有权,具体取决于 TPM 的安装过程。

步骤 3:在设备上安装固件和软件

在过程中的此阶段,请安装 DPS 客户端并提供 ID 范围和全局 URL 以进行预配。

  • 现在是提取 EK_pub 的最后机会。 如果第三方在设备上安装了该软件,最好先提取 EK_pub。
  • 非常适合在制造过程中的此阶段获取 TPM 的所有权。

    注意

    如果使用软件 TPM,现在可以安装它。 同时提取 EK_pub。

步骤 4:将设备打包并运送到仓库

一台设备有时会在仓库中放置长达一年的时间,然后才进行 DPS 部署和预配。 如果某个设备在部署之前在仓库中放置了较长时间,则部署该设备的客户可能需要更新固件、软件或过期的凭据。

步骤 5:将设备安装在目标位置

设备抵达其最终目标位置后,将通过 DPS 完成自动预配过程。

有关详细信息,请参阅预配TPM 证明

资源

除了本文中建议的安全做法以外,Azure IoT 还提供了一些资源来帮助用户选择安全硬件和创建安全 IoT 部署: