如何减轻电子邮件服务器之间的STARTTLS MITM(降级和伪造的证书)?

我不是在技术上倾向于大多数在这个网站上,所以请记住这一点。 我想了解更多关于电子邮件安全的知识,所以我做了一些研究,一切都按照我的理解,所以请在任何需要的地方纠正。 客户端和服务器(MSA / MTA?)之间的连接可以被encryption,但服务器到服务器之间的encryption(MTA到MTA?)取决于每个支持STARTTLS的服务器。 还可以在客户端和服务器之间实现STARTTLS。

我遇到的STARTTLS唯一的弱点是可以通过encryption或纯文本的方式接受连接,因此在encryption可以降级为纯文本的情况下,MITM攻击可能会变得微不足道。 我也明白证书伪造是一个问题,虽然我不知道这是否与MITM直接相关。

我读到这是一个执行问题,而不是协议本身。 我遇到的一些解决scheme涉及configuration客户端,以通知何时不通过SSL / TLS发生连接或完全丢弃连接。 是否有适当的方法来实施STARTTLS,以便MITM不可能(而不是在发生时作出反应,如果有意义的话)以及在哪里发生? 这些修补程序旨在覆盖服务器到服务器的连接还是只是客户端到服务器? 我还想更多地了解假证书的问题,这个弱点是可能的,以及如何通过实施或其他方式来解决这个问题。

我最感兴趣的是服务器到服务器之间的安全性,因为服务器到客户端似乎不是什么问题,并且已经被大多数ESP所关注。 有没有比STARTTLS更好的select? 正如我所提到的,我对这一切都很陌生,我需要全面的指导,包括如何实现/configuration。 如果没有人能提供这方面的内容,我将非常感谢在学习资源方面正确的方向。

在侧面…我也有兴趣了解实际的攻击/攻击,我想知道上面提到的MITM(服务器到服务器)是否可以针对特定的连接(目标电子邮件地址?)或者更类似于抓住任何可能发生的事情。

以安全的方式传送电子邮件有几个问题,这个问题可能会更好地问在security.stackexchange.com。 邮件可以在不同阶段被拦截:

  • 显式TLS(STARTTLS)和隐式TLS(SMTPS)提供了逐跳而不是端到端的安全性,即每个邮件服务器都可以访问未encryption的邮件。
  • 邮件的下一个跃点是通过DNS查找MXlogging来确定的。 除非使用DNSSec,否则这可能是欺骗性的,而大多数情况并非如此。 如果是伪造的,即使对TLS握手内的证书进行适当的检查也无济于事,因为它会检查与错误MTA的连接是否正确。
  • MX仅定义为使用端口25的服务器,即使用明确的TLS(STARTTLS)。 由于发送MTA无法知道接收MTA是否支持STARTTLS,因此中间人攻击者可以通过修改EHLO命令的回复中支持的扩展名列表来简化连接,或者否认STARTTLS命令。 即使黑客无法直接拦截连接,也可能会在TLS握手开始时注入TCP RST数据包,以致客户端认为使用TLS存在问题,并且会回退为纯文本。 由于TLS握手实际上存在足够的现实问题,客户端可能不会产生怀疑。
  • 而在TLS握手中,通常不会进行适当的validation。 有时根本没有检查证书,有时只有链,但不是如果主机名匹配等等。但是,如果MX已经被欺骗validation可能会对错误的服务器进行:(

这意味着至less要逐跳encryption足够安全,您必须添加不重要的修复程序到多个地方,其中大部分不控制发送MTA。

从评论中得到详细的问题:

1.)STARTTLS通常是在服务器之间执行还是从客户端服务器启动,然后从一跳跳到另一跳?

STARTTLS必须在每跳(MTA)上执行。 只有在接收MTA支持STARTTLS并且发送MTA可以完成时才能使用它。 它不取决于邮件如何被传送到客户端的初始跳转(MTA)。 一般来说,带有SMTP的TLS只encryption跳数之间的连接,所以如果端点之间没有encryption(使用PGP或S / MIME),也可以在每跳上清除读取。

2.)可以通过PGP或S / MIMEencryption的邮件仍然被MX欺骗redirect?

是的,它仍然可以redirect。 但邮件本身仍然只能由真正的收件人解密,即目标密钥的所有者。

3.)DNSSEC是否必须大规模采用才能有用呢?还是通过在自己的电子邮件服务器上configuration,个人可以受益?

每一点帮助,但只有一点。 注意它不仅需要DNSSeclogging,而且转发MTA实际上必须使用DNSSec。 大多数MTA可能只有DNS,并没有意识到,如果他们得到一个欺骗MXlogging。

4.)你是否必须担心隐式tls的TCP RST注入还是显式的?

隐式TLS仅用于从客户端到MTA,即到最初的跳跃。 这是最安全的一步,因为它实际上是在控制客户端,客户端通常使用固定TLS设置的固定SMTP服务器,所以MX欺骗和连接降级没有问题。 如果客户端被configuration为仅在可用时才使用TLS,则攻击也可能对隐式TLS起作用。

5.)如果其他MTA不兼容TLS(即从机会主义切换到必需主机),或者您只能在客户端(如Thunderbird)上执行以下操作,您是否可以configuration服务器/ MTA以断开连接(退回电子邮件)客户端 – 服务器连接?

大多数服务器可以这样configuration,但是大多数服务器必须与各种服务器通信,而且如果服务器支持TLS,他们也不知道。 但是,例如sendmail可以configuration为仅将TLS与特定的服务器进行通信,或者不将TLS与特定的其他服务器进行通信。 所以这个configuration可以被强化为已知好的服务器,但是这个必须手动完成。

6.)如果#5可能并且电子邮件退回,发件人会收到“发送失败”通知?

是的,通常情况就是如此,就像所有的交货错误一样。 但是像大多数其他交付错误只有技术上适合的人可能会理解这些错误信息。

7.)至于没有检查的证书,是否可以通过适当的configuration/实现来解决。 我读到其中一个问题是许多证书是自签名的,大多数MTA默认接受它们,所以它们可以和更多的MTA保持兼容。 你指的是那部分?

这取决于服务器。 叻时间我看了后缀是好的,但sendmail无法正确检查证书的主机名。 是的,自签是一个问题,另一个主要问题是缺less中间证书。 但是,由于邮件传递工作无论如何(因为发件人忽略了证书错误),大多数pipe理员没有意识到错误的configuration或不关心。

8.)最后,说所有不重要的修复都已经到位,而且我明白其他MTA /客户端不在我的控制之下。 这些MITM和注入式攻击可以针对去往和来自我的电子邮件地址的特定连接吗? 在这种情况下,他们没有闯入我的服务器,他们以前没有我的联系人的经验。

再一次,这只是逐跳encryption,并且邮件可以清楚地读取和修改每一跳。 因此,涉及转移的任何跳中的攻击者(通常至less两个,一个发送者和一个收件人站点)可以拦截并修改邮件,并且当然可以限制自己只处理选定的邮件。 唯一的保护是使用PGP或S / MIME的端到端encryption。