夜晚北欧图书馆里的 NordBastion 北极熊吉祥物,俯身在一张长长的橡木阅读桌上,桌上散落着摊开的词典和 PGP 签名的文件,头顶是极光蓝的灯光
术语表条目 · 安全原语

PGP / OpenPGP Pretty Good Privacy —— 面向人类的公钥密码学

让地球另一端的陌生人也能验证一份文档确实来自我们的密码学。

定义
通俗英语

一种用于对文件、消息和软件发行版进行签名与加密的公钥密码学方案,最初由 Phil Zimmermann 在 1991 年编写。被标准化为 OpenPGP(RFC 4880,2024 年由 RFC 9580 更新)。参考自由软件实现是 GnuPG(gpg)。用于验证软件发行版的完整性、签署电子邮件、对静态文件加密以及通过带外通道做身份认证。

它在 NordBastion 为什么重要

PGP 是我们让自己的声明可被验证的方式。

TLS 证明你在与一台由证书上的域名所控制的服务器对话;但它并不证明 NordBastion 这家组织说了什么具体的话。对于需要不可伪造的声明——令状金丝雀、透明度报告、发布产物、签名公告——TLS 不够用。PGP 才是缺失的那一层。

我们的公钥及其指纹都列在 /pgp/。令状金丝雀每个周期都用 PGP 签名;透明度报告附带分离签名;发布归档随附 .asc 文件。任何持有我们公钥副本的人都可以运行 `gpg --verify`,从密码学上确定他们手里的文档由匹配私钥的持有者产生,且自那以后未被改动。

另一面:PGP 仅在你把密钥指纹与一个独立来源核对后才有效。/pgp/ 页面列出指纹、我们的 Tor 镜像也列出、我们的 keybase / 社交资料也列出;在信任一把新导入的密钥之前,你至少应该比对其中两处。这是该协议不方便的那一部分,也正是它赋予系统其余部分真正想要的那种属性的部分。

常见问题 · PGP

人们真正会问的问题。

PGP 实际上做什么?

两件相关的事。第一,它对文件和消息进行数字签名,任何持有你公钥的人都能验证一份文档确实出自你之手且未被篡改——令状金丝雀、透明度报告和发布归档都依赖这一点。第二,它为特定收件人加密文件和消息,只有持有匹配私钥的人才能解密。

PGP 与 OpenPGP 有何不同?

PGP 是 Phil Zimmermann 在 1991 年最初编写、后来商业化的程序。OpenPGP 是源自 PGP 文件格式和协议的开放标准,最早由 RFC 2440(1998)定义,目前由 RFC 9580(2024)规定。今天人们口中的「PGP」几乎总是指某个 OpenPGP 实现——通常是 GnuPG(gpg),即自由软件的参考实现。

PGP 与 TLS 有何不同?

TLS 在实时连接期间对服务器做认证,并加密两端之间的线路——它是链路层隐私,一旦连接关闭就消失了。PGP 则认证某份数据背后的个人或组织,并对该数据加密,使其在磁盘上、邮件中、备份磁带里都永久保持加密。TLS 保护对话;PGP 保护文档。

我如何验证 NordBastion 的 PGP 签名?

从 /pgp/ 导入签名密钥到本地 GnuPG 钥匙环(`gpg --import nordbastion.asc`),将指纹与本站发布的指纹核对,并最好与一份带外副本(Tor 镜像、社交媒体帖子)也做对照,然后运行 `gpg --verify .asc`。一行「Good signature from...」就意味着文档完整无损,且由对应私钥的持有者签名。