Eu tenho um aplicativo, um aplicativo comercial, que armazena sua string de conexão em claro no registro.
Quando usei uma conexão confiável com o SQL Server, tudo bem (o ID do usuário e a senha estão no aplicativo IIS e são armazenados criptografados no IIS).
Agora devo mudar para a autenticação do SQL e me afastar de uma conexão confiável (longa história).
Eu sonho com uma string conn assim:
Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=@#$@#@%#$%#$<encrypted password>@#$@#$;encryptedpassword=yes;
E uma maneira que eu possa criptografar o pw (usando a chave da máquina ou algo assim).
Existe um caminho nessa direção?
Isso é mais para SO do que para DBA, mas se você estiver usando a identidade/senha para o pool de aplicativos no IIS, ele criptografará a senha para você quando ela for armazenada. No entanto, esteja ciente de que, mesmo com esse processo, as senhas ainda podem ser descriptografadas com pouco trabalho .
A string de conexão em si não permite que você insira uma senha criptografada, o mecanismo que está salvando a string de conexão lida com a criptografia de dados confidenciais (ou deveria).
A resposta é não
Não há como fazer criptografia em linha de forma que a máquina ou aplicativo criptografe ou descriptografe automaticamente.
As soluções são:
Parece não haver outras soluções para isso.