Рубріки: Теория

Протоколы SFTP и FTPS: что это такое и как использовать?

Денис Бородовский

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

Содержание:
Что такое FTP?
Для чего нужно шифрование?
Взаимодействие между клиентом и сервером
Что такое FTPS?
Методы обеспечения безопасности сетевого перемещения данных
Что такое SFTP?
FTP, FTPS, SFTP: какой протокол использовать?
Лучшие SFTP и FTPS серверы и клиенты
Заключение

Что такое FTP

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

Управляющий канал обычно работает на порту сервера 21 и отвечает за прием клиентских подключений и обработку обмена простыми командами между FTP-клиентом и сервером. Для передачи файлов и папок FTP использует отдельное соединение, которое называется канал данных.

Проще говоря, FTP работает по двум соединениям параллельно: одно для команд, другое — для отправки и получения данных.

В такой схеме генерируемые интерпретатором указания FTP-протокола юзера передаются на сервер, откуда впоследствии по тому же по управленческому каналу приходит ответ от сервера.

Эти соединения можно установить двумя способами:

  • Активный режим. При активном FTP-соединении клиент открывает свой порт и прослушивает его, а сервер активно к нему подключается. Активные FTP-серверы обычно используют порт 20 в качестве порта данных.
  • Пассивный режим. В пассивном FTP-соединении сервер открывает порт и прослушивает (пассивно), а клиент сам подключается к нему.

Большинство программ FTP-клиентов по умолчанию выбирают пассивный режим подключения, поскольку администраторы серверов предпочитают его в качестве меры безопасности. Кроме того, брандмауэры обычно блокируют подключения инициированные извне.

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

Такой протокол определяет:

  • при каких условиях осуществляется тестирование ошибок;
  • использование метода упаковки данных (если такой есть);
  • как устройство-отправитель уведомляет о конце сообщения;
  • как устройство-адресат уведомляет о получении сообщения.

Для чего нужно шифрование?

Протокол FTP задумывался как средство связи между госпредприятиями и учреждениями военной, промышленной, управленческой и других сфер, и поначалу никто и не задумывался о его безопасности.

Но с развитием интернет-технологий опасность взлома подобных сетей возросла в несколько раз. В такой ситуации нужно было предпринимать ответные меры и обезопасить данные. В мае 1999 года службы безопасности крупных компаний совместно с разработчиками FTP-протокола обнародовали список уязвимостей, выявленных в процессе эксплуатирования и транспортировки информации по сети:

  • bounce attacks (атака скрытого типа);
  • spoof attacks (ограничение доступа);
  • brute force attacks (грубые атаки);
  • packet capture, sniffing (перехват пакетов);
  • port stealing (захват портов).

Из-за отсутствия возможности зашифровать данные в обычном FTP, все пользовательские сведения, включая пароли, личные данные, платежные реквизиты и другая стратегическая информация попадает в зону риска. Как специалисты решили проблемы такого рода расскажем чуть позже, а пока разберемся, как проходит клиент-серверное взаимодействие.

Взаимодействие между клиентом и сервером

Сперва разберемся с определениями.

FTP server — это сервер, использующий рассматриваемый протокол передачи файлов. В отличие от обычных серверов, он обладает следующими особенностями:

  • при его использовании нужна пользовательская аутентификация;
  • все манипуляции с данными проводятся в рамках текущей сессии;
  • есть возможность работы с файловой системой;
  • для каждого соединения используется свой канал.

FTP client — программное обеспечение, позволяющее присоединиться к удаленному серверу по FTP и также удаленно выполнять на нем необходимые действия с элементами файловой системы сервера. Под определение «Клиент» может подойти и интернет-браузер, если ввести в нем нужный адрес (путь к интересующей вас директории или каталогу на удаленном сервере), например:

ftp://user:pass@adress:port/directory/files

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

В FTP-аутентификации используется схема username/password для предоставления доступа. Чтобы отправить серверу имя пользователя, применяется команда USER, для отсылки пароля — команда PASS. Если предоставленные клиентом сведения приняты сервером, он отправляет ему приглашение, тем самым начиная сессию. Не прошедшие аутентификацию пользователи имеют ограниченный доступ (read only) без права использования всех возможностей системы.

У хоста, обеспечивающего FTP-сервис, есть право предоставлять анонимный доступ к FTP-данными. В этом случае при входе в строке с username пользователь прописывает «anonymous». Хотя в этом случае система потребует ввести для входа свой email — по факту, никакой проверки не проводится. Такую функцию поддерживают большинство публичных ftp-хостов в интернете.

Источник: Jino.ru

Что такое FTPS?

