Segurança da cadeia de conexão no aplicativo de área de trabalho .net

estou desenvolvendo um aplicativo de desktop winforms .net destinado a ser executado em várias agências do banco como um aplicativo de backup sempre que o principal (um aplicativo da web) estiver indisponível devido a problemas de conexão com o nó central do banco. As próprias agências não contam com nenhum serviço corporativo além de um banco de dados do SQL Server. Por esse motivo, o aplicativo deve conseguir se conectar diretamente ao SQL-Server. Meu problema surge quando tenho que fornecer ao aplicativo uma senha para conectar-me ao banco de dados:

1) Armazenar a senha em texto não criptografado em um arquivo app.config ou similar não é uma opção (o cliente exige que a senha seja criptografada)

2) Armazenar a senha criptografada em um arquivo de configuração leva à necessidade de ter uma chave de criptografia disponível localmente. A chave de criptografia pode ser codificada apenas no código do aplicativo, mas seria facilmente legível usando um descompilador .net ou similar.

3) Usar um algoritmo personalizado para criptografar / descriptografar também não funcionaria devido aos mesmos motivos que 2).

4) A segurança integrada não é suportada pelo banco

Além disso, os clientes exigem que eles possam alterar a senha em um local (dentro de uma filial) sem a necessidade de ir de um computador para outro, atualizando os arquivos de configuração (que exclui a possibilidade de usar a chave da máquina para criptografar a senha nos arquivos de configuração de cada máquina, como o asp.net faz)

Você forneceria outra abordagem ou sugestão para lidar com esse problema? Eu apreciaria qualquer ajuda. Agradecemos antecipadamente, Bernabé

questionAnswers(4)

yourAnswerToTheQuestion