Di asp.net2.0, ada fungsi baru untuk mengenkripsi beberapa data di web.config. Anda dapat menggunakan RSAProtectedConfigurationProvider dan DPAPIProtectedConfigurationProvider untuk mengenkripsi.
1. Tentukan terlebih dahulu apakah bagian konfigurasi di web.config yang akan dienkripsi dapat dienkripsi
2. Buat container kunci RSA
3. Identifikasi container kunci yang akan digunakan di web.config
4. Enkripsi web.config
5. Berikan izin Akses kepada wadah kunci RSA
Langkah 1: Pertama tentukan apakah bagian konfigurasi di web.config yang akan dienkripsi dapat dienkripsi
ASP.NET 2.0 mendukung enkripsi beberapa bagian konfigurasi Web.config Data di bagian konfigurasi berikut tidak dapat dienkripsi:
<processModel>
<waktu proses>
<mscorlib>
<permulaan>
<sistem.runtime.remoting>
<configProtectedData>
<perakitan satelit>
<Pengaturan Kriptografi>
<pemetaanNamacrypto>
<Kelas Kripto>
Langkah 2: Buat wadah kunci RSA. Untuk membuat wadah kunci RSA, silakan gunakan alat pendaftaran ASP.NET IIS (Aspnet_regiis.exe) dan sakelar –pc. Anda harus memberi nama pada kontainer kunci yang mengidentifikasi kontainer kunci yang digunakan oleh RsaProtectedConfigurationProvider yang ditentukan di bagian configProtectedData pada file Web.config aplikasi. Untuk memastikan bahwa kontainer kunci RSA yang baru dibuat dapat diekspor, opsi -exp harus disertakan.
Misalnya, perintah berikut membuat kontainer kunci RSA bernama ABeenKeys, yang merupakan kontainer kunci tingkat mesin yang dapat diekspor.
aspnet_regiis -pc "ABeenKeys"–exp
Langkah 3: Ubah web.config untuk mengidentifikasi wadah kunci
Edit file Web.config untuk mengidentifikasi kontainer kunci yang akan digunakan.
Tambahkan <configProtectedData> ke web.config untuk mengonfigurasi kontainer kunci tingkat mesin bernama ABeenKeys, tambahkan atribut xmlns ke <configuration>.
<configuration xmlns=" http://schemas.microsoft.com/.NetConfiguration/v2.0 ">saProtectedConfigurationProvider menggunakan kontainer kunci RSA tingkat mesin bernama ABeenKeys.
<configProtectedData > <penyedia> <tambahkan nama="ABeenProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, processorArchitecture=MSIL" keyContainerName="ABeenKeys"/> </penyedia > </configProtectedData>
Langkah 4: Enkripsi bagian <connectionStrings> pada file web.config Anda
Enkripsi bagian konfigurasi di file web.config Anda
> aspnet_regiis -pe "connectionStrings" -app "/connectionTest"
Langkah 5: Pemberian akses ke wadah kunci RSA dapat ditentukan dengan kode berikut yang izin penggunanya harus diberikan
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
Secara default, kontainer kunci RSA dilindungi secara ketat oleh daftar kontrol akses (ACL) NTFS di server tempat kontainer tersebut berada. Hal ini meningkatkan keamanan informasi terenkripsi dengan membatasi siapa yang memiliki akses ke kunci enkripsi. Sebelum ASP.NET dapat menggunakan kontainer kunci RSA, identitas proses aplikasi ASP.NET harus diberikan akses baca ke kontainer kunci RSA. Anda dapat menggunakan alat Aspnet_regiis.exe dengan sakelar -pa untuk memberikan izin membaca identitas aplikasi ASP.NET ke wadah kunci RSA. Misalnya, perintah berikut memberikan akses baca akun Windows Server 2003 NETWORK SERVICE ke wadah kunci RSA tingkat mesin bernama ABeenKeys:
aspnet_regiis -pa "ABeenKeys" "NT AUTHORITYNETWORK SERVICE"
Melihat:
Jika kontainer kunci RSA adalah kontainer tingkat pengguna, Anda harus masuk sebagai pengguna yang profil Windows-nya menyimpan kunci tersebut, dan Anda harus menyertakan opsi -pku untuk memberikan akses ke kontainer kunci RSA tingkat pengguna.
Untuk menggunakan RsaProtectedConfigurationProvider default yang ditentukan dalam konfigurasi komputer, Anda harus terlebih dahulu memberikan akses identitas Windows aplikasi ke kontainer kunci komputer bernama NetFrameworkConfigurationKey, yang merupakan kontainer kunci yang ditentukan untuk penyedia default. Misalnya, perintah berikut memberikan akses akun NETWORK SERVICE ke kontainer kunci RSA yang digunakan oleh RsaProtectedConfigurationProvider default.
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITYNETWORK SERVICE"
Kontainer kunci RSA NetFrameworkConfigurationKey adalah kontainer kunci default untuk perintah yang dikeluarkan oleh alat Aspnet_regiis.exe. Oleh karena itu perintah di atas juga dapat dikeluarkan sebagai berikut:
unduhan kode
"NT AUTHORITYNETWORK SERVICE"