首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
PGP——Pretty Good Privacy, 是一个基于RSA公匙加密体系的邮件加密 软件,它可以用来对你的邮件加密以防止非授权者阅读,还能对你的邮件加上 数字签名而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见 过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了审慎的 密匙管理, 一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法, 加密前压缩等,还有一个良好的人机工程设计。它的功能强大有很快的速度, 而且它的源代码是免费的。 实际上PGP的功能还不止上面说的:PGP可以用来加密文件,还可以用PGP代 替UUencode 生成 RADIX 64 格式(就是MIME 的 BASE 64格式)的编码文件。
PGP 的创始人是美国的 Phil Zimmermann。他的创造性在于他把RSA公匙体 系的方便和传统加密体系的高速度结合起来,并且在数字签名和密匙认证管理 机制上有巧妙的设计。因此PGP成为几乎最流行的公匙加密软件包。
PGP是一种供大众使用的加密软件。加密是为了安全,隐私权是一种基本人 权。在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分,邮 件的安全问题日益突出,大家都知道在Internet上传输的数据是不加密的,如 果你自己不保护自己的信息,第三者就会轻易获得你的隐私。还有一个问题就 是信息认证,要让收信人确信邮件没有被第三者篡改,就需要使用数字签名技 术。RSA公匙体系的特点使它非常适合用来满足上述要求:保密性(Privacy) 和认证性(Authentication)。
RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假 设的公匙体系。简单地说,其原理就是找两个很大的质数,其中一个向外界公 开(公匙),另一个不告诉任何人(私匙)。这两个密匙是互补的,用公匙加 密的密文可以用私匙解密,反过来也一样。假设甲要寄信给乙,他们互相知道 对方的公匙。甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于没别人知道乙的私匙所以即使是甲本人也无法解密那封信, 这就解决了信件保密的问题。另一方面由于每个人都知道乙的公匙,他们都可 以给乙发信,那么乙就无法确信是不是甲的来信。认证的问题就出现了,这时候数字签名就有用了。
在说明数字签名前先要解释一下什么是“邮件文摘”(message digest), 简单地说就是对一封邮件用某种算法算出一个能体现这封邮件“精华”的数来, 一旦邮件有任何改变这个数都会变化,那么这个数加上作者的名字(实际上在 作者的密匙里)还有日期等等,就可以作为一个签名了。 确切地说,PGP是用 一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message digest 5),MD5的提出者是Ron Rivest,PGP中使用的代码是由Colin Plumb 编写的,MD5本身是公用软件。所以PGP的法律条款中没有提到它。
MD5是一种 单向散列算法, 它不像CRC校验码,很难找到一份替代的邮件而与原件具有一 样的“精华”。 回到数字签名上来,甲用自己的私匙将上述的128位的“精华”加密, 附 加在邮件上,再用乙的公匙将整个邮件加密。这样这份密文被乙收到以后,乙 用自己的私匙将邮件解密,得到甲的原文和签名, 乙的PGP也从原文计算出一 个128位的“精华”来再用甲的公匙解密签名得到的数比较, 如果符合就说明 这份邮件确实是甲寄来的。这样两个要求都得到了满足。
[NextPage]
PGP还可以只签名而不加密,这适用于公开发表声明时, 声明人为了证实 自己的身份(在网络上只能如此了),可以用自己的私匙签名。这样就可以让 收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商 业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。 那么为什么说PGP用的是RSA和传统加密的杂合算法呢? 因为RSA算法计算 量极大,在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本 身,而是采用了一种叫IDEA的传统加密算法。我先解释一下什么叫传统加密, 简单地说就是用一个密匙加密明文,然后用同样的密匙解密。这种方法的代表 是DES(US Federal Data Encryption Standard),也就是乘法加密,它的主 要缺点就是密匙的传递渠道解决不了安全性问题,不适合网络环境邮件加密需 要。IDEA是一个有专利的算法, 专利持有者是ETH和一个瑞士公司Ascom-Tech AG。非商业用途的IDEA实现不用向他们交纳费用。IDEA的加(解)密速度比RSA 快得多, 所以实际上PGP是用一个随机生成密匙(每次加密不同)用IDEA算法 对明文加密,然后用RSA算法对该密匙加密。这样收件人同样是用RSA解密出这 个随机密匙,再用IDEA解密邮件本身。 这样的链式加密就做到了既有RSA体系 的保密性,又有IDEA算法的快捷性。 RSA体系70年代就已提出,但由于速度问 题一直没有推广应用,PGP的正好解决了这个问题,PGP的创意有一半就在这一点上了。那么PGP创意的另一半在哪儿呢?下面我再谈PGP的密匙管理。
一个成熟的加密体系必然要有一个成熟的密匙管理机制配套。公匙体制的 提出就是为了解决传统加密体系的密匙分配难保密的缺点。比如网络hacker们 常用的手段之一就是“监听”,如果密匙是通过网络传送就太危险了。举个例 子:Novell Netware 的老版本中,用户的密码是以明文在线路中传输的, 这 样监听者轻易就获得了他人的密码。当然 Netware 4.1中数据包头的用户密码 现在是加密的了。对PGP来说公匙本来就要公开,就没有防监听的问题。 但公 匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public Key Tampering), 这可能是公匙密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。 你必须确信你拿到的公匙属于它看上去属于的那个人。为了把这个问题说清楚, 我举个例子,然后再说如何正确地用PGP堵住这个漏洞。 以你和Alice的通信为例,假设你想给Alice发封信,那你必须有Alice的公 匙, 你从BBS上下载了Alice的公匙,并用它加密了信件用BBS的Email功能发给 了Alice。不幸地,你和Alice都不知道,另一个用户叫Charlie的用户潜入BBS, 把他自己用Alice的名字生成的密匙对中的公匙替换了Alice的公匙。 那你用来 发信的公匙就不是Alice的而是Charlie的, 一切看来都很正常,因为你拿到的 公匙的用户名是“Alice”。于是Charlie就可以用他手中的私匙来解密你给Alice 的信, 甚至他还可以用Alice真正的公匙来转发你给Alice的信,这样谁都不会 起疑心,他如果想改动你给Alice的信也没问题。更有甚者,他还可以伪造Alice 的签名给你或其他人发信,因为你们手中的公匙是伪造的,你们会以为真是Alice 的来信。 防止这种情况出现的最好办法是避免让任何其他人有机会篡改公匙,比如 直接从Alice手中得到她的公匙,然而当她在千里之外或无法见到时, 这是很 困难的。PGP发展了一种公匙介绍机制来解决这个问题。 举例来说:如果你和 Alice有一个共同的朋友David,而David知道他手中Alice的公匙是正确的(关 于如何认证公匙,PGP还有一种方法,后面会谈到,这里假设David已经和Alice 认证过她的公匙)。这样David可以用他自己的私匙在Alice的公匙上签名(就 是用上面讲的签名方法),表示他担保这个公匙属于Alice。当然你需要用David 的公匙来校验他给你的Alice的公匙,同样David也可以向Alice认证你的公匙, 这样David就成为你和Alice之间的“介绍人”。这样Alice或David就可以放心 地把David签过字的Alice的公匙上载到BBS上让你去拿, 没人可能去篡改它而 不被你发现,即使是BBS的管理员。这就是从公共渠道传递公匙的安全手段。
有人会问:那你怎么安全地得到David的公匙呢, 这不是个先有鸡还是先 有蛋的问题吗?确实有可能你拿到的David的公匙也是假的, 但这就要求这个 捣蛋者参与这整个过程,他必须对你们三人都很熟悉,还要策划很久,这一般 不可能。 当然,PGP对这种可能也有预防的建议,那就是由一个大家普遍信任 的人或机构担当这个角色。他被称为“密匙侍者”或“认证权威”,每个由他 签字的公匙都被认为是真的,这样大家只要有一份他的公匙就行了,认证这个 人的公匙是方便的,因为他广泛提供这个服务,假冒他的公匙是很极困难的, 因为他的公匙流传广泛。这样的“权威”适合由非个人控制组织或政府机构充 当,现在已经有等级认证制度的机构存在。 对于那些非常分散的人们,PGP更赞成使用私人方式的密匙转介方式, 因为这样有机的非官方更能反映出人们自然的社会交往,而且人们也能自由地选 择信任的人来介绍。总之和不认识的人们见面一样。每个公匙有至少一个“用 户名”(User ID),请尽量用自己的全名,最好再加上本人的Email地址,以免 混淆。 注意!你所必须遵循的一条规则是:在你使用任何一个公匙之前,一定要 首先认证它!!!无论你受到什么诱惑,当然会有这种诱惑,你都不要,绝对 不要,直接信任一个从公共渠道(由其是那些看起来保密的)得来的公匙,记 得要用熟人介绍的公匙,或者自己与对方亲自认证。同样你也不要随便为别人 签字认证他们的公匙,就和你在现实生活中一样,家里的房门钥匙你是只会交 给信任的人的。 下面,我讲讲如何通过电话认证密匙。
一个成熟的加密体系必然要有一个成熟的密匙管理机制配套。公匙体制的 提出就是为了解决传统加密体系的密匙分配难保密的缺点。比如网络hacker们 常用的手段之一就是“监听”,如果密匙是通过网络传送就太危险了。举个例 子:Novell Netware 的老版本中,用户的密码是以明文在线路中传输的, 这 样监听者轻易就获得了他人的密码。当然 Netware 4.1中数据包头的用户密码 现在是加密的了。对PGP来说公匙本来就要公开,就没有防监听的问题。 但公 匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public Key Tampering), 这可能是公匙密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。 你必须确信你拿到的公匙属于它看上去属于的那个人。为了把这个问题说清楚, 我举个例子,然后再说如何正确地用PGP堵住这个漏洞。 以你和Alice的通信为例,假设你想给Alice发封信,那你必须有Alice的公 匙, 你从BBS上下载了Alice的公匙,并用它加密了信件用BBS的Email功能发给 了Alice。不幸地,你和Alice都不知道,另一个用户叫Charlie的用户潜入BBS, 把他自己用Alice的名字生成的密匙对中的公匙替换了Alice的公匙。 那你用来 发信的公匙就不是Alice的而是Charlie的, 一切看来都很正常,因为你拿到的 公匙的用户名是“Alice”。于是Charlie就可以用他手中的私匙来解密你给Alice 的信, 甚至他还可以用Alice真正的公匙来转发你给Alice的信,这样谁都不会 起疑心,他如果想改动你给Alice的信也没问题。更有甚者,他还可以伪造Alice 的签名给你或其他人发信,因为你们手中的公匙是伪造的,你们会以为真是Alice 的来信。 防止这种情况出现的最好办法是避免让任何其他人有机会篡改公匙,比如 直接从Alice手中得到她的公匙,然而当她在千里之外或无法见到时, 这是很 困难的。PGP发展了一种公匙介绍机制来解决这个问题。 举例来说:如果你和 Alice有一个共同的朋友David,而David知道他手中Alice的公匙是正确的(关 于如何认证公匙,PGP还有一种方法,后面会谈到,这里假设David已经和Alice 认证过她的公匙)。这样David可以用他自己的私匙在Alice的公匙上签名(就 是用上面讲的签名方法),表示他担保这个公匙属于Alice。当然你需要用David 的公匙来校验他给你的Alice的公匙,同样David也可以向Alice认证你的公匙, 这样David就成为你和Alice之间的“介绍人”。这样Alice或David就可以放心 地把David签过字的Alice的公匙上载到BBS上让你去拿, 没人可能去篡改它而 不被你发现,即使是BBS的管理员。这就是从公共渠道传递公匙的安全手段。
有人会问:那你怎么安全地得到David的公匙呢, 这不是个先有鸡还是先 有蛋的问题吗?确实有可能你拿到的David的公匙也是假的, 但这就要求这个 捣蛋者参与这整个过程,他必须对你们三人都很熟悉,还要策划很久,这一般 不可能。 当然,PGP对这种可能也有预防的建议,那就是由一个大家普遍信任 的人或机构担当这个角色。他被称为“密匙侍者”或“认证权威”,每个由他 签字的公匙都被认为是真的,这样大家只要有一份他的公匙就行了,认证这个 人的公匙是方便的,因为他广泛提供这个服务,假冒他的公匙是很极困难的, 因为他的公匙流传广泛。这样的“权威”适合由非个人控制组织或政府机构充 当,现在已经有等级认证制度的机构存在。 对于那些非常分散的人们,PGP更赞成使用私人方式的密匙转介方式, 因为这样有机的非官方更能反映出人们自然的社会交往,而且人们也能自由地选 择信任的人来介绍。总之和不认识的人们见面一样。每个公匙有至少一个“用 户名”(User ID),请尽量用自己的全名,最好再加上本人的Email地址,以免 混淆。 注意!你所必须遵循的一条规则是:在你使用任何一个公匙之前,一定要 首先认证它!!!无论你受到什么诱惑,当然会有这种诱惑,你都不要,绝对 不要,直接信任一个从公共渠道(由其是那些看起来保密的)得来的公匙,记 得要用熟人介绍的公匙,或者自己与对方亲自认证。同样你也不要随便为别人 签字认证他们的公匙,就和你在现实生活中一样,家里的房门钥匙你是只会交 给信任的人的。 下面,我讲讲如何通过电话认证密匙。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |