2023年1月30日 星期一

[研究][GCB][ASP.NET]此實作不屬於 Windows Platform FIPS 已驗證密碼編譯演算法的一部分。

[研究][GCB][ASP.NET]此實作不屬於 Windows Platform FIPS 已驗證密碼編譯演算法的一部分。

2023-01-30

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#

********************************************************************************

********************************************************************************

聯邦資訊處理標準 - 維基百科,自由的百科全書

https://zh.wikipedia.org/zh-hant/%E8%81%AF%E9%82%A6%E8%B3%87%E8%A8%8A%E8%99%95%E7%90%86%E6%A8%99%E6%BA%96

聯邦資訊處理標準(英語:Federal Information Processing Standards,縮寫FIPS)是美國聯邦政府制定給所有軍事機構除外的政府機構及政府的承包商所使用的公開標準。許多FIPS標準都是從廣泛的社會標準修改而來的(像ANSI,IEEE,ISO等等)。

有些FIPS標準是美國政府自行制定的,例如編碼資料的標準(像國家代碼),但是更多的標準其實是用來作為加密使用,例如資料加密標準(FIPS 46)和先進加密標準。

FIPS標準的一些例子:

  • FIPS國家代碼(10-4)
  • FIPS地區代碼(55-3)
  • FIPS郡代碼(6-4)
  • FIPS州代碼(5-2)

********************************************************************************

SHA512.Create 方法 (System.Security.Cryptography) | Microsoft Learn
https://learn.microsoft.com/zh-tw/dotnet/api/system.security.cryptography.sha512.create?view=net-7.0
在已啟用美國聯邦資訊處理標準 (FIPS) 模式的情況下使用演算法,但它與 FIPS 不相容。

系統密碼編譯 使用符合 FIPS 規範的演算法進行加密、雜湊和簽署 (Windows 10) | Microsoft Learn
https://learn.microsoft.com/zh-tw/windows/security/threat-protection/security-policy-settings/system-cryptography-use-fips-compliant-algorithms-for-encryption-hashing-and-signing

適用于 FIPS 的 Visual Studio 支援 | Microsoft Learn
https://learn.microsoft.com/zh-tw/visualstudio/ide/fips-support-visual-studio?view=vs-2022

********************************************************************************

Default.aspx.cs 出錯

using System.Security.Cryptography;
...
hash = new SHA512Managed(); // 出錯

後來把系統移出 GCB 的AD網域,就正常運作。

但是另外一個系統的  Default.aspx.cs 正常在GCB的AD網域環境運作

string sHA256 = SHA256CheckSum(saveFullFileName);
...
public string SHA256CheckSum(string filePath)
{
    using (SHA256 SHA256 = SHA256Managed.Create())
    {
        using (FileStream fileStream = File.OpenRead(filePath))
            return BitConverter.ToString(SHA256.ComputeHash(fileStream)).Replace("-", "").ToLowerInvariant();
    }
}

Default.aspx.cs 改寫為下面後正常

using System.Security.Cryptography;
...
hash = SHA512Managed.Create(); // 出錯

補:印象中以前在GCB AD網域是正常的,當時是Windows Server 2019; 後來另外新安裝一台Windows Server 2022,系統移植過去,也是正常的; 再來把Windows Server 2022加入GCB AD網域,開始異常。

(完)

相關

沒有留言:

張貼留言