我在用着钥匙圈库在我的 python 应用程序中存储密码。
import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)
并且效果非常好。
我认为密钥环中的密码是安全的,它们是加密的。但是,既然我可以通过用户名获取它们,那么其他应用程序如何才能做到这一点呢?
这不是一个安全风险吗,还是我忽略了什么?
答案1
密钥环库使用桌面环境的标准密钥环,例如GNOME 钥匙圈。此密钥环会在您登录后立即解锁,这意味着:是的,您运行的任何其他应用程序都可以访问您随应用程序存储的密码,但是——这是密钥环的理念——其他用户及其应用程序则不能。
引用“gnome-keyring 安全理念”:
安全剧场的一个例子是给人一种错觉,即在安全上下文(例如用户会话)中运行的一个应用程序可以以某种方式保留在同一安全上下文中运行的另一个应用程序的信息。
请注意,/ functionsusername
中的与运行应用程序的用户的名称(即使用其密钥环的用户)无关,但可能是电子邮件地址、数据库用户名等。set_password
get_password