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.
ASP.NET Core