Podpora zásad ochrany dat na úrovni počítače v ASP.NET Core
Autor: Rick Anderson
Při spouštění ve Windows má systém Ochrany dat omezenou podporu pro nastavení výchozích zásad pro všechny aplikace, které využívají ASP.NET Core Data Protection. Obecně platí, že správce může chtít změnit výchozí nastavení, jako jsou algoritmy používané nebo životnost klíče, aniž by bylo nutné ručně aktualizovat každou aplikaci na počítači.
Upozorňující
Správce systému může nastavit výchozí zásady, ale nemůže je vynutit. Vývojář aplikace může vždy přepsat libovolnou hodnotu vlastním výběrem. Výchozí zásada má vliv jenom na aplikace, u kterých vývojář nezadá explicitní hodnotu pro nastavení.
Nastavení výchozích zásad
Pokud chcete nastavit výchozí zásady, může správce nastavit známé hodnoty v systémovém registru pod následujícím klíčem registru:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
Pokud používáte 64bitový operační systém a chcete ovlivnit chování 32bitových aplikací, nezapomeňte nakonfigurovat ekvivalent Wow6432Node výše uvedeného klíče.
Podporované hodnoty jsou uvedené níže.
Hodnota | Typ | Popis |
---|---|---|
EncryptionType | řetězec | Určuje, které algoritmy se mají použít pro ochranu dat. Hodnota musí být CNG-CBC, CNG-GCM nebo Managed a je popsána podrobněji níže. |
DefaultKeyLifetime | DWORD | Určuje životnost nově vygenerovaných klíčů. Hodnota je zadaná ve dnech a musí být >= 7. |
KeyEscrowSinks | řetězec | Určuje typy, které se používají pro klávesu escrow. Hodnota je seznam jímek s oddělovači klíčů oddělený středníkem, kde každý prvek v seznamu je název sestavení kvalifikovaného typu, který implementuje IKeyEscrowSink. |
Typy šifrování
Pokud je EncryptionType CNG-CBC, je systém nakonfigurovaný tak, aby používal symetrickou šifru CBC v režimu CBC pro důvěrnost a HMAC pro pravost se službami poskytovanými systémem Windows CNG (další podrobnosti najdete v tématu Určení vlastních algoritmů CNG systému Windows). Podporují se následující další hodnoty, z nichž každá odpovídá vlastnosti cngCbcAuthenticatedEncryption Nastavení typ.
Hodnota | Typ | Popis |
---|---|---|
EncryptionAlgorithm | řetězec | Název symetrického blokového šifrovacího algoritmu, kterému rozumí CNG. Tento algoritmus se otevře v režimu CBC. |
EncryptionAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vytvořit algoritmus EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Délka klíče (v bitech), která se má odvodit pro algoritmus symetrického blokového šifrování. |
Hashalgorithm | řetězec | Název hashovacího algoritmu, kterému rozumí CNG. Tento algoritmus se otevře v režimu HMAC. |
HashAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vytvořit algoritmus HashAlgorithm. |
Pokud je EncryptionType CNG-GCM, je systém nakonfigurovaný tak, aby používal symetrický blok Galois/Counter Mode pro důvěrnost a pravost se službami poskytovanými systémem Windows CNG (další podrobnosti najdete v tématu Určení vlastních algoritmů CNG systému Windows). Podporují se následující další hodnoty, z nichž každá odpovídá vlastnosti cngGcmAuthenticatedEncryption Nastavení typ.
Hodnota | Typ | Popis |
---|---|---|
EncryptionAlgorithm | řetězec | Název symetrického blokového šifrovacího algoritmu, kterému rozumí CNG. Tento algoritmus je otevřen v režimu Galois/Counter. |
EncryptionAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vytvořit algoritmus EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Délka klíče (v bitech), která se má odvodit pro algoritmus symetrického blokového šifrování. |
Pokud je typ EncryptionType spravovaný, systém je nakonfigurovaný tak, aby používal spravovaný symetrický protokol pro důvěrnost a keyedHashAlgorithm pro pravost (další podrobnosti najdete v tématu Určení vlastních spravovaných algoritmů ). Podporují se následující další hodnoty, z nichž každá odpovídá vlastnosti typu ManagedAuthenticatedEncryption Nastavení.
Hodnota | Typ | Popis |
---|---|---|
EncryptionAlgorithmType | řetězec | Kvalifikovaný název sestavení typu, který implementuje SymmetricAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Délka klíče (v bitech), která se má odvodit pro algoritmus symetrického šifrování. |
ValidationAlgorithmType | řetězec | Kvalifikovaný název sestavení typu, který implementuje KeyedHashAlgorithm. |
Pokud má encryptionType jinou hodnotu než null nebo prázdnou, systém Ochrany dat vyvolá při spuštění výjimku.
Upozorňující
Při konfiguraci výchozího nastavení zásad, které zahrnuje názvy typů (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), musí být typy dostupné pro aplikaci. To znamená, že pro aplikace spuštěné v Desktop CLR by sestavení, která obsahují tyto typy, měla být přítomna v globální mezipaměti sestavení (GAC). Pro ASP.NET aplikace Core spuštěné v .NET Core by se měly nainstalovat balíčky, které obsahují tyto typy.