Bagikan melalui


Dukungan kebijakan di seluruh komputer Perlindungan Data di ASP.NET Core

Oleh Rick Anderson

Saat berjalan di Windows, sistem Perlindungan Data memiliki dukungan terbatas untuk mengatur kebijakan di seluruh komputer default untuk semua aplikasi yang menggunakan ASP.NET Perlindungan Data Inti. Ide umumnya adalah bahwa administrator mungkin ingin mengubah pengaturan default, seperti algoritma yang digunakan atau masa pakai kunci, tanpa perlu memperbarui setiap aplikasi secara manual di komputer.

Peringatan

Administrator sistem dapat mengatur kebijakan default, tetapi mereka tidak dapat memberlakukannya. Pengembang aplikasi selalu dapat mengambil alih nilai apa pun dengan salah satu pilihan mereka sendiri. Kebijakan default hanya memengaruhi aplikasi di mana pengembang belum menentukan nilai eksplisit untuk pengaturan.

Mengatur kebijakan default

Untuk mengatur kebijakan default, administrator dapat mengatur nilai yang diketahui dalam registri sistem di bawah kunci registri berikut:

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

Jika Anda menggunakan sistem operasi 64-bit dan ingin memengaruhi perilaku aplikasi 32-bit, ingatlah untuk mengonfigurasi Wow6432Node yang setara dengan kunci di atas.

Nilai yang didukung ditunjukkan di bawah ini.

Nilai Tipe Deskripsi
EncryptionType string Menentukan algoritma mana yang harus digunakan untuk perlindungan data. Nilainya harus CNG-CBC, CNG-GCM, atau Managed dan dijelaskan secara lebih rinci di bawah ini.
DefaultKeyLifetime DWORD Menentukan masa pakai untuk kunci yang baru dibuat. Nilai ditentukan dalam hari dan harus >= 7.
KeyEscrowSinks string Menentukan jenis yang digunakan untuk escrow kunci. Nilainya adalah daftar sink escrow kunci yang dibatasi titik koma, di mana setiap elemen dalam daftar adalah nama jenis yang memenuhi syarat rakitan yang mengimplementasikan IKeyEscrowSink.

Jenis enkripsi

Jika EncryptionType adalah CNG-CBC, sistem dikonfigurasi untuk menggunakan cipher blok konten mode CBC untuk kerahasiaan dan HMAC untuk keaslian dengan layanan yang disediakan oleh Windows CNG (lihat Menentukan algoritma Windows CNG kustom untuk detail selengkapnya). Nilai tambahan berikut didukung, yang masing-masing sesuai dengan properti pada jenis CngCbcAuthenticatedEncryption Pengaturan.

Nilai Tipe Deskripsi
EncryptionAlgorithm string Nama algoritma sandi blok simetris dipahami oleh CNG. Algoritma ini dibuka dalam mode CBC.
EncryptionAlgorithmProvider string Nama implementasi penyedia CNG yang dapat menghasilkan algoritma EncryptionAlgorithm.
EncryptionAlgorithmKeySize DWORD Panjang (dalam bit) kunci yang akan diturunkan untuk algoritma cipher blok simetris.
HashAlgorithm string Nama algoritma hash dipahami oleh CNG. Algoritma ini dibuka dalam mode HMAC.
HashAlgorithmProvider string Nama implementasi penyedia CNG yang dapat menghasilkan algoritma HashAlgorithm.

Jika EncryptionType adalah CNG-GCM, sistem dikonfigurasi untuk menggunakan cipher blok simetris Galois/Mode Penghitung untuk kerahasiaan dan keaslian dengan layanan yang disediakan oleh Windows CNG (lihat Menentukan algoritma Windows CNG kustom untuk detail selengkapnya). Nilai tambahan berikut didukung, yang masing-masing sesuai dengan properti pada jenis CngGcmAuthenticatedEncryption Pengaturan.

Nilai Tipe Deskripsi
EncryptionAlgorithm string Nama algoritma sandi blok simetris dipahami oleh CNG. Algoritma ini dibuka dalam Mode Galois/Penghitung.
EncryptionAlgorithmProvider string Nama implementasi penyedia CNG yang dapat menghasilkan algoritma EncryptionAlgorithm.
EncryptionAlgorithmKeySize DWORD Panjang (dalam bit) kunci yang akan diturunkan untuk algoritma cipher blok simetris.

Jika EncryptionType Dikelola, sistem dikonfigurasi untuk menggunakan SymmetricAlgorithm terkelola untuk kerahasiaan dan KeyedHashAlgorithm untuk autentikitas (lihat Menentukan algoritma terkelola kustom untuk detail selengkapnya). Nilai tambahan berikut didukung, yang masing-masing sesuai dengan properti pada jenis ManagedAuthenticatedEncryption Pengaturan.

Nilai Tipe Deskripsi
EncryptionAlgorithmType string Nama jenis yang memenuhi syarat rakitan yang mengimplementasikan SymmetricAlgorithm.
EncryptionAlgorithmKeySize DWORD Panjang (dalam bit) kunci yang akan diturunkan untuk algoritma enkripsi simetris.
ValidationAlgorithmType string Nama jenis yang memenuhi syarat rakitan yang mengimplementasikan KeyedHashAlgorithm.

Jika EncryptionType memiliki nilai lain selain null atau kosong, sistem Perlindungan Data akan memberikan pengecualian saat startup.

Peringatan

Saat mengonfigurasi pengaturan kebijakan default yang melibatkan nama jenis (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), jenis harus tersedia untuk aplikasi. Ini berarti bahwa untuk aplikasi yang berjalan di Desktop CLR, rakitan yang berisi jenis ini harus ada di Global Assembly Cache (GAC). Untuk aplikasi ASP.NET Core yang berjalan di .NET Core, paket yang berisi jenis ini harus diinstal.