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.

 

 

 

 

  1. Nosso primeiro passo é saber em qual pasta nós criamos nosso projeto ASP.NET, no exemplo eu estou utilizando o seguinte diretório “F:\My Documents\Visual Studio 2005\WebSites\Criptografia” (Figura 2).

 

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.