Открыть сервис

Неявный FTPS

Неявный FTPS — это один из двух основных способов реализации защищённого протокола передачи файлов (FTPS, FTP over SSL/TLS), при котором клиент и сервер устанавливают зашифрованное соединение через выделенный порт (по умолчанию 990 для управления и 989 для данных) до начала передачи каких-либо команд FTP. В отличие от явного FTPS, неявный режим предполагает, что защита канала связи (SSL/TLS) создаётся немедленно, без предварительного согласования с сервером, что делает его более строгим, но менее гибким с точки зрения совместимости.

История и происхождение

Протокол FTP (File Transfer Protocol) был разработан в 1971 году и долгое время не предусматривал шифрования. Передача данных и команд велась в открытом виде, что создавало угрозу перехвата паролей и файлов. С развитием технологий защиты информации (SSL/TLS) в середине 1990-х годов появилась потребность в защите FTP.

Первая попытка стандартизации защищённого FTP была предпринята в 1996 году в проекте RFC 2228 (FTP Security Extensions), который описывал механизмы аутентификации и шифрования, но не определял конкретный способ установки защищённого соединения. В 1997 году компания Netscape Communications предложила концепцию «неявного» FTPS, при котором клиент подключается к серверу через отдельный порт (990), и соединение сразу шифруется. Этот подход был реализован в некоторых коммерческих продуктах (например, в серверах WS_FTP и CuteFTP).

Однако в 2005 году рабочая группа IETF (Internet Engineering Task Force) в RFC 4217 официально стандартизировала явный FTPS (FTPES), при котором клиент сначала устанавливает обычное FTP-соединение (порт 21), а затем с помощью команды AUTH TLS переводит его в защищённый режим. Неявный FTPS не был включён в официальный стандарт, но остался широко распространённым в корпоративных и устаревших системах. Несмотря на отсутствие статуса RFC, многие современные FTPS-серверы поддерживают оба режима для обратной совместимости.

Принцип работы

Установка соединения

При неявном FTPS клиент инициирует TCP-соединение с сервером на порт 990 (для командного канала). Сразу после установки TCP-соединения начинается процедура рукопожатия SSL/TLS. Сервер отправляет свой сертификат, клиент проверяет его (если настроена проверка), и стороны согласовывают параметры шифрования (алгоритмы, ключи). Только после завершения рукопожатия клиент начинает передавать FTP-команды (например, USER, PASS). Весь последующий обмен командами и данными идёт в зашифрованном виде.

Каналы данных

FTPS использует два канала:

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

Сертификаты

Для работы неявного FTPS сервер должен иметь SSL/TLS-сертификат, подписанный доверенным центром сертификации или самоподписанный. Клиент может быть настроен на проверку сертификата (строгая аутентификация) или игнорирование ошибок (для тестовых сред). В корпоративных сетях часто используются сертификаты от внутреннего центра сертификации.

Отличия от явного FTPS

ПараметрНеявный FTPSЯвный FTPS (FTPES)
Порт по умолчанию990 (команды), 989 (данные)21 (команды)
Инициализация шифрованияСразу после TCP-соединенияПосле команды AUTH TLS
Совместимость с брандмауэрамиТребует открытия порта 990Использует стандартный порт 21, но может потребовать дополнительных правил для данных
Поддержка в RFCНе стандартизирован (устаревший)Стандартизирован в RFC 4217
ГибкостьМенее гибкий — всегда шифруетсяБолее гибкий — можно включать/отключать шифрование для отдельных сессий
ИспользованиеЧаще в устаревших или корпоративных системахСовременные реализации, рекомендованные IETF

Безопасность

Неявный FTPS обеспечивает:

Однако существуют ограничения:

Применение

Неявный FTPS применяется в сценариях, где требуется высокая степень защиты и совместимость с устаревшими системами:

Примеры реализации

Серверы

Клиенты

Интересные факты

Критика

Неявный FTPS подвергается критике за:

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →