2. 核心概念解析:数字签名、哈希算法、非对称加密、证书链、时间戳服务

在深入制品签名链路的自动化测试之前,必须透彻理解支撑整个信任体系的五个核心密码学概念。它们共同构成了从“代码提交”到“部署验证”的信任传递链条。任何一个环节的薄弱或误解,都会导致自动化测试方案的设计缺陷。

2.1 非对称加密:信任的数学基石

非对称加密使用一对数学上关联但无法互相推导的密钥:私钥(必须保密)和公钥(可以公开分发)。其核心特性是:用私钥加密的数据只能用对应的公钥解密,反之亦然。这一特性直接支撑了数字签名和加密通信两种场景。

关键理解: 在制品签名场景中,私钥用于签名(证明身份),公钥用于验签(验证身份)。私钥的泄露意味着整个信任体系的崩溃。
非对称加密 vs 对称加密 对称加密(单密钥) 明文 密文 同一密钥 密钥分发困难,N 方通信需 N(N-1)/2 个密钥 加密速度快,适合大量数据 非对称加密(密钥对) 明文 密文 公钥加密 私钥解密 公钥公开分发,私钥本地保管 加密速度慢,通常只加密对称密钥或哈希值

2.2 哈希算法:数据的数字指纹

哈希算法(Hash Algorithm)将任意长度的输入数据,通过数学函数映射为固定长度的输出值(称为哈希值或摘要)。优秀的哈希算法具有以下关键特性:

  • 单向性:从哈希值无法逆向推导出原始数据。
  • 抗碰撞性:极难找到两个不同输入产生相同哈希值。
  • 雪崩效应:输入数据的微小变化会导致输出哈希值完全不同。
自动化测试要点: 在验证签名链路时,必须确认制品使用的哈希算法是否符合安全策略(如 SHA-256 或更高)。禁止使用已废弃的 MD5 或 SHA-1。测试脚本应能自动检测哈希算法类型并标记不合规项。

2.3 数字签名:身份与完整性的双重保证

数字签名是非对称加密与哈希算法的结合应用。签名者使用自己的私钥对制品的哈希值进行加密,生成签名数据。验证者使用签名者的公钥解密签名,并与重新计算的制品哈希值进行比对。

步骤 签名方(构建系统) 验证方(部署系统)
1 计算制品的哈希值 H 获取签名者的公钥
2 使用私钥加密 H,生成签名 S 使用公钥解密签名 S,得到 H1
3 将制品 + 签名 S + 证书打包发布 重新计算制品的哈希值 H2
4 — 比较 H1 与 H2:一致则验证通过
常见陷阱: 自动化测试必须覆盖“签名验证失败”的负面场景,包括:使用错误公钥、篡改制品内容、签名数据损坏、哈希算法不匹配。仅测试“正常通过”路径是不够的。

2.4 证书链:信任的层级传递

单个公钥无法解决“公钥属于谁”的信任问题。证书链(Certificate Chain)通过层级化的信任模型解决此问题:

  1. 根证书(Root CA): 自签名,是整个信任链的锚点。必须预置于信任存储区。
  2. 中间证书(Intermediate CA): 由根证书签发,用于分担签发压力并隔离风险。
  3. 终端实体证书(Leaf/End-entity): 由中间证书签发,直接用于制品签名。
证书链信任传递结构 根证书 (Root CA) 自签名 · 信任锚点 中间证书 (Intermediate CA) 由根证书签发 终端实体证书 用于制品签名 信任验证路径 验证终端证书 → 验证中间证书 → 验证根证书(信任存储区) 任一环节失败则验证不通过 自动化测试需验证: 证书链完整性 · 有效期 · 吊销状态

2.5 时间戳服务:签名有效期的锚定

时间戳服务(Timestamp Authority, TSA)解决了“签名在证书过期后是否仍然有效”的问题。当制品被签名时,签名方向 TSA 提交签名哈希值,TSA 返回一个包含可信时间的签名令牌。即使签名证书后来过期,只要时间戳令牌本身有效且由可信 TSA 签发,该签名在法律和技术上仍被视为有效。

自动化测试关键点:
  • 验证时间戳令牌的签名是否来自配置的可信 TSA 列表。
  • 验证时间戳中的时间是否在合理范围内(防止时钟偏差攻击)。
  • 测试“证书已过期但时间戳有效”的场景,确保验证逻辑正确接受。
  • 测试“时间戳令牌被篡改”的场景,确保验证逻辑正确拒绝。

2.6 核心概念关系总结

概念 在制品签名链路中的角色 自动化测试关注点
非对称加密 提供签名与验签的数学基础 密钥长度合规性(≥2048位 RSA 或 ≥256位 ECDSA)
哈希算法 将大文件压缩为固定长度摘要 算法强度(SHA-256 及以上)、防碰撞测试
数字签名 绑定签名者身份与制品内容 正向验证、篡改检测、重放攻击防护
证书链 建立从根到实体的信任路径 链完整性、有效期、吊销状态(CRL/OCSP)
时间戳服务 锚定签名时间,延长签名有效期 TSA 可信性、时间合理性、令牌签名验证