最新回复 (
3 )
在 wx、qq 等平台上与好友分享数据时,若希望避免中间人窥探,可使用 GnuPG。
GnuPG(GNU Privacy Guard)是一款遵循开放标准的自由软件工具,专门用于数据的加密与签名。它实现了 OpenPGP 标准,允许用户安全地交换信息和文件。GnuPG 提供了数据加密、数字签名、密钥管理等功能,广泛用于保护电子邮件、文件及其他类型的数据传输。
GnuPG 的主要特点包括:
写在前面:本教程仅为 GnuPG 的简易操作指南,其背后涉及到的诸如非对称加密之类的技术原理不会在此详细讲解。若对非对称加密感兴趣,可参见 BiliBili UP 主“硬件茶谈”的这条科普视频:https://www.bilibili.com/video/BV1Eo4y1y7Dh。
在 GnuPG 官网下载页面中(https://www.gnupg.org/download/),往下翻找到 Gpg4win(Windows 版本,其它平台用户请自行下载对应版本),下载安装包并运行。安装界面不存在需特别注意的。安装完毕后,桌面中应该会出现证书管理工具 Kleopatra 的快捷方式。
在 Kleopatra 中,点击左上角“文件(F)”,点击“新建 OpenPGP 密钥对...”,输入名字和电子邮件地址,电子邮件地址可以是虚构的,也可以是真实的,只要能记住即可。
通常到这里即可点击“OK”创建密钥对,但一些高级设置可增强密钥对的安全性:
选择已创建的 OpenPGP 证书,点击左上角“文件(F)”,点击“导出...”,将证书存储在本地并发送给好友。
等待好友如法炮制将 TA 的证书发送过来,点击左上角“文件(F)”,点击“导入...”,选择好友的证书。
若一切顺利,Kleopatra 会显示“您已经导入一个新的证书(公钥)”,但提示需要检查证书指纹以验证。为了便于理解,此时请先点击取消。
选择已创建的 OpenPGP 证书,点击左上角“文件(F)”,点击“导出...”,将证书存储在本地。然后使用记事本打开证书文件,复制其中的内容并发送给好友。
等待好友如法炮制将 TA 的证书发送过来,请先在本地新建一个文本文件并将其后缀名改为`.asc`,使用记事本打开此文件,将好友的证书内容复制粘贴到其中并保存。然后在 Kleopatra 中,点击左上角“文件(F)”,点击“导入...”,选择刚才修改的`.asc`文件。
若一切顺利,Kleopatra 会显示“您已经导入一个新的证书(公钥)”,但提示需要检查证书指纹以验证。为了便于理解,此时请先点击取消。
若导入失败,可能是在粘贴证书内容时格式出现错误。请参考本教程在结尾提供的证书,确认格式是否正确。
右键自己的 OpenPGP 证书,点击“细节”,在新窗口的左下角可以看见此证书的指纹。请将指纹以安全的方式发送给好友,如:打电话、语音/视频通话、使用受信任的网站/社交平台等。
等待好友如法炮制将 TA 的证书指纹发送过来,右键先前导入的好友的证书,点击“认证...”,在新窗口的正上方可以看见此证书的指纹,请将其与好友发送过来的指纹逐一比对。
若核对无误,在认证方式中选择自己的私钥,点击“认证”。待 Kleopatra 显示“认证成功”,此时右键好友的证书,点击“细节”,在新窗口中可以发现此证书的信任等级为“完全”,这也意味着与好友之间已进行一次成功的“密钥交换”。
在 Kleopatra 中,点击左上角“签名/加密”,选择欲加密的文件。在新窗口中,“签名身份”选择自己的 OpenPGP 私钥,“为我加密”选择自己的 OpenPGP 证书,“为他人加密”选择好友的证书,点击“签名/加密”。待签名/加密完毕后,将加密文件发送给好友。
假设好友如法炮制发送过来一个加密文件,在 Kleopatra 中,点击左上角“解密/校验”,选择欲解密的文件。
待解密/校验完毕,若 Kleopatra 弹出绿色窗口并显示“此证书的签名有效,且其有效性受到完全/绝对信任”,则说明解密成功,且源文件完整性可以保证;若 Kleopatra 弹出灰色窗口并显示“解密失败: No Secret Key”“此密钥没有被您或任何受信任的人验证”等,则说明源文件在传输过程中被篡改、与好友之间的“密钥交换”没有做到位等,请自行排查原因。
点击“Save All”保存解密后文件或点击“Discard”丢弃解密后文件。
提示:若仅需要签名/加密文本,可直接在 Kleopatra 内置的“记事本”中实现。
若不在意文件的机密性,仅在意文件的完整性(确保文件在传输过程中未被篡改),在 Kleopatra 中,点击左上角“签名/加密”,选择欲签名的文件。在新窗口中,“签名身份”选择自己的 OpenPGP 私钥,取消勾选“为我加密”和“为他人加密”,点击“签名”。待签名完毕后,将源文件和`.sig`文件一并发送给好友。
假设好友如法炮制发送过来一个源文件和一个`.sig`文件,请先将这两个文件存储在同一文件夹中,然后在 Kleopatra 中,点击左上角“解密/校验”,选择与源文件对应的`.sig`文件。
待校验完毕,若 Kleopatra 弹出绿色窗口并显示“此证书的签名有效,且其有效性受到完全/绝对信任”,则说明源文件未被篡改,其完整性可以保证;若 Kleopatra 弹出灰色窗口并显示“此密钥没有被您或任何受信任的人验证”等,则说明源文件在传输过程中被篡改、与好友之间的“密钥交换”没有做到位等,请自行排查原因。
Android 用户可使用软件 OpenKeychain 实现类似效果。以下是 OpenKeychain 的官网:
以下为本作者的 OpenPGP 证书,欢迎尝试(有效期结束于:2027/11/27)。
(来自你站聊天室在 2024.11.25 的聊天记录)