摘要
- RFC 9925 于2026年2月作为 IETF 提议标准发布,定义了
id-alg-unsigned:参数必须省略、签名值长度为零的 X.509 签名算法标识。 - 这种格式承载主体信息,却不提供签发者证明。签发者字段可以为兼容而填写,但对象仍然既非自签名,也非自签发。
- 不需要验证 X.509 签名的应用可以在限定场景接收它;任何证书路径验证器都必须拒绝用
id-alg-unsigned代替真实签名。 - 去掉装饰性的自签名,可以减少后量子签名体积、避免跨协议复用密钥,也能容纳只能做密钥封装的公钥。它不是安全绕过,而是把缺失的信任边明确标出。
- 因此,信任、完整性和授权必须由另一套机制提供。每次安装都应生成一份“信任来源与范围凭据”,记录精确字节、外部证据、安装者、目标信任库、允许用途、变更历史和移除路径。
一个故意把证明栏留空的证书
RFC 9925 最有力量的数值是零。
无签名证书使用对象标识符 1.3.6.1.5.5.7.6.36 表示 id-alg-unsigned。算法参数不出现,signatureValue 是零位长的 BIT STRING。主体名称、公钥和扩展仍被装在广泛兼容的 X.509 结构里,但解析器不再被要求假装某个签发者对这些字段作过密码学背书。
这和“忘记验签”完全不同。规范为缺失本身命名,并规定了处理分支:不执行证书签名验证的接收方可以接受该算法;需要验签的接收方必须拒绝;证书路径验证不得让空值占据签发者签名的位置。对象在语法上可以有用,在信任图上却不能充当边。
治理问题由此变得可见。安全界面很容易从熟悉的形状借来权威感。名为“证书”的文件可能显示签发者、有效期和绿色图标;资产清单可能把它与 CA 签发的凭据并列;运维人员记得它来自一个可信镜像,却找不到当初是谁批准了镜像。RFC 9925 没有要求产品制造这些错觉。相反,它精确地说明了空白,产品和组织因而更有责任精确地说明信任来自哪里。
节点仍在,边已经消失
RFC 9925 给出了一个清楚的图模型。普通 X.509 证书把两个实体联系起来:一端是主体信息,另一端是签发者给出的证明。在公钥基础设施图中,两者是节点,证书签名构成它们之间的边。
有些场景只需要节点。信任锚是验证路径的起点,并不需要再从上级证书获得权威;固定 TLS 部署可以通过独立的配置通道认定某个公钥或指纹;设备也可能需要用 X.509 容器装载无法签名的 KEM 公钥。为这些用途制造一个自签名,往往只是满足语法,并没有创造新的信任事实。
无签名格式删掉了虚构的边。这提高了表达的真实性,却也迫使组织回答一个曾被自签名包装遮住的问题:为什么这个节点在这里具有权威?
RFC 5280 早已揭示了答案的一部分。即使信任锚以自签名证书表示,该证书本身也不属于待验证路径;进入路径处理的是受信任的名称、算法、公钥和约束。它们之所以可信,是因为某个可信的带外程序交付了这些输入。选择哪些认证机构属于本地决定,而且可能因应用和验证路径而异。
所以,自签名从来不是终极信任来源。它最多证明相应私钥曾对同一对象签过名,也可能被部分软件用来发现存储损坏;它不能证明管理员应该安装这把钥匙、主体名称一定正确,更不能证明所有应用都应接受它。RFC 9925 把这层含混剥开:节点看得见,缺失的边也看得见,外部决定必须拿出自己的证据。
被填写的签发者仍可能只是占位符
最容易误导人的并不是空签名,而是非空的签发者名称。
X.509 语法要求签发者字段存在,不能留空;既有软件也可能假定信任锚的主体和签发者名称相同。因此,RFC 9925 允许发送方把主体名称复制到签发者字段,另提供一个专用的简短占位名称。但两种选择都不会产生签发者。没有签名,就不是自签名;没有签发关系,就不是自签发。
这正是 Lu Heng 在《The Policy Mirror》中要求避免的制度错读:记录应呈现真实存在的权力和事件,而不是让旧语法暗示出一段不存在的关系。如果软件仍把占位符显示为“签发者”,它就把必填槽位变成了机构声明;如果路径图画出主体指向自己的环,它就重新制造了标准有意删除的边。
扩展字段也应遵守同样纪律。authority key identifier 与 issuer alternative name 都在描述签发者,通常不应出现;key usage 和 basic constraints 可以描述主体具备何种能力,却不能替代安装授权。一个主体即使被标为可充当 CA,也只是拥有技术能力;是否把它放入某个信任库,仍由外部权力决定。
被登记不等于被验证
IANA 已登记 id-alg-unsigned。登记的作用,是让不同系统识别该值并找到规范;它不会让空签名变得有效,不会认证主体,也不会批准一次信任库变更。
这一点尤其重要,因为注册表经常被误读为认可名单。这里的登记恰恰帮助软件精确识别“这不是签名”,并在验签场景中执行拒绝。没有专门支持的传统验证器看到无法验证的算法,安全默认应当是失败关闭;只有原本就打算在外部认证条件下消费主体信息的有限功能,才需要显式处理。
RFC 9925 也点明了危险路径:若应用在证书路径中接受该标识,或在任何必须验证 X.509 签名的地方放行它,验签就被绕过。RFC 8725 对另一类令牌系统提出了相同的基础纪律——调用者必须能够限定可接受算法,声明的算法也必须与实际执行的操作绑定。注册表能定义状态,不能替每个产品证明状态转换正确;那份证明只能来自测试、配置和运行证据。
为什么删去签名反而可能更安全
“无签名证书”听上去像削弱安全。在 RFC 9925 的目标场景里,结论可能正好相反。
许多信任锚表示中的自签名根本不会被检查,只因 X.509 留有签名槽、软件又期待证书形状而存在。后量子算法会让这种不用的签名占据大量字节。若主体本是终端实体,生成自签名还会让同一把钥匙同时服务于 X.509 和实际业务协议,扩大跨协议攻击面。若公钥只支持密钥封装,它甚至没有能力签出这个占位物。
把未被依赖的密码学动作换成一个有名称的空值,可以减少安全表演。实现者被明确告知不能从该字段推导信任,路径验证器也有清楚的失败条件,密钥则不必承担设计之外的用途。这是对声明范围的收缩,而不是让验证任意消失。
但这套辩护只有在真实信任机制可查时成立。“带外”只是边界说明,并不是解释。它可能指当面核对指纹、签名固件、受保护配置仓库、企业设备管理事务、制造流程,或管理员手动选择。这些路径的负责人、适用范围和恢复能力并不相同,不能用一个模糊标签代替。
信任权移到了安装者手中
RFC 6024 为这层外部治理提供了一套实用词汇。信任锚以公钥和约束表示一个权威实体;信任锚管理者控制一个或多个信任库;信任库可以只服务某个应用、某台设备或多个共享服务;认可范围还可限定到部分用户或用途。管理操作不只是“导入”,还包括新增、删除、替换,以及验证提供变更者的身份和授权。
这揭示了权力转移:当文件不再包含签发者证明,执行安装的人或系统就不只是在搬运数据,而是在作出实际生效的信任决定。
安装链至少要回答四个问题:这是否是获批的精确字节?提供方是否有权提出这个锚?执行者是否有权修改目标信任库?这把钥匙可以为哪些应用、名称、政策和时间段建立信任?空签名不能回答任何一个问题。
哈希能证明字节一致,却不能解释用途范围;安全通道能认证来源,却不能证明来源有权绑定某项应用;管理员权限能完成写入,却不自动等于政策授权;路径验证成功能说明新增锚让一条路径通过,却不能证明允许它通过的决定合法。因此,外部信任需要一份记录,而不只是一套传输机制。
信任来源与范围凭据
一份可用的凭据应从对象本身开始,而不是从文件名开始。它记录精确文件摘要、无签名算法标识、主体公钥和关键角色字段,并明确声明:该对象不提供签发者签名,不能满足证书路径中的任何签名步骤。
第二部分记录来源:对象取自哪个仓库、设备镜像、软件包、仪式或管理员?是哪一个外部哈希、签名、保护通道或现场比对保证完整性?什么证据认证了提供方,什么规则证明该提供方有权提供信任信息?
第三部分记录决定:谁以什么职权批准安装,何时决定,写入哪个信任库,影响哪些应用或设备群?允许的命名空间、政策、用途和期限应被逐项列出,而不是让一个共享库中的“存在”变成普遍权威。
最后是生命周期:哪条记录替代本记录,什么事件触发更换或删除,谁负责下次复审,误装如何纠正,管理者或密钥失陷后如何恢复?公开或跨团队视图可以保持克制,不必暴露根库内容、管理员凭据或敏感分发路径,只需展示对象摘要、决策权威、限定范围、当前状态、变更沿革和纠错联系人。
凭据不会把对象变成有签名证书,也不会为本地信任创造一个全球中心。它只是防止一个已经存在的决定藏进熟悉的文件扩展名后面,最后无人负责。
证据边界
现有来源不能证明 RFC 9925 已被广泛部署,不能列出哪些产品支持它,也不能证明某个实现已经错误处理。LAMPS 工作组章程表明后量子 PKIX 和 S/MIME 机制仍在推进,但章程不是部署遥测;IANA 条目证明分配,不证明处理正确。
本文也没有断言所有自签名都毫无用途。RFC 9925 承认,部分应用用自签名检测意外存储损坏;采用无签名格式后,这类用途就需要另一套完整性机制。本文同样没有说每个无签名证书都是信任锚;它也可以在其他已受外部认证的场景中承载独立主体信息。
能够确证的结论更窄,但已足够重要:RFC 9925 有意把主体数据与签发者证明分离,要求路径验证器拒绝空签名,并把完整性与信任放到对象之外。这是一条合理而清晰的技术边界。治理也应让外部那一半同样可检查。
来源
- Lu Heng,《The Policy Mirror》
- RFC 9925,《Unsigned X.509 Certificates》
- RFC 5280,《Internet X.509 Public Key Infrastructure Certificate and CRL Profile》
- RFC 4158,《Internet X.509 Public Key Infrastructure: Certification Path Building》
- RFC 5914,《Trust Anchor Format》
- RFC 6024,《Trust Anchor Management Requirements》
- RFC 8446,《The Transport Layer Security (TLS) Protocol Version 1.3》
- RFC 8725,《JSON Web Token Best Current Practices》
- IANA,《Structure of Management Information (SMI) Numbers》
- IETF,LAMPS 工作组章程
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
