Stockage des mots de passe avec un trousseau de clés python

16

J'utilise la bibliothèque de clés pour stocker les mots de passe dans mon application python.

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

Et cela fonctionne très bien.

Je suppose que les mots de passe sont sûrs dans les trousseaux de clés, ils sont cryptés. Mais, comme je peux les obtenir par nom d'utilisateur, qu'est-ce qui empêche les autres applications de faire de même?

N'est-ce pas un risque pour la sécurité ou manque-t-il quelque chose?

umpirsky
la source

Réponses:

14

La bibliothèque de trousseaux utilise le trousseau standard de votre environnement de bureau, par exemple le trousseau GNOME . Ce trousseau est déverrouillé dès que vous vous connectez, ce qui signifie: oui, toute autre application que vous exécutez a accès au mot de passe que vous stockez avec votre application, mais - et c'est l'idée d'un trousseau - d'autres utilisateurs et leurs applications ne pas avoir.

Citant « Philosophie de sécurité gnome-keyring »:

Un exemple de théâtre de sécurité donne l'illusion qu'une application qui s'exécute dans un contexte de sécurité (tel que votre session utilisateur) peut conserver les informations d'une autre application s'exécutant dans le même contexte de sécurité.

Notez que la usernamedans les set_password/ get_passwordfonctions n'est pas lié au nom de l'utilisateur exécutant l'application (l'utilisateur est utilisé dont le porte - clé) , mais peut être par exemple une adresse e - mail, un nom d' utilisateur de base de données, etc.

Marcel Stimberg
la source
Merci d'avoir répondu. Donc, stocker des mots de passe peut être risqué :)
umpirsky
3
Non, toute personne récupérant le mot de passe devra connaître (ou avoir fourni) le mot de passe de connexion de l'utilisateur. Essayez d'activer la connexion automatique, puis exécutez votre application. Vous ne devriez pas pouvoir accéder aux mots de passe stockés sans donner votre mot de passe de connexion.
Javier Rivera
@umpirsky: ce n'est pas plus risqué que de stocker dans un fichier. Et peu importe la façon dont vous l'enregistrez, la ou les clés de description doivent être stockées quelque part ou fournies d'une manière ou d'une autre. Donc, peu importe ce que vous faites, les applications de votre session y auront accès.
MestreLion
Il est important de noter que ce code fonctionnant sur Ubuntu Server où il n'y a pas de porte-clés Gnome retombera dans des fichiers avec des valeurs encodées en Base64 qui sont facilement accessibles.
Cat Man Do
Ce lien semble mort.
AdamC