摘要

  • IESG 于 2026 年 7 月 30 日批准 draft-ietf-acme-device-attest 作为 Proposed Standard;第 10 版仍在 RFC Editor 队列,本文不预设最终 RFC 编号或任何实施情况。
  • device-attest-01 可以把 ACME Order、设备或硬件模块标识、证明中的公钥与 CSR 公钥连成一条签发证据链;其强度仍取决于证明格式、签发机构,以及覆盖的是 token 还是含账户绑定的完整 key authorization。
  • 这条证据链授权的是一次签发事件,并不会持续报告设备健康;在隐私保护模式下,CSR 与证书还可以完全不携带硬件标识。

一张证书,可能被讲成两种故事

企业服务收到一张链路有效的证书时,很容易把它延伸成一个完整故事:这是获准设备,固件依旧合规,私钥还留在原定硬件里,当前操作者也没有变。

新扩展让故事的起点更可验证。它引入 permanent-identifier,表示通常由制造商分配的设备身份;引入 hardware-module,表示生成证书密钥的密码处理模块类型与序列号;再用 device-attest-01 完成挑战。IANA 登记表已经显示这些条目,并以 RFC-to-be 作为引用。审批和登记是真实的协调事实,却不是某个产品已经实现、某台设备仍然健康的证据。

扩展真正建立的能力比“可信设备”四个字窄得多:它让 CA 在签发时验证一组绑定关系。

挑战究竟绑定了什么

服务器先给出新的 ACME challenge token。通常,客户端把 token 与 ACME 账户密钥指纹组合成 key authorization,再让特定证明格式覆盖该值。服务器验证格式,核对被覆盖的值与本地保存值,并确认声明中的设备标识与 Order 一致。

安全章节补全了三方关系:证明必须来自 CA 策略所信任的证明机构;证明中的公钥必须等于 CSR 公钥;证明中的设备标识必须等于 Order 标识。若标识还要写入 CSR 与证书,相关字节必须与 Order 逐字节一致,不能通过大小写、编码或其他规范化来“修正”。

这张凭据明确回答:哪个证明机构、哪个设备标识、哪把申请公钥,在何次 Order 上相遇。它远强于申请人自行把一个序列号抄进 CSR。

但不同格式未必覆盖同一个对象。有些外部证明机构在 ACME 账户密钥尚不可用时就完成签名,只能覆盖 token。token 能提供新鲜性,却不能把证明绑定到该账户密钥;只有完整 key authorization 才多出这条连接。数据库若只留一个“证明通过”的布尔值,就会抹去关键差别。

提供过挑战,不等于完成了挑战

第 10 版允许服务器在同一 authorization 里同时提供 device-attest-01 与其他挑战。按照 ACME 规则,完成其中任一项即可满足该 authorization。这有利于异构设备群逐步迁移,却也产生了新的审计义务。

系统支持硬件证明、CA 曾提供硬件证明,都不能证明这次 Order 实际走了它。若下游策略区分“经过证明签发”与普通签发,持久记录必须写明真正完成的 challenge,而不是只记录服务器菜单里出现过哪些选项。

External Account Binding 又是另一层控制。它能限制哪些企业账户有权申请证书,却不能替代“申请密钥确实属于所称设备”的证明;反过来,设备证明成功也不能让账户授权永久有效。

证书可能完全没有硬件身份

为了保护隐私,该扩展调整了 RFC 8555 对这两类标识的匹配要求。客户端可以不把永久设备标识或硬件模块标识写进 CSR;计划进行隐私保护签发的服务器甚至可以拒绝携带这类标识的 CSR。CA 可以用硬件证据授权签发,最终证书只携带逻辑工作负载身份。

这种分离很重要。永久序列号若进入证书,可以跨续期、跨服务展示和跨工作负载关联设备。若再进入 Certificate Transparency 日志或交给组织边界外的依赖方,披露几乎不可逆。服务需要的是逻辑身份时,物理设备标识还会加重换机与迁移成本。

分离也限制了依赖方的推断。没有硬件标识的证书,不是一张可携带的证明收据。除非服务另行收到经过认证的签发记录或定义明确的证书声明,否则无法从证书反推出当时采用的格式、信任的机构、完成的挑战或 CA 检查过的姿态属性。

设备姿态总有时间戳

证明载荷可能包含固件、启动状态、操作系统版本或硬件安全等级。草案允许 CA 依据这些属性拒绝签发,却刻意不统一各格式的验证程序和本地政策。TPM、TEE 与操作系统密钥库的声明,不会因为都从同一个 ACME 端点通过,就自动获得相同强度。

即使姿态声明当时验证充分,它描述的也是挑战时刻。证书可能比那种状态、信任库、账户授权和设备占有关系活得更久。吊销能处理一部分后续事件,但该扩展没有把证书变成持续远程证明。

按 Heng Lu 的现实分层,边界很清楚:IESG 批准是流程事实,IANA 标签是命名空间事实,挑战成功是签发观察,证书是凭证,当前姿态与当前访问授权则是后续运行决策。每一层都有价值,正因为它不冒充下一层。

资料依据