stringtranslate.com

Протокол передачи файлов SSH

В вычислительной технике протокол передачи файлов 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]

Версии 0–2

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

Версия 3

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

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

Версия 4

Черновики 03–04 проекта IETF Internet Draft определяют версию 4 протокола.

Версия 5

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

Версия 6

Проекты 06–13 Интернет-проекта IETF определяют последовательные редакции версии 6 протокола.

Расширения

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

Программное обеспечение

SFTP-клиент

Термин SFTP может также относиться к Secure file transfer program (программа безопасной передачи файлов) , программе командной строки , которая реализует клиентскую часть этого протокола. Например, программа sftp, поставляемая с OpenSSH, реализует это. [10]

Некоторые реализации программы scp поддерживают как протоколы SFTP, так и SCP для передачи файлов, в зависимости от того, что поддерживает сервер. Программа scp, поставляемая с OpenSSH 9.0 и выше, по умолчанию использует SFTP. [11]

SFTP-сервер

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

SFTP-прокси

Трудно контролировать передачи 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 и ведение журнала фактических данных, передаваемых по проводу.

Смотрите также

Ссылки

  1. ^ «Что, как и почему SFTP».
  2. ^ Виктория, Джейнор; Виктория, Беверли (2001), SSH, The Secure Shell: The Definitive Guide , Кембридж: O'Reilly, ISBN 0-596-00011-1
  3. ^ abc Гэлбрейт, Джозеф; Сааренмаа, Оскари (18 июля 2006 г.). «Протокол передачи файлов SSH». Internet Engineering Task Force.
  4. ^ Барретт, Дэниел; Сильверман, Ричард Э. (2001), SSH, Secure Shell: The Definitive Guide , Кембридж: O'Reilly, ISBN 0-596-00011-1
  5. ^ "Страницы состояния Secsh". Tools.ietf.org . Получено 20.08.2012 .
  6. ^ "ietf.secsh — Официальная консультация перед закрытием рабочей группы secsh — msg#00010 — Недавнее обсуждение". Osdir.com. 2006-08-14. Архивировано из оригинала 2012-03-20 . Получено 2012-08-20 .
  7. ^ Moonesamy, S. (12 июля 2013 г.). «Протокол передачи файлов SSH — draft-moonesamy-secsh-filexfer-00». Tools.ietf.org.
  8. ^ ftp://ftp.ietf.org/ietf-mail-archive/secsh/2012-09.mail
  9. ^ "openssh-portable sftp.h". GitHub . OpenSSH. 24 мая 2023 г.
  10. ^ "Страница руководства OpenBSD для команды "sftp": раздел "См. также"". OpenBSD.org . Получено 2018-02-04 .
  11. ^ "OpenSSH 9.0". Заметки о выпуске OpenSSH . 8 апреля 2022 г.
  12. ^ "Запись SSH/RDP/Citrix в журнал аудита — устройство мониторинга активности". Balabit.com . Получено 20-08-2012 .
  13. ^ "Управление и мониторинг привилегированного доступа". SSH.com . Получено 25.11.2014 .