密钥、证书、审计与供应链安全
本文负责凭据生命周期、证书验证、审计与构建产物追溯。
1. 面试核心
先记住这几条,再读正文- 密钥访问。 应用用工作负载身份按最小权限读取 secret manager。
- 正常轮换。 签名密钥正常轮换先更新验证方,再切换签发方。卡 · 密钥轮换
- 证书验证。 TLS 服务身份验证需要证书链、有效期和目标名称匹配。
- 泄漏处置。 泄漏密钥需立即撤销,正常轮换的重叠窗口应随之终止。卡 · 事件响应
- 产物来源。 SBOM 列举组件,provenance 记录构建来源与产物摘要。卡 · SBOM 与 provenance
2. 密钥管理
密码、API token 和私钥由 secret manager 集中管理。应用身份只读取指定环境与资源的秘密。开发、测试和生产使用独立凭据。
秘密应避开代码、镜像和构建日志。运行时还要控制诊断端点和内存转储权限。命令行参数会暴露在进程列表中,应改用受控注入。
3. 密钥轮换
正常轮换需给使用方留出切换时间。支持双凭据的服务可按以下顺序操作:
- 创建新版本凭据。
- 验证端同时接受新旧版本。
- 灰度切换使用方,并观察失败率。
- 确认旧版本已停止使用。
- 撤销旧版本,保留操作审计。
单密码系统需要双账号或协调切换。直接替换密码会使尚未刷新的实例认证失败。
JWT 验证方通过 kid 选择已信任集合中的公钥。正常退役需覆盖旧 token 的剩余有效期。重叠窗口还应计入允许的时钟偏差。
JWKS 缓存按有效期刷新。未知 kid 可触发受限刷新,失败后拒绝验证。刷新需合并并限速,避免攻击者放大远程请求。
4. 证书链
TLS 客户端检查信任链、有效期与目标名称。RFC 9525 使用 SAN 中的服务标识匹配目标。跳过身份验证会留下中间人攻击风险。
mTLS 还要求服务端验证客户端证书。证书映射到工作负载主体后,仍需执行资源授权。
5. 证书自动续期
自动续期依赖控制器、验证服务、权限和时钟。监控既要覆盖续期错误,也要检查实际端口证书。证书已签发但尚未热加载,仍会造成到期故障。
私钥泄漏后应生成新密钥并重新签发证书。撤销旧证书,同时核对客户端的撤销检查能力。长连接与缓存的处理需纳入应急方案。
6. 审计日志
高风险事件包括登录、权限变更、密钥读取和数据导出。每条记录包含主体、动作、资源、时间与结果。请求 ID 和策略版本用于关联上下文。
审计字段应脱敏,秘密值不进入日志。审计存储与业务管理员权限隔离。追加写、保留策略和完整性检查降低篡改风险。
日志需要可检索,并对高风险行为告警。演练应验证从告警定位到具体操作所需的时间。
7. 依赖安全
锁文件、固定版本与产物摘要约束构建输入。Maven dependency management 管理版本选择。仓库中的可变产物仍需额外约束。
私有命名空间与仓库来源应明确。CI 使用短期凭据,并隔离不受信构建步骤。扫描结果需进入修复、例外审批和复核流程。
8. SBOM 与 provenance
SBOM 列出组件与版本,便于定位漏洞影响。provenance 记录源码、构建器和产物摘要。
部署前应将证明中的摘要与实际镜像比对。还需校验签名者、构建器与源码仓库是否获准。验证策略应固定可信身份和构建参数。
合法签名只能证明指定主体签署了该摘要。漏洞扫描、测试和运行权限仍承担各自职责。
9. 事件响应
凭据泄漏时,优先撤销旧凭据并限制受影响权限。随后签发新凭据,刷新验证端缓存并验证切换。正常轮换的重叠期不适用于已泄漏密钥。
JWT 私钥泄漏后,攻击者可自行签发 token。应按密钥版本拒绝旧签名,并触发必要的重新登录。审计用于确定访问范围与受影响资源。
依赖漏洞则通过 SBOM 定位服务。修复后重新构建,并核对生产镜像摘要。证书过期、密钥泄漏和产物撤回都应演练。
10. 常见问题
10.1 Base64 与秘密存储
Base64 是可逆编码。秘密提交后,历史记录和克隆仍会保留副本。删除当前文件之后,也需轮换该秘密。
10.2 TLS、授权与审计
TLS 保护传输并验证连接身份。授权决定可执行动作,审计记录实际行为。三者需要分别设计。
11 · 面试题卡片
11.1 如何管理 JWT 签名密钥和 TLS 证书的轮换?
出现公司:字节跳动
考察重点:重叠窗口、JWKS 与实际端点证书。
参考回答
正常轮换先发布新公钥,再切换 JWT 签发密钥。
验证方在过渡期接受新旧版本。旧 token 全部到期后,再移除旧公钥。
TLS 证书需自动续期并在服务端加载。监控应读取实际端点证书,而非仅看签发结果。发生私钥泄漏时,立即撤销旧身份。
11.2 签名私钥泄漏后,还能等待旧 JWT 自然过期吗?
出现公司:暂无已核验的公开来源(本站自测)
考察重点:正常轮换与紧急撤销的差异。
相关内容:事件响应。
参考回答
应立即拒绝旧密钥签发的 token。
攻击者掌握私钥后能持续伪造新 token。
验证端需移除旧公钥并刷新缓存。签发端改用新密钥,受影响会话重新认证。审计记录用于定位攻击期间的访问。
11.3 镜像有签名和 SBOM,部署前还需验证什么?
出现公司:暂无已核验的公开来源(本站自测)
考察重点:构建身份、来源与摘要绑定。
相关内容:SBOM 与 provenance。
参考回答
还需验证签名身份、构建来源和镜像摘要。
证明应来自获准的构建器,并指向批准的源码版本。
SBOM 用于定位组件风险。签名和 provenance 用于核对产物来源。部署策略仍需检查漏洞与运行权限。