c++ - 如何检查 CNG Windows API 返回符合 FIPS 的算法实现
问题描述
我在启用 FIPS 模式的主机上调用 Windows CNG API (bcrypt.dll)。启用 FIPS 的事实由 BCryptGetFipsAlgorithmMode 函数的结果确认。
如何确保 API 返回的算法实现符合 FIPS?
看起来仅在主机上启用 FIPS 模式并不能保证 API 防止不符合 FIPS 的算法实例化,因为我可以成功获得 MD5 哈希算法(已知不符合 FIPS)。
解决方案
本政策仅对应用程序提供建议。因此,如果您启用该策略,它并不能确保所有应用程序都会遵守。操作系统中的以下区域将受此设置影响:
并继续列出受政策影响的事物。这包括 SChannel 和 .NET,但不包括 CNG API 本身。此博客文章确认了 .NET 行为,但可以enforceFIPSPolicy
在应用程序配置文件中覆盖它。
调用时BCryptOpenAlgorithmProvider
,您可以通过指定来强制提供程序MS_PRIMITIVE_PROVIDER
。
推荐阅读
- regex - 使用 sed 命令将一个数字替换为另一个数字的正则表达式失败
- php - 如何在 wordpress 中使用 function_exists() 或 class_exists() 而不是 is_plugin_active()
- mysql - 如何使用存储在 web.config 中的连接字符串在 ASP .NET Razor MVC 中制定 MySQL 连接查询
- apache-zeppelin - 无法为 zeppelin 进行 SSO 连接
- javascript - 使用 CSV 数据构建 XML
- javascript - 如何从 weppalyzer 隐藏 javascript、web 框架版本详细信息
- git - 内部服务器错误:com.google.gerrit.server.git.UpdateException
- node.js - 运行 nodeJS 应用程序和 express(pino) 时观察到意外的令牌“%”
- animation - FBX 和 BVH 问题
- javascript - vimeo 不触发播放,播放下一个视频时结束事件