S/MIME 是一般 MIME 类型加密的抽象系统,而 PGP 更适用于电子邮件吗?为什么我要选择一个而不是另一个,或者我可以同时使用两个?
PGP 与 S/MIME 有何不同?
简介: S/MIME 和 PGP 都提供“安全电子邮件”,但使用不同的编码、格式、用户工具和密钥分发模型。
S/MIME建立在MIME和CMS之上。MIME 是一种将任意数据放入电子邮件的标准方式,具有“类型”(数据应该表示的明确指示)和数以百万计的编码规则和其他互操作性细节。CMS 的意思是“加密消息语法”:它是一种用于加密和签名数据的二进制格式。CMS 依赖于X.509 证书用于公钥分发。X.509 旨在支持自上而下的分层 PKI:少数“根证书颁发机构”为许多用户(或可能的中间 CA)颁发(即签名)证书;用户证书包含他的姓名(在电子邮件上下文中,他的电子邮件地址)和他的公钥,并由 CA 签名。想要给 Bob 发送电子邮件的人将使用 Bob 的证书来获取他的公钥(需要对电子邮件进行加密,这样只有 Bob 才能阅读它);验证 Bob 证书上的签名是一种确保绑定是真实的方法,即这确实是 Bob 的公钥,而不是其他人的公钥。
PGP 实际上是OpenPGP标准的实现(历史上,OpenPGP 被定义为一种标准化预先存在的PGP软件所做工作的方法,但现在还有其他实现,特别是免费的开源GnuPG)。OpenPGP 定义了自己的加密方法(功能类似于 CMS)和编码格式,特别是称为“ASCII Armor”的编码层,它允许二进制数据在电子邮件中毫发无损地传输(但您也可以混合使用 MIME 和 OpenPGP)。对于公钥分发,OpenPGP 依赖于Web of Trust:您可以将其视为分散的 PKI,其中每个人都是潜在的 CA。WoT 的安全基础是冗余:您可以信任公钥,因为它已经被很多人签名(这个想法是,如果攻击者“不能长时间欺骗所有人”)。
理论上,在企业环境中,WoT 不能很好地工作;X.509 分层 PKI 更合适,因为它可以匹配所设想公司的决策结构,而 WoT 则依赖于员工制定自己的安全策略决策。
在实践中,虽然大多数电子邮件软件已经实现了 S/MIME(甚至 Outlook Express 已经实现了 S/MIME 大约十年),但证书注册过程很复杂,需要与外部实体进行交互,并且需要一些人工干预。OpenPGP 支持通常需要添加一个插件,但该插件附带了管理密钥所需的一切。Web of Trust 并没有真正使用:人们交换他们的公钥并确保通过另一种媒介进行绑定(例如,通过电话拼出“密钥指纹”——密钥的哈希值)。然后人们保持他们通常与之交换电子邮件的人的公钥副本(在 PGP“密钥环”中),这确保了适当的安全性并且没有麻烦。当我需要与客户交换安全电子邮件时,我会以这种方式使用 PGP。
OpenPGP 也用作签名格式,用于其他非电子邮件任务,例如在某些 Linux 发行版中对软件包进行数字签名(至少 Debian 和 Ubuntu 会这样做)。
所有 IP 都旨在促进网络中数据传输的安全和顺畅。S/MIME 和 PGP 都是用于对 Internet 上的消息进行身份验证和隐私保护的协议。PGP,代表 Pretty Good Privacy,是一种数据加密和解密计算机程序,为 Internet 数据传输提供加密隐私和身份验证。PGP被广泛用于电子数据的签名、加密和解密,以最大限度地解决数据交换的安全问题。S/MIME 协议指的是安全/多用途 Internet 邮件扩展。S/MIME 最近被包括在微软和 Netscape 等知名软件公司的最新版本的网络浏览器中,并且也被世界各地的许多供应商广泛接受。它还被用作公钥加密和 MIME 数据签名的标准。S/MIME 基于 IETF 标准,最常在 RFC 文档中定义。S/MIME 为电子数据传输应用程序提供身份验证、消息完整性和不可否认性以及数据安全服务。
S/MIME 与 PGP 及其前身非常相似。S/MIME 源自消息的 PKCS #7 数据格式和证书的 X.509v3 格式。PGP 加密使用散列、数据压缩、对称密钥加密和公钥加密的串行组合。
在使用 PGP 时,一个用户可以直接向另一个用户提供公钥,或者第二个用户可以从第一个用户那里获得公钥。PGP 不强制要求创建信任的策略,因此每个用户都可以自由决定接收到的密钥的信任长度。使用 S/MIME,发送者或接收者不依赖于预先交换密钥,而是共享一个双方都可以依赖的公共验证者。
从管理的角度来看,S/MIME 被认为优于 PGP,因为它具有强大的功能、通过 X.509 证书服务器支持集中式密钥管理以及广泛的行业支持。从最终用户的角度来看,PGP 更为复杂,因为它需要额外的插件或下载才能运行。S/MIME 协议允许大多数供应商在不使用其他软件的情况下发送和接收加密电子邮件。
S/MIME 很方便,因为电子表格、图形、演示文稿、电影等所有应用程序的安全转换,但 PGP 的起源是为了解决普通电子邮件或文本消息的安全问题。S/MIME 在成本方面也非常实惠。
摘要: S/MIME 和 PGP 协议使用不同的格式进行密钥交换。PGP 取决于每个用户的密钥交换 S/MIME 使用分层验证的验证者进行密钥交换。PGP 是为了解决纯文本消息的安全问题而开发的。但 S/MIME 旨在保护各种附件/数据文件。如今,众所周知,S/MIME 在安全电子行业中占主导地位,因为它被整合到许多商业电子邮件包中。S/MIME 产品比 PGP 产品更容易获得,而且价格更低。
如果您在维基百科条目中“阅读字里行间”,您可能会更接近答案。S/MIME:
是 MIME 数据的公钥加密和签名标准
其中 MIME 是通过原始 SMTP 邮件系统传输的不仅仅是简单的 ASCII 文本的标准。您将 S/MIME 与您购买的(因此由 CA 盖章和认证)或本地生产(因此自签名)的数字证书集成。
至于 PGP,我将其描述为处理加密/签名的外部应用程序,可以透明地与您的电子邮件应用程序集成并提供此类服务。每个用户都会获得他/她的公私钥对并将其用于所有操作。
正如@chris 所指出的,每个操作所依据的信任模型略有不同,但恕我直言,这并不会降低其中一个或另一个的安全性。
实际上,这两种解决方案具有或多或少可互换的密钥。您可以将 PGP 颁发的密钥对与您的邮件应用程序的 S/MIME 一起使用,(我认为)反之亦然。有人请纠正我最后一个...
对我来说,主要的决定因素是成本:
PGP:满足您需求的软件解决方案 + 软件更新成本 + 密钥交换的管理成本
相比:
S/MIME:为本地生成的证书运行证书服务器的管理成本 + 公钥分发的管理成本或从 CA 购买证书的成本 + 续订费用
不要忘记大多数电子邮件客户端已经支持“开箱即用”的 S/MIME,在这种情况下降低了原始成本。
S/MIME 取决于 SSL PKI:您有一个带有您的公钥的 SSL 证书,并且它由证书颁发机构 (CA) 签名的事实“证明”它确实是您的密钥。另一方面,PGP 没有 PKI:您检查一个人的公钥是否真的属于他,方法是让他在出示护照(密钥签名方)或信任他们的密钥时说出来,因为许多其他人已经完成了此检查并签名他的钥匙。
随着 CA 安全性的最新发展,我想说不信任 S/MIME 有一个很大的理由 :-) 虽然 PGP“信任网络”模型不像 S/MIME 那样简单,但它提供了一个如果你努力的话,安全性会更高。
顺便说一句,这两个系统最终都使用了非对称加密,它们在如何建立对公钥的信任方面确实有所不同。