Armazenando senhas com chaveiro python

16

Estou usando a biblioteca de chaveiros para armazenar senhas no meu aplicativo python.

import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)

E isso funciona muito bem.

Presumo que as senhas são seguras no chaveiro, elas são criptografadas. Mas, como posso obtê-los por nome de usuário, o que impede outros aplicativos de fazer o mesmo?

Não é um risco à segurança ou estou perdendo alguma coisa?

umpirsky
fonte

Respostas:

14

A biblioteca de chaveiros usa o chaveiro padrão do seu ambiente de área de trabalho, por exemplo, o chaveiro GNOME . Esse chaveiro é desbloqueado assim que você faz login, o que significa: sim, qualquer outro aplicativo executado por você tem acesso à senha que você armazena com seu aplicativo, mas - e essa é a idéia de um chaveiro - outros usuários e seus aplicativos não tem.

Citando a " filosofia de segurança do gnome-keyring ":

Um exemplo de teatro de segurança está dando a ilusão de que, de alguma forma, um aplicativo em execução em um contexto de segurança (como a sessão do usuário) pode manter as informações de outro aplicativo em execução no mesmo contexto de segurança.

Note-se que o usernamenos set_password/ get_passwordfunções não está relacionada com o nome do utilizador a executar a aplicação (ou seja, o utilizador cujo chaveiro é utilizado) mas pode ser, por exemplo um endereço de e-mail, um nome de utilizador de banco de dados, etc.

Marcel Stimberg
fonte
Obrigado pela resposta. Então, armazenar senhas não podem ser :) arriscado
umpirsky
3
Não, qualquer pessoa que recuperar a senha precisará conhecer (ou fornecer) a senha de login do usuário. Tente ativar o logon automático e execute seu aplicativo. Você não poderá acessar as senhas armazenadas sem fornecer sua senha de login.
Javier Rivera
@umpirsky: não é mais arriscado do que armazenar em um arquivo. E não importa como você o descreva, as chaves para decription devem ser armazenadas em algum lugar ou fornecidas de alguma forma. Portanto, não importa o que você faça, qualquer aplicativo da sua sessão terá acesso a ele.
MestreLion
É importante observar que esse código em execução no Ubuntu Server, onde não há Gnome Keyring, voltará a arquivos com valores codificados em Base64, que são facilmente acessíveis.
Cat Man faz
Esse link parece morto.
AdamC 05/07/19