http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/88b15d6b-9baa-4f4d-8942-137185bfdf56/
ASP.NET-i Veebirakendusel või WebServicel vaja turvalisuse tõstmiseks ConnectionStrings osa ära krüptida
Käima sain sellise asjaga, kasutame RSA-d
1. Loome Machine level eksporditava RSA key containeri
aspnet_regiis on programm mille leiab serveril tavaliselt C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 kataloogist
aspnet_regiis -pc "KampusKey" -exp
KampusKey on nüüd selle RSA võtme konteineri nimi, mis pannakse serveri kataloogi
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
edasi tuleb vaadata mis konto all sul see veebirakendus/veebiteenus töötab
Teed eraldi ASPX lehe, kust selle teada saad
this.LabelIdentity.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
või vaatad IIS-i manageri alt, mis basseinis sul rakendus ujub (Application Pool)
ja annab sellele kontole (tavaliselt NT AUTHORITY\NETWORK SERVICE) RSA võtme konteinerile ligipääsu õiguse
aspnet_regiis -pa "KampusKey" "NT AUTHORITY\NETWORK SERVICE"
Peab mainima, et NETWORK SERVICE on turvalisuse koha pealt üsna hea konto veebirakenduste jooksutamiseks, veelgi parem oleks kohe endale selgeks teha
kuidas luua veebirakenduse jaoks omaette väheste õigustega konto
http://msdn.microsoft.com/en-us/library/ms998297.aspx
rakenduse web.config failis tuleb nüüd lisada rida
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" >
<configSections>
</configSections>
<configProtectedData defaultProvider="RsaProtectedConfigurationProvider" >
<providers>
<add name="KampusVoti" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" keyContainerName="KampusKey" useMachineContainer="true" />
</providers>
</configProtectedData>
<connectionStrings>
<add name="TurukampusConnectionString" connectionString="Data Source=SQLBAAS;Initial Catalog=KAMPUS;User ID=KAMPUS868;Password=HKSDF6834" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
aspnet_regiis –pef "connectionStrings“ “d:\cw-turukampus_webservice” –prov “KampusVoti”
d:\cw-turukampus_webservice on see kataloog serveril ,kus sul rakenduse failid on ja
–prov “KampusVoti” peab kokku lengema web.config failis configProtectedData lisatud provider nimega, see sunnik oli juhendis mainimata
muidu ei tööta saad veateate
Parser Error Message: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened.
Rakenduses töötab asi ühtemoodi, IIS ise krüptib/dekrüptib connectrionStrings osa lahti
using System.Web.Configuration;
System.Configuration.ConnectionStringsSection konnc = WebConfigurationManager.GetSection("connectionStrings") as System.Configuration.ConnectionStringsSection;
this.Label1.Text = konnc.ConnectionStrings["TurukampusConnectionString"].ConnectionString.Trim();
Blogged with the Flock Browser