none
criptografar-proteger string de conexão do banco de dados - windows forms RRS feed

  • Pergunta

  • Olá, estou tentando proteger o código de um software e usei o DotFuscator  do visual studio 2008 2x no mesmo arquivo .exe. Porém observei que consegui ler a string de conexão do banco de dados. Pensei em criptograr a string usando Rijndael e uma chave. Alguém tem uma idéia sobre isto?

    obs: Detalhe usei uma ferramenta para fazer a engenharia reversa do código e transformando o código intermediário em código cs fica ainda mais visível as string fixas do código, o que facilita o entendimento do código (mesmo estando obfuscado).
    Paulo Moreira
    • Editado paulo3011 quarta-feira, 24 de fevereiro de 2010 20:30 Inclusão de mais informações.
    quarta-feira, 24 de fevereiro de 2010 19:28

Respostas

  • Olá,

    Essa string encontra-se no código-fonte?
    Existem versões do DotFuscator (pagas penso eu) que permite encriptar as strings de forma a não serem visíveis nesses casos.

    Deves considerar remover esses dados do código, passando por exemplo para o app.config.

    Desta forma, podes consultar este site para te ajudar a proteger esses dados:

    http://www.nickfessel.com/index.php?post=13

    Espero ter ajudado,
    Comprimentos
    • Marcado como Resposta paulo3011 quinta-feira, 11 de março de 2010 12:44
    quinta-feira, 25 de fevereiro de 2010 14:50

Todas as Respostas

  • Olá,

    Essa string encontra-se no código-fonte?
    Existem versões do DotFuscator (pagas penso eu) que permite encriptar as strings de forma a não serem visíveis nesses casos.

    Deves considerar remover esses dados do código, passando por exemplo para o app.config.

    Desta forma, podes consultar este site para te ajudar a proteger esses dados:

    http://www.nickfessel.com/index.php?post=13

    Espero ter ajudado,
    Comprimentos
    • Marcado como Resposta paulo3011 quinta-feira, 11 de março de 2010 12:44
    quinta-feira, 25 de fevereiro de 2010 14:50
  • Olá,

    Essa string encontra-se no código-fonte?
    Existem versões do DotFuscator (pagas penso eu) que permite encriptar as strings de forma a não serem visíveis nesses casos.

    Deves considerar remover esses dados do código, passando por exemplo para o app.config.

    Desta forma, podes consultar este site para te ajudar a proteger esses dados:

    http://www.nickfessel.com/index.php?post=13

    Espero ter ajudado,
    Comprimentos
    Então... mas me diga uma coisa, o arquivo de app.config fica amostra e permite que qualquer pessoa veja qual é o algoritmo usado e pelo que percebi no exemplo do artigo mostra informações da chave usada para criptografar os dados. Neste caso não fica fácil fazer a descriptografia?

    Paulo Moreira
    quinta-feira, 25 de fevereiro de 2010 16:15
  • Olá Paulo,

    Não é algo 100% seguro, mas não é tão simples quanto saber o algoritmo. É necessário saber a chave, que dependendo do tipo de nível (utilizador ou máquina) pode estar em:

    Utilizador:
    \Documents and Settings\{UserName}\Application Data\Microsoft\Crypto\RSA

    Máquina:
    \Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

    Um maior conhecedor da matéria irá saber recuperar a informação da connectionString. Mas acho que podes confiar, é o suficiente para proteger os dados.

    Espero ter ajudado,
    Cumprimentos.
    quinta-feira, 25 de fevereiro de 2010 18:49
  • Olá Paulo,

    Não é algo 100% seguro, mas não é tão simples quanto saber o algoritmo. É necessário saber a chave, que dependendo do tipo de nível (utilizador ou máquina) pode estar em:

    Utilizador:
    \Documents and Settings\{UserName}\Application Data\Microsoft\Crypto\RSA

    Máquina:
    \Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

    Um maior conhecedor da matéria irá saber recuperar a informação da connectionString. Mas acho que podes confiar, é o suficiente para proteger os dados.

    Espero ter ajudado,
    Cumprimentos.
    Olá Elohim, obrigado pelas respostas está ajudando sim. Então, mas sabe como a chave é armazenda? é ela criptografada?

    Porque sabendo o local onde fica a chave é so abrir o arquivo e usar o método de descriptografia passando a chave... correto?

    abraço
    Paulo Moreira


    Paulo Moreira
    quinta-feira, 25 de fevereiro de 2010 23:11
  • Olá,

    Sim, a chaves são encriptadas.

    Um excelente artigo sobre isso pode ser encontrado aqui .

    Obrigado pelas palavras :).

    Cumprimentos
    quinta-feira, 25 de fevereiro de 2010 23:22