使用python密钥环存储密码

ump*_*sky 17 encryption security python keyrings password

我正在使用密钥环库在我的 python 应用程序中存储密码。

import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)
Run Code Online (Sandbox Code Playgroud)

这非常有效。

我假设密码在密钥环中是安全的,它们是加密的。但是,既然我可以通过用户名获取它们,那么是什么阻止其他应用程序做同样的事情呢?

这不是安全风险,还是我遗漏了什么?

Mar*_*erg 15

密钥环库使用桌面环境的标准密钥环,例如GNOME 密钥环。该密钥环在您登录后立即解锁,这意味着:是的,您运行的任何其他应用程序都可以访问您在应用程序中存储的密码,但是——这就是密钥环的概念——其他用户及其应用程序没有。

引用“ gnome-keyring 安全哲学”:

安全剧场的一个例子是给人一种错觉,即在安全上下文中运行的一个应用程序(例如您的用户会话)可以以某种方式保留来自在同一安全上下文中运行的另一个应用程序的信息。

请注意,usernameset_password/get_password功能不相关的运行应用程序的用户的名称(例如:一个钥匙圈时使用的用户),但可以是例如电子邮件地址,数据库用户名等。

  • 不,任何检索密码的人都需要知道(或已提供)用户登录密码。尝试设置自动登录,然后运行您的应用程序。如果不提供登录密码,您应该无法访问存储的密码。 (3认同)