2. 制品签名基础概念:数字签名、哈希算法、非对称加密在制品签名中的作用
在 IDP 制品签名链路中,数字签名、哈希算法与非对称加密是三大核心密码学原语。它们协同工作,确保制品的完整性、真实性与不可否认性。理解三者的角色与交互关系,是设计自动化测试验证方案的前提。
2.1 核心概念速览
| 概念 | 核心作用 | 在制品签名中的职责 |
|---|---|---|
| 哈希算法 | 将任意长度数据映射为固定长度摘要(指纹) | 为制品内容生成唯一、不可逆的摘要,用于完整性校验 |
| 非对称加密 | 使用公钥/私钥对进行加解密或签名验证 | 私钥签名,公钥验签;解决密钥分发与身份认证问题 |
| 数字签名 | 结合哈希与非对称加密,对摘要进行加密签名 | 提供制品的来源认证与防篡改保证 |
2.2 哈希算法:制品的数字指纹
哈希算法(如 SHA-256、SHA-384)是签名链路的第一道防线。它对制品二进制内容计算固定长度的摘要(Digest)。哈希算法具有以下关键特性:
- 单向性:从摘要无法反推出原始制品内容。
- 抗碰撞性:极难找到两个不同制品具有相同摘要。
- 雪崩效应:制品内容微小改动,摘要完全改变。
自动化测试要点: 验证哈希算法实现是否符合预期(如 SHA-256 输出 32 字节),以及同一制品在不同环境(OS、语言库)下摘要是否一致。
2.3 非对称加密:公钥与私钥的协作
非对称加密使用一对数学关联的密钥:私钥(Private Key) 和 公钥(Public Key)。私钥由签名者秘密持有,公钥可公开发布。在制品签名场景中:
- 签名操作:使用私钥对制品摘要进行加密,生成签名。
- 验证操作:使用公钥解密签名,并与重新计算的摘要比对。
自动化测试关注点: 密钥对生成算法(RSA/ECDSA)、密钥长度(2048/4096 bit)、密钥格式(PEM/DER)以及私钥保护机制(HSM/KMS)的测试覆盖。
2.4 数字签名:完整链路与验证流程
数字签名将哈希算法与非对称加密结合,形成完整的制品签名与验证链路。以下是标准流程:
- 计算摘要:对制品内容使用哈希算法(如 SHA-256)生成摘要 H。
- 私钥签名:使用签名者的私钥对摘要 H 进行加密,得到签名值 S。
- 打包分发:将制品、签名值 S、签名者证书(含公钥)一起分发。
- 验证摘要:验证方对收到的制品重新计算摘要 H'。
- 公钥验签:使用签名者公钥解密签名 S,得到原始摘要 H,与 H' 比对。
安全边界: 验证方必须信任公钥的来源(通过 PKI 证书链),否则攻击者可替换公钥伪造签名。自动化测试需覆盖证书链验证失败、证书过期、吊销列表检查等场景。
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 的测试,为未来迁移做准备。