gpt4 book ai didi

c# - Windows 操作系统如何检测算法是否符合 FIPS?

转载 作者:可可西里 更新时间:2023-11-01 09:32:40 29 4
gpt4 key购买 nike

当强制使用符合 FIPS 的算法的 Windows 设置打开时,如果有一个应用程序在该机器上运行使用不符合 FIPS 的算法,并且该应用程序会抛出异常,说明它不是 Windows FIPS 的一部分执行...我看到有人通过在应用程序代码中注释掉此检查来绕过 FIPS 检查。如果可以做到这一点,这是否真正符合 FIPS 标准?

Windows 如何检测应用程序是否使用符合 FIPS 的算法?

最佳答案

这些算法由内置于 Windows 中的库或由 Microsoft 提供的产品提供,它们包含投诉和非投诉算法。

当您的代码调用那些内置库时,这些库包含对窗口设置的检查,如果设置了这些库,则会抛出异常。

这是 Sha256Managed 内部检查的示例

    public SHA256Managed()
{
#if FEATURE_CRYPTO
if (CryptoConfig.AllowOnlyFipsAlgorithms)
throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm"));
Contract.EndContractBlock();
#endif // FEATURE_CRYPTO

_stateSHA256 = new UInt32[8];
_buffer = new byte[64];
_W = new UInt32[64];

InitializeState();
}

如果您使用第 3 方实现或编写自己的算法实现,Windows 将不会检测到您在具有该设置集的系统上使用非 FIPS 兼容算法。

关于c# - Windows 操作系统如何检测算法是否符合 FIPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924532/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com