FIPS 140-2 合规性需要加密哪些内容?

信息安全 加密 菲普斯
2021-08-17 21:29:53

我们正在开发一个需要符合 FIPS 的客户端/服务器 C# .NET 应用程序。我在网上阅读了很多关于 FIPS 的内容,但是在确定所选加密算法的合规性与需要什么数据之间的区别时有点困难进行加密以确保合规性。

我了解以下算法是合规的:

  • 对称密钥
    • AES、三重 DES、托管加密标准
  • 非对称密钥
    • DSA、RSA、ECDSA
  • 哈希标准
    • SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256
  • 随机数发生器
  • 消息认证
    • CCM、GCM、GMAC、CMAC、HMAC

来源

但是,让我们假装在我的软件中完全没有使用加密,那么我在技术上会完全合规,不是吗?

我能想到的需要加密的东西是我们从客户端 -> 服务器的通信,反之亦然,我们存储在磁盘上的序列化数据,以及我们的许可过程/文件。

我在这里想念什么?

1个回答

FIPS140-2 仅处理加密模块必须运行和保护免受攻击的正确方式。一个人可以只兼容他的模块,或者一个人可以兼容并验证她的模块。有 4 个不同级别的合规性,从 1 到 4,较高级别比较低级别更具保护性。获得验证是一项昂贵的工作,通常由外部安全实验室完成。
FIPS140-2 没有讨论应用程序需要加密哪些数据。不同的标准机构,对每个感兴趣的行业部门都是独一无二的,建立了该行业特定的数据保护和加密的要求、程序和流程。例如,信用卡行业的 PCI DSS,医疗保健行业的 HIPAA。
这些机构可能会或可能不会要求加密模块符合 FIPS140-2,但肯定是一个谨慎的选择 - 至少从责任的角度来看。

infosecisland.com 的一些相关评论:

  1. “我亲身完成了 FIPS 140-2 合规性任务:OpenSSL、OpenSSH、Sun Java 6、Apache Tomcat 5.5 和 6.0、Mozilla NSS。我可以告诉你,这些模块都没有在 FIPS 140-2 合规模式下运行默认情况下,让它们进入 FIPS 140-2 兼容模式并非易事,出于兼容性原因,在 FIPS 140-2 兼容模式下运行并不总是一个好主意。”

  2. “请允许我澄清一些商业案例,即有人希望投入时间和费用来实现 FIPS 140-2 验证,而不仅仅是合规性:当你想出售与国防部或任何政府工作组加密相关的任何东西时“这将向国防部寻求安全规范。这不是典型的企业客户,而是需要 FIPS 140-2 提供的加密完整性保证的特定政府实体。”

因此,如果您的应用程序中没有密码模块,则 FIPS140-2 与您无关。如果您确实加密了程序的某些部分,例如数据或通信协议 - 无论是因为这是正确的做法,还是标准机构或客户要求或法规要求 - 并且您需要符合 FIPS140-2 ,该加密例程/模块需要遵守 FIPS 规范,甚至需要经过充分验证。