主要观点:需要安全生成和管理各种秘密,如 SSH 私钥等,AWS Nitro Enclaves 可用于安全可靠地执行敏感操作(如生成秘密)。
关键信息:
- 生成秘密需保证保密性、完整性和真实性,现有方法如密码管理器和硬件凭证各有局限。
- AWS Nitro Enclaves 是隔离执行环境,支持证明功能可生成运行环境和代码的签名指纹,需有可重复的构建过程。
- 生成秘密的过程:Go 程序经安全工程师审核合并到仓库主分支,CI 确定性构建包含编译代码的隔离区图像文件,本地构建并比较指纹,在 AWS EC2 实例上启动隔离区并请求签名证明证书,隔离区拥有专属 AWS KMS 密钥对用于解密敏感输入,运行程序后准备输出并保护敏感输出。
- 验证输出:生成临时密钥对请求 AWS 证明文档并签名,通过验证信任链确保输出真实,可通过单个命令自动验证整个信任链和 PCR 值。
重要细节: - 密码管理器生成存储密码可能存在泄露风险,硬件凭证可在隔离环境生成秘密但仅适用于本地某些秘密。
- 构建隔离区图像文件时需确保 CI 未恶意修改程序,启动隔离区时关注 PCR0、PCR1、PCR2 和 PCR3 等。
- 隔离区使用专属 KMS 密钥对解密敏感输入,更新密钥策略会触发警报。
- 验证输出时通过验证签名和 PCR 值确保输出真实,目前工程师需手动输入部分 PCR 值。
- 该系统已用于生产生成高安全秘密,将扩展敏感操作类型。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。