Segundo o Dicionário AurĂ©lio criptografar significa. [De cript(o)- + -graf(o)- + -ar2.] V. t. d. 1. Tornar incompreensĂvel, com observância de normas especiais consignadas numa cifra ou num cĂłdigo, o texto de (uma mensagem escrita com clareza). 2. Inform. Codificar (uma informação) de forma a tornar difĂcil sua decodificação sem a chave (20) adequada. [Cf. cifrar e codizar.] Como no arquivo Web.Config nĂłs guardamos dados confidenciais, como por exemplo a senha do banco de dados, convĂ©m criptografar (tornar incompreensĂvel) estas informações para que pessoas nĂŁo autorizadas, tenha acesso. E este Ă© o objetivo deste artigo, explicar como criptografar a string de conexĂŁo no arquivo Web.Conifg (Figura 1). Figura 1 – Arquivo Web.Config.
Figura 2 – Pasta do projeto ASP.NET contendo o arquivo Web.Config.
Por questões de praticidade nĂŁo exibirei neste artigo o conteĂşdo do meu projeto, pois este nĂŁo Ă© o objetivo do artigo, e a Ăşnica informação importante Ă© que o projeto contĂ©m um arquivo com uma informação (senha do banco de dados) que precisamos tornar ela incompreensĂvel para pessoas nĂŁo autorizadas.
2. O segundo passo Ă© abrir o SDK Command Prompt do Framework 2.0 (Figura 3).
Figura 3 – SDK Command Prompt – Iniciar / Programas / Microsoft .NER Framework SDK 2.0
3. Com o SDK Command Prompt aberto (Figura 4), nós podemos através do comando aspnet_regiis.exe ler todas as opções de criptografia existentes como, por exemplo, o modo de criptografar o Web.Config no IIS é diferente do modo pasta, que é o que estamos fazendo neste artigo.
Figura 4 – aspneti_regiis.exe
4. O quarto passo é executar o comando que irá realizar criptografia do Web.Config.
aspnet_regiis.exe -pef "connectionStrings" "F:\My Documents\Visual Studio 2005\WebSites\Criptografia" –prov "DataProtectionConfigurationProvider" |
Listagem 1 – Comando aspnet_regiis.exe
Vamos analisar o comando (Listagem 1).
- comando –pef :
-pef section web-app-physical-dir
Criptografa a sessĂŁo <connectionString> - Em seguida informamos o endereço fĂsico do projeto.
- A sessão que contém o a string de Conexão.
<connectionStrings>
<add name="cnnString" connectionString="Data Source=MANS;Initial Catalog=Formulas;User ID=sa; Password=1010" providerName="System.Data.SqlClient" />
</connectionStrings>
Listagem 2 – Sessão <connectionStrings>
- O –prov Ă© o provider que iremos utilizar, temos dois providers disponĂveis. O DataProtectionConfigurationProvider usa DPAPI e o RSAProtectedConfigurationProvider usa a criptografia de chave pĂşblica do RSA.
Repare que na (Figura 1) eu tenho uma outra sessão chamada <appSettings> que também poderia ser criptografada.
5. ApĂłs o comando ser digitado pode ver a resposta de sucesso da criptografia. (Figura 5).
Figura 5 – Sucesso do comando.
6 . Com isso podemos voltar para Visual Studio e visualizar a string de conexão criptografada, mas antes de visualizar o Web.Config será exibida uma mensagem informando que o arquivo foi modificado e se deseja carregar estas modificações (Figura 6), clique em Sim.
Figura 6 – Aviso de modificação no arquivo Web.Config.
7. Em seguida, finalmente, podemos visualizar a string de conexĂŁo criptografada. (Figura 7).
Figura 7 – String de conexão criptografada.
Vimos que através dos passos acima é bem simples criptografar a string de conexão no arquivo Web.Config.
Abraços e até o próximo.