对SMTP执行encryption是一个好主意(还)?

我正在运行一个电子邮件服务器,在发送和接收电子邮件时,如果可能的话,这个电子邮件服务器目前已经设置为使用TLS。

当您阅读关于此的文档时,也可以select强制执行TLS,而不接受纯文本传输电子邮件。 它还警告你,某些邮件服务器可能不支持encryption,而强制encryption可能会阻止这些服务器。

但是,这仍然是一个应该考虑的问题,或者可以肯定地说,执行encryption不再是一个问题了吗?

有可能是一些大的提供者已经这样做,或者你现在认为最好的做法是什么?

实际的问题是,不是每个SMTP兼容(RFC是相当古老的)服务器可以说TLS到您的服务器,所以你可能会错过接收一些电子邮件。

与此有关的哲学问题是,它不可能告诉邮件在到达服务器之后(或之前)如何被中继。

这意味着电子邮件可能已经通过中继已经以纯文本传输。

任何认真的保护他们的电子邮件的内容应该实际上encryption身体。 随着encryption途径的发展,其始终似乎已经以纯文本传输。

所以,要回答你在SMTP层面执行encryption的问题可能是毫无意义的,增加了丢失电子邮件的机会,并且没有保证有利的回报。

编辑:这是指为了中继, 而不是提交电子邮件的SMTP强制执行。 在邮件提交中,应该执行encryption,因为SMTP对话(不是实际的电子邮件)可能包含authentication凭证。

没有

RFC 821是33岁。 您发现由不支持STARTTLS的程序转发的电子邮件。 有时候,他们会将电子邮件发送者(例如内部脚本)存在,有时是完整的旧系统,TLS被禁用/未编译,系统没有足够的熵。

我目睹了不久之前出站电子邮件失败,因为接收端configuration为只允许通过TLS的SMTP。 这是发件人的一个问题(它不应该使用那个configuration),但是显示它发生了。

我只会限制来自手动configuration的IP地址的传入消息。 如果您的信用卡处理器无法启动STARTTLS,那么您可能宁愿中止连接(并页面本地pipe理员以便警告他们),而不是接收未encryption的(潜在敏感的)数据。 对于出站消息,如果您之前使用STARTTLS连接到该主机,则可能不希望再次不安全地将其视为潜在的妥协。 您也可能有一个已知的总是使用STARTTLS主机列表,如Gmail或雅虎。

https://www.eff.org/starttls-everywhere项目提供了你可以(应该?)自信地执行starttls使用的smtp服务器列表。

这是一个政策问题。

一般来说,当TLS针对入站和出站执行时,它是为了满足需要(例如,业务伙伴可能会同意encryption其公司之间的所有邮件)达成协议的一组有限的域而完成的。

除非有这样的协议,否则不要打开执行模式。

拒绝来自encryption无能的同行的电子邮件是完全没有意义的,而且可能是有害的。

只要您的服务器设置为与提供它的任何对等方进行机会性encryption,您就可以得到两全其美的效果:可用时进行encryption,当不可用时进行纯文本电子邮件。

只要有服务器不支持encryption,强制它只是意味着他们不能和你说话; 那很糟。 一旦每个人都支持它,机会主义和强制性encryption没有区别。

正如其他人所指出的那样,encryption线上和端到端encryption是两个完全不同的事情,可以解决不同的威胁模型。 不要混淆两者。

不,这是一个非常糟糕的主意。

实际上,事实certificate,如果TLS连接无法协商,则大多数STARTTLS服务器/客户端不会实施任何types的没有StartTLS的重试algorithm。

因此,即使广告STARTTLS作为一个选项已经减less了获得(和发送)电子邮件的机会!

只是search,你会发现许多人不能发送任何电子邮件到由* .protection.outlook.com集群处理的Microsoft Outlook域:

在使用TLS时拒收Microsoft的Sendmail邮件

原因:403 4.7.0 TLS握手失败

总结上述两个post中提出的问题:

  • 可以发送任何邮件给除Outlook处理以外的任何主机,有或没有STARTTLS,
  • 可以发送邮件没有客户端证书,没有STARTTLS到Outlook,
  • 或者使用零长度的客户端证书,
  • 但不包含Microsoft不喜欢的证书,如果收件人的服务器没有通知STARTTLS,则客户端(以及以客户端模式运行的服务器)不会尝试使用STARTTLS重新发送邮件!

同样,当您的主机用作服务器时,如果您决定启用STARTTLS,则类似的情况可能会发生在您的控制之外 – 当客户端服务器发现服务器模式下的服务器提供STARTTLS时,它们尝试协商TLS,但如果协商失败,他们只是等待,并再次重试相同的步骤,不断失败,直到消息必须被反弹回发件人!

而这种情况在STARTTLS的土地上的各个域名都经常发生!

可悲的是,我过去一直是STARTTLS的支持者,现在我被剥夺了公民的权利,被我认为是机会主义encryption的无风险广告所误导。

您不仅需要STARTTLS,而且要确保互操作性,甚至可以谨慎地完全禁用它。

我必须同意使用机会主义TLS的想法。 虽然,我也有一些补充想法。 有些人可能会对这些build议感到不安,但由于我在这里的build议不是轻言细语,没有经过适当的考虑,在作出判断之前,请您从附件中阅读完整的讨论。

使用机会TLS是最好的解决scheme。 作为反对它的一个论据的MITMangular度是红色鲱鱼。 毕竟,正如MH在评论中提到的那样,即使是一个具有TLS连接的“合法的”SMTP也可以是MITM的,最终用户不会更聪明,因为绝大多数的邮件客户端并不打算validation与绝大多数的MTA在那里做TLS正在使用自签名证书(至less如果你不使用DNSSEC和TLSA / DANE)。由于这个和其他因素,甚至可以争论,直到你和世界其他地方已经实现了DANE / TLSA和DNSSEC,即在运行机会式TLS的同时也不会有匿名的diffie-hellman(同时也使用PFS)。 由于至less部分原因,至less部分原因是它仍然会encryption防止偶然观察者的stream量。 在进一步的支持这个configuration(比我更详细的解释),请参阅Viktor Dukhovni在这个职位后的论坛的意见: http ://postfix.1071664.n5.nabble.com/Disabling-Anonymous- 的Diffie-Hellman-td67965.html

至于为什么可以采取Viktor对其他人的build议,那么他写了TLS代码以及Postfix MTA的DNSSEC,TLSA / DANE代码,除此之外,他们已经在两个DNSSEC上编写了IETF草案和TLSA / DANE。 因此,我想说的是,他在这个问题上的言论颇有分量,可能比大多数人的分量还要大。

希望这可以帮助。

从电子邮件营销的angular度来看,如果您知道通过整个交付链实施TLS,那么使用TLS是一种很好的做法。 但是,如果安全性是您的首要要求,那么在发送邮件之前encryption电子邮件是最安全的select(例如使用PGP)。