【问题标题】:SMTP ports - SSL vs non-SSLSMTP 端口 - SSL 与非 SSL
【发布时间】:2015-08-26 02:30:13
【问题描述】:

今天 SMTP.com 的支持代表告诉我,无论我们是通过 SSL 还是非 SSL 连接,数据都是安全的,就像通过 SSL 一样。我不是天才,但我也不是一个彻头彻尾的白痴。而且我有一种强烈的感觉,这家伙只是在给我提供虚假信息。

有人可以为我澄清一下,如果我使用 php 邮件功能或 phpmailer 类发送电子邮件,并且我通过端口 25 使用不安全的连接进行连接,黑客是否有机会访问该信息恶意目的?

如果我错了,而 SMTP.com 是正确的,那么为什么还有通过 SSL 与非 SSL 发送的选项?无论哪种方式都真正安全?

作为参考,以下是对话记录:

Stan L:您好,感谢您与支持团队联系。有什么可以帮助你的吗?

你:嗨,Stan,我注意到今天早上通过我们的 SMTP.com 帐户发送的电子邮件在大约一个小时前停止了。来发现是因为我们通过 SSL 端口 465 提交到主机 smtp.com。

你:检查了设置,发现它应该是retail.smtp.com,而且加密由于某种原因被关闭了。

你:我的问题是,为什么它一直到现在?

您:其次,我们如何确保通过 smtp.com 发送的每封邮件都是加密的?

Stan L:因为有时它适用于加密和错误的端口,但可能会发生意外错误。您不需要使用加密,因为您在连接到我们的服务器时使用 SASL 身份验证作为保护。所以请使用这些端口:25. 2525. 25025. 80

你:好的,斯坦。谢谢。不过问题...

你:在技术方面我不是天才,但据我了解,如果我们希望黑客无法访问数据,则应该通过 SSL。

你:?

Stan L:你说的不可访问是什么意思? 通过我们的服务器发送的所有数据都受到保护,任何人都无法从外部访问它。

你:好的,太棒了。问题。

你:如果是这样,那为什么 SSL 会成为一种选择?

你:为什么 SSL via SMTP 甚至可以作为 phpmail 中的设置使用?

Stan L:因为有时候在几个老软件里都关不掉

你:好的,我会在 StackOverflow 上发布这个对话,看看开发人员是否还有其他 cmets。我不明白为什么会这样。

Stan L:好的,当然

Stan L:您能否提供您的客户 ID 或登录信息?

你:但可以肯定的是,你是在 100% 肯定地告诉我,如果我们通过端口 25,retail.smtp.com 连接,那么信息被黑客窃取的可能性为零?

Stan L:是的,所有数据都由我们的系统保护。

Stan L:能否请您提供您的客户 ID 或登录信息?

你:谢谢。

【问题讨论】:

  • 可能想看看这个其他问题:stackoverflow.com/questions/11347304/…
  • 好吧,那就清楚了! SMTP.com:1,我:0。待续。
  • @FurryWombat 比这更微妙一些。我会说用户名受 SASL 身份验证保护,但消息内容不一定。我不确定那个特定的 SASL 机制是否会首先提供服务器身份验证。也就是说,如果您可以通过 SMTPS(端口 465)使用 SSL/TLS,那么您可能可以通过 SMTP+STARTTLS(在端口 25 或其他可用端口上)使用 SSL/TLS。
  • 有趣...我将通过 SMTP.com 进一步探索这一点,并报告调查结果。
  • 有人告诉我,由于 StartTLS,信息是安全的。而且,无论我们用于连接 SMTP.com 的端口是什么,我们的服务器和 SMTP.com 之间以及 SMTP.com 和收件人之间的数据都是加密的。这些信息有没有可能是假的?

标签: security ssl phpmailer


【解决方案1】:

正如他们所说,也许可以使用 SASL 加密所有流量,但区别是学术性的,因为 PHPMailer 不支持 SASL 进行身份验证或任何后续流量,但支持 SSL 和 TLS。因此,如果您使用 PHPMailer 发送给他们,而您没有使用 SSL 或 TLS,那么您的流量没有被加密。众所周知,SMTPS(端口 465 上的显式 SSL)在 1998 年被弃用,因此 SMTP+STARTTLS 是一种选择,它可以在任何端口上工作,尽管通常使用 587 提交。

AFAIK,STARTTLS 与 SASL 无关。与 SMTPS 相比,SMTP+STARTTLS 的一个优势是它可以与同一端口上的非加密流量共存,因此您可以连接到不安全的端口(例如 25),然后发送 STARTTLS 命令,从那时起它已加密,您通常可以安全地使用 AUTH PLAIN 登录等内容。

如果您的本地邮件服务器配置为适当地中继、身份验证和连接到 smtp.com 服务器,则在使用 mail() 函数时可能间接使用 SASL,即它不是 PHP 的东西。

【讨论】:

  • 如果你不调用 SMTPS "SSL" 和 SMTP+STARTTLS "TLS" 可能会更好。这是一个常见的错误(一些电子邮件客户端会重复,包括 Outlook),但实际上您可以将 SSL 或 TLS 与任何一种模式一起使用(请参阅longer explanation)。
  • 所以本质上,如果我使用 PHPMailer 或 PHP mail() 函数,我应该使用 TLS 加密设置连接到端口 587,并广泛假设服务器可能会或可能不会正确配置有效的 SASL?
  • 端口号无关紧要(SMTP.com 似乎使用了一些奇数),但如果您在 PHPMailer 中设置$mail->SMTPDebug = 2;,您将看到 SMTP 对话以及它是否使用 STARTTLS。您应该会看到一系列EHLO -> STARTTLS -> EHLO -> AUTH SMTP 命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2014-11-24
相关资源
最近更新 更多