IDEA是一个有专利的算法,专利持有者是ETH和一个瑞士公司:Ascom-Tech AG。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是以一个随机生成的密钥(每次加密不一样),用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。PGP的创意有一半就在这一点上了,为什么RSA体系70年代就提出来,一直没有推广应用呢?速度太慢!那PGP创意的另一半在哪儿呢?就是下面我要谈的密钥管理。
一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配过程保密的缺点。比如网络黑客们常用的手段之一就是"监听",如果密钥是通过网络传送就太危险了。对PGP来说公钥本来就要公开,就没有防监听的问题。但公钥的发布中仍然存在安全性问题,例如公钥被篡改(public key tampering),这可能是公钥密码体系中最大漏洞 。用户必须确信用户的公钥属于需要收信的那个人。
为了把这个问题说清楚,先举个例子进行说明,然后再说如何正确使用PGP堵住这个漏洞。
以用户A和用户B通信为例,现假设用户A想给用户B发信,首先用户A就必需获取用户B的公钥,用户A从BBS上下载或其它途径得到了B的公钥,并用它加密了信件发给了B。不幸的是,用户A和B都不知道,另一个用户C潜入BBS或网络中,侦听或截取到用户B的公钥,然后在自己的PGP系统中用用户B的名字生成密钥对中的公钥替换了用户B的公钥,并放在BBS上或直接以用户B的身份把更换后的用户B的“公钥”发给用户A。那用户A用来发信的公钥是已经是更改过的,实际上是用户C伪装用户B生成的另一个公钥。这样谁都不会起疑心,但这样一来用户B收到用户A的来信后就不能用自己的私钥解密了,更可恶的是,用户C还可伪造用户B的签名给用户A或其他人发信,因为用户A手中的公钥是伪造 ,用户A会以为真是用户B的来信。
防止这种情况出现的最好办法是避免让任何其他人有机会篡改公钥,但能做到这一点的是非常困难的,一种方法是直接从用户B手中得到他的公钥,然而当他在远在他乡或在时间上根本不可达到时,这是不可办到的。
但PGP发展了一种公钥介绍机制来解决这个问题,其思路是这样的:如果用户A和用户B有一个共同的朋友D,而D知道他手中的B的公钥是正确的。这样D就成为用户A和B之间的公证人,用户B为了防止别人篡改自己的公钥,就把经过D签名的自己的公钥上载到BBS上让用户去拿,用户A想要取得用户B的公钥就必需先获取D的公钥来解密BBS或网上经过D签名的B的公钥,这样就等于加了双重保险,一般没有可能去篡改它而不被用户发现,即使是BBS的管理员。这就是从公共渠道传递公钥的安全手段。
共4页: 上一页 [1] [2] 3 [4] 下一页
|