
S/MIME 是一种基于公共互联网标准的长期 established 方法,用于发送加密和签名的电子邮件。我们经常遇到 S/MIME 的需求,特别是来自银行、卫生和金融等受规管行业。
Business in a box.
探索我们的解决方案。
与我们的销售团队交谈
S/MIME 是一种已建立已久的方法,用于基于公共互联网标准发送加密、签名的电子邮件。我们经常遇到对 S/MIME 的需求,特别是在银行、健康和金融等受监管的行业。S/MIME 通常在企业与政府机构间通信时需要,例如。
另一种安全邮件标准,PGP(有趣地命名为“Pretty Good Privacy”),更多用于人对人的安全通讯。如今由于流行的基于网络的电子邮件客户端,如Gmail和Outlook/Hotmail的消费者版本无法显示加密邮件,它已不太受欢迎。这就是许多人对人的隐私通信转移到像WhatsApp(及其他许多)提供原生端到端加密的平台的原因之一。
PGP 和 S/MIME 都需要一个可以使用钥匙和证书的邮件客户端。许多桌面和移动客户端,包括 Apple Mail,Microsoft Outlook 和 Mozilla Thunderbird 符合要求,某些网络客户端的企业版如 Microsoft Office 365 也是如此。设置钥匙需要努力,但许多组织仍认为其值得,尽管最近出现的漏洞披露需要补救措施以阻止加载远程内容。
S/MIME 自 1995 年起存在并经历了数个修订;当前版本由RFC 5751 覆盖。它需要交换公钥,这是一项非琐碎的任务,通常需要 IT 团队或类似资源的支持。这就是商业解决方案(如 SparkPost 合作伙伴 Virtru 和 Echoworkx)介入的地方,使得人对人业务邮件的安全性更容易(更多信息参见我们的 SparkPost/Echoworkx 操作指南)。
话虽如此,让我们更深入探讨一下普通的 S/MIME,并看看我们能用它做些什么。
为什么我应该关心?
简短版本:
隐私
如果您的消息不包含个人、私人或法律重要的信息,那么您可能不需要考虑 S/MIME。现代电子邮件传输系统,如 SparkPost,已经使用“机会性 TLS”来保护从发送服务器到接收服务器的消息传输。
然而,“机会性”部分意味着如果发送服务器无法协商安全连接,我们会以纯文本发送邮件。如果您希望强制消息全程加密,这不合适。您可以查看哪些邮箱提供商声称支持 TLS以及哪些实际上支持。假设接收方的服务器确实支持 TLS,您的消息就会像这样被保护:

TLS 保护邮件服务器之间的对话(这就是它被称为传输层安全性的原因)。MIME(包括 S/MIME)关注的是消息内容及其处理,可被视为“表示层”的一部分。
S/MIME 保护消息内容从消息源到接收邮件客户端的全过程(“端到端”),封装消息主体。

S/MIME 使用接收者的公钥加密消息主体。没有接收者的私钥,无法解码主体——即使是您的 ISP、SparkPost 或接收者的邮件服务器等“中间人”也不行。
私钥从不透露;它由接收者单独持有。加密消息通过互联网传递到接收邮件服务器。当它到达接收者的收件箱时,(通常自动)用他们的私钥解密并变得可读。
需要注意的一些 S/MIME 小注意事项:
S/MIME 加密因消息有效负荷是加密形式的而阻止基于服务器的入站消息扫描恶意软件,因此无法识别。
请注意,消息头(From:, To:, Subject: 等)未加密,因此需要在创建主题内容时考虑到这一点。
签名 – 身份验证
S/MIME 还使接收者能够验证消息发送者的身份是否如他们所说。
发件人的电子邮件附有证书,这有点像安全网站上的证书,可以追溯到签发机构。这里有对签名过程的完整描述here。
我们将采取先签名邮件,然后加密的方法,因此过程如下所示。

不可否认性
对接收者而言,签名的另一个有益之处是来源不可否认性。考虑一种情况,其中电子邮件消息被用于批准合同。收件人在消息中收到来自发件人的合同。如果发件人后来试图说,“不,我从未将该消息发送给您”,那么接收的消息证明事实上使用了发件人的证书。
消息完整性
签名过程为纯源消息创建一个指纹(称为消息摘要),使用发件人的私钥加密该摘要,并将其包含在传递的消息中。接收者的邮件客户端可以判断消息主体是否被篡改。
也许您会说,“我以为 DKIM 给我提供了消息完整性检查!”嗯,是的,DKIM 提供了消息主体和消息头完整性检查 – 防篡改保障。然而,DKIM 失败(或缺失)通常不会导致传入消息被标记为完全无效,...除非DMARC 策略为 `p=reject`(有关 DMARC 的更多信息here)。DKIM 是由 ISP 用于可靠分配域信誉的众多因素中的一个,当然是您消息堆栈的重要组成部分。
如果 S/MIME 消息未通过签名检查,您的邮件客户端会显著地显示:

总结:端到端 (S/MIME) vs 服务器到服务器 (DKIM, DMARC, TLS)
S/MIME 是一种表示层能力,可以在两个电邮终端用户(具有有效证书/密钥)的情况下无需电邮管理员操作的情况下工作。S/MIME 提供加密和签名,并且是个人化的。
S/MIME 绑定到完整的发送地址(本地部分和域部分),因此例如 alice@bigcorp.com 和 bob@bigcorp.com 需要拥有不同的证书。相比之下,DKIM 验证电子邮件是否来自签名域。DKIM 是一个完整的主题;这篇文章是个不错的起点。
DKIM 和 DMARC 由您的电邮管理员设置(在邮件服务器和 DNS 记录上工作)。一旦设置完成,它们就对域而不是单个用户处于活动状态。
这与SparkPost有什么关系?
哪些客户支持 S/MIME?
Consumer Gmail
普通的Gmail网页客户端显示传入邮件的签名(见下文),但它没有设定您的私钥来阅读加密信息。即使通过第三方插件实现这一点,从安全的角度来看,上载您的私钥并不是一个好主意。

我无法让Yahoo! Mail解码消息中的签名。
消费者版本的Microsoft Outlook/Hotmail账户会提醒您有S/MIME签名存在,但不会给您完整的访问权限查看或检查证书。

Hosted business mail
对于拥有托管邮件的组织,Microsoft Office 365和G Suite Enterprise支持S/MIME。
Outlook mail clients
基于客户端的Microsoft Outlook(例如Windows的2010版)有效:

点击图标会给您更多信息:


在Outlook 2010 / Windows中,证书存储通过File / Options / Trust Center / Trust Center Settings / Email Security / Import / Export访问。

Thunderbird – cross-platform and free
如果您在寻找一个免费客户端,Mozilla Thunderbird适合您的需求。它在PC、Mac和Linux上可用,并在所有这些平台上支持S/MIME。以下是Mac上的邮件外观。“密封信封”图标表示邮件已签名,锁状图标表示已加密。

点击信封/锁状图标可查看邮件信息:

Thunderbird有其自身的密钥存储,在每个平台上均以类似方式访问:
Mac通过Preferences / Advanced / Certificates / Manage Certificates
PC:菜单(“汉堡”右上角),Advanced / Certificates / Manage Certificates
Linux:菜单(“汉堡”右上角),Preferences / Advanced / Manage Certificates
Mac Mail
Mac Mail也支持S/MIME。它依靠您的Mac钥匙串来保存您的密钥。

iOS Mail
首先,导入您的电子邮件账户的证书以这种方式,然后您可以查看S/MIME签名和加密的电子邮件。在查看屏幕上,它们的显示没有什么不同。


