Go 1.26 的“加密风暴”:当 Hashicorp Vault 的合规需求,撞上 Go 团队的安全哲学
💡
原文中文,约3700字,阅读约需9分钟。
📝
内容提要
Go 1.26计划废除crypto包中的rand io.Reader参数,遭Hashicorp Vault开发者强烈反对,认为此变更影响HSM和FIPS合规性。Go安全团队回应称安全性优先,复杂需求不应影响标准库设计,最终坚持设计哲学,确保crypto库更安全、清晰。
🎯
关键要点
- Go 1.26计划废除crypto包中的rand io.Reader参数,引发Hashicorp Vault开发者强烈反对。
- Hashicorp Vault开发者认为此变更影响HSM和FIPS合规性,可能导致核心功能失效。
- Go安全团队坚持安全性优先,认为复杂需求不应影响标准库设计。
- Filippo Valsorda指出,Vault的需求在安全角度上毫无意义,增加复杂性反而带来更多风险。
- Go团队强调标准库的职责是为大多数用户提供安全、简单的API,而不是满足少数合规需求。
- 辩论中提到的确定性密钥生成应有明确的规范,而不是滥用随机性参数。
- Go团队采取家长式安全策略,默认提供最安全的选项,逐步移除误用的高级选项。
- API设计应清晰,避免参数被滥用,必要功能应设计专门的API。
- Go团队通过GODEBUG环境变量提供过渡期,帮助用户适应破坏性变更。
- 最终,Go团队坚持设计哲学,确保crypto库更安全、清晰,长远受益于整个Go生态。
➡️