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.
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!!