摘要
- RFC 9921 的 CTT 先生成 COSE 签名、再让 TSA 对签名字段作时间戳;TTC 则先让 TSA 对载荷字节作时间戳、再由 COSE 签名把两者封装在一起。
- TTC 令牌证明载荷较早存在,并不证明后来的 COSE 签名较早存在;把二者混用,会让撤销后的签名借用不属于它的时间。
审计系统里的两条绿线很有迷惑性:一条写着“时间戳已验证”,一条写着“COSE 签名已验证”。旁边的证书撤销时间却是红色。经办人把三项排成时间线,得出“文件在撤销前已签署”的结论。
真正被证明的,可能只是文件内容在撤销前已经存在。
设想签名人周一把一段载荷的哈希交给时间戳机构 TSA,取得令牌;周二证书被撤销;周三他才把令牌放入 COSE 的受保护头并生成签名。周三的签名确实保护了令牌和载荷,周一的令牌也确实有效。但周一的 TSA 从未收到周三那段签名字节。把这个对象说成“撤销前签名”,是在把一个关于载荷的事实换成一个关于签名的事实。
RFC 9921 在 2026 年为 COSE_Sign 和 COSE_Sign1 定义了两种承载 RFC 3161 TimeStampToken 的方式,目的正是避免这种替换。它不是给 COSE 加一个泛称“时间”的字段,而是规定两条不同的构造顺序、两套不同的 MessageImprint 输入和两种不能互借的验证结论。
CTT 记录签名已经出现;TTC 保留载荷较早出现
在 COSE, Then Timestamp(CTT)中,签名先完成。随后,请求者对 COSE_Sign1 中 CBOR 编码的 signature 字段,或 COSE_Sign 中 CBOR 编码的 signatures 字段计算哈希,再将哈希送至 TSA。返回的令牌被放进 未受保护 的 3161-ctt 头参数。
这里的关键不在于令牌显示日期,而在于 TSA 收到的确是规范规定范围内的签名字节表示。验证方若完成 COSE 签名、时间戳令牌、TSA 信任链及相关政策的验证,就拥有“签名在 TSA 所给时间前已存在”的受限证据。RFC 9921 把 CTT 用于长期签名:证书后来到期或撤销,并不会自动抹去在有效期内已存在的签名证据。
Timestamp, Then COSE(TTC)解决的则是另一件事。它先对 COSE 载荷的字节取哈希;不含 CBOR 的字节串包裹,也不含尚未产生的签名。令牌作为 受保护 的 3161-ttc 头参数出现,之后才对受保护头和载荷生成 COSE 签名。
这使 TTC 很适合保存“某些数据早已存在”的证据。RFC 9921 的透明度/公证场景正利用这一顺序:在把已签名声明的部分登记进追加式日志前,先将令牌放入声明的已签名部分,免得令牌在登记过程中脱落。可这仍不是签名时间证明。日志的收录与一致性、声明人身份、撤销信息何时公开、依赖方是否接受该声明,各有独立的证据与责任人。
规范在安全章节说得直白:受保护头里的载荷时间戳不得被解释成签名创建时间的证明。否则,系统可能接受一份在密钥撤销后才创建的签名,只因为它随身携带一枚更老的载荷令牌。头参数名称不是给人看的注释;它决定验证器应该计算什么以及可以断言什么。
“受保护”并不倒转时间
很多流程会在看到“protected”后停止追问。TTC 的 3161-ttc 受到后来 COSE 签名的保护,含义是后来签名人覆盖了这个令牌和这份载荷。它不能让令牌回头覆盖一个当时尚不存在的签名。
CTT 的令牌位于未受保护头,原因恰恰是签名已经先发生;早先的签名不能追溯覆盖后到的令牌。RFC 9921 因而提醒:攻击者可以删除或替换 CTT 头。对策不是在报告中假装它已被 COSE 签名,而是在传输与静态保存时保护整个 COSE Signed Message,使签名与令牌的关联不被悄悄拆开。
因此,档案不应只保留“通过”状态。它应能还原完整对象哈希、CTT/TTC 模式、参与 MessageImprint 的准确字节、TSA 证书和政策、证书状态证据、携带与保管完整性以及实际采用结果。若 CTT 令牌在迁移中丢失,系统应报告历史时间证据缺失,而不是继续展示一个缺少依据的绿灯。
时间结论需要一条可复演的链
RFC 3161 的 TSA 对哈希表示做时间戳,并不审阅或背书数据的含义。客户端必须核对响应状态、TSA 身份与证书、数据印记、哈希算法、nonce 或可信本地时间、TSA 证书状态及政策是否可接受。genTime 是 TSA 生成令牌的时刻;精度、准确度、延迟和政策决定这项时间结论的边界。
RFC 9921 再加上一项不能省略的计算:嵌入令牌中的 MessageImprint 必须与所选模式规定的准确字节哈希相等。CTT 比对签名字段;TTC 比对载荷字节。附近有一枚 CMS 令牌并不是验证结果。只验证 CMS 而没有重算这一输入,也没有建立 RFC 9921 要求的绑定。
从衡路的运行代码原则看,真正的控制点不在 PDF 政策或产品页面,而在运行中的验证路径:它识别模式、重算正确的字节、取得状态证据、执行版本化的时间规则,并记录谁据此作出了什么决定。格式能解析、密码学能通过、业务被允许、效果被观察到,是四层不同的事实。清楚地区分它们,反而让时间戳成为可用而不是被滥用的证据。
来源
- https://www.rfc-editor.org/rfc/rfc9921.html
- https://www.rfc-editor.org/info/rfc9921/
- https://www.rfc-editor.org/rfc/rfc3161.html
- https://www.rfc-editor.org/rfc/rfc9052.html
- https://www.rfc-editor.org/rfc/rfc5652.html
- https://www.rfc-editor.org/rfc/rfc5280.html
- https://www.iana.org/assignments/cose/cose.xhtml#header-parameters
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

