ASP.NET Core 'de veri koruma makineye özel ilke desteği

Gönderen Rick Anderson

Windows çalışırken, veri koruma sistemi, ASP.NET Core veri korumasını kullanan tüm uygulamalar için varsayılan makine genelinde bir ilke ayarlamak için sınırlı desteğe sahiptir. Genel fikir, bir yöneticinin makinedeki her uygulamayı el ile güncelleştirmek gerekmeden kullanılan algoritmalar veya anahtar yaşam süresi gibi varsayılan bir ayarı değiştirmek isteyebilir.

Uyarı

Sistem Yöneticisi varsayılan ilkeyi ayarlayabilir, ancak zorunlu kılamaz. Uygulama geliştiricisi her zaman herhangi bir değeri kendi seçmekten biriyle geçersiz kılabilir. Varsayılan ilke yalnızca geliştiricinin bir ayar için açık bir değer belirtmemiş olduğu uygulamaları etkiler.

Varsayılan ilke ayarlanıyor

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

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

64 bitlik bir işletim sistemdeyse 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 Açıklama
EncryptionType string Veri koruma için hangi algoritmaların kullanılması gerektiğini 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 yaşam süresini belirtir. Değer, gün cinsinden belirtilir ve >= 7 olmalıdır.
Keyescrowhavuzları string Anahtar Emanet için kullanılan türleri belirtir. Değer, listedeki her öğe ıkeyescrowsinkuygulayan bir türün derleme nitelikli adı olduğunda, noktalı virgülle ayrılmış anahtar Emanet listesidir.

Şifreleme türleri

encryptiontype değeri cng-CBC ise, sistem gizlilik ve Windows CNG tarafından sunulan hizmetlerle özgünlük için bir CBC modu simetrik blok şifresi kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz. özel Windows CNG algoritmaları belirtme ). Her biri CngCbcAuthenticatedEncryptionSettings türündeki bir özelliğe karşılık gelen aşağıdaki ek değerler desteklenir.

Değer Tür Açıklama
EncryptionAlgorithm string CNG tarafından anlaşılan simetrik bir blok şifre algoritması adı. Bu algoritma CBC modunda açılır.
EncryptionAlgorithmProvider string Algoritma Şifrelemealgoritması oluşturabilecek CNG sağlayıcısı uygulamasının adı.
EncryptionAlgorithmKeySize DWORD Simetrik blok şifre algoritması için türetmeye yönelik anahtarın uzunluğu (bit cinsinden).
HashAlgorithm string CNG tarafından anlaşılan karma algoritmanın adı. Bu algoritma HMAC modunda açılır.
HashAlgorithmProvider string Algoritma HashAlgorithm üreten CNG sağlayıcı uygulamasının adı.

encryptiontype değeri cng-GCM ise sistem, Windows cng tarafından sunulan hizmetlerle gizlilik ve özgünlük için bir galoa/sayaç modu simetrik blok şifresi kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz. özel Windows CNG algoritmaları belirtme ). Aşağıdaki ek değerler desteklenir, her biri Cnggcmakimliksidencryptionsettings türündeki bir özelliğe karşılık gelir.

Değer Tür Açıklama
EncryptionAlgorithm string CNG tarafından anlaşılan simetrik bir blok şifre algoritması adı. Bu algoritma Galoa/sayaç modunda açılır.
EncryptionAlgorithmProvider string Algoritma Şifrelemealgoritması oluşturabilecek CNG sağlayıcısı uygulamasının adı.
EncryptionAlgorithmKeySize DWORD Simetrik blok şifre algoritması için türetmeye yönelik anahtarın uzunluğu (bit cinsinden).

EncryptionType yönetiliyorsa, sistem, özgünlük için Gizlilik ve KeyedHashAlgorithm için yönetilen bir SymmetricAlgorithm kullanacak şekilde yapılandırılır (daha fazla ayrıntı için bkz. özel yönetilen algoritmalar belirtme ). Aşağıdaki ek değerler desteklenir, her biri Managedavılationcatedencryptionsettings türündeki bir özelliğe karşılık gelir.

Değer Tür Açıklama
EncryptionAlgorithmType string SymmetricAlgorithm uygulayan bir türün derleme nitelikli adı.
EncryptionAlgorithmKeySize DWORD Simetrik şifreleme algoritması için türetmeye yönelik anahtarın uzunluğu (bit cinsinden).
ValidationAlgorithmType string KeyedHashAlgorithm uygulayan bir türün derleme nitelikli adı.

EncryptionType null ya da boş dışında başka bir değere sahipse, veri koruma sistemi başlangıçta bir özel durum oluşturur.

Uyarı

Tür adlarını içeren varsayılan bir ilke ayarı yapılandırırken (EncryptionAlgorithmType, ValidationAlgorithmType, Keyescrowhavuzları), bu tür uygulama için kullanılabilir olmalıdır. Bu, masaüstü CLR üzerinde çalışan uygulamalar için, bu türleri içeren derlemelerin genel derleme önbelleğinde (GAC) bulunması anlamına gelir. .net Core üzerinde çalışan ASP.NET Core uygulamalar için, bu türleri içeren paketlerin yüklenmesi gerekir.