我编写了一个可以创建并使用自己的密钥环的应用程序。我希望该密钥环具有机密属性,并且全部通过 U1 同步,以便在所有 Linux 设备上都可以使用相同的密码。
- 如何确定用户系统上是否设置了 U1?
- U1 是否提供同步用户密钥环的任何选项?如果没有,首选的编程方法是什么?
- 使用 U1 时应考虑哪些特殊事项以确保安全?是否有任何事项,还是这更多留给与 U1 相关的开发人员?
http://binbrain.github.com/OpenSesame/
我正在寻找涵盖上述问题的官方文档或指针。
答案1
好的。您的密钥环存储在 $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 syncdaemon。
答案2
我无法给出完整的答案 - 我对这部分内容并不熟悉。部分答案取决于 GNOME Keyring 的当前实现细节,因此可能会发生变化(但多年来一直没有改变)。
遗憾的是,UbuntuOne(目前?)没有对同步密钥环的任何特殊支持。
如果您在 GNOME 密钥环中创建密钥环,那么它将存储在 中~/.gnome2/keyrings/your_keyring_name.keyring
。如果您愿意依赖 GNOME 密钥环实现细节,那么问题将简化为“如何使用 U1 同步单个文件”。
在这里,我可以告诉你Stuart Langridge 的博客文章他几乎完全讨论了这个问题。特别是,有一个U1 文件的 API其中有python 绑定. 应该很容易适应他的保存到 Ubuntu One脚本来完成您想要做的事情。
从安全角度来说,您不需要做任何特别的事情。默认情况下,这些文件是私有的,因此随机互联网用户无法轻松访问它们,并且密钥环文件使用您创建它的密码进行加密。