web-dev-qa-db-fra.com

Stockage des mots de passe avec python trousseau

J'utilise 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 ça marche très bien.

Je suppose que les mots de passe sont en sécurité dans le trousseau, ils sont cryptés. Mais, puisque 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 est-ce que je manque quelque chose?

16
umpirsky

La bibliothèque de trousseaux utilise le trousseau de clés standard de votre environnement de bureau, par exemple. le trousseau de clés GNOME . Ce trousseau de clés 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 de clés - d'autres utilisateurs et leurs applications ne pas avoir.

Citant “ philosophie de sécurité gnome-keyring ”:

Un exemple de Security Theatre donne l’illusion qu’une application fonctionnant dans un contexte de sécurité (telle que votre session utilisateur) peut conserver les informations d’une autre application exécutée dans le même contexte de sécurité.

Notez que usernamedans les set_password/get_password fonctions n’est pas lié au nom de l’utilisateur exécutant l’application (c’est-à-dire l’utilisateur dont le trousseau est utilisé), mais peut être par exemple une adresse électronique, un nom d’utilisateur de la base de données, etc.

14
Marcel Stimberg