2. 签名校验概述:数字签名的作用、签名与校验的基本流程,为什么 SLO 证据需要签名校验
2.1 数字签名:SLO 证据的“防伪印章”
在 SLO 体系中,证据(如延迟直方图、错误率快照、日志摘要)需要从观测端传输到审计端。如果证据在传输或存储中被篡改,SLO 的合规结论将毫无意义。数字签名为每一份证据附加一个不可伪造的“印章”,确保:
- 完整性:证据内容未被篡改。
- 真实性:证据确实来自声称的签发方(如特定的 Prometheus 实例或 SLO 网关)。
- 不可否认性:签发方无法事后否认曾签发该证据。
核心概念:数字签名使用非对称密码学——私钥签名,公钥验签。私钥由证据签发方秘密保管,公钥公开发布给校验方。
2.2 签名与校验的基本流程
下图展示了从 SLO 证据生成到签名校验的完整数据流:
2.3 为什么 SLO 证据需要签名校验?
SLO 证据是服务等级协议合规的“呈堂证供”。没有签名校验,以下攻击场景将直接破坏 SLO 的可信度:
| 攻击场景 | 后果 | 签名校验如何防御 |
|---|---|---|
| 中间人篡改证据 | 攻击者修改延迟数据,使违规行为被掩盖 | 哈希比对失败,校验不通过 |
| 伪造证据来源 | 恶意节点冒充合法 SLO 网关提交假证据 | 公钥验签失败,无法匹配签发方身份 |
| 重放旧证据 | 将历史合规证据重新提交,掩盖当前违规 | 结合时间戳签名,重放时签名不匹配 |
| 抵赖已签发证据 | 签发方声称从未生成某份证据 | 私钥唯一性使抵赖无效 |
关键提醒:SLO 审计通常涉及跨团队、跨组织的信任边界。签名校验是建立“无需信任中介”的密码学信任基础。没有签名,SLO 证据只能依赖传输层安全(TLS),但 TLS 无法防止存储端篡改或签发方抵赖。
2.4 签名算法选型参考
在 SLO 证据校验场景中,常用的签名算法及其特性如下:
| 算法 | 签名长度 | 性能(签名/验签) | 推荐场景 |
|---|---|---|---|
| Ed25519 | 64 字节 | 极快 | 高吞吐 SLO 网关,证据量大的场景 |
| ECDSA P-256 | 64 字节 | 快 | 兼容现有 PKI 基础设施 |
| RSA-2048 | 256 字节 | 较慢(签名) | 遗留系统或合规要求 |
实践建议:本课程后续章节将基于 Ed25519 实现签名与校验,因其签名短、性能高,且能天然抵抗侧信道攻击。
2.5 签名校验在 SLO 证据链中的位置
下图展示签名校验如何嵌入 SLO 证据的完整生命周期:
从上述流程可以看出,签名校验不是可选项,而是 SLO 证据链中保障信任的强制性环节。后续章节将深入讲解如何用代码实现签名与校验,以及如何管理签名密钥。