Obsługa zasad dotyczących całej maszyny w usłudze Data Protection w programie ASP.NET Core
Autor: Rick Anderson
W przypadku uruchamiania w systemie Windows system ochrony danych ma ograniczoną obsługę ustawiania domyślnych zasad dla wszystkich aplikacji korzystających z ASP.NET Core Data Protection. Ogólne założenie polega na tym, że administrator może chcieć zmienić ustawienie domyślne, takie jak używane algorytmy lub okres istnienia klucza, bez konieczności ręcznego aktualizowania każdej aplikacji na maszynie.
Ostrzeżenie
Administrator systemu może ustawić domyślne zasady, ale nie może go wymusić. Deweloper aplikacji zawsze może zastąpić dowolną wartość jedną z własnych opcji. Domyślne zasady dotyczą tylko aplikacji, w których deweloper nie określił jawnej wartości ustawienia.
Ustawianie zasad domyślnych
Aby ustawić zasady domyślne, administrator może ustawić znane wartości w rejestrze systemowym w następującym kluczu rejestru:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
Jeśli korzystasz z 64-bitowego systemu operacyjnego i chcesz wpłynąć na zachowanie aplikacji 32-bitowych, pamiętaj, aby skonfigurować odpowiednik Wow6432Node powyższego klucza.
Obsługiwane wartości przedstawiono poniżej.
Wartość | Type | Opis |
---|---|---|
EncryptionType | string | Określa, które algorytmy mają być używane do ochrony danych. Wartość musi być CNG-CBC, CNG-GCM lub Zarządzana i została opisana bardziej szczegółowo poniżej. |
DefaultKeyLifetime | DWORD | Określa okres istnienia nowo wygenerowanych kluczy. Wartość jest określona w dniach i musi być >= 7. |
KeyEscrowSinks | string | Określa typy używane do deponowania kluczy. Wartość jest rozdzieloną średnikami listą ujściów escrow kluczy, gdzie każdy element na liście jest kwalifikowaną nazwą typu, który implementuje IKeyEscrowSinkelement . |
Typy szyfrowania
Jeśli wartość EncryptionType to CNG-CBC, system jest skonfigurowany do używania symetrycznego szyfrowania bloków CBC w celu zachowania poufności i HMAC na potrzeby autentyczności z usługami udostępnianymi przez CNG systemu Windows (zobacz Określanie niestandardowych algorytmów CNG systemu Windows, aby uzyskać więcej szczegółów). Obsługiwane są następujące dodatkowe wartości, z których każda odpowiada właściwości w typie CngCbcAuthenticatedEncryption Ustawienia.
Wartość | Type | Opis |
---|---|---|
EncryptionAlgorithm | string | Nazwa symetrycznego algorytmu szyfrowania bloku zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie CBC. |
EncryptionAlgorithmProvider | string | Nazwa implementacji dostawcy CNG, która może utworzyć algorytm EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Długość klucza (w bitach) do uzyskania dla algorytmu szyfrowania bloków symetrycznych. |
Algorytm | string | Nazwa algorytmu skrótu zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie HMAC. |
HashAlgorithmProvider | string | Nazwa implementacji dostawcy CNG, która może utworzyć algorytm HashAlgorithm. |
Jeśli wartość EncryptionType to CNG-GCM, system jest skonfigurowany do używania symetrycznego szyfrowania bloków Galois/Counter Mode w celu zachowania poufności i autentyczności z usługami udostępnianymi przez CNG systemu Windows (zobacz Określanie niestandardowych algorytmów CNG systemu Windows, aby uzyskać więcej szczegółów). Obsługiwane są następujące dodatkowe wartości, z których każda odpowiada właściwości w typie CngGcmAuthenticatedEncryption Ustawienia.
Wartość | Type | Opis |
---|---|---|
EncryptionAlgorithm | string | Nazwa symetrycznego algorytmu szyfrowania bloku zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie Galois/Counter. |
EncryptionAlgorithmProvider | string | Nazwa implementacji dostawcy CNG, która może utworzyć algorytm EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Długość klucza (w bitach) do uzyskania dla algorytmu szyfrowania bloków symetrycznych. |
Jeśli wartość EncryptionType jest zarządzana, system jest skonfigurowany do używania zarządzanego algorytmu SymmetricAlgorithm na potrzeby poufności i keyedHashAlgorithm pod kątem autentyczności (zobacz Określanie niestandardowych algorytmów zarządzanych , aby uzyskać więcej szczegółów). Obsługiwane są następujące dodatkowe wartości, z których każda odpowiada właściwości w typie ManagedAuthenticatedEncryption Ustawienia.
Wartość | Type | Opis |
---|---|---|
EncryptionAlgorithmType | string | Nazwa kwalifikowana przez zestaw typu, który implementuje SymmetricAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Długość klucza (w bitach) do uzyskania dla algorytmu szyfrowania symetrycznego. |
ValidationAlgorithmType | string | Kwalifikowana przez zestaw nazwa typu, który implementuje keyedHashAlgorithm. |
Jeśli typ EncryptionType ma inną wartość inną niż null lub pustą, system ochrony danych zgłasza wyjątek podczas uruchamiania.
Ostrzeżenie
Podczas konfigurowania domyślnego ustawienia zasad, które obejmuje nazwy typów (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), typy muszą być dostępne dla aplikacji. Oznacza to, że w przypadku aplikacji działających w środowisku CLR dla komputerów zestawy zawierające te typy powinny znajdować się w globalnej pamięci podręcznej zestawów (GAC). W przypadku aplikacji ASP.NET Core działających na platformie .NET Core należy zainstalować pakiety zawierające te typy.