【问题标题】:PHP Remote GPG Server How To?PHP远程GPG服务器如何?
【发布时间】:2018-05-03 00:58:50
【问题描述】:

我想设置一个专用的 gpg 服务器来托管密钥,以便从我存储的加密数据中删除我存储的密钥。我知道我有一些可用的 gpg 选项:

https://github.com/singpolyma/openpgp-php

https://secure.php.net/manual/en/book.gnupg.php

我已经设置了我的 gpg 服务器,它现在正在侦听一个端口,但是这些都没有告诉我如何连接到远程 gpg 服务器,而且我在网上找不到任何示例。如何将这些库与远程 gpg 服务器一起使用?

【问题讨论】:

  • 如果您要投票结束,请留下该死的评论。
  • 您指的是 gpg 密钥服务器,还是您以某种方式对 gpg 本身进行了守护,以便您可以远程使用其本地密钥环?
  • 我指的是keyserver

标签: php encryption public-key-encryption gnupg


【解决方案1】:

GPG 密钥服务器只存储公钥。他们的目的是分发公钥并帮助建立信任网络。您是否还希望集中存储私钥以进行解密和签名?

如果您只想运行像 https://keyserver.ubuntu.com 这样的密钥服务器,那么您正在寻找一种称为 SKS 密钥服务器的东西。它托管在这里:https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Home 但是请注意,这个软件看起来很粗糙,而且部署起来并不简单。文档也不是很好。

如果您希望以某种方式集中存储您的密钥环(即您的公钥和私钥),我建议您这样做:https://superuser.com/questions/466396/how-to-manage-gpg-keys-across-multiple-systems 这可能不是您想要的,但它可能是最安全的。

假设您有 3 台服务器 A、B 和 C,它们都需要访问私钥 K。与其将私钥 K 复制到所有 3 台服务器,您可以使用 3 个单独的子密钥设置所述密钥,每个子密钥一个专用服务器,然后分发密钥,以便只有分配给特定服务器的子密钥位于该服务器上。这样,所有服务器都可以使用主键,但只能通过使用它们自己的专用子键,如果任何服务器受到损害,您可以(理论上)撤销受影响的子键,而不必撤销整个关键...我想...我可能在这个问题上错了。

话虽如此,您还不如为每台服务器创建单独的(主)密钥,然后使用主密钥对其进行签名以管理信任并在必要时撤销受损密钥......这种方法的缺点是然后每个服务器将有自己的用户 ID 和不同的密钥 ID,而使用 subkey 方法,所有服务器将使用相同的密钥 ID 和用户 ID。

本页介绍如何使用子密钥创建个人密钥,以及如何安全地存储主密钥: https://alexcabal.com/creating-the-perfect-gpg-keypair/ 我将使用相同的原则为您的每台服务器创建一组子键。到目前为止,我无法找到针对多台服务器执行此操作的指南,或者关于如何在不撤销整个主密钥的情况下撤销子密钥的确切说明,因此该方案虽然在理论上听起来很吸引人,但可能不受支持或很常见……但它应该可以工作。

【讨论】:

  • 一个复杂的问题,没有明确的交钥匙解决方案。我猜每个人都只是自己动手,所以这就是我所做的。我在异地数据库中存储了一堆加密的私钥。我正在使用 AES 的主密钥,我通过一层代码加密来保护它。不完美,但我认为它永远不可能。我正在检查您帖子中的内容,以寻找可能的硬化方法。谢谢你的好信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2018-01-31
相关资源
最近更新 更多