|
|
51CTO旗下网站
|
|
移动端

细说七大邮件安全协议的实现原理

古老的SMTP协议无法保证邮件传输的安全性。对于各种敏感信息的传输,我们需要添加邮件安全协议。本文向您细说七大邮件安全协议。

作者:陈峻编译来源:51CTO|2019-01-25 16:20

【51CTO.com快译】众所周知,由于SMTP以纯文本的形式发送电子邮件,那么任何人都可以通过拦截以获知邮件的内容。面对这样的风险,我们需要通过适当的邮件安全协议,来增强安全性。一般而言,邮件安全协议是一些用来保护电子邮件免受外界干扰的协议架构。由于最早的简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)本身并不内置任何的安全机制,因此我们需要添加其他的安全协议,为邮件的收发保驾护航。

邮件安全

如今市面上有许多能够与SMTP完美配合的安全协议。下面,我们为您总结了七大安全协议,让我们来一起讨论一下它们的原理,以及如何为邮件的传输提供安全保障。

1. 用SSL和TLS保护邮件安全

安全套接字层(Secure Sockets Layer,SSL)和其后续版本--安全传输层协议(Transport Layer Security,TLS)是最常见的电子邮件安全协议,它们可以保证电子邮件在互联网上的安全传输。

SSL和TLS都属于应用层协议。在互联网的环境中,它们可以被用于在两个通信应用程序之间提供基本的保密性与数据完整性。在邮件安全的应用场景中,应用层通过提供一套安全的框架(即:一组规则),给同属于应用层协议的SMTP“加持”,以保护用户的电子邮件在网上的正常通信。

值得注意的是,SSL已于2015年开始被完全弃用了,我们现在常用的应该是它的后继版本--TLS。TLS为程序之间的开户免费送彩金38元通信(当然也包括SMTP协议)提供了额外的隐私保护与安全性。

因此,当您的邮件客户端发送或接收消息时,它使用传输控制协议(Transmission Control Protocol,邮件客户端使用TCP来连接到邮件服务器上),来启动与邮件服务器的“握手”通信。

在握手的过程中,邮件客户端和服务器相互验证安全性和加密设置,为邮件传输做好准备。该握手过程的工作原理如下:

1) 客户端向邮件服务器发送“hello”,其中包括加密的类型、和所兼容的TLS版本。

2) 服务器端使用服务器的TLS数字证书和本身的公钥予以响应。

3) 客户端验证发过来的证书信息。

4) 客户端使用服务器的公钥生成共享密钥(Shared Secret Key,也称为预主密钥Pre-Master Key),并将其发送给服务器。

5) 服务器解密,以获得共享密钥。

6) 客户端和服务器端可以使用共享密钥来加密要传输的数据,在本例中,该数据正是用户的电子邮件。

TLS既重要又普遍,因为绝大多数邮件服务器和客户端,都会使用它来为电子邮件提供基础性的加密。

Opportunistic TLS和Forced TLS

Opportunistic TLS是一种协议命令,它被用于告诉邮件服务器,当前的邮件客户端需要将现有的连接转换为安全的TLS连接。

有时候,您的邮件客户端将会使用纯文本的连接方式,而并非遵守上述提到的握手过程,来创建安全连接。那么Opportunistic TLS将会尝试通过采用TLS握手的方式创建安全隧道。不过,握手过程一旦失败,Opportunistic TLS则会退回到纯文本的连接方式,并只能发送未经加密的电子邮件。

Forced TLS是一种协议的配置,它强制所有的邮件往来都使用安全的TLS标准。也就是说,没有使用该标准的邮件根本无法被发送出去。

2.数字证书

数字证书是一种加密工具,它能够以加密的方式来保护电子邮件。此处的数字证书恰好会在公钥加密的过程中被用到。当然,如果您对公钥加密不太熟悉的话,请参见“人人都应了解的十个加密术语”一文中的第7、8部分。

数字证书会保证用户使用预定义的公共密钥,向对方发送加密后的电子邮件。因此,数字证书就像护照一样,与用户的在线身份相绑定。可见,其主要用途就是为了验证发方身份。

显然,当您拥有某个数字证书时,您的公钥可供任何想给您发送加密邮件的人访问与使用。他们使用您的公钥来加密文档,而您在收到后,可以用自己的私钥对其进行解密。

