Genel Bakış
Web.config gibi yapılandırma dosyaları genellikle “hassas” bilgileri tutarlar, kullanıcı adı, şifre, veritabanı bağlantısı ve şifrelenmiş anahtarlar gibi. Eğer bu bilgileri korumazsanız uygulamanız çeşitli saldırılardan etkilenir ki bu etki yapılandırma dosyasının erişilmesi sebebi ile çok büyük olur. Aşağıdaki yapılandırma düğümleri sıklıkla hassas bilgileri içerirler ve bu yüzden şifrelenmeleri gerekmektedir.
· <appSettings>. Özelleştirilmiş ayarlar yapmanızı sağlar.
· <connectionStrings>. Bağlantılarınızı belirlemenizi sağlar.
· <identity>. Kişiselleştirme yapılmasını olanak sağlar.
· <sessionState>. Oturum bilginisinin ne şekilde saklanacağını belirlemenizi sağlar.
Şifreleme ve şifrelenmiş bilgiyi çözme performans bakımından yorucu bir işlemdir. Bu performans yoğunluğunu minimunda tutmak için sadece gerekli, özel bilgiler içeren yapılandırma düğümlerini şifrelemek gerekir.
.NET Framework 1.0 ve 1.1 sürümleri sınırlı şekilde yapılandırma dosyalarını şifreleme desteği sağlıyor. Buna rağmen .NET Framework 2.0 bize yapılandırma dosyalarında bilgileri command line kullanarak (Command Promt) şifreleme imkanı vermektedir. Kendi özelleştirilmiş provider’larınızı da kullanabileceğiniz bu destek bize standart olarak iki provider ile destek sunur. Bunlar :
· RSAProtectedConfigurationProvider. Verileri şifrelemek ve şifreyi çözmek için kullanılan standart şifreleme anahtarıdır ve bu anahtar RSA genel anahtarını kullanmaktadır.
· DataProtectionConfigurationProvider. DPAPI kullanarak verileri şifreleme ve şifreyi çözme işlemi yapmaktadır.
Bu makalede Aspnet_Regiis.exe aracını kullanarak verileri DataProtectionConfigurationProvider ile verileri şifreleyeceğiz ve şifreyi çözüp okuyacağız
Not : ASP.NET otomatik olarak yapılandırma düğümlerinde şifrelenmiş dosyaların şifrelerini çözmektedir. Sizin ayrıca bir işlem yapmanıza veya ek kod yazmanıza gerek yok.
Bağlantı düğümlerini DPAPI ile şifrelemek için aşağıdaki adımları izlememiz gerekiyor.
· Adım 1. Şifrelenecek Düğümü Belirleme
· Adım 2. Makine veya kullanıcı bazlı depolama
· Adım 3. Yapılandırma dosyasını şifreleme
Adım 1. Şifrelenecek Düğümü Belirleme
Şifreleme ve şifrelenmiş bilgiyi çözme performans bakımından yorucu bir işlemdir. Bu performans yoğunluğunu minimumda tutmak için sadece gerekli, özel bilgiler içeren yapılandırma düğümlerini şifrelemek gerekir.
Şifreleme yapılamayacak düğümler
Eğer aşağıdaki düğümlerde “hassas” bilgiler tutuyorsanız , o verileri korumak için aspnet_regiis.exe aracı ile şifreleme yapamazsınız:
· <processModel>
· <runtime>
· <mscorlib>
· <startup>
· <system.runtime.remoting>
· <protectedData>
· <satelliteassemblies>
· <cryptographySettings>
· <cryptoNameMapping>
· <cryptoClasses>
Not : Bağlantı düğümlerini listelemek için Aspnet_setreg.exe aracını kullanabilirsiniz. Bu araç diğer sürümler için de mevcuttur.
Not : Bu bağlantı düğümlerini Aspnet_setreg.exe aracını kullanarak şifrelemek için daha fazla bilgi almak için bu makaleden yararlanabilirsiniz. How to use the ASP.NET utility to encrypt credentials and session state connection strings.





