2. 制品签名基础概念:数字签名、哈希算法、非对称加密在制品签名中的作用

在 IDP 制品签名链路中,数字签名、哈希算法与非对称加密是三大核心密码学原语。它们协同工作,确保制品的完整性、真实性与不可否认性。理解三者的角色与交互关系,是设计自动化测试验证方案的前提。

2.1 核心概念速览

概念 核心作用 在制品签名中的职责
哈希算法 将任意长度数据映射为固定长度摘要(指纹) 为制品内容生成唯一、不可逆的摘要,用于完整性校验
非对称加密 使用公钥/私钥对进行加解密或签名验证 私钥签名,公钥验签;解决密钥分发与身份认证问题
数字签名 结合哈希与非对称加密,对摘要进行加密签名 提供制品的来源认证与防篡改保证

2.2 哈希算法:制品的数字指纹

哈希算法(如 SHA-256、SHA-384)是签名链路的第一道防线。它对制品二进制内容计算固定长度的摘要(Digest)。哈希算法具有以下关键特性:

  • 单向性:从摘要无法反推出原始制品内容。
  • 抗碰撞性:极难找到两个不同制品具有相同摘要。
  • 雪崩效应:制品内容微小改动,摘要完全改变。
自动化测试要点: 验证哈希算法实现是否符合预期(如 SHA-256 输出 32 字节),以及同一制品在不同环境(OS、语言库)下摘要是否一致。
哈希算法在制品签名中的位置 哈希算法:为制品生成唯一摘要 制品二进制 myapp.jar SHA-256 哈希 不可逆计算 摘要(Digest) a3f2b8c9...(32字节) 关键特性 • 单向性:摘要 → 制品不可行 • 抗碰撞:不同制品摘要相同的概率极低 • 雪崩效应:1 bit 变化 → 摘要完全改变

2.3 非对称加密:公钥与私钥的协作

非对称加密使用一对数学关联的密钥:私钥(Private Key) 和 公钥(Public Key)。私钥由签名者秘密持有,公钥可公开发布。在制品签名场景中:

  • 签名操作:使用私钥对制品摘要进行加密,生成签名。
  • 验证操作:使用公钥解密签名,并与重新计算的摘要比对。
自动化测试关注点: 密钥对生成算法(RSA/ECDSA)、密钥长度(2048/4096 bit)、密钥格式(PEM/DER)以及私钥保护机制(HSM/KMS)的测试覆盖。

2.4 数字签名:完整链路与验证流程

数字签名将哈希算法与非对称加密结合,形成完整的制品签名与验证链路。以下是标准流程:

  1. 计算摘要:对制品内容使用哈希算法(如 SHA-256)生成摘要 H。
  2. 私钥签名:使用签名者的私钥对摘要 H 进行加密,得到签名值 S。
  3. 打包分发:将制品、签名值 S、签名者证书(含公钥)一起分发。
  4. 验证摘要:验证方对收到的制品重新计算摘要 H'。
  5. 公钥验签:使用签名者公钥解密签名 S,得到原始摘要 H,与 H' 比对。
安全边界: 验证方必须信任公钥的来源(通过 PKI 证书链),否则攻击者可替换公钥伪造签名。自动化测试需覆盖证书链验证失败、证书过期、吊销列表检查等场景。
数字签名完整流程 数字签名:签名与验证完整流程 签名方(Signer) 制品 SHA-256 摘要 私钥 签名值 传输 制品 +签名 验证方(Verifier) 接收制品 重新计算摘要 公钥 比对摘要 数字签名验证步骤 ① 验证方对接收到的制品重新计算 SHA-256 摘要 H' ② 使用签名者公钥解密签名值 S,得到原始摘要 H ③ 比对 H' 与 H:一致 → 签名有效;不一致 → 签名无效 ④ 公钥信任链验证(证书链)是安全前提

2.5 三者在自动化测试中的验证要点

组件 测试验证项 典型测试方法
哈希算法 算法正确性、摘要长度、跨平台一致性 使用已知测试向量比对输出;不同语言库交叉验证
非对称加密 密钥生成、密钥格式、加解密正确性 生成密钥对 → 签名 → 验签闭环测试;异常密钥格式测试
数字签名 签名生成、签名验证、篡改检测、证书链 修改制品 1 bit 验证签名失败;过期证书验证;中间人公钥替换测试

2.6 常见签名算法与推荐配置

算法组合 哈希算法 非对称算法 推荐场景
RSA-SHA256 SHA-256 RSA (2048+ bit) 通用制品签名,兼容性好
ECDSA-SHA256 SHA-256 ECDSA (P-256) 性能敏感场景,签名更短
Ed25519 SHA-512 (内部) EdDSA (Curve25519) 现代安全、高性能、固定长度签名
自动化测试建议: 在 IDP 制品签名链路测试中,优先覆盖 RSA-SHA256 和 ECDSA-SHA256 两种组合,确保兼容主流 CI/CD 工具链。同时增加对 Ed25519 的测试,为未来迁移做准备。