"Go dev.boringcrypto分支-x/crypto库FIPS 140-2合规性"

3

dev.boringcryptoGo的分支使用FIPS验证版本替换了内置的加密模块:

我们在Google内部开发了一个Go的分支,使用BoringCrypto(BoringSSL的核心)来进行各种加密原语的工作,以进一步推动与FIPS 140-2相关的一些工作。我们听说一些外部Go用户也对这个代码感兴趣,因此这个分支保存了使Go使用BoringCrypto的补丁。

透过源代码检查,我可以看到底层加密代码的修改。然而,我一开始没有看到任何有关x/crypto的引用,因为我一直在使用的Go软件包都使用该库。我希望对这个库与FIPS 140-2的适用性进行澄清 - 如果我使用boringcrypto Go构建编译使用x/crypto的项目,那么该库是否也符合FIPS标准?
如果不是这种情况 - 为什么?如果Go有一个维护的经过FIPS验证的分支,为什么基本的加密库没有相同的修改?
1个回答

2
一旦您正在使用的库有活跃的 CMVP(加密模块验证计划),那么您就可以确信它已经通过了FIPS 140-2验证。

请记住,与FIPS相关的概念中有“合规性”和“认证”两个概念。

“合规性”是指底层密码算法在批准的密码原语列表上,即AES256-CBC

“认证/验证”是指底层库已经被NIST批准的实验室进行了特定的审计。

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

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

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


谢谢。这更多是关于Go的问题 - dev.boringcrypto分支基于BoringSSL,该库已经通过验证。我想知道的是x/crypto库是否执行自己的加密,还是使用底层的BoringSSL模块而不进行任何修改(从而使验证无效)。 - Ben S
2
测试的简单方法是运行lib并尝试使用非FIPS加密,例如blake2、curve25519或其他内容。 FIPS的核心是如果lib处于FIPS模式,则不应允许使用非FIPS加密。 - Woodstock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接