Процедура клиента FTPS для подключения к данным

Я разрабатываю клиент FTPS во встроенной системе со стеками LWIP и mbedTLS.

На данный момент я делаю следующее:

  • Получить IP-адрес с помощью DHCP
  • Получить IP-адрес сервера с DNS
  • Запустите TCP-соединение с сервером (управляющее соединение)
  • Уведомление FTP-сервера о том, что я хочу работать с протоколом TLS, с помощью команды AUTH TLS
  • Рукопожатие протокола TLS с сервером
  • Проверьте сертификат x509, который отправляет сервер.
  • Сообщить клиенту, что я хочу работать в пассивном режиме и что я хочу прочитать файл с помощью команды RETR.

Теперь мне нужно открыть соединение для передачи данных, чтобы прочитать мой файл. Итак, что я хотел знать, так это защищено ли соединение для передачи данных так же, как и управляющее соединение? Это означает, что у меня есть сертификат для проверки? Рукопожатие такое же?

Если это не ясно, дайте мне знать, что я вообще не эксперт в этой области.

Спасибо за ваши будущие ответы


person Manu53    schedule 18.07.2018    source источник


Ответы (1)


При явном соединении FTPS после отправки команды AUTH соединение для передачи данных полностью защищено. В зависимости от активного/пассивного соединения соединение для передачи данных открывается через порт 20 (активный) или какой-либо случайный согласованный порт (пассивный).

Насколько я знаю, вам не нужны дополнительные рукопожатия.

Вы можете или не можете настроить, хотите ли вы повторно использовать тот же идентификатор сеанса, созданный при открытии канала управления. Это связано с тем, чтобы сервер знал, что соединение для передачи данных было установлено тем же клиентом, который открыл канал управления. Некоторые серверы требуют этого, некоторые серверы разрешают это, некоторые серверы не поддерживают это.

person Jokkeri    schedule 18.07.2018