FTPS:当客户端处于隐式 TLS 模式时,客户端如何获取服务器的证书?

FTPS:当客户端处于隐式 TLS 模式时,客户端如何获取服务器的证书?

我在一个有关 FTPS 的网站上读到了这篇文章:

当连接到 FTPS 服务器时,FTPS 客户端将首先验证服务器证书的可信度。

当 FTP 客户端配置为使用 FTPS 时隐式TLS,它如何获取 FTP 服务器的证书?有人能一步步说明那里发生了什么吗?

答案1

FTPS 中的“隐式 TLS”的工作方式与 HTTPS 中的 TLS 完全相同,并使用与浏览器与 Web 服务器相同的握手,有关其步骤在多篇文章中进行了说明:

从 Cloudflare 借来的 TLS 1.2 握手图:

TLS 1.2 和 TLS 1.3 的具体步骤有所不同,但两者的共同点在于实际的客户端做的第一件事是发送问候“ClientHello”消息。服务器对该消息的响应包含整个证书(连同所选的密码和其他参数,以及所做的签名经过证书的私钥作为证明)。

因此,验证证书并不是客户端要做的第一件事;它相当接近,但您的网站仍然简化了一些事情。

TLS 中的这些初始消息主要是不是已加密;它们用于使用 Diffie-Hellman 协议协商加密密钥。服务器的证书是不用于加密,而只是将 DH 密钥交换消息“绑定”到服务器的身份并确保它们没有被篡改。

(然而,在 TLS 1.3 中,握手已更改为只需更少的步骤即可完成,并且服务器向客户端发送的“证书”消息实际上是加密的。这意味着客户端只能验证证书已处理 DH 密钥交换。


在“显式 TLS”模式下,实际的 TLS 交换也与隐式模式中使用的相同,只是延迟了。显式模式首先使用以下方式进行连接:明文FTP,然后发出AUTH TLS命令请求切换到 TLS 模式。执行此操作后,客户端发送 TLS ClientHello,一切继续,就像“隐式 TLS”一样。

相关内容