Udostępnij przez


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.

Warning

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.

Value Typ Description
EncryptionType ciąg Określa, które algorytmy mają być używane do ochrony danych. Wartość musi być CNG-CBC, CNG-GCM lub Managed 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 ciąg Określa typy używane do deponowania kluczy. Wartość to lista rozdzielona średnikami kluczowych pojemników escrow, gdzie każdy element na liście jest nazwą kwalifikowaną zestawu typu, który implementuje IKeyEscrowSink.

Typy szyfrowania

Jeśli wartość EncryptionType to CNG-CBC, system jest skonfigurowany do używania symetrycznego algorytmu szyfrującego w trybie blokowym CBC w celu zachowania poufności i HMAC dla zapewnienia autentyczności z usługami dostarczanymi przez CNG 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 CngCbcAuthenticatedEncryptionSettings.

Value Typ Description
EncryptionAlgorithm ciąg Nazwa symetrycznego algorytmu szyfrowania bloku zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie CBC.
EncryptionAlgorithmProvider ciąg 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.
HashAlgorithm ciąg Nazwa algorytmu skrótu zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie HMAC.
HashAlgorithmProvider ciąg 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 szyfru blokowego Galois/Counter Mode w celu zachowania poufności i autentyczności, korzystając z usług udostępnianych przez CNG systemu Windows (zobacz Określanie niestandardowych algorytmów CNG systemu Windows, aby uzyskać więcej informacji). Obsługiwane są następujące dodatkowe wartości, z których każda odpowiada właściwości w typie CngGcmAuthenticatedEncryptionSettings.

Value Typ Description
EncryptionAlgorithm ciąg Nazwa symetrycznego algorytmu szyfrowania bloku zrozumiałego przez CNG. Ten algorytm jest otwierany w trybie Galois/Counter.
EncryptionAlgorithmProvider ciąg 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 dla 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 typu ManagedAuthenticatedEncryptionSettings.

Value Typ Description
EncryptionAlgorithmType ciąg Nazwa typu z kwalifikacją zestawową implementującego SymmetricAlgorithm.
EncryptionAlgorithmKeySize DWORD Długość klucza (w bitach) do uzyskania dla algorytmu szyfrowania symetrycznego.
ValidationAlgorithmType ciąg 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.

Warning

Podczas konfigurowania domyślnego ustawienia zasad, które obejmuje nazwy typów (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), typy muszą być dostępne dla aplikacji. W przypadku aplikacji ASP.NET Core należy zainstalować pakiety zawierające te typy.