如何使用 PGP
要使用 PGP,您需要生成一个密钥对(一个公钥和一个私钥),将公钥分享给您想要通信的人,导入他们的公钥,然后使用这些密钥来加密、解密、签名和验证消息。PGP 加密确保只有预期的收件人能够阅读您的消息,而数字签名则证明消息确实来自您。像 KeychainPGP 这样的工具通过基于剪贴板的工作流使这个过程变得简单——无需命令行操作。
本 PGP 教程将引导您完成每一个步骤,从生成您的第一个密钥对到收发加密消息。如果您对公钥密码学的概念还不熟悉,建议先阅读什么是 PGP?或PGP 入门指南。
开始前的准备
在使用 PGP 加密第一条消息之前,您需要一个 PGP 应用:
- KeychainPGP 网页应用——在任何现代浏览器中打开在线 PGP 工具。所有操作通过由 Rust 编译的 WebAssembly 在本地完成。无需安装、无需账户,数据不会发送到任何服务器。
- KeychainPGP 桌面应用——从 GitHub releases 页面下载 Windows、macOS、Linux 或 Android 原生应用。桌面应用增加了全局快捷键、系统托盘集成、自动清除剪贴板和 QR 码同步功能。
- KeychainPGP CLI——
keychainpgpCLI 提供密钥生成、加密、解密、签名、验证和密钥环管理命令。非常适合脚本和自动化。 - GnuPG (GPG)——传统的命令行工具。功能强大但需要熟悉终端。参见PGP 与 GPG 的区别了解详细对比。
提示:如果您只想立即尝试 PGP 加密而不安装任何软件,请打开在线 PGP 工具并跟随本教程操作。
第一步:生成 PGP 密钥对
一个 PGP 密钥对由两个数学相关的密钥组成:
- 公钥——您可以自由分享。任何人都可以用它来加密发给您的消息或验证您的签名。
- 私钥——您必须保密。它用于解密用您公钥加密的消息和创建数字签名。
在 KeychainPGP 中生成密钥
- 打开 KeychainPGP(网页应用或桌面应用)。
- 导航到密钥选项卡。
- 点击生成新密钥。
- 输入您的姓名和电子邮件地址。
- 点击生成。KeychainPGP 将创建一个 Ed25519 + X25519 密钥对——OpenPGP 中最现代、最安全的算法。
使用 GPG(命令行)生成密钥
gpg --full-generate-key
选择密钥类型(RSA 或 ECC)、大小和过期时间。如果您的 GPG 版本支持,建议选择 Ed25519 以获得现代安全性。
第二步:分享您的公钥
您的公钥是一个 ASCII-armored 格式的文本块。您可以在任何地方分享它:
- 电子邮件——粘贴在邮件正文中或作为
.asc文件附件。 - 即时通讯应用——通过 Signal、WhatsApp、Matrix 或任何聊天平台发送。
- 您的网站——发布在个人网站、GitHub 个人资料或 Twitter 简介上。
- 密钥服务器——上传到公共密钥服务器,如
keys.openpgp.org。
重要:只分享您的公钥。任何情况下都不要将私钥分享给任何人。
第三步:导入联系人的公钥
在向某人发送加密消息之前,您需要他们的公钥。请联系人向您发送他们的 ASCII-armored 公钥,或在密钥服务器上搜索。
在 KeychainPGP 中导入密钥
- 将联系人的公钥文本块复制到剪贴板。
- 打开 KeychainPGP,进入密钥选项卡。
- 点击导入密钥并粘贴密钥。
- 联系人将出现在您的密钥列表中,显示其姓名和电子邮件。
第四步:加密消息
在 KeychainPGP 中加密(网页或桌面)
- 转到加密选项卡。
- 输入或粘贴您想要加密的消息。
- 从密钥列表中选择收件人。
- 点击加密到剪贴板。加密后的消息将被复制到您的剪贴板。
- 将加密消息粘贴到电子邮件、聊天或任何其他通信渠道中。
使用桌面快捷键加密
使用 KeychainPGP 桌面应用,通过剪贴板工作流操作更加快捷:
- 在任何应用中输入您的消息。
- 选中并复制文本(
Ctrl+C)。 - 按下
Ctrl+Shift+E——KeychainPGP 加密剪贴板内容。 - 粘贴加密后的消息(
Ctrl+V)。
第五步:解密消息
在 KeychainPGP 中解密(网页或桌面)
- 复制完整的加密消息文本块。
- 在 KeychainPGP 中转到解密选项卡。
- 粘贴加密文本。
- 点击解密。明文将立即显示。
使用桌面快捷键解密
- 选中并复制加密消息文本块(
Ctrl+C)。 - 按下
Ctrl+Shift+D——KeychainPGP 解密剪贴板内容。 - 明文替换剪贴板中的加密文本。粘贴到您需要的地方。
桌面应用还具有自动清除剪贴板功能:30 秒后,解密的文本会自动从剪贴板中删除。
第六步:签名消息
PGP 数字签名证明两件事:
- 真实性——消息由签名密钥的持有者编写。
- 完整性——消息自签名以来未被篡改。
签名不会加密消息。任何人都可以阅读签名的消息,但可以验证它确实来自您且未被篡改。
何时签名消息
- 发布软件版本或安全公告
- 在公共论坛上验证您的身份
- 签名电子邮件以证明来源
- Git 提交签名以确保代码完整性
第七步:验证签名
当您收到签名消息时,可以验证其真实性和未被修改。
在 KeychainPGP 中验证
- 复制完整的签名消息(包括签名块)。
- 转到验证选项卡。
- 粘贴签名消息。
- 点击验证。KeychainPGP 将确认签名是否有效。
KeychainPGP 剪贴板工作流
KeychainPGP 与传统 PGP 工具的区别在于其剪贴板加密工作流。它不是操作文件或需要专用的电子邮件客户端,而是通过系统剪贴板与任何应用配合使用。
| 操作 | 网页应用 | 桌面应用 |
|---|---|---|
| 加密 | 粘贴文本,点击加密 | 复制文本,按 Ctrl+Shift+E |
| 解密 | 粘贴加密文本,点击解密 | 复制加密文本,按 Ctrl+Shift+D |
| 签名 | 粘贴文本,点击签名 | 在应用窗口中操作 |
| 验证 | 粘贴签名文本,点击验证 | 在应用窗口中操作 |
桌面应用的额外安全功能:
- 自动清除剪贴板——解密后的文本在 30 秒后从剪贴板中删除。
- OPSEC 模式——伪装窗口标题、密钥仅存于内存、紧急销毁按钮。
- 系统凭据存储——私钥通过 Windows 凭据管理器、macOS 钥匙串或 Linux Secret Service 安全存储。
网页应用与桌面应用
网页应用(在线 PGP 工具):
- 通过 WebAssembly 完全在浏览器中运行
- 无需安装、无需账户
- 非常适合快速加密任务
- 密钥存储在浏览器本地存储中
桌面应用(Windows、macOS、Linux、Android):
- 用于加密和解密的全局快捷键
- 系统托盘集成
- 自动清除剪贴板
- OPSEC 模式,密钥仅存于内存和紧急销毁功能
- 通过操作系统凭据管理器安全存储密钥
- 更适合日常使用和长期密钥管理
两个应用都是免费、开源(MIT / Apache-2.0)且无任何遥测追踪。
常见问题
我需要分享我的私钥吗?
不需要。您绝对不能与任何人分享您的私钥。您的私钥是用来解密发给您的消息和创建数字签名的。如果其他人获得了您的私钥,他们就可以阅读所有加密给您的消息并冒充您。
如果我丢失了私钥怎么办?
如果您丢失了私钥,您将永久失去解密所有用对应公钥加密的消息的能力。没有任何恢复机制。请始终安全地备份您的私钥。
我可以用 PGP 加密文件吗?
可以。PGP 可以加密文本消息和二进制文件。KeychainPGP 专注于剪贴板文本加密,而 GnuPG 等工具直接支持文件加密。详细对比请参见 PGP 与 GPG 的区别指南。
PGP 加密安全吗?
使用现代算法的 PGP 加密是极其安全的。KeychainPGP 使用 Ed25519 进行签名,X25519 进行密钥交换——这些椭圆曲线算法以极小的密钥尺寸提供等同于 RSA-3072 的安全性。主要风险不是密码学层面的,而是操作层面的:弱密码短语、被入侵的设备或粗心的密钥管理。
什么是 PGP 指纹?
PGP 指纹是一个 40 个字符的十六进制字符串,用于唯一标识一个 PGP 密钥。指纹用于验证公钥确实属于您认为的那个人。请始终通过单独的可信渠道(电话、视频通话或面对面会议)比较指纹,以防止中间人攻击。