3. 信任边界模型:零信任架构、供应链信任链、签名与验证的信任传递机制
在云原生供应链安全中,信任边界不再是传统的网络边界。Sigstore 通过构建从代码提交到镜像部署的完整信任链,实现了零信任架构下的签名与验证传递机制。本章深入剖析信任边界的理论模型与 Sigstore 的工程实现。
3.1 零信任架构下的信任边界重构
传统安全模型假设“内网可信、外网不可信”,而零信任架构(Zero Trust Architecture, ZTA)的核心原则是“永不信任,始终验证”。在软件供应链中,这意味着:
- 无隐式信任:任何组件、构建步骤或镜像层都不应被默认信任。
- 最小权限:签名密钥、访问令牌仅在最短生命周期内授予最小范围。
- 持续验证:每次拉取、部署操作都必须验证签名和元数据。
关键概念:信任边界迁移
信任边界从“网络位置”迁移到“密码学身份”。Sigstore 通过 Fulcio 证书和 Rekor 日志,将信任锚定在可验证的公开透明日志上,而非 IP 地址或网络段。
信任边界从“网络位置”迁移到“密码学身份”。Sigstore 通过 Fulcio 证书和 Rekor 日志,将信任锚定在可验证的公开透明日志上,而非 IP 地址或网络段。
3.2 供应链信任链模型
Sigstore 构建的信任链包含四个核心环节,每个环节都通过签名与验证建立信任传递:
| 环节 | 信任锚点 | 签名对象 | 验证方式 |
|---|---|---|---|
| 开发者身份 | Fulcio 根证书 / OIDC 提供商 | 代码提交、标签 | 验证证书链 + OIDC |
| 构建过程 | 构建平台身份(GitHub Actions、GitLab CI) | 构建产物(SBOM、签名) | 验证构建者证书 + Rekor 条目 |
| 镜像签名 | Cosign 生成的临时密钥对 | 容器镜像摘要 | 验证镜像签名与 Rekor 时间戳 |
| 部署验证 | 策略引擎(Kyverno、OPA) | 镜像 + 签名 + 策略 | 策略评估 + 签名验证 |
信任传递的核心公式可抽象为:
信任(镜像) = 验证(签名(镜像摘要), 证书(身份)) ∧ 验证(证书, Fulcio根) ∧ 存在(Rekor条目)
3.3 签名与验证的信任传递机制
Sigstore 的信任传递机制通过三个组件协同工作,形成可审计、不可抵赖的信任链:
信任传递关键点:
- 短期证书:Fulcio 颁发的证书有效期通常为 10 分钟,降低密钥泄露风险。
- 透明日志:Rekor 保证签名操作可审计,任何验证方都能独立验证签名存在性。
- 无中心化信任:信任根分散在多个 OIDC 提供商和 Fulcio 实例上,避免单点故障。
3.4 信任边界适配策略
在企业环境中适配 Sigstore 信任边界时,需考虑以下架构决策:
| 场景 | 信任边界模型 | Sigstore 适配方案 | 注意事项 |
|---|---|---|---|
| 公有云 SaaS | 信任 Sigstore 公共服务 | 直接使用 sigstore.dev 服务 | 依赖外部网络,需考虑可用性 |
| 私有化部署 | 信任内部 PKI | 自建 Fulcio + Rekor 实例 | 需维护根证书和日志集群 |
| 混合云 | 分层信任 | 内部签名 + 外部验证桥接 | 证书链交叉认证 |
| 离线环境 | 气隙信任 | 预分发根证书 + 本地 Rekor | 日志同步策略 |
3.5 信任传递的工程验证
以下是一个完整的信任链验证命令示例,展示从镜像签名到部署验证的信任传递:
# 1. 使用 Cosign 签名镜像(自动获取 Fulcio 证书并记录到 Rekor)
cosign sign --yes ghcr.io/myorg/myapp:v1.0.0
# 2. 验证镜像签名(验证证书链 + Rekor 条目)
cosign verify \
--certificate-identity-regexp ".*@myorg\.com" \
--certificate-oidc-issuer-regexp "https://accounts\.google\.com" \
ghcr.io/myorg/myapp:v1.0.0
# 3. 查询 Rekor 日志确认签名时间戳
rekor-cli search --sha256 $(cosign triangulate ghcr.io/myorg/myapp:v1.0.0 | cut -d@ -f2)
# 4. 策略引擎验证(Kyverno 集群策略示例)
kubectl apply -f - <<EOF
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: verify-sigstore
spec:
validationFailureAction: Enforce
rules:
- name: verify-signature
match:
any:
- resources:
kinds:
- Pod
verifyImages:
- imageReferences:
- "ghcr.io/myorg/*"
attestors:
- entries:
- keyless:
subject: ".*@myorg\\.com"
issuer: "https://accounts\\.google\\.com"
rekor:
url: https://rekor.sigstore.dev
EOF
信任边界陷阱:
- 证书过期:Fulcio 短期证书过期后,Rekor 条目仍可验证,但需确保验证时使用正确的根证书。
- 日志分叉:自建 Rekor 实例需配置监控,防止日志分叉导致验证失败。
- OIDC 提供商变更:如果 OIDC 提供商更换签发密钥,需更新 Fulcio 信任配置。
3.6 信任边界模型总结
Sigstore 的信任边界模型通过以下机制实现零信任供应链安全:
- 密码学身份:替代网络身份,每个签名操作都绑定到可验证的 OIDC 身份。
- 透明日志:所有签名事件公开可查,提供不可抵赖性。
- 短期凭证:最小化密钥泄露影响范围。
- 策略驱动验证:部署时强制验证,确保只有经过签名的镜像才能运行。