简易PGP加密教程
前言
有感于目前网络上对GPG加密的教程基本大多晦涩难懂,且排版一言难尽(如下图)
笔者决意写一篇通俗易懂的GPG教程
1、各种加密客户端
1.1 电脑系统
通用:
去官网下载源码后使用源码编译安装,基本通用。
1 | # 解压源码压缩包后进入源码目录运行下列命令 |
Linux:直接在terminal运行以下程序
1 | # Debian / Ubuntu系请用apt |
Windows:推荐使用GPG4win,官网
MacOS:使用brew安装
1 | brew install gpg |
1.2 手机系统
安卓:推荐使用openkeychain
iOS: 使用PGPEverywhere
2、生成自己的公私钥
对于懂英语的同志来说,一旦找准入口就会了。如同安装软件一样简单。
2.1 通过命令行生成
(此方法为通用)
第一步,输入命令gpg --gen-key
出现这些字说明结果正常。
第二步,在Real name:
后面填写使用的名字
(可以带空格)
第三步,在Email adress:
后面填写使用的邮箱
确认无误后输入O确认,或如图所示输入其他字母来修改
第四步,用密码来保护私钥(可选)
可以选择在使用密码来保护私钥
第五步,生成成功!
成功后会显示恢复文件存放路径,
2.2 通过客户端生成(推荐)
(以windows平台下的kleopatra为例(安装GPG4win时可附带))
第一步,在客户端点击“新密钥”
第二步,确认生成PGP密钥
(X.509密钥不在本教程讨论范围内)
第三步,输入并确认信息
第四步,用密码来保护私钥(同2.1)
同上
第五步,生成成功!
3、实践使用:在客户端中用公钥加密
3.1 Windows
(以windows平台下的kleopatra为例(安装GPG4win时可附带))
首先我们应该确定加密内容的发送对象,并使用他/她/它的公钥(可同时加密给多人)。
通过.asc等文件导入对方公钥或在公共的公钥交换服务器上查找。需要注意的是公共服务器上可能出现近似或仿冒者,需要多加分辨。此外,很多人不会在默认的麻省理工服务器上上传,所以(找不到时)不要太惊讶。
以下以向我自己加密为例
加密文字
第一步,点击记事板
第二步,确认加密对象及是否签名
第三步,输入要加密的文字
首先切换回记事板,并输入需要加密的内容。加密完后点击“签名/加密记事板”
第四步,将密文发给发送对象
将记事板中生成的密文发送出去吧!
2020/11/27更新
4、和桌面版outlook使用
意外发现,windows平台下的outlook桌面版程序可以自动检测到gpg4win的存在并用做扩展项
此扩展项会被自动检测,并通过Program Files/Gpg4win/bin/gpgol.dll
文件进行加载。点击右下角可以调出一些设置,但证书相关导入导出、信任度是通过主程序gpg4win或附带kleopatra完成
4.1 收信
可信度
当收到普通无PGP签名邮件时,会显示insecure。考虑到目前推广接受度,?号图标更多旨在提醒而非警告⚠。
这封邮件附带的签名达到了信任等级四,因为是笔者自己的证书签的。当邮件签名来自已经导入公钥并信任的用户时,此扩展可在下述三个地方显示此邮件的安全性,可行度和完整性。
解密
PGP公私钥技术的另一个也是最主要的用途是加密信息的发送和接收。只要对方拥有你的公钥,对方就可以向持有私钥的你发送加密邮件,并且只有你的私钥可以解开——密码保护的私钥还需要输入密码,更加安全。
如图所示,即使电脑被他人登录加密邮件也不会泄露
解密后的邮件如图所示。这封邮件不仅加密还签名了,可信度和安全性极高。体现在如图标示上。
4.2 发信
实际很简单,勾选是否加密、签名即可,但有几点注意:
- 加密需要有收信方公钥,通过kleopatra导入(见上3.1)
- 签名请用当前所用邮箱的私钥签名,否则可能造成迷惑
- 签名时最好保证对方已有你的公钥,可以通过你的签名验证。
- 可以给多个人加密、签名。加密使用所以收信方公钥,而签名规则同上,最好大家已经交换完公钥。