当我们对 SMTP 协议使用自签名证书时会出现什么问题?

use*_*424 6 smtp ssl-certificate

当我们对SMTP协议使用自签名证书时,即SMTP服务器使用自签名证书时会出现什么问题?

只要用户接受由于自签名证书导致的异常警告(在Thunderbird邮件客户端中就是这种情况),我认为没有问题。

谁能告诉我可能会出现什么其他问题?

Esa*_*nen 6

服务器到服务器的通信没有问题,因为SMTP服务器接受任何证书,甚至回落到未加密的连接。从这个意义上说,MX 服务器没有公钥基础设施。针对降级攻击,有基于 DNS 的命名实体身份验证(DANE)(参见RFC 7672 on SMTP Security via Opportunistic DANE TLS),利用在 DNS 中发布的公钥通过 CA 签名的公钥。自签名证书就可以了。

对于客户端到服务器的通信,拥有受信任的 CA 签名证书至少更方便。如果用户学会接受异常,即使存在中间人攻击,他们也更有可能这样做。此外,例如 Android 邮件客户端只允许要求受信任的证书或接受任何证书,这使得中间人攻击更加容易。这就是我建议使用 CA 签名证书进行客户端通信的原因。

甚至可以为您的 SMTP/IMAP 服务器获得免费的 Let's Encrypt 证书,因为它不仅限于对多个协议使用相同的证书。这几乎消除了对具有公开引用的邮件服务器的自签名证书的任何需要。(Postfix 的示例配置。)

  • @WooShell 考虑到电子邮件通常必须跨越多个 SMTP 跃点才能从 A 到达 B,其中许多可能不安全,甚至不属于发件人或收件人。该规范没有尝试在每一跳上强制加密。忠实地加密和验证电子邮件的唯一方法是在 SMTP 之上处理它,例如使用 SMIME 之类的东西通过 PGP/GPG 或由受信任的 CA 签名的受信任证书来加密/签名消息。 (4认同)
  • “SMTP 服务器接受任何证书”——这听起来像是一个非常不安全的默认设置。 (3认同)

vx3*_*x3r 1

每个自签名证书都存在同样的问题,客户端不能也不能信任服务器。如果您是 smtp 服务器的唯一客户端,您可以添加 CA,甚至不必接受例外。如果我是你们服务器的用户之一,我绝对不会使用它。无法保证我连接到正确的服务器,我会假设它是一个流氓服务器。

PS还是加密部分没问题,流量是加密的