Podpora zásad ochrany dat na úrovni počítače v ASP.NET Core
Autor: Rick Anderson
při použití v 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 ochrany dat v celém počítači. Hlavním nápadem je, že správce může chtít změnit výchozí nastavení, například používané algoritmy nebo životnost klíče, aniž by musel ručně aktualizovat všechny aplikace v počítači.
Upozornění
Správce systému může nastavit výchozí zásady, ale nemůže je vymáhat. Vývojář aplikace může vždycky přepsat libovolnou hodnotu jedním z nich. Výchozí zásady ovlivňují jenom aplikace, u kterých vývojář nezadal explicitní hodnotu pro nastavení.
Nastavení výchozích zásad
Správce může nastavit výchozí zásady tak, že v registru systému nastaví známé hodnoty v následujícím klíči registru:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
Pokud jste v 64 operačním systému a chcete mít vliv na chování 32 aplikací, nezapomeňte nakonfigurovat Wow6432Node ekvivalent výše uvedeného klíče.
Níže jsou uvedené podporované hodnoty.
| Hodnota | Typ | Popis |
|---|---|---|
| EncryptionType | řetězec | Určuje, které algoritmy by se měly používat pro ochranu dat. Hodnota musí být CNG-CBC, CNG-GCM nebo spravovaná a jsou podrobněji popsány níže. |
| DefaultKeyLifetime | DWORD | Určuje dobu života nově vygenerovaných klíčů. Hodnota je zadána ve dnech a musí být >= 7. |
| KeyEscrowSinks | řetězec | Určuje typy, které se používají pro Key v úschově. Hodnota je čárkami oddělený seznam jímky Key v úschově, kde každý prvek v seznamu je kvalifikovaný název sestavení typu, který implementuje IKeyEscrowSink. |
Typy šifrování
pokud EncryptionType je cng-CBC, systém je nakonfigurován tak, aby používal symetrický blok block CBC pro zajištění důvěrnosti a HMAC pro pravost pomocí služeb poskytovaných službou Windows CNG (další informace najdete v tématu určení vlastních Windows algoritmů CNG ). Následující další hodnoty jsou podporovány, přičemž každý z nich odpovídá vlastnosti typu CngCbcAuthenticatedEncryptionSettings.
| Hodnota | Typ | Popis |
|---|---|---|
| EncryptionAlgorithm | řetězec | Název algoritmu šifrování symetrického bloku, který rozumí CNG. Tento algoritmus je otevřen v režimu CBC. |
| EncryptionAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vydávat algoritmus EncryptionAlgorithm. |
| EncryptionAlgorithmKeySize | DWORD | Délka (v bitech) klíče, který má být odvozen pro algoritmus symetrického šifrování bloku. |
| HashAlgorithm | řetězec | Název algoritmu hash srozumitelného pro CNG. Tento algoritmus je otevřen v režimu HMAC. |
| HashAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vydávat algoritmus HashAlgorithm. |
pokud EncryptionType je cng-GCM, systém je nakonfigurován tak, aby používal šifrovací šifru symetrického bloku Galois/Counter pro zajištění důvěrnosti a pravosti se službami poskytovanými Windows CNG (další informace najdete v tématu určení vlastních Windows algoritmů CNG ). Následující další hodnoty jsou podporovány, přičemž každý z nich odpovídá vlastnosti typu CngGcmAuthenticatedEncryptionSettings.
| Hodnota | Typ | Popis |
|---|---|---|
| EncryptionAlgorithm | řetězec | Název algoritmu šifrování symetrického bloku, který rozumí CNG. Tento algoritmus je otevřen v režimu Galois/Counter. |
| EncryptionAlgorithmProvider | řetězec | Název implementace poskytovatele CNG, která může vydávat algoritmus EncryptionAlgorithm. |
| EncryptionAlgorithmKeySize | DWORD | Délka (v bitech) klíče, který má být odvozen pro algoritmus symetrického šifrování bloku. |
Pokud je EncryptionType spravované, je systém nakonfigurovaný tak, aby používal spravovaný SymmetricAlgorithm pro zajištění důvěrnosti a KeyedHashAlgorithm pro pravost (Další informace najdete v tématu určení vlastních spravovaných algoritmů ). Následující další hodnoty jsou podporovány, přičemž každý z nich odpovídá vlastnosti typu ManagedAuthenticatedEncryptionSettings.
| Hodnota | Typ | Popis |
|---|---|---|
| EncryptionAlgorithmType | řetězec | Kvalifikovaný název sestavení typu, který implementuje SymmetricAlgorithm. |
| EncryptionAlgorithmKeySize | DWORD | Délka klíče (v bitech), který má být odvozen 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ázdné, při spuštění vyvolá systém ochrany dat výjimku.
Upozornění
Při konfiguraci výchozího nastavení zásad, které zahrnuje názvy typů (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), musí být typy k dispozici pro aplikaci. To znamená, že pro aplikace spuštěné v modulu CLR pro stolní počítače by sestavení, která obsahují tyto typy, měla být přítomna v globální mezipaměti sestavení (GAC). pro ASP.NET Core aplikace běžící na .net Core by se měly nainstalovat balíčky obsahující tyto typy.