3. 信任边界定义:信任边界的逻辑划分、边界内外的数据流特征、信任传递模型
在 Cosign 镜像供应链安全体系中,信任边界是区分可信与不可信操作环境的逻辑分界线。明确信任边界的划分、边界内外的数据流特征以及信任传递模型,是进行数据传输性能优化的前提。错误的边界划分会导致安全盲区或过度校验,直接影响镜像签验性能。
3.1 信任边界的逻辑划分
Cosign 的信任边界通常按以下四个维度进行逻辑划分:
| 维度 | 边界名称 | 边界范围 | 信任等级 |
|---|---|---|---|
| 身份 | 密钥持有边界 | 私钥持有者、硬件安全模块(HSM)、KMS | 最高 |
| 存储 | 仓库信任边界 | OCI 镜像仓库、签名存储(Rekor、Docker Registry) | 中 |
| 执行 | 运行时边界 | CI/CD 流水线、Kubernetes 准入控制器 | 中 |
| 网络 | 传输边界 | 客户端与仓库、仓库与 Rekor 之间的网络链路 | 低 |
性能优化提示: 密钥持有边界是信任的根,所有签名操作必须在此边界内完成。将签名操作迁移至 HSM 或 KMS 可减少本地密钥泄露风险,同时通过硬件加速提升签名性能。
下图展示了 Cosign 镜像供应链中的信任边界逻辑划分:
3.2 边界内外的数据流特征
不同信任边界之间的数据流具有显著差异,理解这些特征有助于针对性地优化传输性能:
3.2.1 边界内部数据流
- 密钥持有边界内部: 私钥操作在 HSM/KMS 内部完成,数据流为本地内存或硬件总线,延迟通常在微秒级,带宽极高。
- 仓库信任边界内部: 镜像层与签名文件在 OCI 仓库内部存储,数据流为内部存储网络,延迟在毫秒级,带宽受限于存储后端。
- 运行时边界内部: 策略引擎与准入控制器之间的通信,数据流为进程间通信或本地网络,延迟较低。
3.2.2 边界之间数据流
| 数据流方向 | 传输内容 | 数据量级 | 延迟特征 | 性能瓶颈 |
|---|---|---|---|---|
| 密钥边界 → 仓库边界 | 签名结果(.sig 文件) | KB 级 | 低(毫秒) | 签名生成速度 |
| 仓库边界 → 运行时边界 | 镜像层 + 签名 + 证书 | MB ~ GB 级 | 高(秒级) | 镜像拉取带宽 |
| 运行时边界 → Rekor | 验证请求 / 查询 | KB 级 | 中(百毫秒) | Rekor API 响应 |
| 传输边界(跨所有边界) | 所有网络数据包 | 动态变化 | 受网络质量影响 | TLS 握手 / 带宽 |
性能优化关键发现: 仓库边界到运行时边界的数据流是最大的性能瓶颈,因为镜像层数据量巨大。签名文件本身很小(KB 级),但验证时需要拉取整个镜像层,导致传输延迟显著增加。
3.3 信任传递模型
Cosign 采用链式信任传递模型,信任从密钥持有边界逐级传递到运行时边界。该模型定义了信任如何在边界之间安全、高效地转移。
信任传递的核心步骤:
- 根信任建立: 在密钥持有边界内,使用私钥对镜像摘要进行签名,生成签名载荷。
- 签名存储: 签名载荷通过传输边界传递到仓库信任边界,存储在 OCI 仓库或 Rekor 透明日志中。
- 信任验证: 在运行时边界,验证者从仓库拉取镜像和签名,使用公钥验证签名有效性。
- 信任链回溯: 验证者通过 Rekor 查询签名记录,确认签名在特定时间点存在,防止密钥泄露后的重放攻击。
下图展示了 Cosign 的信任传递模型:
3.4 信任传递对性能的影响
信任传递模型直接影响数据传输性能,主要体现在以下方面:
| 传递阶段 | 性能开销 | 优化方向 |
|---|---|---|
| 签名生成(①) | CPU 密集型,ECDSA P-256 约 1-5ms | 使用硬件加速(HSM/KMS) |
| 签名存储(②) | 网络 I/O,KB 级数据 | 批量上传、连接复用 |
| 查询 Rekor(③) | API 调用延迟,50-200ms | 本地缓存、异步查询 |
| 拉取签名(④) | 网络 I/O,KB 级数据 | 镜像层缓存、增量拉取 |
| 验证签名(⑤) | CPU 密集型,公钥验证约 0.5-2ms | 批量验证、并行处理 |
常见误区: 不要将信任传递模型中的“信任”理解为“无条件信任”。Cosign 的信任传递是可验证的,每个环节都需要进行密码学验证。跳过验证环节虽然能提升性能,但会破坏供应链安全。
3.5 信任边界与数据传输性能的关系总结
信任边界的划分决定了数据流必须跨越的节点数量和传输距离。每跨越一个信任边界,数据就需要经历一次序列化/反序列化、加密/解密或签名/验证操作,这些操作是性能开销的主要来源。
性能优化的核心策略:
- 减少边界跨越次数: 将签名和验证操作尽量在同一个信任边界内完成,避免不必要的数据传输。
- 压缩边界间数据量: 只传输必要的签名元数据,而非整个镜像层。
- 并行化边界间通信: 在验证多个镜像时,并行发起签名拉取和验证请求。
- 缓存信任状态: 在运行时边界内缓存已验证的签名结果,避免重复验证。