我正在使用 LWIP 和 mbedTLS 堆栈在嵌入式系统中开发 FTPS 客户端。
现在,我要做的是:
- 通过 DHCP 获取 IP 地址
- 通过DNS获取服务器的IP地址
- 启动到服务器的 TCP 连接(控制连接)
- 通过命令 AUTH TLS 告诉 FTP 服务器我想使用 TLS 协议(protocol)
- TLS 协议(protocol)与服务器的握手
- 验证服务器发送的 x509 证书
- 告诉客户我想在被动模式下工作,我想用命令 RETR 读取文件。
现在,我需要打开一个数据连接来读取我的文件。所以我想知道的是数据连接是否以与控制连接相同的方式受到保护?那意味着我有证书要验证吗?握手是否相同?
如果不清楚,请告诉我我不是这方面的专家。
感谢您以后的回复
最佳答案
在发送 AUTH 命令后的显式 FTPS 连接中,数据连接始终是安全的。根据主动/被动连接,数据连接通过端口 20(主动)或协商的某个随机端口(被动)打开。
据我所知,您不需要任何额外的握手。
如果您想重用在打开控制 channel 时创建的相同 session ID,您可能无法配置。这与服务器知道数据连接已由打开控制 channel 的同一客户端建立有关。有些服务器需要这个,有些服务器允许这个,有些服务器不支持这个。
关于ssl - 数据连接的FTPS客户端程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399301/