关于设计,生活和电子的二三事

使用OpenGPG进行安全信息传输

使用OpenPGP进行安全的信息传输

最近帮别人搞网站服务器,需要通过网络传输一些文件,重点是,要求可靠不能被中途篡改或获取。所以选择OpenPGP作为加密工具。这一篇也作为OpenPGP的使用介绍。
PGP可以使用RSA加密算法(新版的还支持ECC算法)对文件进行加密,算法就不多介绍了,重点知道这种算法加密和解密使用的密钥是不同的,使用公钥加密的文件只有用私钥能解开。使用的时候用文件接收方的公钥加密,把加密后的文件发给对方,然后对方使用私钥解密,就能获得原始文件。即使第三方得到了加密后的文件,因为没有对应的私钥也没法解密文件。
PGP软件使用主要分成三步,安装并生成证书(密钥对),用公钥加密文件,用私钥解密文件。

安装软件并生成证书
首先从https://www.gnupg.org/download/index.html或https://www.gpg4win.org/download.html下载在Windows下运行的PGP软件。截至2016-3-4软件最新版本是2.3.0 (Released: 2015-11-25)。注意:不要从非官方的各种下载站下载!!!如果软件本身被动过手脚那么加密就完全没意义了!!!按默认设置安装即可,注意修改安装目录。安装中间有一个步骤是选择是否在桌面上新建图标。这个选项默认是没有选中的,为了使用方便建议选上。选择要安装的组件时有一个组件GNU Privacy Assistant默认没有选中,建议选中。

安装完成后会在桌面生成一个图标。如果安装GNU Privacy Assistant的话还会有一个GPA的图标,这个后面介绍。双击Kleopatra图标运行。

首先需要新建证书,证书用来对文件进行加解密。点文件——新证书,开始新建证书。对于熟人之间小范围的文件加密,选第一项personal OpenPGP key pair即可。如果需要向陌生人发送文件,并且不方便直接向对方索要公钥,可以选第二项。第二项会把生成的公钥放在认证服务器上,只需要知道对方邮箱即可获得对方公钥并用来给对方发送加密数据。这里选择第一项。

然后输入名字和邮箱,备注可以不填。Advanced Settings可以设置密钥相关选项,如密钥长度,加密方式,有效期,证书用途等。默认设置即可。

设置完后点下一步,核对信息是否正确。然后点Create Key

然后会要求你输入密码。和其他所有密码一样,密码最好能大小写字符数字都有。记得保存好密码。然后会要求再次输入密码。

确认,稍等一会,证书就创建好了

然后软件会回到主界面,刚刚新建的证书会出现在软件界面中,然后就可以用这个证书加密/解密软件了。

到此产生证书(密钥对)步骤完成,双击证书可以看到证书详细信息。

导出公钥
如果想要给别人发文件,首先要有对方的公钥,用公钥把文件加密,然后就可以通过不安全途径把加密后的文件发给对方了。同理,如果别人要给你发送文件,需要用你的公钥加密后发给你。
首先导出自己的公钥。为了测试这里我就用我自己的公钥了。
在主界面中选中自己的证书,然后点File——Export Certificates。注意不要错选下面的一项Export Secret Keys,这一项是导出私钥。然后选择公钥保存位置,点保存即可。保存完成后可以把公钥发给需要给你传文件的人。

到此导出公钥完成。

导入公钥
然后是导入别人的公钥供加密时候使用。点File——Import Certificates,在打开的窗口中选择对方公钥即可。导入完成后软件会有提示。

同时软件主界面会出现一个新标签,Imported Certificates,里面会出现新导入的证书。这个标签没什么用,可以右键点标签名字,选Close Tab关闭标签。
到此导入公钥完成。

用公钥加密文件
在任意文件上点右键,选Sign and encrypt,弹出来加密选项的窗口。

直接点下一步,选择加密密钥。如果要发给多个人,可以选择多个密钥。自己的密钥会用粗体字标出,如果有原文件(上一步没有选Remove uncrypted……一项),可以不用添加自己的密钥,否则需要添加自己的密钥以便自己能解密。然后点Encrypt

然后会显示加密进度,加密完成后点Finish完成。

到此文件加密完成,得到后缀名为gpg的加密文件可以通过不安全方式传输。

用私钥解密

在要解密的文件上点右键,选Decrypt and verify

最下边选择解密后文件保存的文件夹,点Decrypt/Verify后会自动调用存在的证书进行解密。解密时需要输入自己证书的密码(就是创建证书步骤中输入的密码),输入密码后点确定

如果密码正确,软件会开始解密过程,等解密完成,在上一部选定的文件夹中会保存解密后得到的文件。

如果输入的密码不对或证书错误,会显示解密失败,无法得到解密后的文件。

其他用法
如果安装时候选择了GNU Privacy Assistant,还可以用PGP加密文字消息。
首先打开GNU Privacy Assistant,点Windows——Clipboard,会弹出一个文字输入界面。

要加密的时候,在文本输入界面里输入想要加密的文字内容,然后点Encrypt,选择要发送对方的公钥,点确定,如果公钥没有经过认证服务器认证,会弹出一条提示,直接点确定,然后要发送的消息就被加密了,可以直接复制发送给对方。

解密的时候,在文本输入框里粘贴进去要解密的密文,点上方的Decrypt,输入创建证书时候的密码,点确定就能得到原始文本。

这些只是最基本的公私钥加密体系,有兴趣还可以自己搭建公钥服务器,构建自己的信任链,这些等我有(yong)时(dao)间(shi)再写了

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据