Протокол связи | |
Аббревиатура | СФТП |
---|---|
Цель | Передача файлов |
Разработчик(и) | Рабочая группа IETF SECSH |
Введение | 1997 ( 1997 ) |
На основе | Безопасная оболочка (SSH) |
уровень OSI | Уровень приложений (7) |
Порт(ы) | 22/TCP |
В вычислительной технике протокол передачи файлов SSH , также известный как защищенный протокол передачи файлов ( SFTP ), представляет собой сетевой протокол , который обеспечивает доступ к файлам , передачу файлов и управление файлами через любой надежный поток данных . Он был разработан Инженерной группой Интернета (IETF) как расширение протокола Secure Shell (SSH) версии 2.0 для обеспечения возможностей безопасной передачи файлов и рассматривается как замена протокола передачи файлов (FTP) из-за более высокой безопасности. [1] В проекте Интернета IETF указано , что, хотя этот протокол описан в контексте протокола SSH-2, его можно использовать в ряде различных приложений, таких как защищенная передача файлов через Transport Layer Security (TLS) и передача управляющей информации в приложениях VPN .
Этот протокол предполагает, что он работает по защищенному каналу , например, SSH, что сервер уже аутентифицировал клиента и что идентификационные данные пользователя клиента доступны протоколу.
По сравнению с протоколом SCP , который позволяет только передавать файлы, протокол SFTP позволяет выполнять ряд операций с удаленными файлами, что делает его более похожим на протокол удаленной файловой системы . Дополнительные возможности клиента SFTP включают возобновление прерванных передач, листинг каталогов и удаленное удаление файлов. [2] Также поддерживается все типы файлов UNIX, включая символические ссылки. [3]
SFTP пытается быть более платформонезависимым, чем SCP; например, с SCP расширение подстановочных знаков, указанных клиентом, зависит от сервера, тогда как конструкция SFTP избегает этой проблемы. Хотя SCP чаще всего реализуется на платформах Unix , серверы SFTP обычно доступны на большинстве платформ. В SFTP передача файла может быть легко завершена без завершения сеанса, как это делают другие механизмы.
SFTP — это не FTP, работающий поверх SSH , а скорее новый протокол, разработанный с нуля рабочей группой IETF SECSH . Иногда его путают с Simple File Transfer Protocol . [4]
Сам протокол не обеспечивает аутентификацию и безопасность; он ожидает, что базовый протокол обеспечит это. SFTP чаще всего используется как подсистема реализаций протокола SSH версии 2, разработанная той же рабочей группой. Однако его можно запустить поверх SSH-1 (и некоторые реализации поддерживают это) или других потоков данных. Запуск сервера SFTP поверх SSH-1 не является платформенно-независимым, поскольку SSH-1 не поддерживает концепцию подсистем. Клиент SFTP, желающий подключиться к серверу SSH-1, должен знать путь к двоичному файлу сервера SFTP на стороне сервера.
Загружаемые файлы могут быть связаны с их основными атрибутами, такими как временные метки. Это преимущество по сравнению с обычным протоколом FTP .
Рабочая группа IETF (Internet Engineering Task Force, IETF) «Secsh», которая отвечала за разработку протокола Secure Shell версии 2 (RFC 4251), также попыталась разработать расширение этого стандарта для функциональности безопасной передачи файлов. Были созданы интернет-проекты , которые последовательно пересматривали протокол в новых версиях. [5] Индустрия программного обеспечения начала внедрять различные версии протокола до того, как проекты были стандартизированы. По мере продвижения разработки область действия проекта Secsh File Transfer расширилась, включив в себя доступ к файлам и управление файлами . В конце концов, разработка застопорилась, поскольку некоторые члены комитета начали рассматривать SFTP как протокол файловой системы , а не просто протокол доступа к файлам или передачи файлов , что выводит его за рамки компетенции рабочей группы. [6] После семилетнего перерыва в 2013 году была предпринята попытка возобновить работу над SFTP, используя проект версии 3 в качестве базовой линии. [7]
До привлечения IETF SFTP был собственным протоколом SSH Communications Security , разработанным Тату Юлененом при содействии Сами Лехтинена в 1997 году. [8] Различия между версиями 0–2 и версией 3 перечислены в разделе 10 draft-ietf-secsh-filexfer-02.
В начале проекта IETF Secure Shell File Transfer группа Secsh заявила, что целью протокола передачи файлов SSH является обеспечение безопасной функции передачи файлов через любой надежный поток данных и создание стандартного протокола передачи файлов для использования с протоколом SSH-2.
Черновики 00–02 проекта Интернета IETF определяют последовательные редакции версии 3 протокола SFTP.
Черновики 03–04 проекта IETF Internet Draft определяют версию 4 протокола.
Проект 05 Интернет-проекта IETF определяет версию 5 протокола.
Проекты 06–13 Интернет-проекта IETF определяют последовательные редакции версии 6 протокола.
Протокол SFTP поддерживает общий способ указания расширенных команд, а также метод включения их в согласование версий. Запрошен реестр IANA, но поскольку протокол так и не стал официальным стандартом, такой реестр не был создан. [3]
Термин SFTP может также относиться к Secure file transfer program (программа безопасной передачи файлов) , программе командной строки , которая реализует клиентскую часть этого протокола. Например, программа sftp, поставляемая с OpenSSH, реализует это. [10]
Некоторые реализации программы scp
поддерживают как протоколы SFTP, так и SCP для передачи файлов, в зависимости от того, что поддерживает сервер. Программа scp, поставляемая с OpenSSH 9.0 и выше, по умолчанию использует SFTP. [11]
Некоторые реализации FTP-серверов реализуют протокол SFTP; однако, за пределами выделенных файловых серверов, поддержка протокола SFTP обычно обеспечивается реализацией сервера SSH , поскольку он разделяет порт по умолчанию 22 с другими службами SSH. Реализации SFTP могут включать реализацию протокола SSH для использования интеграции деталей соединения SSH с уже существующими элементами управления доступом FTP-сервера, где допустим альтернативный сервер SSH или где могут использоваться альтернативные порты. Сервер SSH-2, который поддерживает подсистемы, может быть использован для сохранения единообразной реализации SSH при улучшении элементов управления доступом с помощью стороннего программного обеспечения за счет мелкозернистой интеграции с деталями соединения и совместимости с SSH-1.
Трудно контролировать передачи SFTP на устройствах безопасности на периметре сети. Существуют стандартные инструменты для регистрации транзакций FTP , такие как TIS gdev или SUSE FTP proxy, но SFTP зашифрован, что делает традиционные прокси неэффективными для контроля трафика SFTP.
Существуют некоторые инструменты, реализующие man-in-the-middle для SSH, которые также имеют контроль SFTP. Примерами таких инструментов являются Shell Control Box от Balabit [12] и CryptoAuditor от SSH Communications Security [13] (первоначальный разработчик протокола Secure Shell), который предоставляет такие функции, как ведение журнала транзакций SFTP и ведение журнала фактических данных, передаваемых по проводу.