请一些人向我描述广义的 SMTP 身份验证,请记住以下内容。
当有人问“您使用什么身份验证?”
他们指的是什么?SMTP 协议的哪个变体,例如 ESMTP 和 POP-before-SMTP?
有多少变种?在这些协议中,我正在阅读诸如 Auth Mechanisms (Auth login, Auth plain, CRAM-MD 5) 之类的内容?
有人可以在这里广泛地阐明一下吗?
请一些人向我描述广义的 SMTP 身份验证,请记住以下内容。
当有人问“您使用什么身份验证?”
他们指的是什么?SMTP 协议的哪个变体,例如 ESMTP 和 POP-before-SMTP?
有多少变种?在这些协议中,我正在阅读诸如 Auth Mechanisms (Auth login, Auth plain, CRAM-MD 5) 之类的内容?
有人可以在这里广泛地阐明一下吗?
这里有很多层次,很多方面。有多个相关的 ESMTP 扩展和多个身份验证方案。
您的连接方式会影响哪种身份验证方案有意义。一般来说,如果你有一个加密的连接,明文密码是没有问题的,因为连接级加密负责防止窃听。
如果您没有加密连接,理想情况下您根本不想以任何形式传输密码。有各种涉及挑战-响应机制或会话密码交换的身份验证方案,以便即使在未加密的通道上也能安全地进行身份验证。
POP-before-SMTP 曾经很流行,因为没有足够的标准来验证 SMTP。如今,它应该被认为仅仅是历史性的,尽管可能仍然有一些网站使用这种机制。这个想法是将身份验证推迟到 POP 协议,它无论如何都需要用户身份验证;然后当用户通过 POP 进行身份验证时,SMTP 端口也被允许在有限的时间内来自同一 IP 地址。显然,如果用户没有或不想使用 POP,这很麻烦,而且有些用户在 NAT 上,因此远程服务器看到的 IP 地址不是他们唯一的,但从前,这种安排非常适合自然而然地进入了人们如何仅使用他们自己的 ISP 的 POP 和 SMTP 服务通过拨号 PPP 连接到 Internet。
如今,对于新系统,默认设置应该是按照 RFC 6409 设置单独的加密和认证邮件提交代理端口 587。一些系统通过加密通道在端口 465 上运行传统 SMTP 服务器,但应该考虑到这一点遗留的安排。
进一步查看http://en.wikipedia.org/wiki/SMTP_Authentication和http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol,我在这篇文章中非常依赖这两个文件。