GnuPG介绍与使用
写一篇给学生会部门XDX的关于简要介绍与教程
为什么要用PGP
现代网络框架中,TLS的使用已经非常广泛,在正确部署下可以保护大多数在ISP网络中流动的个人用户流量的数据。
题外话:某绿色APP竟然是使用明文http协议里面封装TLS数据流进行通信的(也就是说连接到的可能不是官方的服务器,至于解密的私钥放在哪里…
但是,出于对互联网服务商的不信任(如:电子邮件服务商、网盘服务等),我们还是有点理由对我们发出信息的可信度或保密性进行一定的保证,这就需要使用我们可能不是太熟悉的OpenPGP进行加密
OpenGPG的通俗原理
PGP的核心概念是非对称加解密,可以把OpenPGP看成一把智能门锁,使用私钥或公钥中的一把对数据进行加密后,就只有另外一把能够把这把锁打开(至少在人类的计算力没有爆炸式增长前都不会改变)。
我们一般用我们别人的公钥给别人加密要发给他们的数据,然后他们就可以用自己的私钥将自己的数据进行解密。
可以看出,我们的公钥需要发送给别人,使得他们可以为我们准备数据,而我们的私钥则不可泄露 切记切记!
特殊用法:签名
这里也有一种特殊的用法。
假使我们不需要保证内容的安全性,但想让某某人相信这个内容是由某人亲自创建的(这类似于发出公告上带上签名或者函件上盖上公章),那我们就可以对内容进行签名。
根据前文我可以容易推出,用私钥对数据进行加密后,同样可用公钥进行解密来还原出相应的内容,同时由于公钥已经被分发给每一个有它的人,于是我们只需要使用自己的私钥对内容或者内容的摘要进行加密后,由他人使用公钥进行解密,然后与已知的内容或摘要进行比对,若是一致,则我们可以确定改内容是由我们相信的那个人所创建的,这就达成了我们的一些目的。
OpenPGP的实现:GnuPG
在Windows上的可用分发GPG4win
安装时可勾选上Kleopatra以获取新手友好的图形化用户界面
生成属于我们自己的GPG密钥吧!
在Kleopatra的文件菜单中选择新建OpenGPG密钥对,输入你想要的用户名和对应的电子邮件地址即可,若你需要更高的安全需求可以勾选上密钥句保护。
创建好后邮件对应的密钥,菜单中的在服务器上发布...选项可将密钥上传到公开的keyserver上,这样所有人都可以根据你的用户名和电子邮件地址查找到你的公钥,以便于进行更加广泛的通信。
使用GPG密钥进行通信
电子邮件客户端Thunderbird
Thunderbird支持端到端加密,可以自动使用账户设置关联的GPG密钥方便的对电子邮件进行签名和加密,确保通信安全性。
使用Kleopatra进行短文本和文件加密后在常用IM上进行发送
记事本
在记事本功能中选择对应的收件人后在文本框中加密对应的内容后进行发送即可。
签名/加密
选取相应的文件后进行加密后发送到对应收件人即可。