为什么我推荐你使用GPG来加密你的邮件

发布时间:
更新时间:
🕒 阅读时间:4 min read 👀 阅读量:Loading...

前言

面对日益严峻的网络安全风险和来自企业学校政府的审查压力,我们有必要学会如何使自己的信息保持安全,在上一篇文章中,学校自建的邮件服务器(imap/smtp.neu.edu.cn)未使用自身域名对应的正规证书,反而挂载外包公司(****计算机科技有限公司)的 *.icoremail.net 证书。很显然,这绝对不安全,但学校邮箱在学校生活中又是必不可少的,那么为了在这种不安全信道中传输信息,我们需要加密,这里GPG就派上了用场

What’s the GPG

GPG(GNU Privacy Guard)是基于 OpenPGP 标准的自由软件实现,使用公钥密码学来实现加密、签名与身份认证。它与对称加密不同,需要一对互补的密钥:公开分发的公钥和仅自己持有的私钥。发送者使用对方公钥加密,只有私钥持有者才能解密;反之,私钥签名、他人用公钥验签。GPG 还提供了“信任网”模型:你可以通过签署别人的公钥来表达信任,这样在没有中心 CA 的情况下,也能通过社交关系建立可靠的密钥链路。

当你把 GPG 嵌入邮件通信时,邮件内容即使经过学校或外包服务器,也只能看到密文和签名,而无法得知明文内容和具体发送者身份是否被伪造。对于需要保持私密的课题、讨论或个人信息,这是最简单但效果显著的防护手段。

加解密过程

使用 GPG 发送加密邮件的核心流程可以拆分为数学上的密钥操作与实际的业务流程。

公式概览(KaTeX)

加密与解密:

extCiphertextC=Epub(M)extPlaintextM=Dpriv(C)\begin{aligned} ext{Ciphertext } C &= E_{\text{pub}}(M) \\ ext{Plaintext } M &= D_{\text{priv}}(C) \end{aligned}

其中 EpubE_{\text{pub}} 表示“使用对方公钥进行加密”的运算,DprivD_{\text{priv}} 表示“使用自己私钥解密”。

签名与验签:

extSignatureS=Signpriv(H(M))extVerify(S,M)=Checkpub(S,H(M))\begin{aligned} ext{Signature } S &= \text{Sign}_{\text{priv}}(H(M)) \\ ext{Verify}(S, M) &= \text{Check}_{\text{pub}}(S, H(M)) \end{aligned}

其中 H(M)H(M) 是消息摘要(如 SHA-256),Sign/Check 则分别用私钥、公钥操作以确保消息未被篡改。

流程示意(Mermaid)

流程

这张图强调:服务器全程只负责传递密文,无法访问明文;签名链条确保收件人知道“谁”发送,以及内容有没有被改动。

我的公钥

邮箱密钥 ID指纹获取方式
20235883@stu.neu.edu.cnD0531D3594C415B9EA65 35C0 CFC6 2CF2 00B6 496A D053 1D35 94C4 15B9keys.openpgp.org/vks/v1/by-fingerprint/EA6535C0CFC62CF200B6496AD0531D3594C415B9 · 直接下载此公钥
xingwangzhe@outlook.com5CBCD856D54BA9CDAC13 70EE 760A F87D E4FD D290 5CBC D856 D54B A9CDkeys.openpgp.org/vks/v1/by-fingerprint/AC1370EE760AF87DE4FDD2905CBCD856D54BA9CD · 直接下载此公钥

注意,文章里的公钥可能是过时的或者废弃的,你必须在我的about页面上才能查看到最新的公钥!

如果你想测试一下发送加密邮件,你可以向我发送,我会回复邮件,来确保通信过程是加密的

为什么我推荐你使用GPG来加密你的邮件

作者: xingwangzhe

本文链接: https://xingwangzhe.fun/posts/587ede8c

本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

留言评论

2000年1月1日星期六
00:00:00