一、GPG介绍
随着网络与计算机技术的发展,数据存储与数据交换的安全性、完整性和一致性已经变得越来越重要。网络信息安全中核心的加密技术也随之应用于数据存储和数据 交换。同时,为了确保网络数据交换时的双方身份的正确性以及不可抵赖性,签证体系也已经日趋成熟。如何保证在不安全的网络上传输数据的安全性成为网络信息 安全界研究的热点和经典问题。本文将向读者介绍一种Linux下的基于PGP(Pretty Good Privacy)机制的加密及签名软件——GnuPG,通过它可以极大地保证网络用户传输及使用数据的安全性。
PGP的创始人是美国的PhilZimmermann。他创造性地把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有非常巧妙的设计,因此PGP成为几乎最流行的公钥加密软件包。
其中,RSA(Rivest-Shamir-Adleman)算法是一种基于“大数不可能质因数分解假设”的公钥体系。它是指每一个用户都拥有一对密钥: 公钥和私钥。其中,密钥由用户保存,公钥则由用户尽可能地散发给其他人,以便用户与其他人通信。这两个密钥是互补的,用公钥加密的密文可以用私钥解密,反 过来也一样。
PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。它不但可以对用户的数据保密以防止非授权者阅读,还能对用户的邮件加上数字签名从而使收 信人确信邮件是由该用户发出。让人们可以安全地和从未见过的人们通信,而事先不需要任何保密的渠道用来传递密钥。PGP采用了审慎的密钥管理,一种RSA 和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等。它功能强大,速度很快。
GnuPG是实现安全通信和数据存储的一系列工具集,可以做加密数据和做数字签名之用。在功能上,它和PGP是一样的。由于PGP使用了IDEA专利算 法,所以使用PGP会有许可证的麻烦。但是GnuPG并没有使用这个算法,所以对用户来说使用GnuPG没有任何限制。GnuPG使用非对称加密算法,安 全程度比较高。GnuPG主要有以下特点:
● 完全兼容PGP;
● 没有使用任何专利算法,没有专利问题;
● 遵循GNU公共许可证;
● 与OpenPGP兼容;
● 使用广泛,安全性高于PGP2,可以加密校验和PGP5.x格式的信息;
● 支持多种加密算法;
● 支持扩展模块;
● 用户标识遵循标准结构;
● 多语言支持(尚未支持中文);
● 支持匿名信息接收;
● 支持HKP密钥服务。
二、GPG配置
现在的各种发行版大部分都提供了GPG的RPM包,如果没有提供或者想用最新的版本,可以从www.gnupg.org获得。现在最新的版本为1.4.7。其源码的安装方法为:
[root@localhost mnt]# ls gnupg-1.4.7.tar.gz -l
-rw-r--r-- 1 root root 4524604 Mar 5 2007 gnupg-1.4.7.tar.gz
[root@localhost mnt]# tar zxvf gnupg-1.4.7.tar.gz
[root@localhost mnt]# cd gnupg-1.4.7
[root@localhost gnupg-1.4.7]# ./configure
[root@localhost gnupg-1.4.7]# make
[root@localhost gnupg-1.4.7]# make install
三、GPG应用
GPG可以用来验证我们从网上下载的软件的完整性和真实性。下面以一个加密软件TrueCrypt的下载来说明如何使用,
如果我们下载的是它的源代码,则需要输入一下地址:http://www.truecrypt.org/downloads2.php ,在这
里我们选择下载download 和pgp signature下载。
下载下来的文件分别为:TrueCrypt 6.1 Source.tar.gz和TrueCrypt 6.1 Source.tar.gz.sig
然后直接用 gpg 命令来验证数据的正确性
gsc@gsc-laptop:~$ gpg --verify TrueCrypt/ 6.1/ Source.tar.gz.sig TrueCrypt/ 6.1/ Source.tar.gz
gpg: Signature made Sat 01 Nov 2008 06:54:21 AM CST using DSA key ID F0D6B1E0
gpg: Good signature from "TrueCrypt Foundation <contact@truecrypt.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: C5F4 BAC4 A7B2 2DB8 B8F8 5538 E3BA 73CA F0D6 B1E0
Good signature消息表示签名正确。
另外签名的生成:
生成.sig文件(分离式数字签名):
gpg -u gsc@aaa.com -b abc.tar.gz
验证.sig文件的正确性.
1.生成自己的key
gpg --gen-key
2.导入文件的public key
gpg --import newkey.txt
gpg --list-keys查看email
gpg --edit-key importuser@importsite.com
Command>fpr 查看该key的认证信息
Command>sign 签证key
Command>check 检查key
q退出.
3.检查
gpg --verify abc.tar.gz.sig abc.tar.gz
导出公钥:
gpg --armor --export your@mail.com