Bagikan melalui


Gambaran Umum Perlindungan Data Inti ASP.NET

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:

  1. 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.

  2. API konfigurasi menargetkan pengembang aplikasi dan administrator sistem.

    Saya perlu memberi tahu sistem perlindungan data bahwa lingkungan saya memerlukan jalur atau pengaturan non-default.

  3. 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:

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:

  1. 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.

  2. API konfigurasi menargetkan pengembang aplikasi dan administrator sistem.

    Saya perlu memberi tahu sistem perlindungan data bahwa lingkungan saya memerlukan jalur atau pengaturan non-default.

  3. 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:

Sumber Daya Tambahan: