Почему FTP нельзя считать безопасным

Почему FTP нельзя считать безопасным

Как передавать файлы по сети.

FTP (File Transfer Protocol) — прикладной протокол для передачи файлов по сети, с помощью которого можно загружать данные с удаленного сервера и на него. FTP появился в 1971 году, а спецификация, которой мы пользуемся сейчас, — только в 1985. Этот протокол позволяет быстро пересылать файлы. Он был востребованным, когда передача данных была дорогой и лимитированной.

Как устроен FTP

FTP очень прост в настройке и выдаче доступа на скачивание. Вашему браузеру (если он поддерживает FTP) не нужен дополнительный файловый менеджер, чтобы скачать файл. Для обмена информацией по сети достаточно установить FTP-клиент — например, FileZilla.

В отличие от HTTP, FTP может передавать только файлы. Они передаются по клиент-серверному принципу и не содержат дополнительной (служебной) информации. Клиент может подключаться к удаленному серверу, работать с его файловой системой — просматривать, загружать, записывать и перемещать файлы на сервере. Для их адресации используется URL: идентификатор протокола + имя сервера + путь к файлу. Управление протоколом происходит через текстовые команды. Соединение клиента с сервером может проходить в двух режимах:

  • активный (по умолчанию) — сервер сам может установить соединение с клиентом;
  • пассивный — соединение может установить только клиент.

Пример команд FTP

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

Для аутентификации соединения используется имя пользователя и пароль. Проблема в том, что все данные и пароль передаются в незашифрованном виде. При этом пароль теоретически можно забрутфорсить, а данные — перехватить.

Для подключения новых клиентов к одному серверу необходимо новое TCP-соединение через отдельный порт — чем больше клиентов, тем больше портов. То, что разным пользователям можно выставить разные права для доступа и редактирования файлов, не спасает от проблем с безопасностью.

FTPS и SFTP

«Классический» FTP имеет несколько более безопасных реализаций. Основные из них — FTPS (FTP+SSL) и SFTP (SSH File Transfer Protocol). При этом реализациями они могут считаться достаточно условно, так как используют совершенно другие технологические решения.

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

SFTP построен на SSH (Secure Shell). Такая реализация может шифровать и команды, и данные. SFTP использует по умолчанию только один порт — 22. Соединение через один порт защитить проще, чем через несколько, как в классической реализации.

В сравнении с FTPS, SFTP более гибок с точки зрения безопасности, так как поддерживает больше шифров. Еще одно отличие в том, что SFTP использует только один поток, а FTPS — минимум два (управляющий и поток для передачи данных). Поэтому FTPS может быть быстрее SFTP. FTPS сейчас используется только там, где нет поддержки SSH (а значит, и SFTP). Для удобной работы с этими протоколами созданы файловые клиенты, например, SSHFS — приложение для подключения сетевых дисков по SFTP.

Будет ли FTP работать

В 2021 году браузеры начали отказываться от поддержки «классического» FTP. Из Chrome его убрали в январе, а из Firefox — в апреле. Причина в том, что FTP имеет ряд уязвимостей, а также, по данным Google, его используют всего 0,01% пользователей Chrome. Передавать файлы можно и с помощью HTTP. Несмотря на то что при этом передается много ненужной информации, например, заголовки запросов. Интернет стал дешевым и быстрым, появились облачные хранилища, браузеры для доступа к удаленным файлам могут использовать свои плагины и надстройки. От отдельного протокола для передачи данных в рамках WEB можно отказаться.

FTP не исчезнет — он будет работать в корпоративных приложениях и файловых менеджерах. Например, передача больших файлов внутри компании может остаться на FTP. Также удаление FTP из браузеров не затронет FTPS и SFTP.

Ещё статьи
Как системы работают с высокими нагрузками.
Зачем нужны библиотеки для векторизации.