Каким бы прекрасным не задумывался FTP в то время, когда его разрабатывали, никто не думал о безопасности. Теперь очевидно, что любая информация, отправленная по FTP, может быть перехвачена и прочитана злоумышленниками.

Обеспокоенность по поводу интернет-безопасности возросла в 1990-е годы по мере роста популярности интернета. И в 1994 году Netscape выпустила оболочку прикладного уровня, известную как Secure Sockets Layer или SSL, для защиты сетевой связи. SSL был внедрен в FTP-протокол, который впоследствии стал называться FTPS.

FTPS — безопасный протокол передачи файлов, использующий технологии SSL/TLS для шифрования своих каналов связи. Проще говоря, FTPS — это FTP с SSL для безопасности.

Как и FTP, FTPS работает по модели «клиент-сервер», используя канал управления и канал данных для обмена командами и данными FTP во время клиент-серверного взаимодействия. Соединения FTPS аутентифицируются с помощью идентификатора пользователя, пароля и сертификата. Для того, чтобы подключиться к серверу FTPS, клиент перед подключением сперва проверяет надежность его сертификата.

SSL (Secure Sockets Layer)

Как мы уже говорили — это протокол, обеспечивающий безопасное соединение между двумя или более устройствами в интернете. Его цель — зашифровать личную информацию пользователей: имена, адреса, номера кредитных карт и другие данные, чтобы защитить их от хакерских атак. До начала 2000-х SSL был ключевой технологией, делающей возможной интернет-торговлю.

Он использует криптографическую систему с двумя ключами для шифрования данных: открытый ключ, доступный для всех, и частный или секретный ключ, известный только получателю сообщения. Большинство веб-браузеров поддерживают Secure Sockets Layer и его преемника TSL, также многие веб-сайты используют этот протокол для получения конфиденциальной информации от пользователей. По соглашению, URL-адреса, для которых требуется SSL-соединение, начинаются с HTTPS вместо HTTP.

В основе SSL лежит метод трехэтапного рукопожатия (handshake), накладываемого поверх TCP-соединения:

  1. При попытке браузера подключиться к нужному веб-сайту, он сперва запрашивает у веб-сервера идентификацию, побуждая последнего отправить браузеру копию сертификата.
  2. Браузер проверяет, является ли сертификат надежным, и если это так, отправляет проверочное сообщение на веб-сервер.
  3. Затем сервер отвечает браузеру подтверждением с цифровой подписью, чтобы начать зашифрованный сеанс. Это позволяет совместно использовать зашифрованные данные и защитить каналы связи между браузером и сервером. Эти действия подтверждаются меткой HTTPS вместо HTTP.

TSL (Transport Layer Security)

В 2014 году версия SSL 3.0 была признана уязвимой из-за атак типа POODLE (Padding Oracle On Downgraded Legacy Encryption). Этот тип вредоносной кибератаки обошел защиту и позволил злоумышленникам украсть защищенные файлы cookie и содержимое заголовков авторизации из http-соединений. Сегодня на смену SSL 3.0 пришла новая технология — Transport Layer Security (TLS).

TLS усовершенствовал существующий функционал SSL, устранив определенные уязвимости безопасности для создания более надежного протокола передачи данных. Сертификаты TLS иногда ошибочно называют сертификатами SSL, но этот протокол, хоть еще и используется в сети, но встречается все реже, и официально объявлен устаревшим с 2015 года.

Первая версия TLS 1.0 была представлена еще ​​в 1991 году, а более поздняя модернизированная версия (TLS 1.3) используется с 2018 года. И SSL, и TLS, разработаны для шифрования данных, но между ними существует ряд ключевых отличий. Набор шифров Fortezza, поддерживаемый в SSL, в TLS уже не применяется. Вместо этого TLS использует новые комплекты шифров, упрощающие процесс шифрования (такие как IDEA, RC4, AES и др). Кроме того, протоколом записи для TLS является более новый хэш-код аутентификации сообщений — HMAC, вместо MAC используемого в SSL.

Безопасность данных

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

Безопасность данных — это практика защиты конфиденциальной цифровой информации от нежелательного доступа в сети. Комплексная стратегия включает три основных принципа: конфиденциальность, целостность и доступность.

Необходимо защитить свои данные, предоставив доступ к ним только проверенным лицам (сотрудникам или клиентам). Шифрование и грамотная организация предоставления прав доступа — два распространенных метода, помогающих сохранить конфиденциальность.

Методы обеспечения безопасности сетевого перемещения данных. Явные и неявные

