Pergunta

As minhas .NET WinForms aplicativo se conecta ao servidor FTP e downloads de um arquivo. Para isso é necessária uma senha para a conexão. A senha deve ser armazenado em um arquivo de configuração, mas deve ser criptografada. As únicas soluções para fazer isso que eu encontrei incluem tanto a seção de configuração toda segurança (que é inútil para mim como na seção appSettings onde a senha é que há outros dados que precisa ser mudado manualmente) ou usando DPAPI (e não funciona muito porque as senhas criptografadas no meu computador não pode ser descriptografado sobre os outros e isso é necessário). Existem outras técnicas?

Foi útil?

Solução

Você pode criptografar e descriptografar manualmente usando uma cifra simétrica dentro de sua aplicação (ou seja, AES), e ter a senha criptografada armazenada no arquivo de configuração.

O problema, claro, com isso é que você vai ter que armazenar a chave simétrica que codifica e decodifica a senha dentro de sua aplicação, para que qualquer pessoa com algum conhecimento de criptografia e .net seria capaz de refletir e fazer engenharia reversa de seu binário com bastante facilidade -. e se apossar da chave e, portanto, a senha FTP

Você poderia ofuscar seu binário para tornar isso mais difícil.

É claro, o nome de usuário e senhas FTP são enviadas em texto claro de qualquer maneira (a menos que você estiver usando ftps :), para que qualquer pessoa 'escuta' para o seu aplicativo irá descobrir o nome de usuário e senha com bastante rapidez.

Eu acho que se resume a quão seguro você quer este nome de usuário e senha em seu aplicativo? Esta solução evita aqueles com olhos curiosos de se apoderar dele, mas não aqueles que são determinados.

Outras dicas

Você pode criptografar partes específicas do arquivo.config - por exemplo, a seção <connectionstrings>. Esta poderia ser a senha de FTP (que não é realmente uma seqüência de conexão), e você pode deixar a seção <appSettings> não encriptado.

Update:. Se você não pode usar <connectionstrings> quer, você pode criar sua própria seção personalizada e Criptografar

A maioria dos recursos dizer-lhe para usar a ferramenta aspnet_regiis ASP.NET. Aqui de um artigo que fala sobre criptografar seções para aplicações C # Windows, onde utilizando ASP.NET não é uma opção.

Além disso actualização: Em um comentário, você disse

essa segurança é suficiente - é uma simples aplicativo dentro da empresa e não há Não há necessidade de uma segurança muito alto, apenas Não quero fazer o lay senha não como texto simples no arquivo de configuração

Então talvez esta solução iria trabalhar para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top