ASP.NET Core 中的資料保護全機器原則支援
在 Windows 上執行時,對使用 ASP.NET Core 資料保護的所有應用程式設定預設電腦全域原則而言,資料保護系統的支援有限。 一般的想法是,系統管理員可能會想要變更預設設定,例如使用的演算法或金鑰存留期,而不需要手動更新電腦上的每個應用程式。
警告
系統管理員可以設定預設原則,但無法強制執行。 應用程式開發人員一律可以使用自己的其中一個選擇來覆寫任何值。 預設原則僅會影響開發人員未指定明確設定值的應用程式。
設定預設原則
若要設定預設原則,系統管理員可以在下列登錄機碼下,在系統登錄中設定已知值:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
如果您是在 64 位元作業系統上,而且想要影響 32 位元應用程式的行為,請記得設定相當於上述機碼的 Wow6432Node。
支援的值如下所示。
值 | 類型 | 描述 |
---|---|---|
EncryptionType | string | 指定應該用於資料保護的演算法。 此值必須是 CNG-CBC、CNG-GCM 或 Managed,如下所述。 |
DefaultKeyLifetime | 下載 | 指定新產生金鑰的存留期。 此值以天為單位指定,而且必須是 >= 7。 |
KeyEscrowSinks | string | 指定用於金鑰委付的類型。 該值是以分號分隔的索引鍵委付接收清單,其中清單中的每個元素都是實作 IKeyEscrowSink 之型別的元件限定名稱。 |
加密類型
如果 EncryptionType 是 CNG-CBC,系統會將系統設定為使用 CBC 模式對稱區塊加密進行機密性,並使用 HMAC 來驗證 Windows CNG 所提供的服務 (如需詳細資訊,請參閱指定自訂 Windows CNG 演算法)。 支援下列其他值,每個值都會對應至 CngCbcAuthenticatedEncryptionSettings 類型的屬性。
值 | 類型 | 描述 |
---|---|---|
EncryptionAlgorithm | string | CNG 所了解的對稱區塊加密演算法名稱。 此演算法會在 CBC 模式中開啟。 |
EncryptionAlgorithmProvider | string | 可產生演算法 EncryptionAlgorithm 的 CNG 提供者實作名稱。 |
EncryptionAlgorithmKeySize | 下載 | 要針對對稱區塊加密演算法衍生之金鑰的長度 (以位元為單位)。 |
HashAlgorithm | string | CNG 所了解的雜湊演算法名稱。 此演算法會在 HMAC 模式中開啟。 |
HashAlgorithmProvider | string | 可產生演算法 HashAlgorithm 的 CNG 提供者實作名稱。 |
如果 EncryptionType 是 CNG-GCM,系統會將系統設定為使用 Galois/Counter Mode 對稱區塊加密,以取得 Windows CNG 所提供的服務機密性和真實性 (如需詳細資訊,請參閱指定自訂 Windows CNG 演算法)。 支援下列其他值,每個值都會對應至 CngGcmAuthenticatedEncryptionSettings 類型的屬性。
值 | 類型 | 描述 |
---|---|---|
EncryptionAlgorithm | string | CNG 所了解的對稱區塊加密演算法名稱。 此演算法會在 Galois/Counter 模式中開啟。 |
EncryptionAlgorithmProvider | string | 可產生演算法 EncryptionAlgorithm 的 CNG 提供者實作名稱。 |
EncryptionAlgorithmKeySize | 下載 | 要針對對稱區塊加密演算法衍生之金鑰的長度 (以位元為單位)。 |
如果 EncryptionType 為 Managed,則系統會設定為使用受控 SymmetricAlgorithm 來實現機密性,使用 KeyedHashAlgorithm 來實現真實性 (如需詳細資訊,請參閱指定自訂 Managed 演算法)。 支援下列其他值,每個值都會對應至 ManagedAuthenticatedEncryptionSettings 類型的屬性。
值 | 類型 | 描述 |
---|---|---|
EncryptionAlgorithmType | string | 實作 SymmetricAlgorithm 之型別的組件限定名稱。 |
EncryptionAlgorithmKeySize | 下載 | 要針對對稱加密演算法衍生之金鑰的長度 (以位元為單位)。 |
ValidationAlgorithmType | string | 實作 KeyedHashAlgorithm 之型別的組件限定名稱。 |
如果 EncryptionType 有 Null 或空白以外的任何其他值,資料保護系統會在啟動時擲回例外狀況。
警告
設定包含類型名稱的預設原則設定時 (EncryptionAlgorithmType、ValidationAlgorithmType、KeyEscrowSinks),該類型必須可供應用程式使用。 這表示對於在桌面 CLR 上執行的應用程式,包含這些類型的元件應該出現在全域組件快取 (GAC) 中。 針對在 .NET Core 上執行的 ASP.NET Core 應用程式,應該安裝包含這些類型的套件。