用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

PGP工作原理及其安全体制

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:33:18
以用户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生成的另一个公钥(A得到的B的公钥实际上是C的公钥/密钥对,用户名为B)。这样一来B收到A的来信后就不能用自己的私钥解密了。更可恶的是,用户C还可伪造用户B的签名给A或其他人发信,因为A手中的B的公钥是仿造的,用户A会以为真是用户B的来信。于是C就可以用他手中的私钥来解密A给B的信,还可以用B真正的公钥来转发A给B的信,甚至还可以改动A给B的信。

3.2 防止篡改公钥的方法

(1)直接从B手中得到其公钥,这种方法有局限性。

(2)通过电话认证密钥:在电话上以radix-64的形式口述密钥或密钥指纹。密钥指纹(keys fingerprint)就是PGP生成密钥的160bit的SHA-1摘要(16个8位十六进制)。

(3)从双方信任的D那里获得B的公钥。如果A和B有一个共同的朋友D,而D知道他手中的B的公钥是正确的。D签名的B的公钥上载到BBS上让用户去拿,A想要获得B的公钥就必须先获取D的公钥来解密BBS或网上经过D签名的B的公钥,这样就等于加了双重保险,一般没有可能去篡改而不被用户发现,即使是BBS管理员。这就是从公共渠道传递公钥的安全手段。有可能A拿到的D或其他签名的朋友的公钥也是假的,但这就要求攻击者C必须对三人甚至很多人都很熟悉,这样的可能性不大,而且必需经过长时间的策划。

只通过一个签名证力度可能是小了一点,于是PGP把用不同私钥签名的公钥收集在一起,发送到公共场合,希望大部分从至少认识其中一个,从而间接认证了用户(A)的公钥。同样用户(D)签了朋友(A)的公钥后应该寄回给他(A)(朋友),这样可以让他(A)通过该用户(D)被该用户(D)的其他朋友所认证。与现实中人的交往一样。PGP会自动根据用户拿到的公钥分析出哪些是朋友介绍来的签名的公钥,把它们赋以不同的信任级别,供用户参考决定对它们的信任程度。也可指定某人有几层转介公钥的能力,这种能力随着认证的传递而递减的。

(4)由一个普通信任的机构担当第三方,即“认证机构”。这样的“认证机构”适合由非个人控制的组织或政府机构充当,来注册和管理用户的密钥对。现在已经有等级认证制定的机构存在,如广东省电子商务电子认证中心(WWW.cnca.net)就是一个这样的认证机构。对于那些非常分散的用户,PGP更赞成使用私人方式的密钥转介。

3.3 信任的使用

PGP确实为公开密钥附加侂任和开发信任信息提供了一种方便的方法使用信任。

公开密钥环的每个实体都是一个公开的密钥证书。与每个这亲的实体相联系的是密钥合法性字段,用来指示PGP信任“这是这个用户合法的公开密钥”的程度;信任程度越高,这个用户ID与这个密钥的绑定越紧密。这个字段由PGP计算。与每个实体相联系的还有用户收集的多个签名。反过来,每个签名都带有签名信任字段,用来指示该PGP用户信任签名者对这个公开密钥证明的程度。密钥合法性字段是从这个实体的一组签名信任字节中推导出来的。最后,每个实体定义了与特定的拥有者相联系的公开密钥,包括拥有者信任字段,用来指示这个公开密钥对其他公开密钥证书进行签名的信任程度(这个信任程度是由该用户指定的)。可以把签名信任字段看成是来自于其他实体的拥有者信任字段的副本。

例如正在处理用户A的公开密钥环,操作描述如下:

(1)当A在公开密钥环中插入了新的公开密钥时,PGP为与这个公开密钥拥有者相关联的信任标志赋值,插入KUa,则赋值=1终极信任;否则,需说明这个拥有者是未知的、不可任信的、少量信任的和完全可信的等,赋以相应的权重值1/x、1/y等。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    (2)当新的公开密钥输入后,可以在它上面附加一个或多个签名,以后还可以增加更多的签名。在实体中插入签名时,PGP在公开密钥环中搜索,查看这个签名的作者是否属于已知的公开密钥拥有者。如果是,为这个签名的SIGTRUST字段赋以该拥的者的OWNERTRUST值。否则,赋以不认识的用户值。

(3)密钥合法性字段的值是在这个实体的签名信任字段的基础上计算的。如果至少一个签名具有终极信任的值,那么密钥合法性字段的设置为完全;否则,PGP计算信任值的权重和。对于总是可信任的签名赋以1/x的权重,对于通常可信任的签名赋以权重1/y,其中x和y都是用户可配置的参数。当介绍者的密钥/用户ID绑定的权重总达到1时,绑定被认为是值得信任的,密钥合法性被设置为完全。因此,在没有终极信任的情况下,需要至少x个签名总是可信的,或者至少y个签名是可信的,或者上述两种情况的某种组合。如图4所示。

总之,PGP采用了RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法、加密前压缩等,可以用来加密文件,还可以代替Uuencode生成RADIX 64格式(就是MIME的BASE 64格式)的编码文件。PGP创造性地把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计。这是目前最难破译的密码体系之一。

用户通过PGP的软件加密程序,可以在不安全的通信链路上创建安全的消息和通信。PGP协议已经成为公钥加密技术和全球范围内消息安全性的事实标准。因为所有人都能看到它的源代码,从而查找出故障和安全性漏局。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:22,265.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号