SFTP

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

SFTP (англ. Secure File Transfer Protocol) — протокол прикладного уровня передачи файлов, работающий поверх безопасного канала[1]. Предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Протокол разработан группой IETF как расширение к SSH-2, однако SFTP допускает реализацию и с использованием иных протоколов сеансового уровня. Разработчики инженерного совета интернета(IETF) заявляют, что, хотя этот протокол описан в контексте протокола SSH-2, он может использоваться в ряде различных приложений, таких как безопасная передача файлов через Transport Layer Security (TLS) и передача информации в приложениях VPN.

SFTP не следует путать с FTPS и FTP через SSH, это скорее новый протокол, разработанный с нуля. Также SFTP иногда из-за совпадающей аббревиатуры путают с Simple File Transfer Protocol, сильно урезанной версией основной технологии FTP. Аббревиатура SSHFTP (SshFTP) широкого распространения не получила.

Этот протокол предполагает, что он работает по защищенному каналу, например SSH, что сервер уже аутентифицировал клиента и что протоколу доступна информация пользователя.

Возможности[править | править код]

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

SFTP пытается быть более независимым от платформы, чем SCP; с SCP, например, расширение символов подстановки, указанных клиентом, зависит от сервера, тогда как SFTP позволяет избежать этой проблемы. Хотя SCP чаще всего реализуется на платформах Unix, серверы SFTP обычно доступны на большинстве платформ. Передача файлов в SCP происходит быстро по сравнению с протоколом SFTP из-за того, что протокол SFTP является двусторонним. В SFTP передачу файлов можно легко прервать без завершения сеанса, как это делают другие механизмы.

Сам протокол не обеспечивает аутентификацию и безопасность; он ожидает, что базовый протокол обеспечит это. SFTP чаще всего используется в качестве подсистемы реализации протокола SSH версии 2, разработанной той же рабочей группой. Однако возможно запустить его через SSH-1 (и некоторые реализации поддерживают это) или другие потоки данных. Запуск SFTP-сервера через SSH-1 не зависит от платформы, поскольку SSH-1 не поддерживает концепцию подсистем. Клиент SFTP, желающий подключиться к серверу SSH-1, должен знать путь к двоичному файлу SFTP-сервера на стороне сервера.

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

История и развитие[править | править код]

Рабочая группа «Secsh» инженерного совета интернета (IETF), которая отвечала за разработку протокола Secure Shell версии 2 ( RFC 4251[1] Архивная копия от 17 декабря 2020 на Wayback Machine ), также попыталась разработать расширение этого стандарта для функций безопасной передачи файлов. Были созданы интернет-проекты[2] Архивная копия от 5 января 2021 на Wayback Machine, которые последовательно пересматривали протокол в новые версии. Индустрия программного обеспечения начала внедрять различные версии протокола до того, как его проекты[3] Архивная копия от 5 января 2021 на Wayback Machine были стандартизированы. По мере развития разработок объем проекта Secsh File Transfer расширялся и теперь включает доступ к файловой системе и файловому менеджер. В конце концов, разработка застопорилась, поскольку некоторые члены комитета начали рассматривать SFTP как протокол файловой системы, а не просто протокол доступа к файлам или передачи файлов, что выводит его за рамки компетенции рабочей группы.  После семилетнего перерыва в 2013 году была предпринята попытка возобновить работу над SFTP, используя черновик версии 3 в качестве основы.

Версии 0–2[править | править код]

До участия IETF SFTP был проприетарным протоколом SSH Communications Security, разработанным Тату Юлененом при содействии Сами Лехтинена в 1997 году.  Различия между версиями 0–2 и 3 перечислены в разделе 10 draft-ietf-secsh-filexfer-02[4] Архивная копия от 3 декабря 2020 на Wayback Machine .

Версия 3[править | править код]

В начале проекта IETF Secure Shell File Transfer, группа Secsh заявила, что ее цель SSH File Transfer Protocol - обеспечить функциональность безопасной передачи файлов по любому надежному потоку данных и быть стандартным протоколом передачи файлов для использования с протоколом SSH-2.

Черновики 00–02 проекта IETF Internet определяют последовательные пересмотры версии 3 протокола SFTP.

Версия 4[править | править код]

В проектах 03–04 интернет-проекта IETF определяется версия 4 протокола.

Версия 5[править | править код]

Проект 05 проекта Интернета IETF определяет версию 5 протокола.

Версия 6[править | править код]

В черновиках 06–13 Интернет-проекта IETF определены последовательные пересмотры версии 6 протокола.

Программное обеспечение[править | править код]

Клиент SFTP[править | править код]

Термин SFTP может также относиться к программе защищенной передачи файлов[19] Архивная копия от 19 января 2021 на Wayback Machine, консольной программе, которая реализует клиенскую часть этого протокола. Например, программа sftp, поставляемая с OpenSSH, реализует это.

Некоторые реализации SCP поддерживает оба SFTP и SCP протокола для выполнения передачи файлов, в зависимости от того как устроен сервер.

SFTP-сервер[править | править код]

Некоторые реализации FTP-сервера реализуют протокол SFTP; однако, за пределами выделенных файловых серверов, поддержка протокола SFTP обычно обеспечивается реализацией сервера SSH[20] Архивная копия от 19 января 2021 на Wayback Machine , поскольку он использует порт по умолчанию 22 с другими службами SSH. Реализации SFTP могут включать в себя реализацию протокола SSH, чтобы усилить интеграцию деталей SSH-соединения с уже существующими элементами управления доступом к FTP-серверу, где допустим альтернативный сервер SSH или где могут использоваться альтернативные порты. Сервер SSH-2, который поддерживает подсистемы, может использоваться для сохранения единообразной реализации SSH при одновременном улучшении контроля доступа с помощью стороннего программного обеспечения за счет тонкой интеграции с деталями подключения и совместимости с SSH-1.

Прокси-сервер SFTP[править | править код]

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

Есть несколько инструментов, которые реализуют "человек посередине" для SSH, которые также поддерживают управление SFTP. Примерами такого инструмента являются Shell Control Box от Balabit  и CryptoAuditor от SSH Communications Security  (первоначальный разработчик протокола Secure Shell), который обеспечивает такие функции, как регистрация транзакций SFTP и регистрация фактических данных, передаваемых по провод.

См. также[править | править код]

Примечания[править | править код]

  1. Протоколы SFTP и FTPS. Хабр. Дата обращения: 13 марта 2022. Архивировано 13 марта 2022 года.

Ссылки[править | править код]