如果使用带有TLS的安全SMTP,是否会加密电子邮件标头?

时间:2017-11-15 00:54:40

标签: mailgun nodemailer

我正在使用nodemailermailgun从网络应用程序发送交易电子邮件。我在创建SMTP transport时设置了secure=true,这意味着:

  

secure - 如果为true,则连接将在连接到服务器时使用TLS。如果为false(默认值),则在服务器支持STARTTLS扩展名时使用TLS。在大多数情况下,如果要连接到端口465,请将此值设置为true。

对于电子邮件地址确认和密码重置电子邮件,我将标记添加到电子邮件标题中X-Email-Token,以便更容易测试(可以从标题中获取值而不是解析电子邮件的正文) 。无法读取邮件正文的邮件服务器是否可以读取此标题字段?

2 个答案:

答案 0 :(得分:3)

  

无法读取邮件正文的邮件服务器是否可以读取此标题字段?

误解警报secure=true选项和/或使用SSL(现已过时)或TLS来保护电子邮件传输只会保护SMTP客户端与来自该特定连接的连接窃听者的SMTP服务器。

  • 接收SMTP服务器不一定是最终收件人的电子邮件服务器。
  • 接收SMTP服务器能够使用TLS将消息转发到另一个没有的SMTP服务器
  • 接收SMTP服务器可能是恶意的(例如,如果有人种植了欺诈性DNS MX记录),并且可以阅读邮件内容并对其中包含的信息做一些恶意。

鉴于此 - TLS不提供任何类型的"真实"电子邮件加密。 SMTP仍然是相当于在没有信封的明信片上写邮件的电子邮件。

通过类比:使用带有SMTP的TLS就像你从一个带有彩色窗户的令人毛骨悚然的面包车从你的家到街上的出站邮箱,但你把一张裸露的明信片放入邮箱 - 这意味着邮政的任何人 - 服务及其他服务仍然可以阅读邮件 - 但是当您将邮件驱动到出站邮箱时,街道中至少没有人可以阅读邮件。

关于标题和正文之间的区别:

MTA(邮件传输代理,即邮件服务器)能够阅读邮件正文邮件标题。在SMTP中,它们之间没有真正的区别,TLS完全不知道所有这些,因为它只关心保护任意字节流。

TLS仅提供传输级安全性,即 MTA主机之间的连接 - 它不会阻止MTA读取电子邮件。为此,您需要正确的邮件加密,例如PGP或S / MIME以及收件人的公钥。

有意见的咆哮:谷歌和其他互联网公司为确保网络安全所付出的努力,令人惊讶的是,没有真正推动保护电子邮件。 Office 365,Gmail,Outlook.com等主要电子邮件提供商至少提供邮件签名并不困难(这可以通过提供邮件签名轻松完成,前提是通过自己的出站SMTP发送电子邮件服务器和用户有双因素auth)。同样的公司也能够为公钥的分发建立良好的PKI。消息签名几乎可以在一夜之间消除来自可信域名的垃圾邮件,所以这对我们的物种来说有些尴尬,我们仍然存在这个问题。

答案 1 :(得分:1)

这是加密的一个不同用例,而不是你想到的。使用SSL / TLS,您和服务器都可以读取整个消息(包括标题),但是您和服务器之间的人不能读取。

如果您希望服务器无法读取该消息,则需要使用类似GPG之类的东西,而且您不能以这种方式加密标头或服务器无法加密传达信息。