扫一扫
关注微信公众号

如何应用GPG加密使您的信息安全保障无忧(1)
2005-12-19   

加密和数字签名作为保护信息机密性、完整性和不可抵赖性的重要手段在各种信息通信场合得到广泛的应用。目前,已有不少商业加密和数字签名产品,比如商业软件PGP(Pretty Good Privacy)。
另外,在开放源代码库中也有一些免费的加密和数字签名软件,其中最被认可的是GPG(GNU Privacy Guard)。GPG是一个完全免费、源代码公开,并且与PGP完全兼容的软件产品。今天,GPG已经拥有众多的企业和个人用户。
在我国,由于信息安全及隐私保护意识还比较薄弱,PGP或GPG在商业和个人用户中的使用并不普遍。随着信息安全及隐私带来的问题甚至诉讼的增加,更多企业和个人开始把眼光投向安全问题的解决。
但是,由于非专业用户对签名和加密等概念的畏难情绪,GPG的应用还多局限于IT技术人员。本文将对Linux环境下如何应用GPG进行讲解,为企业和个人用户应用GPG提供帮助。
建立GPG环境
GPG软件作为用于加密和数字签名的开放源码工具,许多Linux发行版本都自带了该软件。在默认安装的情况下,gpg会作为一个基本命令事先安装好。
如果选用的Linux发行版默认没有安装GPG,可以通过tar包或RPM包进行安装,可从http://www.gnupg.org/download/下载安装包。安装过程比较简单,这里省略了。
判断是否安装有GPG的方法也很简单。直接在命令行下输入“gpg -h”命令,如果系统已经安装有GPG,就会显示关于GPG用法的信息。
确定Linux系统中已经安装了GPG后,就可以开始下面加密和签名的工作了。
生成密钥
用户应用GPG,首先要有一对自己的密钥。所以,第一步就是产生一对密钥。gpg命令通过大量参数提供所需要的几乎所有操作。其中,参数“-gen-key”就是用来产生一对密钥的。在安装了GPG的Linux系统上可以运行以下命令:


如果想对产生密钥的操作进行一些个性化设置,还可以加上其它参数。比如,要指定生成密钥存放的位置,可以运行以下命令:


命令开始运行后,首先,会看到版本和路径信息如下:


随后需要回答一系列问题,以帮助产生一对密钥。首先遇到的问题是要求选择密钥使用的算法:


其中,DSA是数字签名算法,RSA和ElGamal是两种不同原理的非对称密钥算法。通常可以选择“1”,这样生成的密钥可以同时用作签名和加密两种用途。
接着,会要求选择密钥的长度:


这里的密钥长度有768、1024和2048位三种。显然,密钥越长越安全,但太长又会影响使用的速度。所以,可以根据不同的需要选择适合的长度。笔者的应用更重视安全性,所以选择了最长的2048位密钥。
另外,还需要设定密钥过期的时间:


原则上,密钥使用的频率越高,密钥有效的时间越长,被攻击的可能性就越大。所以,要根据应用的实际情况综合考虑,确定一个适当的时间长度。需要注意的是,密钥要定期更换,建议绝对不要永远使用同一对密钥。
最后,需要输入一些个人信息,包括真实姓名、电子邮件地址等,用来识别密钥,最好是如实填写。比如:


然后,必须输入一个密码。密码用来保护密钥,没有这个密码,任何人都不能看到密钥本身的内容。密码是在密钥文件泄露后惟一的保密措施,它的最大敌人是暴力破解和字典攻击。所以,一定要选择一个强壮的密码,来有效地对抗这些攻击。
密码确定以后,系统开始运算:


这时需要随便地敲击键盘或是移动鼠标,以产生一些随机数,协助密钥的顺利生成。注意,如果没有以上动作,很可能最终不能产生密钥。
系统运算完成后,会出现类似以下的信息:


以上信息表示已经成功地为“Terry Yu”生成并签名了一对密钥,密钥过期时间为“2005-09-10”。在生成密钥的同时,默认用户目录的.gnupg目录中也存放了与该用户相关的GPG配置及密钥存储文件。这些文件控制了用户的GPG环境,用户不能直接修改这些文件,所有改动都将通过“gpg”命令实现。
查看密钥
密匙生成后,可以随时用以下命令查看。
查看所有密钥:


查看所有公钥:


查看所有私钥:


列出所有签名:

导出公钥
在非对称加密体系中,私钥是由用户保管,而公钥是对外公开的。用户在生成密钥对后,需要把其中的公钥导出到一个文件中,然后将其分发给其它用户。
导出公钥的方法很简单,通过gpg命令的“-export”参数就可完成。为了使导出文件是ASCⅡ编码的,还需要加上参数“-a”。比如,导出Terry Yu ASCⅡ编码的公钥文件,可以使用以下命令:


该命令最终生成ASCⅡ编码的公钥文件terry.asc如图1。



2.核对“指纹”
公钥是可以伪造的。James可以伪造一个Brian的公钥,然后想办法让Terry得到。如果Terry对收到的公钥不加验证,那么他发给Brian的加密邮件就可能被James解密。GPG的架构中并没有一个PKI这样的证书管理系统,GPG的公钥信任是通过“Truth Web”实现的。
生成Terry公钥的“指纹”:


这个“指纹”是惟一的。可以通过与对方核对“指纹”是否一致,来确定这个公钥是否可信和合法。
3.签名
在成功导入,并确定这个公钥是可以相任之后,要立即对这个公钥进行签名。这样,就可以验证来自对方邮件的真实性了。
对公钥进行签名可以使用如下命令:


检查对方邮件,比如Brian的签名:


现在,有了Brian签名的公钥,通过这个公钥就可以和Brain进行非对称加密通信了。

应用GPG
GPG使用的是非对称的密钥体系,用户拥有一对密钥,包括一个公钥和一个私钥。公钥对外公布,私钥则由自己保存。使用公钥加密的数据可以用私钥解密,同样,使用私钥加密的数据可以用公钥解密。
非对称的密钥可以用来加密和做数字签名。当用户关心信息保密性时,使用加密功能;当用户关注信息完整性及不可抵赖性时,使用数字签名功能;当用户需要同时关注信息的机密性、完整性及不可抵赖性时,可以将加密和数学签名混合使用。
简单了解这些密码学概念后,就可以开始真正的应用实践了。

共2页: 1 [2] 下一页

热词搜索:

上一篇:PGP与邮件加密
下一篇:用免费GPG加密收发Email

分享到: 收藏