邮件加密先锋 PGP Universal试用(四)
在上文中,我们介绍了PGP Universal产品的设置和部分功能,本文介绍其它一些PGP Universal的功能。
十、密钥管理
一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配过程保密的缺点。比如网络黑客们常用的手段之一就是“监听”,如果密钥是通过网络传送就太危险了。对PGP来说公钥本来就要公开,就没有防监听的问题。但公钥的发布中仍然存在安全性问题,例如公钥被篡改(public key tampering),这可能是公钥密码体系中最大漏洞 。用户必须确信用户的公钥属于需要收信的那个人。
为了把这个问题说清楚,先举个例子进行说明,然后再说如何正确使用PGP堵住这个漏洞。
以Alice和Bob通信为例,现假设Alice想给Bob发信,首先Alice就必需获取Bob的公钥,Alice从BBS上下载或其它途径得到了Bob的公钥,并用它加密了信件发给了Bob。不幸的是,Alice和Bob都不知道,另一个用户Charlie潜入BBS或网络中,侦听或截取到Bob的公钥,然后在自己的PGP系统中用Bob的名字生成密钥对中的公钥替换了Bob的公钥,并放在BBS上或直接以Bob的身份把更换后的Bob的“公钥”发给Alice。那Alice用来发信的公钥是已经是更改过的,实际上是Charlie伪装Bob生成的另一个公钥。这样谁都不会起疑心,但这样一来Bob收到Alice的来信后就不能用自己的私钥解密了,更可恶的是,Charlie还可伪造Bob的签名给Alice或其他人发信,因为Alice手中的公钥是伪造 ,Alice会以为真是Bob的来信。
防止这种情况出现的最好办法是避免让任何其他人有机会篡改公钥,但能做到这一点的是非常困难的,一种方法是直接从Bob手中得到他的公钥,然而当他在远在他乡或在时间上根本不可达到时,这是不可办到的。
但PGP发展了一种公钥介绍机制来解决这个问题,其思路是这样的:如果Alice和Bob有一个共同的朋友David,而David知道他手中的Bob的公钥是正确的。这样David就成为Alice和Bob之间的公证人,Bob为了防止别人篡改自己的公钥,就把经过David签名的自己的公钥上载到BBS上让用户去拿,Alice想要取得Bob的公钥就必需先获取David的公钥来解密BBS或网上经过David签名的Bob的公钥,这样就等于加了双重保险,一般没有可能去篡改它而不被用户发现,即使是BBS的管理员。这就是从公共渠道传递公钥的安全手段。
说到这里也许有人会问想到,只通过一个签名公证力度是不是小了点,聪明的PGP当然会想到这一点,就是把不同签名的自己的公钥收集在一起,发送到公共场合,这样可以希望大部分人至少认识其中一个,从而间接认证了用户的公钥。同样用户签了朋友的公钥后应该寄回给他,这样就可以让他通过该用户被该用户的其他朋友所认证。有点意思吧,和现实社会中人们的交往一样。PGP会自动根据用户拿到的公钥中有哪些是朋友介绍来的,把它们分为不同的信任级别,供用户参考决定对它们的信任程度。也可指定某人有几层转介公钥的能力,这种能力是随着认证的传递而递减的。
也许还有人会问:如何安全地得到David或其他签名朋友的公钥呢。确实有可能Alice拿到的David或其他签名的朋友的公钥也假的,但这就求这个Charlie必须对你们三人甚至很多人都很熟悉,这样的可能性不大,而且必需经过长时间的策划。当然,PGP对这种可能也预防的建议,那就是由一个大家普遍信任的机构担当这个角色,他被称为认证权威机构,每个由他签过字的公钥都被认为真的,这样大家只要有他的公钥就行了,认证这个人的公钥是方便的,因他广泛提供这个服务,假冒他的公钥是极困难的,因为他的公钥流传广泛。这样的"权威机构"适合由非个人控制组织或政府机构充当,现在已经有等级认证制度的机构存在,如广东省电子商务电子认证中心(www.cnca.net)就是一个权威的认证机构。
对于那些非常分散的用户,PGP更赞成使用私人方式的密钥转介方式,因这样有的非官方途径更能反映出人们自然的社会交往,而且人们也能自由地选择信任的朋友来公证,总之和不认识的人们之间的交往一样,每个公钥至少有一个“用户名”(User ID),请尽量用自己的全名,最好再加上本人的email地址,以免混淆,这就是PGP推荐使用的电话密钥认证。
PGP的每个密钥有它们自己的标识(keyID),keyID是一个8位十六进制数,两个密钥具有同keyID的可能性只有十亿分之一,而且PGP还提供了一种更可靠的标识密钥的方法:“密钥指纹”(keys fingrprint),每个密钥对应一串数字(16个2位十六进制数),这个指纹重复的可能就更微乎其微了。而且任何人无法指定生成一个具有某个指纹的密钥,密钥是随机生成的,从指纹也无法反推出密钥来。用户拿到某人密钥后就可以他在电话上核对这个指纹,从而认证他的公钥。
和传统单密匙体系一样,私匙的保密也是决定性的。相对公匙而言,私匙不存在被篡改的问题,但存在泄露的问题。RSA的私匙是很长的一个数字,用户不可能将它记住,PGP的办法是让用户为随机生成的RSA私匙指定一个口令(passphase)。只有通过给出口令才能将私匙释放出来使用,用口令加密私匙的方法保密程度和PGP本身是一样的。所以私匙的安全性问题实际上首先是对用户口令的保密。当然私匙文件本身失密也很危险,因为破译者所需要的只是用穷举法试探出你的口令了,虽说很困难但毕竟是损失了一层安全性。在这里只用简单地记住一点,要像任何隐私一样保藏你的私匙,不要让任何人有机会接触到它。
PGP在安全性问题上的精心考虑体现在PGP的各个环节。比如每次加密的实际密匙是个随机数,大家都知道计算机是无法产生真正的随机数的。PGP程序对随机数的产生是很审慎的,关键的随机数像RSA密匙的产生是从用户瞧键盘的时间间隔上取得随机数种子的。对于磁盘上的 randseed.bin 文件是采用和邮件同样强度的加密的。这有效地防止了他人从你的randseed.bin文件中分析出你的加密实际密匙的规律来。
相关报道
本文导航>>
- 1.密钥管理
- 2.PGP Desktop的集成化功能
- 3.写在最后
论坛相关热帖
产品关注排行榜
- 水星MD890G增强型
- ¥220
- 水星MD890G超强型
- ¥180
- D-LinkDSL-2500E
- ¥130
- 艾泰HiPER 510
- ¥439
- 腾达TEI602
- ¥320
- VigorG1000
- ¥800
- 斐讯FAG701
- ¥488
- 斐讯FAG101
- ¥168
