S / MIME是用于常规MIME类型加密的抽象系统,而PGP还是用于电子邮件的更多系统?为什么我要选择一个,还是可以同时使用呢?

评论

除了其他答案(即信任模型不同)之外,可能值得注意的是PGP最初(并仍支持)将签名实现在SMTP标头中-而S / MIME将其作为附件实现-具有很多处理网关/网桥的相关性。

#1 楼

简介:S / MIME和PGP都提供“安全电子邮件”,但使用不同的编码,格式,用户工具和密钥分发模型。


S / MIME基于MIME和CMS构建。 MIME是将任意数据放入电子邮件中的一种标准方法,带有“类型”(明确表示数据的含义)以及成千上万的编码规则和其他互操作性详细信息。 CMS的意思是“加密消息语法”:它是用于加密和签名数据的二进制格式。 CMS依靠X.509证书进行公钥分发。 X.509旨在支持自上而下的分层PKI:为许多用户(或可能是中间CA)的少量“根证书颁发机构”颁发的(即签名)证书;用户证书包含其名称(在电子邮件上下文中,其电子邮件地址)和公共密钥,并由CA签名。想要发送电子邮件给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支持通常需要添加一个插件,但是该插件附带了管理密钥所需的全部。信任网并未真正使用:人们交换公钥并确保在另一种媒介上的绑定(例如,通过电话拼写出“密钥指纹”(密钥的哈希值))。然后,人们保留他们通常与之交换电子邮件的人们的公共密钥的副本(在PGP“密钥”中),这确保了适当的安全性并且没有麻烦。当我需要与客户交换安全电子邮件时,可以使用PGP。

OpenPGP还用作其他非电子邮件任务的签名格式,例如某些Linux发行版中的软件包的数字签名(至少Debian和Ubuntu做到了)。

评论


似乎中央存储库中的Maven工件现在也正在使用PGP签名。

–senecaso
2011年10月7日在16:56

“实际上,尽管……,证书注册过程与与外部实体的交互非常复杂,并且需要一些手动干预。”是否有关于此的更多信息?据我了解,如果公司使用自己的(内部)根CA,则无需第三方。我自己也没有尝试过。

–于富兰
18年5月24日在14:06

#2 楼

所有IP的设计目的都是为了促进网络中数据传输的安全顺畅。 S / MIME和PGP都是用于对Internet上的消息进行身份验证和保密的协议。 PGP代表“相当好的隐私”,是一种数据加密和解密计算机程序,为Internet数据传输提供加密的隐私和身份验证。 PGP被广泛用于对电子数据进行签名,加密和解密,以最大程度地提高数据交换的安全性。协议S / MIME指安全/多用途Internet邮件扩展。最近,知名软件公司(如Microsoft和Netscape)将S / MIME包含在最新版本的Web浏览器中,并且已被世界各地的许多供应商广泛接受。它也被作为公钥加密和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被并入许多商业电子邮件程序包中,因此它在安全电子行业中占据着主导地位。 / MIME产品比PGP产品更容易获得且价格更低。

评论


我只想指出,没有什么可以像分发PGP哈希一样阻止您分发S / MIME证书的。只需将它们整体包含或链接到收件人,然后再由收件人信任即可,就像PGP用户必须决定信任一样。

– SilverbackNet
2014年3月15日在9:06

请阐明以下声明:“与PGP相比,S / MIME产品的价格便宜”。似乎存在语法问题,引用的资料将很不错。

–戴夫·贾维斯(Dave Jarvis)
2014年9月3日4:08在

我免费使用PGP。核心软件包GnuPG是免费的,GPG Suite是免费的,并且有许多免费的可公开访问的密钥服务器支持基础结构。作为个人,我们应该支持这些项目,因此它们不必过于依赖政府或公司。

– code_monk
16年1月24日在20:35

可能没有从本文中复制此答案,因为该文章似乎写于2011年。如果是,请引用该文章。

–于富兰
18年1月3日在21:28

#3 楼

如果您在Wikipedia条目上“读经两字”,您可能会更接近答案。 S / MIME:


是MIME数据的公钥加密和签名的标准


其中MIME是传输的标准,比简单原始SMTP邮件系统上的ASCII文本。您将S / MIME与您的数字证书集成在一起,可以购买(因此由CA盖章和认证),也可以将其与本地生产的数字证书(因此具有自签名)。

对于PGP,我将其描述为处理加密/签名的外部应用程序,它可以与您的电子邮件应用程序透明集成并提供此类服务。每个用户都会获取他/她的公钥-私钥对,并将其用于所有操作。

@chris指出,每个操作所基于的信任模型略有不同,但是恕我直言,这并不能使一个或其他不太安全的。