При использовании явного метода в FTP, клиент явно запрашивает безопасную передачу данных с сервера и после этого утверждает необходимый метод шифрования. При этом сервер имеет возможность принудительно закрыть незащищенное соединение. Этот стандарт указывает, что безопасное соединение должен инициировать клиент. Когда защищенные соединения не поддерживаются сервером, клиенту будет возвращен код ошибки 504. Также ему может прийти информация о том, что сервер поддерживает протоколы защиты данных с помощью команды FEAT. Но сервер не обязан разглашать сведения об уровне безопасности, которую он поддерживает.

При использовании неявного метода безопасности FTPS — динамическое соглашение между клиентом и сервером не поддерживается. После подключения к TLS-серверу, клиент отправляет ему сообщение «ClientHello», если оно не доходит до адресата — сервер закрывает соединение. Этот метод признан устаревшим

Что такое SFTP?

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

При его использовании данные фактически зашифровываются с помощью SSH во время передачи, и не отправляются в виде открытого текста. SFTP аутентифицирует как пользователя, так и сервер, используя для этого порт 22. Протокол не использует отдельные каналы для управления и отправки данных. И информация, и команды передаются в специально отформатированных пакетах через одно соединение. Это ускоряет передачу файлов и данных по сети.

SFTP, по умолчанию, использует порт 22 и встроен в любую машину Linux. Он имеет простую аутентификацию при помощи идентификатора пользователя и пароля, либо, как вариант, с использованием SSH-ключей.

SSH

Secure Socket Shell — это популярный протокол, необходимый для получения доступа к другим компьютерам через незащищенную сеть, как обычным пользователям, так и системным администраторам.
SSH обеспечивает надежную аутентификацию, с помощью которой пользователь может удаленно подключаться к любому устройству или приложению, удаленно выполнять команды, а также перемещать файлы, используя SFTP.

Использовать протокол SSH мы можем для:

  • обеспечения безопасного доступа для пользователей и автоматизированных процессов;
  • интерактивной и автоматической передачи файлов;
  • для работы с удаленными командами;
  • управления сетевой инфраструктурой и другими важными компонентами системы.

Протокол SSH работает в архитектуре «клиент-сервер». Клиент SSH управляет процессом установки соединения и использует инфраструктуру открытого ключа для проверки подлинности сервера SSH. После настройки такой протокол применяет сильное симметричное шифрование и алгоритм хеширования для обеспечения конфиденциальности и целостности передаваемых данных.

Обычным юзерам, вроде нас с вами, аутентификация с открытым ключом, в основном, нужна для защиты личной информации, а системные администраторы используют такой подход для единого входа. Есть два ключа — открытый и закрытый ключ. Открытый ключ настроен специально для ssh-сервера, а закрытый предоставляет доступ к этому серверу и возможность на нем аутентифицироваться. Закрытые ключи также называются ключами SSH.

Аутентификация на основе ключа SSH используется для автоматизации безопасности (автоматизированная безопасная передача файлов, автоматизирование системы и управление массовой конфигурацией).

SSH обеспечивает надежное шифрование передаваемых сообщений, а также защиту целостности от любых видов атак. После установления соединения между SSH-клиентом и SSH-сервером, данные шифруются с использованием параметров, которыми устройства обменивались во время настройки. Данные, передаваемые между клиентом и сервером, шифруются с использованием стандартных алгоритмов надежного шифрования (таких как AES), а также хешируются для обеспечения безопасности.

FTP, FTPS, SFTP: какой протокол использовать?

При любой передаче данных по сети в первую очередь необходимо подумать об их безопасности. FTP-протокол работает с устаревшими устройствами, которые не поддерживают какое-либо шифрование, и поэтому он не подходит для использования в современных условиях.
Оставшиеся варианты (FTPS и SFTP) безопасны, с присутствующей опцией строгой аутентификации, но это также два совершенно разных протокола. Их ключевой отличительной чертой является основной транспортный механизм.

Вы не оставите злоумышленникам шансов, используя SFTP, поскольку это наиболее безопасный и совместимый метод передачи файлов на сегодня. Ведь как и в FTP, в технологии FTPS все же есть возможность перехвата имен пользователей (и их паролей) для аутентификации (которые наглухо зашифрованные в SFTP).

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

Лучшие SFTP- и FTPS-серверы и клиенты для Windows, Linux и Mac

