我正在开发一个必须经常下载一些文件的应用程序。我觉得签文件是个好主意。
所以我想要做的第一件事就是创建一个主证书,并以某种方式在程序中分发它,并用它验证开发人员证书。因此,当新开发人员出现时,我们不需要更新与程序一起分发的证书。
我认为apt-key也在使用类似的方法。我读到这和分享钥匙圈有关。
但我想不出如何用GnuPG来实现这个目标。你能帮忙吗?
发布于 2015-08-09 08:24:46
您可以使用create a new OpenPGP key pair使用GnuPG,它由一个公钥和一个私钥组成。您将私钥保持为私有,但释放公钥(例如,将其上载到密钥服务器)。使用私钥执行签名。其他人(获取公钥)现在都可以验证签名确实是由密钥发出的。
为了使其他人能够验证密钥是否真的由您发出,您应该这样做。
如果您随软件发行版一起发布密钥,请考虑使用另一个GnuPG主目录,而不是用户的主目录(因此您不依赖于用户特定的配置和数据)。
我认为
apt-key正在使用类似的方法。我读到这和分享钥匙圈有关。
apt基础结构创建了一个内部密钥环,它最初随您的发行版一起提供。它包含Debian的所有公钥(Ubuntu,.;您选择的基于Debian的发行版)开发人员,这样所有的包都可以被验证。
但我想不出GPG是怎么做到的。你能帮忙吗?
所有这些建议都要求在验证软件的GnuPG密钥环中导入“公司密钥”,并具有最终的信任,以便能够根据该密钥进行验证。
因此,当新开发人员出现时,我们不需要更新与程序一起分发的证书。
在所有情况下,您仍然需要更新它,但这并没有那么糟糕。只需共享更新的密钥(考虑使用密钥服务器网络进行更新)。对密钥的更改将自动合并,即使有人试图向您发送伪造密钥,它也将是另一个密钥,并且没有上面提到的信任。
发布于 2015-08-09 04:40:24
apt使用GPG安全,主私钥是保密的,但公钥是共享的。
https://stackoverflow.com/questions/31908148
复制相似问题