使用 Ubuntu One 跨设备同步 GNOME 密钥环

Jim*_*ris 6 security python ubuntu-one gnome-keyring application-development

我写了一个应用程序来创建和使用自己的密钥环。我想拥有带有机密属性的密钥环,并通过 U1 进行所有同步,以便在所有 Linux 设备上都可以使用相同的密码。

  1. 您如何确定 U1 是否设置在用户系统上?
  2. U1 是否提供同步用户密钥环的任何选项?如果没有,首选的程序化方法是什么?
  3. 使用 U1 时应注意哪些特殊注意事项以确保安全?是否有任何东西,或者是否还有更多东西留给开发人员与 U1 相关联?

http://binbrain.github.com/OpenSesame/

我正在寻找涵盖上述问题的官方文档或指针。

sil*_*sil 5

好的。您的密钥环存储在 $HOME/.gnome2/keyrings 中。

因此,跨机器同步您的密钥环的显而易见的方法是……只需将该文件夹标记为 U1 的同步文件夹即可。无需 API!

当然,这会同步您所有的钥匙圈,但我相信您不想这样做。所以,下一步是这样的:

  1. 创建您的密钥环,它将在其自己的文件中, ~/.gnome2/keyrings/yourkeyring.keyring
  2. 在某处为您的应用程序创建一个文件夹——~/.local/share/yourapp/keyrings也许
  3. 移动~/.gnome2/keyrings/yourkeyring.keyring~/.local/share/yourapp/keyrings
  4. 放置一个符号链接~/.gnome2/keyrings/指向~/.local/share/yourapp/keyrings/yourkeyring.keyring
  5. 标记~/.local/share/yourapp/keyrings为与 Ubuntu One 同步的文件夹。

那应该做你想做的!正如 RAOF 所指出的,密钥环文件是加密的,因此将其同步到 U1 没有安全风险。不需要 API。

如果您想以编程方式执行此操作——也就是说,您的应用程序有一个“同步我的应用程序的密钥环”复选框来打开和关闭此功能——那么您当然需要检测 U1,并引导用户进行签名如果他们想同步但还没有 U1 帐户,请打开。为此,请使用 Python 中的 ubuntuone.platform.tools.SyncDaemonTool,它可以让您完全控制 Ubuntu One 同步守护程序。


RAO*_*AOF 2

我无法给出完整的答案 - 我不熟悉这一切的所有部分。其中一些答案取决于 GNOME Keyring 的当前实现细节,因此可能会发生变化(但多年来没有变化)。

遗憾的是,UbuntuOne(目前?)没有任何对同步密钥环的具体支持。

如果您在 GNOME 密钥环中创建密钥环,则该密钥环存储在~/.gnome2/keyrings/your_keyring_name.keyring. 如果您同意依赖 GNOME 密钥环实现细节,这会将问题简化为“如何将单个文件与 U1 同步”。

在这里,我可以向您指出Stuart Langridge 的一篇博客文章,他在其中几乎完全谈到了这个问题。特别是,有一个用于 U1 文件的 API,它具有python 绑定将他的Save 修改为 Ubuntu One脚本来完成您想要的操作应该相当容易。

从安全角度来看,您不需要做任何特别的事情。默认情况下,这些文件是私有的,因此随机互联网用户无法轻松访问它们,并且密钥环文件使用您创建它的密码进行加密。