本文来源:Moeomu的博客
GnuPG介绍
官方介绍
来源:GnuPG
GnuPG是RFC4880所定义的OpenPGP标准(也称为PGP)的完整和免费的实现。GnuPG允许你对你的数据和通信进行加密和签名;它有一个多功能的密钥管理系统,同时还有各种公钥目录的访问模块。GnuPG,也被称为GPG,是一个命令行工具,具有易于与其他应用程序集成的功能。有大量的前端应用程序和库可用。GnuPG还提供对S/MIME和安全外壳(ssh)的支持。
自1997年推出以来,GnuPG是自由软件(意味着它尊重你的自由)。它可以在GNU通用公共许可证的条款下自由使用、修改和发布。
争辩说你不关心隐私权,因为你没有什么可隐藏的,这与说你不关心言论自由,因为你没有什么可说的没有什么区别。
–爱德华·斯诺登
使用加密技术有助于保护你的隐私和与你交流的人的隐私。加密使大量监控系统的生活变得困难。GnuPG是斯诺登用来揭开NSA秘密的工具之一。
请访问电子邮件自卫网站,了解如何以及为什么你应该使用GnuPG进行电子通信。
所以呢?
Q1: 为什么要使用GnuPG?
- 因为它是自由软件,可以自由使用、修改和发布。
- 使用它,你的通讯信息将是加密的、安全的。
- PGP能保证一条信息是你相信的人发的,除了你俩之外别人无法解密,而且这条消息在传送时中间没有经过任何哪怕是一个标点一个字节的修改。
- 经过PGP签名加密的消息可以在任何一条不可信信道上传输,而且中途无法被任何人篡改、解密。
Q2: 我明明不怕审查,身正不怕影子歪,你还有什么理由推荐GnuPG?
- 您的隐私由您决定,大多数的人们都不希望生活在监控之下。
- 如果温和的批评也不被允许,沉默将被认为居心叵测。如果沉默也不再允许,赞扬不够卖力将是一种罪行。如果只允许一种声音存在,那么,唯一存在的那个声音就是谎言。
- 如果更加不幸地生活在极权主义国家,加密通讯能保护自己,保护自己所在乎的朋友们。
安装
Windows
推荐使用Gpg4win,它的套件齐全,有个容易使用的GUI。
- 从Gpg4win下载适用于您计算机的版本。一般而言,如果您没有特殊需求,直接点击绿色的下载按钮即可。
macOS
推荐使用GPGSuite
- 从GPGSuite下载适用于您计算机的版本。一般而言,如果您没有特殊需求,直接点击红色的下载按钮即可。
提醒:GPGSuite套件中的GPGMail是付费软件,如果您需要用它自动加密电子邮件,那么您需要购买GPGMail。但是请放心,文本和文件的加密签名完全是免费的。
Linux
推荐使用GnuPG
- 大多数Linux发行版都已经预置了GnuPG,您不需要安装任何软件。但是推荐您安装一个GUI管理界面
GPA
,因为它更加方便用户使用。
生成密钥
本节内容请先试验,熟练之后再生成自己主要使用的密钥。
生成主密钥
- 输入命令
gpg -expert --full-gen-key
- 选择密钥类型:默认
- 输入密钥长度:4096
- 输入密钥过期时间:
2y
(表示两年,可以输入0表示永不过期,您可以随时更改密钥到期时间),输入y以确认。 - 输入您的名字,这是个可选项,可以输入网名甚至可以不输入。
- 输入您的电子邮件,这是个可选项,甚至可以不输入。如果您希望使用电子邮件加密,那您必须输入。
- 输入备注,可以留空。
- 输入O确认信息无误,随后您需要输入一个密钥密码,开始生成密钥。
生成撤销证书
如果您丢失了主密钥(或者被夺取),您可以使用撤销证书来证明它不再使用。如果您没有撤销证书,那么您必须一个个通知朋友们。
- 输入命令
gpg --gen-revoke -ao revoke.pgp [email protected] #uid 或者key id
查看子密钥
主密钥日常不应该使用,日常您应该使用生成的子密钥。这样做的好处就是如果您泄漏了某个子密钥,您可以立即吊销这个子密钥,而不用废弃整个密钥对。
- 列出所有公钥、子公钥:
--list-keys
或者gpg -k
- 列出所有密钥、子密钥:
--list-secret-keys
或者gpg -K
- 如果要查看密钥指纹信息,可以加上
--fingerprint
参数,比如gpg --list-secret-keys --fingerprint
- 如果要查看密钥ID信息,可以加上
--keyid-format long
参数,比如gpg --list-secret-keys --keyid-format long
导出密钥
既然日常使用要使用子密钥,那么主密钥不应该存在于同一个地方,GPG无法删除密钥,只能导出后只倒入需要的子密钥。
注意:密钥ID后的感叹号不可缺少,否则将会导出所有密钥
导出公钥
- 导出公钥:
gpg -ao public-key --export 主密钥ID
导出主密钥
- 输入命令
gpg -ao master-key --export-secret-key 主密钥ID!
导出子密钥
- 输入命令
gpg -ao sub-key --export-secret-subkeys 子密钥ID!
导入密钥
- 输入命令
gpg --import 文件名
和朋友们安全交流
- 您现在已经大功告成,养成日常使用PGP加密签名的习惯之后,相信您也很难离开它了
发布到公钥服务器
…未完待续…
参考文献
- Ulyc. (2021, January 13). 2021年,用更现代的方法使用PGP(上). C的博客. https://ulyc.github.io/2021/01/13/2021年-用更现代的方法使用PGP-上/
- Ulyc. (2021, January 13). 2021年,用更现代的方法使用PGP(中). C的博客. https://ulyc.github.io/2021/01/13/2021年-用更现代的方法使用PGP-中/
- Ulyc. (2021, January 13). 2021年,用更现代的方法使用PGP(下). C的博客. https://ulyc.github.io/2021/01/13/2021年-用更现代的方法使用PGP-下/