WikiDer > FTPS
FTPS (также известный FTP-SSL, и FTP безопасный) является расширением обычно используемого протокол передачи файлов (FTP), который добавляет поддержку Безопасность транспортного уровня (TLS) и ранее Уровень защищенных гнезд (SSL, который сейчас запрещен RFC7568) криптографические протоколы.
FTPS не следует путать с Протокол передачи файлов SSH (SFTP), подсистема безопасной передачи файлов для Безопасная оболочка (SSH) протокол, с которым он несовместим. Он также отличается от FTP через SSH, который является практикой туннелирования FTP через соединение SSH.
Фон
Протокол передачи файлов был разработан в 1971 году для использования в научно-исследовательской сети, ARPANET.[1] Доступ к ARPANET в это время был ограничен небольшим количеством военных сайтов и университетов и узким сообществом пользователей, которые могли работать без требований безопасности и конфиденциальности в рамках протокола.
Когда ARPANET уступила место NSFnet а потом интернет, более широкие слои населения потенциально имели доступ к данным, поскольку они проходили все более длинные пути от клиента к серверу. Возможность для неавторизованных третьих лиц подслушивать на передачу данных увеличилось пропорционально.
В 1994 году компания-производитель интернет-браузера Netscape разработал и выпустил прикладной уровень обертка Уровень защищенных гнезд.[2] Этот протокол позволял приложениям обмениваться данными через сеть конфиденциальным и безопасным образом, предотвращая подслушивание, подделку и подделку сообщений. Хотя он может повысить безопасность любого протокола, который использует надежные соединения, например TCP, он чаще всего использовался Netscape с HTTP для формирования HTTPS.
Протокол SSL был в конечном итоге применен к FTP, с черновиком Запрос комментариев (RFC) опубликовано в конце 1996 г.[3] Официальный IANA порт был зарегистрирован вскоре после этого. Однако RFC не был доработан до 2005 года.[4]
Способы активации безопасности
Были разработаны два отдельных метода активации защиты клиента для использования с FTP-клиентами: Скрытый и Явный. В то время как неявный метод требует, чтобы безопасность транспортного уровня была установлена с самого начала соединения, что, в свою очередь, нарушает совместимость с клиентами и серверами, не поддерживающими FTPS, явный метод использует стандартные команды протокола FTP и ответы для обновления соединение обычного текста с зашифрованным, что позволяет использовать один порт управления для обслуживания клиентов как с поддержкой FTPS, так и без нее.
Скрытый
Согласование не поддерживается с неявными конфигурациями FTPS. Ожидается, что клиент немедленно бросит вызов серверу FTPS с TLS Клиент привет сообщение. Если такое сообщение не получено сервером FTPS, сервер должен разорвать соединение.
Для обеспечения совместимости с существующими клиентами, не поддерживающими FTPS, предполагалось, что неявный FTPS будет прослушивать хорошо известный IANA порт 990 / TCP для канала управления FTPS и порт 989 / TCP для канала данных FTPS.[5] Это позволило администраторам сохранить унаследованные службы на исходном канале управления 21 / TCP FTP.
Обратите внимание, что неявное согласование не было определено в RFC 4217. Таким образом, он считается устаревшим методом согласования TLS / SSL для FTP.[6]
Явный
В явном режиме (также известном как FTPES) клиент FTPS должен «явно запросить» безопасность у сервера FTPS, а затем перейти к взаимно согласованному методу шифрования. Если клиент не запрашивает безопасность, сервер FTPS может либо разрешить клиенту продолжить работу в небезопасном режиме, либо отклонить соединение.
Механизм согласования аутентификации и безопасности с FTP был добавлен в RFC 2228, который включает новую команду FTP AUTH. Хотя в этом RFC явно не определены какие-либо требуемые механизмы безопасности, например SSL или TLS, он требует, чтобы клиент FTPS запросил сервер FTPS с помощью взаимно известного механизма. Если клиент FTPS обращается к серверу FTPS с неизвестным механизмом безопасности, сервер FTPS ответит на команду AUTH кодом ошибки. 504 (не поддерживается). Клиенты могут определить, какие механизмы поддерживаются, запросив сервер FTPS с помощью команды FEAT, хотя от серверов не обязательно честно раскрывать, какие уровни безопасности они поддерживают. Общие методы активации безопасности FTPS включали AUTH TLS и AUTH SSL.
Явный метод определен в RFC 4217. В более поздних версиях документа соответствие FTPS требовало, чтобы клиенты всегда согласовывались с использованием метода AUTH TLS.
Безопасность транспортного уровня (TLS) / Уровень защищенных сокетов (SSL)
Общая поддержка
FTPS включает полную поддержку криптографических протоколов TLS и SSL, включая использование серверной части. сертификаты аутентификации с открытым ключом и сертификаты авторизации на стороне клиента. Он также поддерживает совместимые шифры, в том числе AES, RC4, RC2, Тройной DES, и DES. Он также поддерживает хэш-функции SHA, MD5, MD4, и MD2.
Сфера использования
В неявном режиме шифруется весь сеанс FTPS. Явный режим отличается тем, что клиент имеет полный контроль над тем, какие области соединения должны быть зашифрованы. Включение и отключение шифрования для канала управления FTPS и канала данных FTPS может произойти в любое время. Единственное ограничение исходит от сервера FTPS, который имеет возможность отклонять команды на основе политики шифрования сервера.
Безопасный командный канал
В режим защищенного командного канала можно войти с помощью команд AUTH TLS или AUTH SSL. По истечении этого времени предполагается, что все управление командами между клиентом и сервером FTPS будет зашифровано. Обычно рекомендуется входить в такое состояние до аутентификации и авторизации пользователя, чтобы избежать перехвата данных имени пользователя и пароля третьими лицами.
Безопасный канал данных
В защищенный канал данных можно войти с помощью команды PROT. это нет включен по умолчанию при выполнении команды AUTH TLS. По истечении этого времени предполагается, что вся связь по каналу данных между клиентом FTPS и сервером будет зашифрована.
Клиент FTPS может выйти из режима защищенного канала данных в любое время, выдав команду CDC (очистить канал данных).
Причины отключить шифрование
Может быть невыгодно использовать шифрование канала данных при выполнении передачи в следующих сценариях:
- Передаваемые файлы не являются конфиденциальными, поэтому шифрование не требуется,
- Передаваемые файлы уже зашифрованы на уровне файлов или передаются через зашифрованный VPN, делая шифрование избыточным,
- Доступные режимы шифрования TLS или SSL не соответствуют желаемому уровню шифрования. Это типично для старых клиентов или серверов FTPS, которые могли быть ограничено 40-битным SSL из-за прежних законов США об экспорте с высоким уровнем шифрования.
Использование шифрования канала управления может оказаться невыгодным в следующих случаях:
- Использование FTPS, когда клиент или сервер находятся за сетевой брандмауэр или же преобразование сетевых адресов (NAT) устройство. (Видеть Несовместимость межсетевого экрана ниже.)
- Многократное использование команд AUTH и CCC / CDC анонимными FTP-клиентами в рамках одного сеанса. Такое поведение может использоваться как атака отказа в обслуживании на основе ресурсов, поскольку сеанс TLS / SSL должен каждый раз повторно создаваться с использованием процессорного времени сервера.
SSL сертификаты
Так же, как HTTPS, Серверы FTPS должны предоставлять сертификат открытого ключа. Эти сертификаты можно запросить и создать с помощью таких инструментов, как OpenSSL.
Когда эти сертификаты подписаны доверенным центр сертификации, это обеспечивает уверенность в том, что клиент подключен к запрошенному серверу, избегая атака "человек посередине". Если сертификат не подписан доверенным центром сертификации ( самоподписанный сертификат) клиент FTPS может сгенерировать предупреждение о том, что сертификат недействителен. Клиент может принять сертификат или отклонить соединение.
Это в отличие от Протокол передачи файлов SSH (SFTP), который не предоставляет подписанные сертификаты, а вместо этого использует Внеполосная аутентификация открытых ключей.
Несовместимость межсетевого экрана
Поскольку FTP использует динамический вторичный порт (для каналов данных), многие брандмауэры были разработаны для отслеживания сообщений управления протоколом FTP, чтобы определить, какие вторичные соединения для передачи данных им необходимо разрешить. Однако, если управляющее соединение FTP зашифровано с использованием TLS / SSL, брандмауэр не может определить номер порта TCP для соединения данных, согласованного между клиентом и FTP-сервером. Следовательно, во многих сетях с брандмауэром развертывание FTPS не удастся, если развертывание незашифрованного FTP будет работать. Эта проблема может быть решена путем использования ограниченного диапазона портов для данных и настройки брандмауэра на открытие этих портов.
Смотрите также
- FTP через SSH
- Сравнение протоколов передачи файлов
- Сравнение программного обеспечения FTP-клиента
- Список программного обеспечения FTP-сервера
- Безопасная копия (SCP), протокол для передачи файлов с использованием Безопасная оболочка (SSH) протокол
- Протокол передачи файлов SSH (SFTP)
- Файлы, передаваемые по протоколу оболочки (РЫБЫ)
- Список номеров портов TCP и UDP
Примечания
- ^ RFC-265: протокол передачи файлов (FTP)
- ^ Протокол SSL, 9 февраля 1995 г.
- ^ Проект RFC, Secure FTP Over SSL, редакция 1996-11-26
- ^ RFC-4217: Защита FTP с помощью TLS
- ^ «Реестр имени службы и номера порта транспортного протокола». Получено 9 октября 2015.
- ^ «Устаревшие механизмы согласования SSL». Получено 9 октября 2015.
внешняя ссылка
- Обзор FTPS и списки клиентов, серверов
- Керл-загрузчик - инструмент загрузки / тестирования FTPS с открытым исходным кодом