钥匙扣有什么作用?

我知道如何禁用它、绕过它以及保存信息。然而,当被问到“它有什么用途,为什么它存在,以及它是如何工作的”时,我无言以对。更令人不安的是,似乎在互联网上没有针对这些问题的相关内容。

所以一劳永逸地说,什么是Keyring,为什么它在我的电脑上,并且它是如何工作的呢?

1个回答

一个钥匙扣是你在本地电脑上存储的登录信息的“存储数据库”——我用这个术语比较轻松。它被一些神奇的加密方案(PKCS#11——用于可移动介质上的安全存储)所包裹,因此相对来说比较安全,不容易被窥视。
它为(在这里插入框架名,我们以gnome为例)提供了一个通用的后端,用于CRUD(创建、读取、更新、删除)你的登录信息,而无需“自己开发解决方案”。它为使用该特定框架的程序员提供了一致的接口。KDE提供了自己的钥匙扣,Gnome也有另一种实现方式。
Evolution、Firefox和Net-man都利用了这个接口。当你将电子邮件服务器凭据放入Evolution中时,它会要求你将这些信息存储在钥匙扣中。如果你选择这样做,它会将数据传递给钥匙扣服务,然后就存储起来了。Evolution只需要在启动时调用钥匙扣服务来检索这些信息。
这里的重要思想是,如果其他人能够访问你的电脑但不知道你的钥匙扣的主密码,他们就无法访问你存储的登录信息。同样的原理也被lastpass.com的浏览器插件所使用(只是它是分布式的,意味着我可以在多台电脑上的多个浏览器实例中使用它)。
总结一下,我从gnome-keyring页面上提供了这个片段在这里找到
GNOME Keyring是GNOME中的一组组件,用于存储密码、密钥、证书,并使它们对应用程序可用。
GNOME Keyring与用户的登录集成在一起,因此当用户登录到他们的会话时,他们的秘密存储可以被解锁。
GNOME Keyring基于一个叫做PKCS#11的标准,这是一种应用程序管理智能卡或安全存储上的证书和密钥的标准方式。

等一下,我以为Firefox在Windows和Mac上使用的是相同的代码库,也就是说,它有一个与操作系统分离的密码加密系统?这就是我不使用Google Chrome的原因之一;首先它没有主密码,现在又用登录密码进行加密。我希望Firefox在Linux上不会以同样的方式工作。 - NobleUplift
1@NobileUplift - 根据这个回答的时间和漂移量以及Firefox目前的情况,我不会怀疑情况已经发生了变化(比如新的加密算法,或者Firefox不再使用操作系统中内置的密钥环)。:) - lazyPower
1问题是为什么会这么不方便呢?比如说,为什么每次连接热点时都要输入无线密码呢? - David Okwii