Como devo armazenar senhas com segurança e usar http auth em uma extensão Chrome
Pergunta
Estou fazendo uma extensão do Chrome que requer buscar um arquivo XML de um servidor seguro.
Atualmente estou usando xmlHttPrequest () para fazer uma chamada para o servidor
https://username:password@mydomain.com
que retorna um objeto XML que eu posso analisar e exibir. Quero que essa extensão esteja disponível para mais do que apenas meu uso de hobby, por isso precisa de uma página de opções para definir e armazenar o nome de usuário e a senha.
Como devo armazenar a senha do usuário no Chrome para que seja segura? O Chrome possui um LocalStorage Global para cada extensão que permite que os autores de extensão armazenem dados, mas são armazenados em texto simples. Não permite que as extensões acessem o armazenamento 'Lembre -se da minha senha' (com bons motivos).
E existe uma maneira mais segura de fazer http auth? Minha maneira atual de fazer as coisas requer passar o nome de usuário/senha em texto simples na URL cada vez que a função é chamada, mesmo que a sessão de autenticação não tenha expirado.
Solução
Uma idéia: peça ao usuário uma chave, que você pode usar para criptografar simetricamente os valores antes de colocá -los no LocalSorage. Você também pode gerar uma chave exclusiva por cliente com base em certos aspectos exclusivos de sua máquina/navegador/etc.
Outras dicas
O problema de solicitar uma chave é que isso significa que você precisará solicitar cada vez que a inicialização (se você armazena a chave, terá o mesmo problema). Isso pode ser uma troca OK se o que você está protegendo for especialmente sensível.
Em geral, o Chrome toma a filosofia de confiar no sistema operacional para proteger o perfil do usuário em que esses dados são armazenados; portanto, se você usar o armazenamento local para armazenar senhas, não é diferente do que o Chrome está fazendo hoje com a senha de atendimento automático, histórico do navegador etc.