自1991年被创建以来,市面上已经出现了许多版本的PGP软件。1997年,Phil Zimmerman向互联网工程任务组(IETF)提出了一项关于创建开源PGP标准的建议。该建议马上被接受,随后开创了OpenPGP协议,该协议定义了加密密钥和消息的标准格式。
虽然PGP最初仅用于保护电子邮件和相关附件,现在已应用于各大领域,包括数字签名,磁盘加密完整性校验和网络防护。
PGP软件版权最初由PGP公司所拥有,该公司后来被Network Associates收购。2010年,赛门铁克公司又以3亿美元收购了PGP,该商标一直被用于其OpenPGP兼容产品。
工作原理
在对内容进行加密的基本过程中,明文(可以被清楚理解的数据)被转换成密文(不可读的数据)。但在进行加密之前,大多数PGP系统都会执行数据压缩。PGP软件在传输纯文本文件之前对其进行压缩,可以节省磁盘空间和传输时间,同时还能够提高安全性。
在文件被压缩之后,接下来开始进行实际的加密。在此阶段,被压缩的明文文件使用一次性密钥进行加密,称之为会话密钥。该密钥是使用对称加密随机生成的,并且每次PGP通信会话都具有唯一的会话密钥。
接下来,使用非对称加密对会话密钥(1)本身进行加密:接收者(Bob)将其公钥(2)提供给消息的发送者(Alice),以便她可以加密会话密钥。无论二者所处的安全条件如何,该步骤都能够让Alice通过互联网安全地与Bob共享会话密钥。
会话密钥的非对称加密通常使用RSA算法来完成。许多其他的加密系统都使用RSA进行加密,包括被用于保护大多数互联网应用的传输层安全(TLS)协议。
Bob在接收到消息的密文和加密的会话密钥后,他就可以使用他的私钥(3)来解密会话密钥,然后再使用解密后的会话密钥解密密文,从而获得明文。
除了能够进行加密和解密的基本功能外,PGP还支持数字签名,它至少具有以下三个功能:
身份验证:Bob可以验证邮件的发件人是否的确为Alice。
完整性:Bob可以确定消息未被更改。
不可否认性:在对邮件进行数字签名后,Alice不能够否认她没有发送邮件。
使用案例
PGP最常见的用途之一就是保护电子邮件。受PGP保护的电子邮件将成为一串不可读的字符(密文),并且只能使用相应的解密密钥对其解密。工作机制上,与对文本消息进行加密是相同的,并且还有一些软件应用支持在其他应用程序之上实现PGP功能,从而有效地在不可靠的安全通信中添加加密功能。
虽然PGP主要被用于保护互联网通信,但它也可以应用于加密各类设备。在本文中,PGP可用于对计算机或移动设备的磁盘分区进行加密。通过加密硬盘,每次系统启动时都要求用户提供密码。
优缺点
OpenPGP协议能够用于标准化的环境中,PGP解决方案现在可由多家公司和组织提供技术支持。但是,所有符合OpenPGP标准的PGP程序都是相互兼容的。这意味着在一个程序中生成的文件和密钥可以在另一个程序中使用。
缺点方面,对于PGP系统的使用和理解并非易事,尤其是对于技术知识了解很少的用户。而且,公共密钥的长度也被认为是非常不便于用户使用的。
2018年,电子前沿基金会(EFF)发布了名为EFAIL的关键性漏洞。 EFAIL使攻击者可以利用加密电子邮件中的HTML连接来访问纯文本格式的邮件。
然而,自20世纪90年代末以来,PFA社区已经意识到EFAIL所描述的一系列问题,事实上,这些漏洞的产生与电子邮件客户端的实现方式有关,而与PGP本身无关。因此,尽管产生了令人震惊和误导性的爆炸性新闻,但PGP加密功能并没有被破解,它仍然保持着高度的安全性。
总结思想
自1991年被开发以来,PGP一直被用作数据保护的重要工具,现在也广泛应用于各个领域,为多数通信系统和数字服务提供商提供隐私,安全和认证保护。
虽然2018年EFAIL漏洞的发现引发了对协议安全性的重大担忧,但其核心技术仍然是健壮且加密的。值得注意的是,不同的PGP实现方式也能够提供不同级别的安全性。