另外,数字证书不仅限于个人使用。企业、政府组织、电子邮件服务器、甚至任何其他的数字实体,都可以使用数字证书来标识和验证各种在线的身份。

3.用发送方策略框架实现域名欺骗保护

发送方策略框架(Sender Policy Framework,SPF)是一种理论上可以防止域名欺骗的认证协议。它引入了额外的安全检查,使得邮件服务器能够确定邮件是否来自真正的域名(如makeuseof.com),或是有人冒用了该域名。

由于域名一般都可以被用来定位和跟踪所有者,因此为了不被列入黑名单,各种黑客和垃圾邮件的投放者都会定期试着去渗透目标系统、或欺骗目标用户。通过让正规的域名发送各种恶意邮件,他们会让毫无戒心的用户更容易去点击、或打开恶意的附件。

总的说来,发送方策略框架具有三个核心的要素:基本框架、身份验证方法、以及传递信息所专用的邮件头部。

4. DKIM保护邮件安全

域名密钥识别邮件(Domain Keys Identified Mail,DKIM)是一种防篡改的协议,它可以确保您的邮件在传输过程中的安全性。DKIM使用数字签名来检查电子邮件是否由特定的域名所发出。此外,它会检查是否确由该域名授权后发送。在此,我们可以认为它是SPF的一种扩展。

在实际操作中,我们可以轻松地使用DKIM来开发各种针对域名的黑名单和白名单。

5. DMARC

这款重要的电子邮件安全协议叫作:基于域的消息验证、报告和一致性(Domain-Based Message Authentication, Reporting & Conformance,DMARC)。DMARC是一种验证系统,它通过验证SPF和DKIM标准,来防止源自域名的欺诈活动。DMARC虽然能够有效地遏制域名类欺骗,但是其目前的采用率并不高。

DMARC是通过检查“header from”的地址,来提供欺骗防护的。其工作原理如下:

  • 在SPF检查期间,事先定义好了“envelope from”的域名,然后将“header from”域名与“envelope from”域名相比对。
  • 将“header from”域名与DKIM签名所发现的“d= domain name”相比对。

DMARC能够指导邮件服务商如何去处置任何传入的邮件。如果某个电子邮件无法通过SPF的检查、和/或DKIM的身份验证,则会被直接拒绝。DMARC是一种能够让各种规模的域名免受名称欺骗的技术。当然,它也并非是“百发百中”的。

6.用S/MIME实现端到端加密

安全的多功能互联网邮件扩展(Secure/Multipurpose Internet Mail Extensions,S/MIME)是一种支持长距离的端到端加密协议。S/MIME会在发送邮件之前对其进行加密。不过它并不对发件人、收件人或电子邮件头部的其他部分进行加密。当然,也只有对应的收件人才能解密您所发出的邮件。

邮件客户端在实现S/MIME时需要持有相应的数字证书。如今,虽然大多数的邮件客户端都能够支持S/MIME协议,但是您在实施之前最好还是检查一下选定的应用程序和邮件服务提供商。

7.PGP和OpenPGP

优良保密协议(Pretty Good Privacy,PGP)是另一种长距离的端到端加密协议。不过,您更可能会用到的是其对应的开源版本--OpenPGP。

由于是开源的,因此OpenPGP能够得到持续的更新,而且您会在许多应用程序和服务中找到它。与S/MIME一样,第三方(区别于发送方与接收方)仍然可以访问到邮件中诸如:发件人和收件人信息之类的元数据。

您可以参照如下的链接在自己的系统中启用OpenPGP的相关安全设置:

  • Windows:Gpg4Win,请参见https://www.gpg4win.org/
  • macOS:GPGSuite,请参见https://gpgtools.org/
  • Linux:GnuPG,请参见https://www.gnupg.org/
  • Android:OpenKeychain,请参见https://www.openkeychain.org/
  • iOS:请参见http://www.pgpeverywhere.com/

可见,每一种系统和应用在OpenPGP的实现上略有不同。根据其开源的属性,不同的开发人员在不同的平台上通过OpenPGP协议,实现了对于邮件的加密、和对于数据的可靠保护。

原文标题:7 Common Email Security Protocols Explained,作者:Gavin Phillips

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:火凤凰 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +兴博汇注册送38元

Grails权威指南

本书译自Grails项目负责人Graeme Keith Rocher所著的“The Definitive Guide to Grails”一书,着重介绍了如何在Grails框架下使用Groovy语...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网