Olá pessoal!!

Quero deixar hoje uma dica simples e que ajuda a aumentar a segurança dos sistemas Web: criptografia de informações no Web.config.

A intenção não é explorar todos os recursos sobre criptografia e muito menos sobre segurança, e, sim, mostrar uma maneira simples de proteger informações importantes.

Então vamos lá!

Para este trabalho utilizaremos a ferramenta “aspnet_regiis.exe” a partir do Visual Studio Command Prompt 2010, juntamente com a seguinte ConnectionString :

É possível criptografar sua ConnectionString utilizando um caminho físico ou lógico, como veremos abaixo.

Criptografando a partir do caminho físico:

Utilizaremos o comando aspnet_regiis -pef "seção_a_criptografar" "caminho_fisico_do_arquivo", onde "seção_a_criptografar" é uma seção existente do seu Web.config e "caminho_fisico_do_arquivo" é o caminho onde encontra-se seu Web.config.

Sendo assim, abra o Command Prompt do Visual Studio e digite o comando acima, informando os parametros de acordo com sua configuração.

 No meu caso ficaria assim: aspnet_regiis -pef "connectionStrings" "C:\Users\Leandro\Documents\Estudos\Rock#"

Após executado o comando e não sido apresentado nenhum erro, a ConnectionString acima ficará assim.

(Obs.: os valores em <CipherValue> foram "quebrados" para melhor visualização)

 É claro que existe um meio de descriptografar a seção. Vamos usar o seguinte comando: aspnet_regiis -pdf "connectionStrings" "C:\Users\Leandro\Documents\Estudos\Rock#"

Se não ocorrer nenhum erro, a connection string estará descriptografada como aqui.

 Criptografando a partir do caminho lógico:

De maneira muito similar, é possível criptografar e descriptografar as informações do web.config utilizando o caminho lógico.

Os comandos utilizados são extremamente similares aos já apresentados:

 Para criptografar utilize aspnet_regiis -pe "seção_a_criptografar" -app "/Nome_Logico_Aplicação".

E para descriptografar utilize aspnet_regiis -pd "seção_a_criptografar" -app "/Nome_Logico_Aplicação".

 Execute os comandos e verifique que o resultado será o mesmo.

É importante citar que criptografar sua Connection String não afeta sua utilização pela aplicação.

 Para finalizar, segue alguns links de referência, pois a ferramenta "aspnet_regiis.exe" possui outras funcionalidades interessantes. Vale a pena conhecê-las!

  _ aspnet_regiis /help: exibe a ajuda da ferramenta (em inglês);

_ Página do MSDN sobre o aspnet_regiis;

 

That's All (for now...) Folks!!