Cara mengonfigurasi mode enkripsi warisan di ASP.NET

Ringkasan

Pembaruan keamanan yang dijelaskan dalam buletin keamanan Microsoft MS10-070 membuat perubahan pada mekanisme enkripsi default di ASP.NET melakukan validasi (penandatanganan) selain enkripsi. Artikel ini menjelaskan opsi konfigurasi untuk kembali ke perilaku lama untuk enkripsi di ASP.NET.

Untuk informasi selengkapnya tentang pembaruan keamanan ini, kunjungi situs web berikut:

http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx

Informasi Selengkapnya

ASP.NET memungkinkan pengguna untuk mengenkripsi atau memvalidasi data secara opsional melalui konfigurasi di bagian MachineKey. Pembaruan keamanan yang ditangani oleh pembaruan keamanan MS10-070 mengubah perilaku default enkripsi di ASP.NET untuk melakukan validasi selain enkripsi meskipun hanya enkripsi yang diminta.

Setelah Anda menginstal pembaruan keamanan yang dijelaskan dalam buletin keamanan MS10-070, operasi berikut akan dilakukan saat enkripsi disiapkan untuk ASP.NET:

  • Selama enkripsi data, tanda tangan HMAC dihasilkan untuk data terenkripsi dan ditambahkan ke data tersebut.
  • Selama dekripsi data, tanda tangan HMAC divalidasi sebelum data didekripsi.

Kunci berikut dalam pengaturan aplikasi ASP.NET (appSettings) mengontrol perilaku penandatanganan selain enkripsi.

Kunci Tipe Nilai Default Versi on.NET yang didukung
aspnet:UseLegacyEncryption Boolean False Microsoft .NET Framework 2.0 Paket Layanan 1
Microsoft .NET Framework 2.0 Paket Layanan 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Paket Layanan 1
Microsoft .NET Framework 4.0
aspnet:UseLegacyMachineKeyEncryption Boolean False Microsoft .NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFiles Boolean False Microsoft .NET Framework 3.5 Paket Layanan 1
Microsoft .NET Framework 4.0

Deskripsi aspnet:UseLegacyEncryption appSetting

Pengaturan aplikasi ini menentukan apakah enkripsi juga akan melakukan validasi dengan kunci HMAC meskipun bagian validasi di bagian machineKey pada konfigurasi ASP.NET tidak dikonfigurasi untuk validasi tanda tangan HMAC.

aspnet:UseLegacyEncryption Deskripsi
Salah (default) Pengaturan ini mengonfigurasi ASP.NET untuk melakukan validasi tanda tangan HMAC saat ASP.NET dikonfigurasi untuk menggunakan enkripsi. Hal ini akan terjadi bahkan jika validasi di machineKey tidak dikonfigurasi untuk ditandatangani menggunakan kunci HMAC.
True Pengaturan ini mengonfigurasi ASP.NET untuk tidak melakukan validasi tanda tangan HMAC saat dikonfigurasi untuk menggunakan enkripsi dan bukan penandatanganan HMAC melalui validasi di machineKey.

Catatan Pengaturan ini dapat memungkinkan klien berbahaya untuk mendekripsi, memalsukan, atau mengubah data terenkripsi.

Untuk mengonfigurasi pengaturan ini, tambahkan konfigurasi berikut di komputer atau aplikasi Anda web.config file:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyEncryption" value="false" />
 </appSettings>
</configuration> 

Deskripsi aspnet:UseLegacyMachineKeyEncryption appSetting

Pengaturan aplikasi ini menentukan apakah enkripsi melalui kelas System.Web.Security.MachineKey juga akan melakukan validasi dengan kunci HMAC meskipun argumen MachineKeyProtection yang disediakan tidak menentukan bahwa validasi harus dilakukan.

aspnet:UseLegacyMachineKeyEncryption Deskripsi
Salah (default) Pengaturan ini mengonfigurasi ASP.NET untuk melakukan validasi tanda tangan HMAC melalui kelas MachineKey saat ASP.NET dikonfigurasi untuk menggunakan enkripsi. Hal ini akan terjadi meskipun argumen MachineKeyProtection yang diberikan tidak menentukan bahwa validasi harus dilakukan.
True Pengaturan ini mengonfigurasi ASP.NET untuk tidak melakukan validasi tanda tangan HMAC melalui kelas MachineKey saat dikonfigurasi untuk menggunakan enkripsi dan bukan penandatanganan HMAC melalui argumen MachineKeyProtection yang disediakan.

Catatan Pengaturan ini dapat memungkinkan klien berbahaya untuk mendekripsi, memalsukan, atau mengubah data terenkripsi.

Untuk mengonfigurasi pengaturan ini, tambahkan konfigurasi berikut di komputer atau aplikasi Anda web.config file:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" />
 </appSettings>
</configuration> 

Deskripsi aspnet:ScriptResourceAllowNonJsFiles appSetting

Pengaturan aplikasi ini menentukan apakah penangan ScriptResource.axd di ASP.NET akan menyajikan file non-JavaScript (ekstensi .js). ScriptResource.axd adalah penanganan ASP.NET yang mengembalikan file sumber JavaScript ke komponen AJAX di halaman web ASP.NET.

aspnet:ScriptResourceAllowNonJsFiles Deskripsi
Salah (default) Pengaturan ini mengonfigurasi ASP.NET untuk hanya melayani file statis yang memiliki ekstensi .js (JavaScript) melalui handler ScriptResource.axd.
True Pengaturan ini mengonfigurasi ASP.NET untuk menyajikan file statis apa pun yang dapat diakses aplikasi ASP.NET melalui penanganan ScriptResource.axd.

Catatan Pengaturan ini memungkinkan file apa pun dalam aplikasi ASP.NET Anda disajikan melalui handler. Jika file tersebut berisi data sensitif atau rahasia, pengaturan ini berpotensi membocorkan informasi sensitif ke klien.

Untuk mengonfigurasi pengaturan ini, tambahkan konfigurasi berikut di komputer atau aplikasi Anda web.config file:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" />
 </appSettings>
</configuration> 

Referensi

Untuk informasi selengkapnya tentang bagian MachineKey, kunjungi situs web Microsoft berikut:

http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
Untuk informasi selengkapnya tentang kelas System.Web.Security.MachineKey, kunjungi situs web Microsoft berikut:

http://msdn.microsoft.com/en-us/library/system.web.security.machinekey.aspx Untuk informasi selengkapnya tentang cara menggunakan pengaturan aplikasi (appSettings), klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

815786 Cara menyimpan dan mengambil informasi kustom dari file konfigurasi aplikasi menggunakan Visual C#
313405 Cara menyimpan dan mengambil informasi kustom dari file konfigurasi aplikasi menggunakan Visual Basic .NET atau Visual Basic 2005

Untuk informasi selengkapnya tentang konfigurasi ASP.Net, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

INFO 307626: Gambaran Umum Konfigurasi ASP.NET