Maneira mais segura de usar e armazenar as credenciais de terceiros do usuário

5

Estou trabalhando em um suplemento que integrará o git ao IDE do VBA. Eu estou usando a biblioteca LibGit2Sharp sob o capô, que suporta Credenciais de nome de usuário e senha , mas não Chaves SSH . Eu usaria as chaves SSH do GitHub se a biblioteca as suportasse, mas isso não acontece.

Assim, posso facilmente perguntar ao usuário suas credenciais antes de tentar interagir com o repositório remoto, mas já posso sentir os relatórios de "bug" entrando.

Why do I have to provide my password every time I try to push to my repo?

Então ...

Pergunta 1:

É seguro e aceitável manter a senha na memória depois que o usuário a inserir pela primeira vez? Se existem advertências para que seja seguro ou inseguro, o que são elas?

Pergunta 2:

Também posso ver os usuários que não querem continuar inserindo suas senhas mesmo no primeiro tempo que eles pressionam durante uma sessão. Seria seguro o suficiente para criptografar (não hash) o nome de usuário e a senha e armazená-los junto com as outras configurações do add-in?

Quero dizer, o Visual Studio não me pede minhas credenciais do GitHub toda vez que eu inicio o IDE, então deve ser possível fazer isso com relativa segurança. Mas como ?

Eu li através de muitas questões relacionadas , mas não se sente mais perto de saber como usar as credenciais dos meus usuários com segurança no meu add-in. A maioria das questões existentes está relacionada a sites e bancos de dados, onde a resposta correta é "não armazene a senha de forma recuperável, salte e use hash e armazene apenas o hash", mas neste caso, não é uma senha para < serviço strong> my . Eu preciso garantir o melhor que posso, mas de uma maneira recuperável. Caso contrário, não há como meu programa fazer "login" em seu repositório em seu nome.

    
por RubberDuck 30.03.2015 / 19:18
fonte

1 resposta

1

A maneira mais segura de "armazenar as credenciais de terceiros do usuário" é não armazená-las. Se você as armazenar, terá dois problemas principais :

  • eles podem mudar antes de você atualizar seu cache deles (visto várias vezes)
  • seu aplicativo pode estar comprometido, comprometendo números desconhecidos de credenciais de terceiros dos usuários

e provavelmente muito mais.

Você precisa usar um sistema diferente (OAuth, OpenID, LDAP / AD, chaves SSH, etc) ou precisa obter as credenciais do usuário a cada vez que quiser usá-las.

Salvá-los só vai causar dor de cabeça no caminho.

    
por 06.04.2015 / 21:46
fonte