Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
ASP.NET Core menyediakan API kriptografi untuk melindungi data, termasuk manajemen dan rotasi kunci.
Aplikasi web sering kali perlu menyimpan data sensitif. API perlindungan data Windows (DPAPI) tidak ditujukan untuk digunakan di aplikasi web.
Tumpukan perlindungan data ASP.NET Core dirancang untuk:
- Berikan solusi bawaan untuk sebagian besar skenario Web.
- Atasi banyak kekurangan sistem enkripsi sebelumnya.
- Berfungsi sebagai pengganti
<machineKey>
elemen dalam ASP.NET 1.x - 4.x.
Pernyataan masalah
Saya perlu mempertahankan informasi tepercaya untuk pengambilan nanti, tetapi saya tidak mempercayai mekanisme persistensi. Dalam istilah web, ini mungkin ditulis sebagai saya perlu memproses ulang status tepercaya melalui klien yang tidak tepercaya.
Autentisitas, integritas, dan ketahanan terhadap perusakan adalah persyaratan. Contoh kanonis dari ini adalah token autentikasi cookie atau token pembawa. Server menghasilkan token saya Groot dan memiliki izin xyz dan mengirimkannya ke klien. Klien menyajikan token itu kembali ke server, tetapi server membutuhkan semacam jaminan bahwa klien belum memalsukan token.
Kerahasiaan adalah persyaratan. Karena status bertahan dipercaya oleh server, status ini dapat berisi informasi yang seharusnya tidak diungkapkan ke klien yang tidak tepercaya. Contohnya:
- Jalur file.
- Izin.
- Gagang atau referensi lain yang tidak langsung.
- Beberapa data khusus server.
Isolasi adalah persyaratan. Karena aplikasi modern digabungkan, komponen individual ingin memanfaatkan sistem ini tanpa memperhatikan komponen lain dalam sistem. Misalnya, pertimbangkan komponen token pembawa dalam konteks penggunaan stack ini. Ini harus beroperasi tanpa gangguan apa pun, misalnya, dari mekanisme anti-CSRF yang juga beroperasi dengan tumpukan yang sama.
Beberapa asumsi umum dapat mempersempit cakupan persyaratan:
- Semua layanan yang beroperasi dalam cryptosystem sama-sama tepercaya.
- Data tidak perlu dihasilkan atau dikonsumsi di luar layanan di bawah kontrol langsung kami.
- Operasi harus cepat karena setiap permintaan ke layanan web mungkin melalui cryptosystem satu atau beberapa kali. Persyaratan kecepatan membuat kriptografi simetris ideal. Kriptografi asimetris tidak digunakan sampai diperlukan.
Filsafat desain
ASP.NET Core adalah tumpukan perlindungan data yang mudah digunakan. Ini didasarkan pada prinsip-prinsip berikut:
- Kemudahan konfigurasi. Sistem berusaha untuk konfigurasi nol. Dalam situasi di mana pengembang perlu mengonfigurasi aspek tertentu, seperti repositori kunci, konfigurasi spesifik tersebut tidak sulit.
- Menawarkan API dasar untuk konsumen. API mudah digunakan dengan benar dan sulit disalahgunakan.
- Pengembang tidak perlu mempelajari prinsip manajemen utama. Sistem menangani pemilihan algoritma dan masa pakai kunci atas nama pengembang. Pengembang tidak memiliki akses ke bahan kunci mentah.
- Kunci dilindungi saat istirahat sebanyak mungkin. Sistem mencari tahu mekanisme perlindungan default yang sesuai dan menerapkannya secara otomatis.
API perlindungan data terutama tidak ditujukan untuk persistensi payload rahasia yang tidak terbatas. Teknologi lain, seperti Windows CNG DPAPI dan Azure Rights Management lebih cocok untuk skenario penyimpanan yang tidak terbatas. Mereka memiliki kemampuan manajemen kunci yang sepadan dan kuat. Meskipun demikian, API perlindungan data ASP.NET Core dapat digunakan untuk perlindungan jangka panjang data rahasia.
Audiens
Sistem perlindungan data menyediakan API yang menargetkan tiga audiens utama:
API Pengguna ditujukan untuk pengembang aplikasi dan kerangka kerja.
Saya tidak ingin mempelajari bagaimana stack beroperasi atau bagaimana stack dikonfigurasi. Saya hanya ingin melakukan beberapa operasi dengan probabilitas tinggi menggunakan API dengan sukses.
API konfigurasi menargetkan pengembang aplikasi dan administrator sistem.
Saya perlu memberi tahu sistem perlindungan data bahwa lingkungan saya memerlukan jalur atau pengaturan non-default.
API ekstensibilitas menargetkan pengembang yang bertugas menerapkan kebijakan kustom. Penggunaan API ini terbatas pada situasi langka dan pengembang dengan pengalaman keamanan.
Saya perlu mengganti seluruh komponen dalam sistem karena saya memiliki persyaratan perilaku yang benar-benar unik. Saya bersedia mempelajari bagian yang jarang digunakan dari permukaan API untuk membangun plugin yang memenuhi kebutuhan saya.
Tata letak paket
Tumpukan perlindungan data terdiri dari lima paket:
Microsoft.AspNetCore.DataProtection.Abstractions berisi:
- Antarmuka IDataProtectionProvider dan IDataProtector digunakan untuk membuat layanan perlindungan data.
- Metode ekstensi yang berguna untuk bekerja dengan jenis tersebut. misalnya, IDataProtector.Protect
Jika sistem perlindungan data dibuat di tempat lain dan Anda menggunakan API, silakan lihat
Microsoft.AspNetCore.DataProtection.Abstractions
.Microsoft.AspNetCore.DataProtection berisi implementasi inti dari sistem perlindungan data, termasuk:
- Operasi kriptografi inti.
- Manajemen kunci.
- Konfigurasi dan ekstensibilitas.
Untuk membuat instans sistem perlindungan data, referensikan
Microsoft.AspNetCore.DataProtection
. Anda mungkin perlu mereferensikan sistem perlindungan data saat:- Menambahkannya ke IServiceCollection.
- Memodifikasi atau memperluas perilakunya.
Microsoft.AspNetCore.DataProtection.Extensions berisi API tambahan yang mungkin berguna bagi pengembang tetapi tidak termasuk dalam paket inti. Misalnya, paket ini berisi:
- Metode factory untuk menginstansiasi sistem perlindungan data guna menyimpan kunci di lokasi pada sistem file tanpa injeksi dependensi. Lihat DataProtectionProvider.
- Metode ekstensi untuk membatasi masa pakai payload yang dilindungi. Lihat ITimeLimitedDataProtector.
Microsoft.AspNetCore.DataProtection.SystemWeb dapat diinstal ke aplikasi ASP.NET 4.x yang ada untuk mengalihkan operasinya
<machineKey>
untuk menggunakan tumpukan perlindungan data ASP.NET Core baru. Untuk informasi selengkapnya, lihat Mengganti machineKey ASP.NET di ASP.NET Core.Microsoft.AspNetCore.Cryptography.KeyDerivation menyediakan implementasi rutinitas hash kata sandi PBKDF2 dan dapat digunakan oleh sistem yang harus menangani kata sandi pengguna dengan aman. Untuk informasi selengkapnya, lihat Kata sandi hash di ASP.NET Core.
Sumber Daya Tambahan:
ASP.NET Core menyediakan API kriptografi untuk melindungi data, termasuk manajemen dan rotasi kunci.
Aplikasi web sering kali perlu menyimpan data sensitif. API perlindungan data Windows (DPAPI) tidak ditujukan untuk digunakan di aplikasi web.
Tumpukan perlindungan data ASP.NET Core dirancang untuk:
- Berikan solusi bawaan untuk sebagian besar skenario Web.
- Atasi banyak kekurangan sistem enkripsi sebelumnya.
- Berfungsi sebagai pengganti
<machineKey>
elemen dalam ASP.NET 1.x - 4.x.
Pernyataan masalah
Saya perlu mempertahankan informasi tepercaya untuk pengambilan nanti, tetapi saya tidak mempercayai mekanisme persistensi. Dalam istilah web, ini mungkin ditulis sebagai saya perlu melakukan transaksi bolak-balik status terpercaya melalui klien yang tidak terpercaya.
Keaslian, integritas, dan anti-perusakan adalah persyaratan. Contoh kanonis dari hal ini adalah token autentikasi cookie atau bearer token. Server menghasilkan token saya Groot dan memiliki izin xyz dan mengirimkannya ke klien. Klien menyajikan token itu kembali ke server, tetapi server membutuhkan semacam jaminan bahwa klien belum memalsukan token.
Kerahasiaan adalah persyaratan. Karena status bertahan dipercaya oleh server, status ini dapat berisi informasi yang seharusnya tidak diungkapkan ke klien yang tidak tepercaya. Contohnya:
- Jalur file.
- Izin
- Penanda atau referensi tidak langsung lainnya.
- Beberapa data khusus server.
Isolasi adalah persyaratan. Karena aplikasi modern digabungkan, komponen individual ingin memanfaatkan sistem ini tanpa memperhatikan komponen lain dalam sistem. Misalnya, pertimbangkan komponen token pembawa menggunakan tumpukan ini. Ini harus beroperasi tanpa gangguan sama sekali, misalnya, dari mekanisme anti-CSRF yang juga digunakan oleh tumpukan yang sama.
Beberapa asumsi umum dapat mempersempit cakupan persyaratan:
- Semua layanan yang beroperasi dalam cryptosystem sama-sama tepercaya.
- Data tidak perlu dihasilkan atau dikonsumsi di luar layanan di bawah kontrol langsung kami.
- Operasi harus cepat karena setiap permintaan ke layanan web mungkin melalui cryptosystem satu atau beberapa kali. Persyaratan kecepatan membuat kriptografi simetris ideal. Kriptografi asimetris tidak digunakan sampai diperlukan.
Filsafat desain
ASP.NET Core perlindungan data adalah tumpukan perlindungan data yang mudah digunakan. Ini didasarkan pada prinsip-prinsip berikut:
- Kemudahan konfigurasi. Sistem berusaha untuk konfigurasi nol. Dalam situasi di mana pengembang perlu mengonfigurasi aspek tertentu, seperti repositori kunci, konfigurasi spesifik tersebut tidak sulit.
- Menawarkan API dasar yang berorientasi pada konsumen. API mudah digunakan dengan benar dan sulit digunakan dengan salah.
- Pengembang tidak perlu mempelajari prinsip manajemen utama. Sistem menangani pemilihan algoritma dan masa pakai kunci atas nama pengembang. Pengembang tidak memiliki akses ke bahan kunci mentah.
- Kunci dilindungi saat istirahat sebanyak mungkin. Sistem mencari tahu mekanisme perlindungan default yang sesuai dan menerapkannya secara otomatis.
API perlindungan data terutama tidak ditujukan untuk persistensi payload rahasia yang tidak terbatas. Teknologi lain, seperti Windows CNG DPAPI dan Azure Rights Management lebih cocok untuk skenario penyimpanan yang tidak terbatas. Mereka memiliki kemampuan manajemen kunci yang kuat dan sebanding. Meskipun demikian, API perlindungan data ASP.NET Core dapat digunakan untuk perlindungan jangka panjang data rahasia.
Audiens
Sistem perlindungan data menyediakan API yang menargetkan tiga audiens utama:
API konsumen ditujukan untuk pengembang aplikasi dan kerangka kerja.
Saya tidak ingin mempelajari tentang bagaimana tumpukan beroperasi atau bagaimana konfigurasinya. Saya hanya ingin melakukan beberapa operasi dengan probabilitas tinggi menggunakan API dengan sukses.
API konfigurasi menargetkan pengembang aplikasi dan administrator sistem.
Saya perlu memberi tahu sistem perlindungan data bahwa lingkungan saya memerlukan jalur atau pengaturan non-default.
API ekstensibilitas menargetkan pengembang yang bertugas menerapkan kebijakan kustom. Penggunaan API ini terbatas pada situasi langka dan pengembang dengan pengalaman keamanan.
Saya perlu mengganti seluruh komponen dalam sistem karena saya memiliki persyaratan perilaku yang benar-benar unik. Saya bersedia mempelajari bagian yang jarang digunakan dari permukaan API untuk membangun plugin yang memenuhi kebutuhan saya.
Tata letak paket
Tumpukan perlindungan data terdiri dari lima paket:
Microsoft.AspNetCore.DataProtection.Abstractions berisi:
- IDataProtectionProvider dan IDataProtector digunakan sebagai antarmuka untuk membuat layanan perlindungan data.
- Metode ekstensi yang berguna untuk bekerja dengan tipe-tipe ini. misalnya, IDataProtector.Protect
Jika sistem perlindungan data dibuat di lokasi lain dan Anda menggunakan API, rujuk
Microsoft.AspNetCore.DataProtection.Abstractions
.Microsoft.AspNetCore.DataProtection berisi implementasi inti dari sistem perlindungan data, termasuk:
- Operasi kriptografi inti.
- Manajemen kunci.
- Konfigurasi dan ekstensibilitas.
Untuk membuat instans sistem perlindungan data, referensikan
Microsoft.AspNetCore.DataProtection
. Anda mungkin perlu mereferensikan sistem perlindungan data saat:- Menambahkannya ke IServiceCollection.
- Memodifikasi atau memperluas perilakunya.
Microsoft.AspNetCore.DataProtection.Extensions berisi API tambahan yang mungkin berguna bagi pengembang tetapi tidak termasuk dalam paket inti. Misalnya, paket ini berisi:
- Metode pabrik untuk membuat instans sistem perlindungan data untuk menyimpan kunci di lokasi pada sistem file tanpa injeksi dependensi. Lihat DataProtectionProvider.
- Metode ekstensi untuk membatasi masa pakai payload yang dilindungi. Lihat ITimeLimitedDataProtector.
Microsoft.AspNetCore.DataProtection.SystemWeb dapat diinstal ke aplikasi ASP.NET 4.x yang ada untuk mengalihkan operasinya
<machineKey>
untuk menggunakan tumpukan perlindungan data ASP.NET Core baru. Untuk informasi selengkapnya, lihat Mengganti machineKey ASP.NET di ASP.NET Core.Microsoft.AspNetCore.Cryptography.KeyDerivation menyediakan implementasi rutinitas hash kata sandi PBKDF2 dan dapat digunakan oleh sistem yang harus menangani kata sandi pengguna dengan aman. Untuk informasi selengkapnya, lihat Kata sandi hash di ASP.NET Core.
Sumber Daya Tambahan:
ASP.NET Core