Armazenando senhas com chaveiro python

12

Estou usando a biblioteca de chaves para armazenar senhas em meu aplicativo python.

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

E isso funciona muito bem.

Eu assumo que as senhas são seguras no keyring, elas são criptografadas. Mas, desde que eu possa obtê-los por nome de usuário, o que impede que outros aplicativos façam o mesmo?

Isso não é um risco de segurança ou estou perdendo alguma coisa?

    
por umpirsky 19.12.2011 / 22:31

1 resposta

10

A biblioteca de chaveiros usa o chaveiro padrão do seu ambiente de área de trabalho, por exemplo, o chaveiro do GNOME . Este chaveiro é desbloqueado assim que você efetua login, significando: 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 “ Filosofia de segurança do gnome-keyring ”:

  

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

Observe que username nas funções set_password / get_password não está relacionado ao nome do usuário que está executando o aplicativo (ou seja, o usuário cujo anel de chaves é usado), mas pode ser, por exemplo, um endereço de e-mail nome de usuário do banco de dados, etc.

    
por Marcel Stimberg 19.12.2011 / 23:53