Jim*_*ris 6 security python ubuntu-one gnome-keyring application-development
我写了一个应用程序来创建和使用自己的密钥环。我想拥有带有机密属性的密钥环,并通过 U1 进行所有同步,以便在所有 Linux 设备上都可以使用相同的密码。
http://binbrain.github.com/OpenSesame/
我正在寻找涵盖上述问题的官方文档或指针。
好的。您的密钥环存储在 $HOME/.gnome2/keyrings 中。
因此,跨机器同步您的密钥环的显而易见的方法是……只需将该文件夹标记为 U1 的同步文件夹即可。无需 API!
当然,这会同步您所有的钥匙圈,但我相信您不想这样做。所以,下一步是这样的:
~/.gnome2/keyrings/yourkeyring.keyring~/.local/share/yourapp/keyrings也许~/.gnome2/keyrings/yourkeyring.keyring到~/.local/share/yourapp/keyrings~/.gnome2/keyrings/指向~/.local/share/yourapp/keyrings/yourkeyring.keyring~/.local/share/yourapp/keyrings为与 Ubuntu One 同步的文件夹。那应该做你想做的!正如 RAOF 所指出的,密钥环文件是加密的,因此将其同步到 U1 没有安全风险。不需要 API。
如果您想以编程方式执行此操作——也就是说,您的应用程序有一个“同步我的应用程序的密钥环”复选框来打开和关闭此功能——那么您当然需要检测 U1,并引导用户进行签名如果他们想同步但还没有 U1 帐户,请打开。为此,请使用 Python 中的 ubuntuone.platform.tools.SyncDaemonTool,它可以让您完全控制 Ubuntu One 同步守护程序。
我无法给出完整的答案 - 我不熟悉这一切的所有部分。其中一些答案取决于 GNOME Keyring 的当前实现细节,因此可能会发生变化(但多年来没有变化)。
遗憾的是,UbuntuOne(目前?)没有任何对同步密钥环的具体支持。
如果您在 GNOME 密钥环中创建密钥环,则该密钥环存储在~/.gnome2/keyrings/your_keyring_name.keyring. 如果您同意依赖 GNOME 密钥环实现细节,这会将问题简化为“如何将单个文件与 U1 同步”。
在这里,我可以向您指出Stuart Langridge 的一篇博客文章,他在其中几乎完全谈到了这个问题。特别是,有一个用于 U1 文件的 API,它具有python 绑定。将他的Save 修改为 Ubuntu One脚本来完成您想要的操作应该相当容易。
从安全角度来看,您不需要做任何特别的事情。默认情况下,这些文件是私有的,因此随机互联网用户无法轻松访问它们,并且密钥环文件使用您创建它的密码进行加密。