Вот наш список лучших серверных инструментов SFTP и FTPS:

  • Files.com. Облачная файловая платформа со встроенным FTP- и SFTP-сервером, предназначенная для передачи данных, удаленной работы с файлами, архивирования и резервного копирования. Идеально подходит для совместной работы над файлами и масштабируется в соответствии с вашими потребностями.
  • SolarWinds SFTP/SCP. Лучший выбор для передачи файлов SFTP/SCP, размером до 4 ГБ. Используйте этот инструмент Windows для работы с файловой системой, управления учетными записями пользователей и многого другого.
  • SolarWinds Serv-U. Защищенный управляемый FTP-сервер, поддерживающий SFTP, FTPS и FTP, перетаскивание файлов и многое другое для Windows и Linux.
  • FTP FileZilla Server. Сервер для Windows, Linux и macOS, поддерживающий передачу файлов FTP и FTPS.
  • IIS FTPS Server. FTP-сервер, включенный в Internet Information Services (IIS).
  • Syncplify.me. HIPAA-совместимый сервер SFTP и FTPS, поддерживающий FTP, SFTP и FTPS.
  • CrushFTP. FTP-сервер для Windows с поддержкой SFTP, FTPS, SCP и HTTPS.
  • Couchdrop SFTP. Облачная служба, включающая в себя методологии передачи файлов SFTP, SCP, Rsync, FTP и WebDAV для подключения к облачным системам хранения.
  • Rebex Tiny SFTP. Сервер на базе Windows, поддерживающий SFTP. Подходит для базового обмена файлами.
  • OpenSSH. Коллекция инструментов командной строки для Linux, поставляемая с SFTP-сервером, включающая утилиты как FTP, так и SSH.

Сделав обзор для FTP-серверов, было бы неправильным не упомянуть в нашей статье несколько неплохих FTP-клиентов:

1. WinSCP. Самый мощный FTP-клиент, специально разработанный для Windows, имеет довольно сложный интерфейс. Но при желании, всему можно научиться. WinSCP лучше всего подходит для опытных пользователей. Грамотно сложенный функционал программы обладает всеми необходимыми, для эффективного FTP-клиента, средствами. Поддерживает SSH, SFTP и FTP.
2. FileZilla. Бесплатный FTP-клиент, работающий на трех основных платформах: Windows, Mac и Linux. Слывет одним из самых удобных в своей линейке программных решений для сети.
3. Serv-U FTP. Программное обеспечение Serv-U от SolarWinds разработано для облегчения передачи файлов. Используя этот FTP-клиент, вы можете обмениваться конфиденциальными файлами, используя защищенный протокол FTPS по сетям IPv4 и IPv6. Также, вы сможете просматривать, выгружать и скачивать файлы с помощью интуитивно понятных мобильных и веб-интерфейсов. Клиент в основном подходит для малого бизнеса.
4. MobaXTerm. Настольное решение, предоставляющее предприятиям различные сетевые инструменты (FTP, VNC, RDP и команды Unix для управления заданиями) в удаленной Windows. Он включает в себя совместное использование сеансов, управление паролями, мониторинг сети и передачу файлов. Также имеет встроенный графический инструмент, позволяющий перетаскивать файлы напрямую, используя соединение SSH.
5. Free FTP. Есть как платная, так и бесплатная версия этого ПО. Чтобы избежать путаницы, премиум-версия называется Direct FTP. Имеет удобный интерфейс, полный набор инструментов для простой организации файлов и быстрого редактирования.
6. Cyberduck. Если вам нужен удобный бесплатный FTP-клиент, понятный как продвинутым пользователям, так и новичку — эта программа для вас. В отличие от других клиентов, он совместим как с Mac, так и с Windows, с возможностью выбора любого редактора кода и несложным функционалом редактирования файловой системы.
7. Transmit 5. Популярный FTP-клиент для пользователей Mac, часто используемый веб-разработчиками. Имеет множество неплохих функций, неплохой редактор кода и идеально интегрируется с вашим устройством. Поддерживает различные типы подключений, включая SFTP, SSH, FTPS и FTP.
8. Forklift 3. Еще один эффективный FTP-клиент для Mac, способный без проблем передавать файлы между несколькими серверами и сетями. Он содержит множество полезных функций и поддерживает несколько языков, включая китайский, английский, французский и другие.
9. WS_FTP Professional. Коммерческий FTP-клиент для Windows, предоставляющий безопасность корпоративного уровня с 256-битным AES, SSH, шифрованием файлов OpenPGP и проверенной криптографией FIPS 140-2 для передачи. Имеет функцию расширенного поиска файлов, высокую скорость и интуитивно-понятный механизм перетаскивания функциональных блоков.

Заключение

В этой статье мы разобрались, что:

  • Разработанный еще в 70-е годы протокол передачи данных FTP признан устаревшим и небезопасным (из-за отсутствия возможности шифрования данных).
  • Шифрование передаваемых данных необходимо для защиты от злоумышленников.
  • FTPS — безопасный протокол передачи файлов, использующий технологии SSL/TLS для шифрования своих каналов.
  • SFTP — протокол, осуществляющий передачу файлов при помощи технологии SSH.
    Это наиболее безопасный метод передачи файлов в сети, применяемый большинством организаций по всему миру.

В заключении несколько полезных видеороликов по теме:

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023