PGP加密入门教程:从生成密钥到验证签名

PGP(开源实现叫 GPG)在暗网上用到的地方比想象中多。验证一个市场链接是不是官方的、给卖家发加密消息、登录时做双重验证——都离不开它。

网上关于 PGP 的教程不少,但要么写得偏技术,一堆命令行参数看懵了;要么过于简化,只说”用 PGP 加密一下”但没交代关键步骤。这篇把从开始到用起来的过程完整过一遍。


什么场景会用到PGP

验证市场链接。 每次拿到一个 .onion 地址,怎么确认它不是钓鱼站?市场运营商会用私钥签署一份包含所有官方链接的文件,你用公钥验证签名——签名有效,链接就是真的。这个操作在暗网上待得越久就越常用,推荐阅读 暗网市场链接验证指南。

给卖家发送收货信息。 靠谱的卖家会要求用 PGP 加密发送地址。你用他的公钥加密消息,只有他能用自己的私钥解密。消息在传输过程中被截了,对方看到的也只是一堆乱码。

登录双重验证(2FA)。 大部分市场支持 PGP 2FA。登录时市场发一条加密消息给你,你用私钥解密后输入验证码才能进去。就算密码被拿到了,没有私钥也登不了。

所以 PGP 不是”学了可能用得上”的技能,是”不学就没法正常操作”的技能。


安装GPG

GPG 是 PGP 的开源实现,也是实际在用到的工具。

Windows:从 gpg4win.org 下载安装包,默认安装就行。

macOS:从 gpgtools.org 下载 GPG Suite。

Tails / Whonix:已经预装了,终端直接可用。Tails 的 Applications → Utilities 里也能找到。

Linux:sudo apt install gnupg(Ubuntu/Debian)或 sudo pacman -S gnupg(Arch)。

装完后在终端输入 gpg --version,打印出版本号就说明好了。


生成密钥对

密钥对分两把:私钥自己保存(谁都不给),公钥发给别人。

终端输入:

gpg --full-generate-key

执行后系统会问几个问题:

密钥类型: 选 RSA and RSA,默认选项就行。

密钥长度: 选 4096。越长越安全。2048 在技术上也够用,但暗网社区里默认用 4096。

过期时间: 建议设 1 年。到时间可以续期。设个期限相当于多个安全保险——如果私钥意外泄露了,到时间自动失效,影响范围是有限的。

身份信息: Real name 和 Email address,用暗网上的昵称和匿名邮箱。创建密钥时填的信息跟真实身份不产生关联。

密码短语: 16 位以上,大小写字母加数字加符号。这是保护私钥的最后一道防线,建议用 KeePassXC 生成一个高强度密码存在密码库里。

生成完成后屏幕会显示一串 40 位的字符,叫密钥指纹。社区里大家交流时,这个指纹就是身份标识。如果之后有人冒充你,别的老用户会拿你的指纹来核对。


导出公钥

生成的公钥需要发给别人,别人才给你加密消息。

gpg --armor --export 你用的邮箱 > my-public-key.asc

生成的文件内容类似这样:

-----BEGIN PGP PUBLIC KEY BLOCK-----

...

-----END PGP PUBLIC KEY BLOCK-----

这段内容可以粘贴到市场账号资料页里,也可以直接发给需要给你加密消息的人。


导入别人的公钥

要给卖家发加密消息,需要先用他的公钥:

gpg --import vendor-key.asc

导入之后核对一下指纹:

gpg --fingerprint 卖家的邮箱

屏幕上显示的指纹跟其他渠道(比如市场公告板、Reddit 的官方帖)看到的指纹对一下。不一致的话,这个”卖家”可能是冒充的。这时候需要停一下,确认来源。


加密和解密消息

加密:

gpg --armor --recipient 对方邮箱 --encrypt message.txt

生成的 message.txt.asc 就是加密后的内容,复制后粘贴到市场的消息框发送。写地址的时候旁边不要有人。

解密:

别人发来加密消息,保存为文件后:

gpg --decrypt encrypted-message.asc

输入创建密钥时设的密码短语,解密后的内容会显示出来。


验证文件签名

下载了市场的链接列表文件(mirrors.txt)和它的签名文件(mirrors.txt.asc),需要确认这个文件真的是官方发布的:

gpg --verify mirrors.txt.asc mirrors.txt
  • 显示 “Good signature” → 链接可信
  • 显示 “BAD signature” → 文件或公钥可能被篡改,立即停止使用

在社区里观察到的情况是:很多人知道有这个操作,但实际做的人比例不高。大多数人只是点别人发的链接,然后希望运气好。做不做这个验证,取决于自己愿意承担多少风险。

如果你想知道具体的验证步骤示例,可以看 暗网市场链接验证指南。


命令速查表

想干嘛命令
生成密钥对gpg --full-generate-key
列出所有密钥gpg --list-keys
导出公钥gpg --armor --export 邮箱 > pub.asc
导入公钥gpg --import 文件名
加密消息gpg --armor --recipient 邮箱 --encrypt 文件名
解密消息gpg --decrypt 文件名
验证签名gpg --verify 签名文件 原始文件
查看指纹gpg --fingerprint 邮箱

第一次接触命令行可能会觉得不习惯,但常用的操作其实就是上面这 8 个命令来回用。走完一遍就熟了。


常见问题

PGP和GPG有什么区别?

PGP(Pretty Good Privacy)是原始协议和商业软件的名字。GPG(GNU Privacy Guard)是 PGP 的开源实现,功能兼容,接口也差不多。文档里说的 PGP 和 GPG 在实际操作中是同一个东西。

密钥过期了怎么办?

可以续期。用 gpg --edit-key 邮箱 进入交互模式,输入 expire 然后设置新的过期时间。不需要重新生成密钥对,也不需要把新公钥发给所有人。

私钥泄露了怎么处理?

立即用 gpg --gen-revoke 邮箱 > revoke.asc 生成吊销证书,然后把吊销证书导入到公钥服务器。同时通知常用往来的联系人:”这个密钥作废了,请从联系人里删除。”

验证签名时显示”Invalid signature”是什么意思?

说明签名验证不通过——文件可能被篡改,或者你导入的公钥不是真的。这时候不要用这个文件,不要点里面的链接。从其他渠道确认正确的公钥来源。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注