PHP远程GPG服务器如何?

时间:2017-11-19 19:52:24

标签: php encryption public-key-encryption gnupg

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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.您可以使用3个独立的子密钥设置所述密钥,而不是将私钥K复制到所有3个服务器。服务器,然后分发密钥,以便只有分配给特定服务器的子密钥在该服务器上。这样,所有服务器都可以使用主键,但只能使用自己的专用子键,如果任何服务器受到攻击,你可以(理论上)撤销受影响的子键,而不必撤销整个关键......我想......我可能在这个问题上错了。

说完这些之后,你不妨为每个服务器创建单独的(主)密钥,然后使用主密钥签名来管理信任并撤销受损密钥,如果有必要......这种方法的缺点是然后,每个服务器都有自己的用户ID和不同的密钥ID,而使用子密钥方法,所有服务器都将使用相同的密钥ID和用户ID。

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