共用方式為


ASP.NET Core 中的數據保護全機器原則支援

作者:Rick Anderson

在 Windows 上執行時,數據保護系統對於針對取用 ASP.NET Core Data Protection 的所有應用程式設定預設全計算機原則的支援有限。 一般的想法是,系統管理員可能會想要變更預設設定,例如使用的演算法或密鑰存留期,而不需要手動更新電腦上的每個應用程式。

Warning

系統管理員可以設定默認原則,但無法強制執行。 應用程式開發人員隨時可以使用自選值來覆蓋任何值。 默認原則只會影響開發人員未為設定指定明確值的應用程式。

設定默認原則

若要設定預設原則,系統管理員可以在下列登錄機碼下,在系統登錄中設定已知值:

HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection

如果您在 64 位元作業系統上,如果需要影響 32 位元應用程式的行為,請記得設定上述機碼的 Wow6432Node 等效值。

支援的值如下所示。

Value 類型 Description
EncryptionType 字串 指定應該用於數據保護的演算法。 此值必須是 CNG-CBC、CNG-GCM 或 Managed,如下所述。
預設鍵壽命 DWORD 指定新產生的金鑰存留期。 此值是以天為單位指定,而且必須是 >= 7。
KeyEscrowSinks 字串 指定用於金鑰委付的類型。 值是以分號分隔的密鑰托管接收清單,其中清單中的每個元素都是實作IKeyEscrowSink的型別的組件限定名稱。

加密類型

如果 EncryptionType 是 CNG-CBC,系統會將系統設定為使用 CBC 模式對稱區塊加密進行機密性,而 HMAC 則會使用 Windows CNG 所提供的服務進行真實性(如需詳細資訊 ,請參閱指定自定義 Windows CNG 演演算法 )。 支援下列其他值,每個值都會對應至 CngCbcAuthenticatedEncryptionSettings 類型的屬性。

Value 類型 Description
EncryptionAlgorithm 字串 CNG 所瞭解的對稱區塊加密演算法名稱。 此演算法會在 CBC 模式中開啟。
EncryptionAlgorithmProvider 字串 可產生演算法 EncryptionAlgorithm 的 CNG 提供者實作名稱。
EncryptionAlgorithmKeySize DWORD 衍生對稱區塊加密演算法之密鑰的長度(位元)。
HashAlgorithm 字串 CNG 所瞭解的哈希演算法名稱。 此演算法會在 HMAC 模式中開啟。
HashAlgorithmProvider 字串 可產生演算法 HashAlgorithm 的 CNG 提供者實作名稱。

如果 EncryptionType 是 CNG-GCM,系統會將系統設定為使用 Galois/Counter Mode 對稱區塊加密,以取得 Windows CNG 所提供的服務機密性和真實性(如需詳細資訊,請參閱 指定自定義 Windows CNG 演演算法 )。 支援下列其他值,每個值都會對應至 CngGcmAuthenticatedEncryptionSettings 類型的屬性。

Value 類型 Description
EncryptionAlgorithm 字串 CNG 所瞭解的對稱區塊加密演算法名稱。 此演算法會在 Galois/Counter 模式中開啟。
EncryptionAlgorithmProvider 字串 可產生演算法 EncryptionAlgorithm 的 CNG 提供者實作名稱。
EncryptionAlgorithmKeySize DWORD 衍生對稱區塊加密演算法之密鑰的長度(位元)。

如果 EncryptionType 是託管的,系統會設定為使用託管 SymmetricAlgorithm 來保護機密性,並使用 KeyedHashAlgorithm 來確認完整性(如需詳細資訊,請參閱 指定自定義託管演算法)。 支援下列其他值,每個值都會對應至 ManagedAuthenticatedEncryptionSettings 類型的屬性。

Value 類型 Description
EncryptionAlgorithmType 字串 實作 SymmetricAlgorithm 類型的程序集限制名稱。
EncryptionAlgorithmKeySize DWORD 要針對對稱加密演算法衍生之密鑰的長度(以位為單位)。
ValidationAlgorithmType 字串 實作 KeyedHashAlgorithm 之型別的元件限定名稱。

如果 EncryptionType 有 Null 或空白以外的任何其他值,數據保護系統會在啟動時擲回例外狀況。

Warning

設定包含類型名稱的默認原則設定時(EncryptionAlgorithmType、ValidationAlgorithmType、KeyEscrowSinks),類型必須可供應用程式使用。 針對 ASP.NET Core 應用程式,應該安裝包含這些類型的套件。