【问题标题】:Go dev.boringcrypto branch - x/crypto library FIPS 140-2 compliance转到 dev.boringcrypto 分支 - x/crypto 库 FIPS 140-2 合规性
【发布时间】:2021-07-18 21:56:17
【问题描述】:

dev.boringcryptobranch of Go 将内置加密模块替换为 FIPS 验证版本:

我们一直在 Google 内部开发一个使用 BoringCrypto(BoringSSL的核心)用于各种加密 原语,以促进一些work related to FIPS 140-2。 我们听说 Go 的一些外部用户会感兴趣 这段代码也是如此,所以这个分支保存了供 Go 使用的补丁 BoringCrypto。

浏览源代码,我可以看到对低级加密代码的修改。但是,我一直在使用的 Go 包都使用 x/crypto library,我在第一眼看不到分支中的任何引用。我想澄清一下这个库与 FIPS 140-2 相关的适用性 - 如果我编译了一个使用 x/crypto 和无聊加密 Go 构建的项目,那么该库是否也符合 FIPS 标准?

如果不是这样 - 为什么不呢?如果 Go 有一个经过 FIPS 验证的维护分支,为什么基础的加密库不会也有相同的修改?

【问题讨论】:

    标签: go encryption cryptography fips boringssl


    【解决方案1】:

    一旦有一个有效的CMVP(加密模块验证程序),对于您正在使用的库,您就可以放心获得 FIPS 140-2 验证。

    请记住,与 FIPS 相关的“合规”和“认证”两个概念都被提及。

    “合规性”是基础密码在批准的加密原语列表中的位置,即AES256-CBC

    “认证/验证”是指基础库已由 NIST 批准的实验室专门审核的地方。

    对于 FIPS 140-2 生产使用(FedRAMP 等),您必须依赖后者。

    看起来CMVP #3753 是您所需要的。

    对证书基础参数的任何修改都会使认证失效。

    【讨论】:

    • 谢谢。这更像是一个围棋问题 - dev.boringcrypto 分支所基于的 BoringSSL 是 validated。我想知道的是x/crypto 库是否执行它自己的加密,或者它是否使用底层的无聊SSL 模块而不进行任何修改(并使验证无效)
    • 简单的测试方法是运行 lib 并尝试使用非 FIPS 加密...比如 blake2、curve25519 或其他...FIPS 的核心是它不应该让你如果库处于 FIPS 模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    相关资源
    最近更新 更多