Mulai meng-enkrip
Dalam case ini kita akan mengenkrip bagian <connectionStrings> menggunakan RSADataProtectionProvider (ini setingan defaultnya aspnet_regiis).
Langkah 1: Pindahlah ke web server.
Langkah 2: Start – Run… tulis cmd, klik OK. Perintah ini akan membuka console command prompt. Ketik perintah berikut :
> cd C:\Windows\Microsoft.net\Framework\v2.0.50727
Perintah ini akan membawa anda ke lokasi default dimana aspnet_regiis berada. Berikutnya tulis perintah berikut:
> aspnet_regiis –pef “connectionStrings” C:\Inetpub\wwwroot\testProtectConfig
Kita menggunakan parameter –pef yang berarti kita meminta aspnet_regiis untuk melakukan enkripsi di bagian “connectionStrings” untuk project kita yang berada di lokasi C:\Inetpub\wwwroot\testProtectConfig.
Perhatikan: penulisan nama section adalah case-sensitive.
Kita juga bisa menggunakan nama aplikasi untuk mengganti penulisan lokasi project, perintahnya:
> aspnet_regiis –pef “connectionStrings” –app “/testProjectConfig”
“/testProjectConfig” mestilah nama virtual directory untuk project kita.
Perintah ini akan memodifikasi bagian <connectionStrings> yang kita buat sebelumnya di web.config. Apabila berhasil, kita akan melihat statusnya:
Encrypting configuration section…
Succeeded!
Sekarang, coba buka file web.config dan kita lihat di bagian <connec tionStrings> sudah ada modifikasi.
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData> <CipherValue>lKwUSrgG3is3VjSyleYodfsQ+31c+UkPimp3e9ecEdD3dcFChmQxl95QCduaQllTFwRccKx84cAGNaJtij9g8TvvLGE/+qV97EYdgcpoWLDIGZTnb2er8unOkVA6AgIiuWTXOjnYNU0EScwepjxs0y0kfG9XCZJwXiE6Uz2Lsj4=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData> <CipherValue>IkRJR3M+WScGJE3GLwXy906XTZpBwO8cajIwAipPMaI8eo4QglCib2HnG3TCFSkTxE+HZSQj67VhFyuKdX1CbFb3vWD0nj91n5nw8ZeoP5wBNK9LGIrEfeAowZYk6u5A7k4wj24n6WjkQNIczMRpmduxE1YKj8hXWdsTR/VMYrxXxLGoVNI6lEdEYphQYO5QRM9eKQPkSoe9BehskCQm/lgK3LZV0z9vxJIZcQkaLM+xC+5vSQaIhnt29w6lf0locV1hKU25j7PAp/+MohUh05PutpLD83BA</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
Catatan:
Untuk mengembalikan connection string ke clear text (decrypt), ketikkan perintah
> aspnet_regiis –pd “connectionStrings” –app “/testProtectConfig”
Langkah 3: Cobalah browse lagi.
Jika masih tampil dengan baik, anda beruntung.
Tapi kalau yang tampil error seperti berikut:
Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened.
artinya: ternyata pekerjaan belum selesai…
kayanya Microsoft di artikel tersebut kelupaan sesuatu yang penting, yaitu hak akses ke Key Container untuk mendekrip. Hmm…ada apa?