实际上,这两种解决方案具有或多或少的可互换键。您可以在邮件应用程序的S / MIME中使用PGP颁发的密钥对,反之亦然。有人请在最后一个问题上纠正我...

对我而言,主要决定因素是成本:

PGP:满足您需求的软件解决方案+软件更新成本+管理密钥交换的费用

与:

S / MIME:为本地生产的证书运行证书服务器的管理费用+公钥分发的管理费用或购买成本来自CA的证书+续订费用

不要忘记,大多数电子邮件客户端已经“开箱即用”支持S / MIME,在这种情况下可以降低原始成本。

评论


我相信,对于大多数邮件客户来说,PGP有免费开放的软件。仍然适用于Apple Mail(gpgtools)和Thunderbird(enigmail),以及所有平台上的命令行(gnupg)

–克里斯
2011年10月5日,9:39

绝对!只有在我们谈论企业部署时,成本才会出现。

–乔治
2011年10月5日上午10:25

@chris我曾经用过的智能手机邮件客户端都没有可用的PGP插件,但它们都支持S / MIME。

–阿比·贝克特(Abhi Beckert)
13年8月24日在1:26

@chris:与智能手机/平板电脑(iOS)相比,我们的交易量约为50%,因此S / MIME的存在和PGP sorta的缺失可以达成协议。只是将现实与您所有平台的评论进行对比。

– DeepSpace101
13-10-10在15:43

@AbhiBeckert这可能是一个新的开发,但是Android手机可以使用GPL3 APG,它与(例如)K-9邮件集成在一起。

– Sparhawk
2014年8月8日下午6:52

#4 楼

S / MIME取决于SSL PKI:您拥有带有公共密钥的SSL证书,并且由证书颁发机构(CA)签名的事实“证明”了它确实是您的密钥。另一方面,PGP没有PKI:您可以通过让他人在出示护照(密钥签署方)或信任他们的密钥时说出某人的公共密钥是否确实属于他,因为许多其他人都已经进行了此检查并签名他的密钥。

随着CA安全性的最新发展,我想说有一个很大的理由不信任S / MIME :-)虽然PGP“信任网络”模型并非如此作为S / MIME使用,它很简单,如果您付出努力,它可以提供更多的安全性。

两个系统最终都使用非对称加密,实际上,它们在公钥信任度上的确不同已建立。

评论


公私钥对与SSL无关,除了它使用相同的技术。您可以为您的S / MIME需求部署公钥基础结构(PKI),而与任何SSL / TLS应用程序无关

–乔治
2011年10月5日在7:34

您对“有很大理由不信任S / MIME”的说法应予以减轻。确实,存在根证书被盗和证书颁发机构在颁发证书方面做得不好的情况。尽管如此,PKI提供了一个更易于管理的环境,旨在应对这些风险。此外,基础设施使技术的广泛使用成为可能。您将如何与PGP不了解的ppl通信?依靠已知的权威机构,这使得S / MIME成为可能。简而言之,S / MIME确实带来了新的风险,但可以控制风险。

– M'vy
2011年10月5日在7:48

我认为,PKI根本无法控制风险。默认情况下,我的钥匙串中有很多根源,谁说我可以信任中国,美国或爱沙尼亚政府?整个系统坏了,一个泄漏CA意味着所有信任的妥协。我的钥匙串中有175个根,更不用说中级CA了!

–克里斯
2011年10月5日,9:33

而且,如果您看到某些CA显然可以摆脱(DigiNotar)的安全措施级别...让您怀疑,有多少个默默地受到了威胁?

–克里斯
2011-10-5 9:34

@senecaso您在寻找S / MIME密钥服务器吗?

–于富兰
18年1月3日在21:43

#5 楼

几年后,但我认为它应该很重要。在欧洲,由于已定义的扩展名(CAdES,XAdES等),数字签名必须使用CMS。因此,PGP在该领域毫无用处,而S / MIME是唯一的选择。

#6 楼

从2018年开始增加一些观点:失败发生了。它增加了一些有趣的观点,因为起初OpenPGP和S / MIME都容易受到攻击。但是由于所有重要的实现使MDC(修改检测检查)成为必需,因此OpenPGP基本上是固定的。 S / MIME的问题是,没有像MDC这样的问题。因此,它仍然很脆弱。据我了解,这是支持分散式OpenPGP胜过S / MIME的重要论点。

评论


邮件客户端允许活动内容,因此可以实现EFAIL。 PGP比S / MIME受到的影响更大,因为使用PGP加密的部分可能会出现在消息文本中的任何地方,因此允许从未加密的部分注入html或js,而使用S / MIME加密的部分则由MIME边界正确地界定。

–挤出机
19-09-13在8:37