Pergunta

Em primeiro lugar, a minha pergunta não é sobre hashing de senha, mas a criptografia de senha. Estou construindo uma aplicação desktop que precisa authentificate ao usuário um serviço de terceiros. Para acelerar o processo de login, eu quero dar ao usuário a opção de salvar suas credenciais. Desde que eu preciso a senha para authentificate-lo para o serviço, ele não pode ser hash.

Pensei em usar o módulo PyCrypto e sua implementação Blowfish ou AES para criptografar as credenciais. O problema é onde guardar a chave. Eu sei que algumas aplicações armazenar a chave diretamente no código fonte, mas desde que eu estou codificação um aplicativo de código aberto, esta não parece ser uma solução muito eficiente.

Então, eu queria saber como, no Linux, você poderia implementar teclas específicas do usuário ou específicas do sistema para aumentar a senha de segurança do armazenamento.

Se você tem uma melhor solução para este problema do que usar PyCrypto e teclas específicas do sistema / utilizador, não hesite em compartilhá-lo. Como eu disse antes, hash não é uma solução e eu sei criptografia de senha é vulnerável, mas eu quero dar a opção para o usuário. Usando Gnome-chaveiro não é uma opção, dado que muita gente (inclusive eu) não usá-lo.

Foi útil?

Solução

A criptografia de senhas realmente não comprar-lhe um todo mais proteção monte de armazenar em texto simples. Qualquer pessoa capaz de acessar o banco de dados, provavelmente, também tem acesso total a suas máquinas servidor web.

No entanto, se a perda de segurança é aceitável, e você realmente precisa disso, eu gerar um novo arquivo de chave (a partir de uma boa fonte de dados aleatórios) como parte do processo de instalação e usar isso. Obviamente armazenar esta chave como segura possível (bloqueado permissões de arquivo, etc.). Usando uma única chave incorporado na fonte não é uma boa ideia -. Não há nenhuma razão para que as instalações separadas devem ter as mesmas teclas

Outras dicas

Tente usar PAM . Você pode fazer um módulo que automaticamente un-criptografa a chave quando o usuário efetuar login. Este é internamente como GNOME-Keyring funciona (se possível). Você pode módulos PAM mesmo escrever em Python com pam_python .

Password Safe é projetado por Bruce Schneier e de código aberto. É para Windows, mas você deve ser capaz de ver o que eles estão fazendo e, possivelmente, reutilizá-lo.

http://www.schneier.com/passsafe.html

http://passwordsafe.sourceforge.net/

Leia este: Se você digitar AES em seu código, você está fazendo errado.

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