发送命令 STARTTLS 并收到响应后,客户端会发生什么变化

发送命令 STARTTLS 并收到响应后,客户端会发生什么变化

我试图了解 IMAP 中的 STARTTLS 命令如何准确工作以及发送时会发生什么变化。在我作为客户端在登录过程之前发送命令“STARTTLS”并收到响应“确定立即开始 TLS 协商”之后,对于我作为客户来说有什么改变吗?进一步通信,即请求和响应的格式,一些附加信息等?我指的是 API 级别,而不是较低级别。

答案1

STARTLS过程告诉客户端和服务器开始协商加密连接,因此所有进一步的数据都将进行 TLS(SSL,足够接近)加密。这将防止人们嗅探您的流量(例如用户名、密码)。

现在可以配置一些服务器来提供不同的服务;例如,IMAP 服务器可能拒绝允许通过普通连接执行 LOGIN 命令,但允许通过 TLS 加密连接执行。

我们可以看到差异。在此示例中,对于正常的 IMAP 连接,我们显示:

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot ready.

请注意“LOGINDISABLED”部分。

如果我们通过 TLS 连接到同一服务器

* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN

现在我们可以看到“AUTH”可用,因此我可以尝试登录。

IMAP 并不是唯一可以这种方式工作的服务;例如带有普通连接的 SMTP:

250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

并使用 TLS

250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

再次有一个AUTH可用的新命令。

相关内容