使用GnuPG实现互联网信息交换的信任


作者:Mike Gaul
来自:www.bymg.com
假如对这方面内容感爱好 , 您可以阅读原文 , 参加相关调查 。
GunPG是一个完全免费的公钥加密技术软件包 。
在企业网络应用中 , 使用GunPG对在公共网络或者局域网内传输的信息进行数字签名或加密保护 , 有利于提高企业网络的安全并降低安全验证成本 。
下载可以从GunPG官方网站上下载 。
GunPG是完全免费的公钥加密技术软件包 , 其有4个含义:
1.如所有其他GUN产品一样 , 可以免费获得它 。
2.可以得到它的源代码 , 并安装GUN库一般公共许可(LGPL)规定 , 任何人都可以自由修改它并可以重新发布 。与一般的公共许可协议(GPL)不同 , LGPL也答应商业销售商编写建立在GunPG上的专用软件产品 , 而无须被迫发布它们的源代码 。
3.避免了如IDEA和RSA这样的受专利制约的算法 , 因此 , 不必向任何一方支付许可费就可以使用它 。
4.GnuPG是在德国开发的 , 因此 , 它逃避了美国的出口限制 。
在使用GunPG之前 , 先说说公钥加密技术在什么情况下应用 , 这里用的语言只是我自己理解的 , 可能不会很准确 , 假如需要准确的描述 , 请查看相关书籍 。
1.生成“钥”时会产生一对“钥”:公钥和私钥 。公钥 , 顾名思义 , 是公开的“钥” , 那么私钥就是自己秘密保留的“钥” 。
2.某人A想要给你发一个消息 , 但是希望不让其他人知道 。那么 , 他可以使用你公布出来的公钥 , 对消息进行加密成密文 。假如其他人得到密文 , 则没有办法解密 。而假如你得到了密文 , 你可以使用你保留的私钥对密文进行解密 。这个过程即“加密解密”的过程 。
3.你给某人A发送一条消息 , 但是A可能怀疑这个消息是否真正是你发出的 。那么你可以使用你的私钥对这个消息进行标记 。而A要验证这个消息真的是你发出的 , 就可以使用你公布出来的公钥进行验证 。这个对消息标记的过程即“数字签名” 。
4.A与B之间存在信任 , B与C之间存在信任 。那么 , 要在A与C之间建立信任 , 则可以……
需要非凡注重的是:
1.请注重你们得到的公钥是真正来自你认为的那个人的 。假如不是 , 则所有的信任将不复存在 。
2.一般来说 , 将一个人的私钥保存在多用户系统上不是一个好办法 , 有可能会被其他用户访问到 。你应该始终把私钥保存在一张软盘上(要做备份) , 当不使用时把两者都锁起来 。
实际操作
1.使用对方公钥加密信息 , 并将此信息发送给对方
(1)使用对方公钥对信息进行加密 , 首先要获得对方公钥 , 然后使用 gpg -- import 进行导入 。
(2)然后应该使用 gpg --sign-key name 对这个公钥进行签名 , 来告诉 gpg 你能够确认这个公钥是正确并有效的 。假如不进行这一步 , 会出现类似于下面的信息:
gpg: BB2CFA5A: There is no indication that this key really belongs to the owner
1024g/BB2CFA5A 2003-12-09 "……(这部分忽略)"
Primary key fingerprint: ……(这部分忽略)
Subkey fingerprint: ……(这部分忽略)
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes
Use this key anyway?
当然假如输入“y”也可以 。但是每次都会提示 。
(3)使用下面命令对文件进行加密:
gpg --encrypt --recipient name --armor secret_file
假如要加密外加数字签名就要:
gpg --recipient user_name --sign --encrypt --armor msg_file
快速参考
1.生成密钥对:
gpg --gen-key
2.提出公钥并显示在屏幕上:

推荐阅读