良好隱私密碼法

维基百科,自由的百科全书
(重定向自PGP
跳转至: 导航搜索
PGP
PGP.gif
PGP软件截图(Windows
開發者 菲爾·齊默爾曼
类型 密码学
網站 pgp.com

更好地保护隐私英语:Pretty Good Privacy,縮寫為PGP),一套用於訊息加密、驗證的應用程序,採用IDEA的散列演算法作為加密與驗證之用。

PGP的主要开发者是菲爾·齊默爾曼(Phil Zimmermann)。齐默曼于1991年将PGP在互联网上免费发布。PGP本身是商业应用程序;开源并具有同类功能的工具名为GPGGnuPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准(RFC 4880)。

PGP加密如何工作[编辑]

PGP加密由一系列散列数据压缩对称密钥加密,以及公钥加密的算法组合而成。每个步骤支持几种算法,可以选择一个使用。每个公钥均绑定唯一的用户名和/或者E-mail地址。这个系统的第一个版本通常称为可信Web或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的PGP加密版本通过一个自动密钥管理服务器来进行密钥的可靠存放。[1]

兼容性[编辑]

PGP工作原理图示

随着PGP的版本更新,新版本的PGP系统开始支持新的特征和算法,新系统生成的加密消息不能直接被旧的PGP系统解密,即使是使用旧版存储的有效私钥也不行。因此,在PGP通讯中的通信双方应统一版本,或者至少协商好PGP的具体设置。

机密性[编辑]

PGP可以用来发送机密消息。这是通过对称的一组密钥-公钥组合来实现的。消息采用对称加密算法加密,采用一组对称密钥。每个对称密钥只使用一次,所以也叫做会话密钥。会话密钥通过接收方的公钥来加密保护,因此只需确保仅接收方能解密会话密钥即可。加密的消息和加密的会话密钥一起发送给接收方。

数字签名[编辑]

PGP支持消息认证和完整性检测。完整性检测被用来检查消息在传输过程中是否变更过(即验证消息完整性),而消息认证则是被用来决定消息是否确由某特定的人或实体发出(即数字签名验证)。在PGP中,这些特性默认是和消息加密同时开启的,而且同样可以被应用到明文的验证。发送者只需使用PGP为消息建立一个数字签名(签名算法采用RSADSA算法英语Digital Signature Algorithm)。具体步骤为:PGP以数据或信息建立一个散列(参见消息摘要),然后使用发送者的私钥利用散列生成数字签名。

信賴網路[编辑]

不管是在加密消息时还是在验证签名时,都需要注意用来发送消息的公钥是否确实属于期望的接收者。简单的从某个位置下载一个公钥是没有保障的。蓄意的或意外冒名顶替是可能的。PGP从它的第一个版本起,总是包含在一个'身份证书'中发布用户公钥,身份证书也是经过加密构造的,所以任何的篡改或意外的变动都可以被迅速的检测出来。但是仅通过建立一个即使最简单的篡改都会被发现证书仍然不够,这样的检测机制只能在证书创建之后用于避免篡改,而不是创建之前。用户也必须用某种形式确保证书中的公钥真正的属于特定的人/实体。从第一个发行版开始,PGP产品就包含一个内部的'审查方案'来协助。一个信任模型被叫做信賴網路(Web of Trust)。一个给定的公钥(如一个用户名到对应其密钥的绑定信息)可以被第三方用户数字签名,来证明某人(一个用户名)和一个密钥关联。可以在这样的签名中包含几个信任级别,只不过许多程序都会读写这个信息,而只有少数会通过信任级别来决定是否信任一个密钥。

信賴網路协议(Trusted-Web Protocol)在1992年的PGP 2.0手册中被菲利普·齐默曼(Philip R. Zimmermann)描述为:

隨著時間過去,你累積到許多人的金鑰,其中有些人你也許願意簽署信賴他們,別人也會簽署一些他們自己信賴的他人金鑰。每個人都逐漸累積到一些他人已簽署信賴的金鑰,然後自己再簽署並散發出去。那麼便能期待,下一個拿到這把金鑰的人在簽署名單上總有一兩個是自己信賴的。這最終能形成所有公鑰的分散式防弊的信賴網路。

信賴網路机制比S/MIME機制的集中管理的公钥基础设施有优势,但是没有被網路普羅大眾普遍采用,一般只在Unix-like的愛好者、開源軟體界、和對隱私特別注意而且有電腦知識的人群之間使用。如何使一般用户容易使用、乐意接收证书然后手动的验证它们的有效性,对于这些潜在的推廣上阻礙还没有找到满意的解决方案。

近來有一些電子郵件服務業者推出結合於網頁郵件介面的簡便PGP操作,使用者就算不創設自己的PGP金鑰也可以寄出PGP加密信,包括寄給不使用PGP的收信人,並以通關密語的問答來使收信人取得閱讀權限。每封信可以設定不同的通關密語,並能設定每個密語的有效期限(對於寄信人而言則是無期限的)。收信人甚至可以在回答正確的通關密語後,以勾選選項的方式輕易回覆PGP加密信,無需自行創設和管理PGP金鑰。[2]對於一般用戶而言這也許足夠安全,但對於資安極度謹慎的人而言,這機制把私鑰也存在寄件人的郵件伺服器上,仍存有私鑰外洩的疑慮,不論是政府依法取得,或是駭客非法入侵後取得。針對非法入侵,只能信賴電子郵件服務業者的安全防護能力;對於合法途徑則只能透過設定及複雜的通關密語來提高破解難度。

历史[编辑]

早期历史[编辑]

菲利普·齐默曼(Philip R. Zimmermann)在1991年创造了第一个版本的PGP,其名称“Pretty Good Privacy”的灵感来自于一个名为“Ralph's Pretty Good Grocery”的杂货店——电台主播Garrison Keillor虚构出来的一个名为Lake Wobegon的城市的一个杂货店。

软件第一个版本包含一个齐默曼自己设计的对称密钥算法,与周六夜现场的一个小品BassOmatic同名。作为一个老牌的反核能活跃分子,齐默曼为了让所有有相似倾向的人们可以安全的使用BBS并且安全存储消息和文件而创造了PGP加密。在非商业用途上是不需要授权的,无须任何费用,并且在所有的发行中附带了完整的源代码

在2001年6月5号发表的一篇标题为"PGP 10周年" [3]的文章中,齐默曼描述了他最初开发PGP时的情景:

1991年的某天,我把PGP的第一版发给我几个朋友,以便上传到互联网。我最先发给Allan Hoeltje,他把这个程序发到了Peacenet,一个针对草根政治组织--特别是“和平运动”--的ISP。当时全球政治活跃分子都能访问到Peacenet。然后我又把它上传给了Kelly Goen,他接着就把源码转发到了一个专门分发源代码的Usenet新闻组。基于我的请求,他把该Usenet权限改为了“仅限美国”。Kelly还把PGP传到了(美国)国内很多BBS上面。我记不太清刚开始在网上贴是6月5号还是6号。

说出来吓人,1991年的时候,我对Usenet新闻组确是知之甚少。我并不知道那个“仅限美国”的标签只是个“建议”作用,基本上对贴子的传播(范围)毫无影响。当时,我以为这个标签会控制这个帖子的传播范围。当时我不知道如何在新闻组发贴,甚至不明白新闻组究竟是什么。

PGP在互联网上传播开来,并且在这个世界上获得了非常多的拥护者。PGP用户和支持者也包括在极权主义国家持不同政见的人们(一些给齐默曼的感人信件被发表了,其中一些在美国国会之前被包括到证据中)。在世界其它地方的自由意志主义支持者(参考齐默曼在各个听政会上发表的证据),以及“自由通讯”激进主义分子,他们称他们自己为加密爱好者,进行宣传和分发。

刑事侦察[编辑]

在发行后不久,PGP加密走出了美国,在1993年二月,齐默尔曼变成了美国政府针对“没有授权的军需品出口”犯罪调查的正式目标。根据美国出口管理法案中的定义,加密系统使用大于40位的密钥将被认为是军需品。PGP从没有使用小于128位的密钥,因此在那时被如此认定。如果被判有罪,这将会是严重的罪行。几年后,对齐默尔曼的调查未经备案即被关闭,也没有提起针对他本人或其他任何人的刑事指控。

齐默曼使用了一种富有想象力的方法来对抗这一规定。他将PGP的全套源代码出版成一本书,[4]MIT出版社英语MIT Press发行,受到了广泛欢迎。任何想要构建自己的PGP版本的人只需买下这本60美元的书,切掉封面,分离页面,然后使用OCR(文字扫描识别)程序进行扫描和文字识别(或者直接输入),生成一系列的源代码文本文档。接下来便可以使用自由分发的GCC来编译程序。PGP就是这样在全世界变得可用。声明的原则很简单:对军需品——枪支、炸药、飞机和软件的出口是被限制的,然而书本出口受到第一修正案(言论自由部分)的保护。这个问题从未再在法庭中检查过。

商業應用[编辑]

PGP一般在企业资源规划(即ERP)软件连接到银行系统时使用,防止信息在传输过程中被删改或盗取,从而减少商业秘密泄露和遭遇诈骗的风险。

OpenPGP[编辑]

参考文献[编辑]

  1. ^ PGP如何運作?. Jedi's BLOG. 2003-05-09 [2016-11-02]. (原始内容存档于2016-03-14) (中文(台灣)‎). 
  2. ^ 例如:TutanotaStartMail
  3. ^ PGP Marks 10th Anniversary. Phil Zimmermann. [2010-08-23]. 
  4. ^ Zimmermann, Philip. PGP Source Code and Internals. MIT Press. 1995. ISBN 0-262-24039-4. 

外部链接:[编辑]