ssl - 数据连接的FTPS客户端程序

标签 ssl ftp tls1.2 ftps mbedtls

我正在使用 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/

相关文章:

ubuntu - 如何让 lftp 从命令行使用 SSL/TLS 安全机制?

python - 使用 ftplib 在 Python 中设置 FTP 连接超时

sockets - 如何使用 python 在 ssl/tls 套接字连接中获取域的 IP

java - JMeter 是否支持 TLS v1.1 或 TLS v1.2

java - 信任库是纯 Java 术语吗?

ssl - axtls ssl_client_new 双重释放或损坏

c# - WinSCP .NET 程序集 : Where to define proxy?

c++ - 在 C 或 C++ 中解析 DER x509

ssl - aiohttp如何为http和https公开两个端口80和443?

Xamarin Android : Native TLS, ClientWebSocket,自定义证书颁发机构证书验证失败