Aracılığıyla paylaş


ASP.NET Core'da Veri Koruma makine genelinde ilke desteği

Gönderen Rick Anderson

Windows üzerinde çalışırken, Veri Koruma sistemi ASP.NET Core Data Protection kullanan tüm uygulamalar için varsayılan makine genelinde ilke ayarlama desteği sınırlıdır. Genel fikir, bir yöneticinin makinedeki her uygulamayı el ile güncelleştirmeye gerek kalmadan kullanılan algoritmalar veya anahtar ömrü gibi varsayılan bir ayarı değiştirmek isteyebileceğidir.

Uyarı

Sistem yöneticisi varsayılan ilkeyi ayarlayabilir, ancak zorunlu kılamaz. Uygulama geliştirici her zaman kendi seçtiği herhangi bir değeri geçersiz kılabilir. Varsayılan ilke yalnızca geliştiricinin bir ayar için açık bir değer belirtmediği uygulamaları etkiler.

Varsayılan ilkeyi ayarlama

Varsayılan ilkeyi ayarlamak için, yönetici sistem kayıt defterinde aşağıdaki kayıt defteri anahtarı altında bilinen değerleri ayarlayabilir:

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

64 bit işletim sistemi kullanıyorsanız ve 32 bit uygulamaların davranışını etkilemek istiyorsanız, yukarıdaki anahtarın Wow6432Node eşdeğerini yapılandırmayı unutmayın.

Desteklenen değerler aşağıda gösterilmiştir.

Değer Türü Tanım
EncryptionType Dize Veri koruması için hangi algoritmaların kullanılacağını belirtir. Değer CNG-CBC, CNG-GCM veya Yönetilen olmalıdır ve aşağıda daha ayrıntılı olarak açıklanmıştır.
DefaultKeyLifetime DWORD Yeni oluşturulan anahtarların ömrünü belirtir. Değer gün cinsinden belirtilir ve = 7 olmalıdır >.
KeyEscrowSinks Dize Anahtar emaneti için kullanılan türleri belirtir. Değer, anahtar emanet havuzlarının noktalı virgülle ayrılmış listesidir; burada listedeki her öğe, uygulayan IKeyEscrowSinkbir türün derleme nitelikli adıdır.

Şifreleme türleri

EncryptionType CNG-CBC ise, sistem gizlilik için CBC modu simetrik blok şifrelemesi ve Windows CNG tarafından sağlanan hizmetlerle orijinallik için HMAC kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz . Özel Windows CNG algoritmaları belirtme). Her biri CngCbcAuthenticatedEncryption Ayarlar türündeki bir özelliğe karşılık gelen aşağıdaki ek değerler desteklenir.

Değer Türü Tanım
Encryptionalgorithm Dize CNG tarafından anlaşılan simetrik blok şifreleme algoritmasının adı. Bu algoritma CBC modunda açılır.
EncryptionAlgorithmProvider Dize EncryptionAlgorithm algoritmasını üretebilen CNG sağlayıcı uygulamasının adı.
EncryptionAlgorithmKeySize DWORD Simetrik blok şifreleme algoritması için türetilen anahtarın uzunluğu (bit cinsinden).
HashAlgorithm Dize CNG tarafından anlaşılan bir karma algoritmasının adı. Bu algoritma HMAC modunda açılır.
HashAlgorithmProvider Dize HashAlgorithm algoritmasını üretebilen CNG sağlayıcı uygulamasının adı.

EncryptionType CNG-GCM ise sistem, Windows CNG tarafından sağlanan hizmetlerle gizlilik ve kimlik doğrulaması için Galois/Sayaç Modu simetrik blok şifrelemesi kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz . Özel Windows CNG algoritmaları belirtme). Her biri CngGcmAuthenticatedEncryption Ayarlar türündeki bir özelliğe karşılık gelen aşağıdaki ek değerler desteklenir.

Değer Türü Tanım
Encryptionalgorithm Dize CNG tarafından anlaşılan simetrik blok şifreleme algoritmasının adı. Bu algoritma Galois/Sayaç Modunda açılır.
EncryptionAlgorithmProvider Dize EncryptionAlgorithm algoritmasını üretebilen CNG sağlayıcı uygulamasının adı.
EncryptionAlgorithmKeySize DWORD Simetrik blok şifreleme algoritması için türetilen anahtarın uzunluğu (bit cinsinden).

EncryptionType Yönetiliyorsa, sistem gizlilik için yönetilen bir SymmetricAlgorithm ve kimlik doğrulaması için KeyedHashAlgorithm kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz . Özel yönetilen algoritmaları belirtme). Her biri ManagedAuthenticatedEncryption Ayarlar türündeki bir özelliğe karşılık gelen aşağıdaki ek değerler desteklenir.

Değer Türü Tanım
EncryptionAlgorithmType Dize SymmetricAlgorithm uygulayan bir türün derleme nitelikli adı.
EncryptionAlgorithmKeySize DWORD Simetrik şifreleme algoritması için türetilen anahtarın uzunluğu (bit cinsinden).
ValidationAlgorithmType Dize KeyedHashAlgorithm uygulayan bir türün derleme nitelikli adı.

EncryptionType null veya boş dışında bir değere sahipse, Veri Koruma sistemi başlangıçta bir özel durum oluşturur.

Uyarı

Tür adlarını (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks) içeren bir varsayılan ilke ayarı yapılandırırken, türlerin uygulama tarafından kullanılabilir olması gerekir. Bu, Desktop CLR üzerinde çalışan uygulamalar için bu türleri içeren derlemelerin Genel Bütünleştirilmiş Kod Önbelleği'nde (GAC) bulunması gerektiği anlamına gelir. .NET Core üzerinde çalışan ASP.NET Core uygulamaları için bu türleri içeren paketler yüklenmelidir.