Кіріспе
FTP (FTP SSL және FTP Secure деп те аталады) – жиі қолданылатын Файлдарды беру протоколының (FTP) кеңейтімі, ол Транспорттық қабаттың қауіпсіздігі (TLS) және бұрынғы Secure Sockets Layer (SSL, RFC7568 бойынша қазір тыйым салынған) криптографиялық протоколдарына қолдау қосады. FTPS-ті Secure Shell (SSH) протоколының Secure File Transfer Protocol (SFTP) деп аталатын қауіпсіз файлдарды беру жүйесімен шатастырмау керек, олар үйлесімсіз. Бұл, сондай-ақ, SSH арқылы FTP-ден, яғни SSH қосылысы арқылы FTP-ні туннельдеуден де өзгеше.
FTP over SSL
FTPS (also known as FTP SSL and FTP Secure) is an extension to the commonly used File Transfer Protocol (FTP) that adds support for the Transport Layer Security (TLS) and, formerly, the Secure Sockets Layer (SSL, which is now prohibited by RFC7568) cryptographic protocols. FTPS should not be confused with the SSH File Transfer Protocol (SFTP), a secure file transfer subsystem for the Secure Shell (SSH) protocol with which it is not compatible. It is also different from FTP over SSH, which is the practice of tunneling FTP through an SSH connection.
Өмірбаян
Файл беру протоколы 1971 жылы ғылыми және зерттеу желісі ARPANET-пен қолдану үшін әзірленді. Осы кезеңде ARPANET-ке қол жеткізу әскери орындар мен университеттердің шектеулі санымен және протокол ішінде деректердің қауіпсіздігі мен құпиялылығы талаптары жоқ пайдаланушылардың тар тобымен ғана шектелді. ARPANET NSFNET-ке, содан кейін Интернетке айналғанда, клиенттен серверге дейінгі қашықтықтар ұзарған сайын, деректерге кеңірек аудиторияның қол жеткізу мүмкіндігі пайда болды. Рұқсатсыз үшінші тараптардың деректерді тыңдау мүмкіндігі де пропорционалды түрде артты. 1994 жылы Netscape интернет-браузер компаниясы Secure Sockets Layer қолданбалық қабатын жасап, шығарды. Бұл протокол қолданбаларға желі арқылы жеке және қауіпсіз түрде байланысуға мүмкіндік берді, тыңдау, бұрмалау және хабарламаларды жолсыз жасауға қарсы тұрды. Ол TCP сияқты сенімді қосылымдарды қолданатын кез келген протоколға қауіпсіздік қоса алғанымен, көбінесе Netscape оны HTTPS құру үшін HTTP-мен бірге пайдаланды. SSL протоколы ақырында FTP-ге қолданылды, 1996 жылдың соңында пікір сұрауының (RFC) жобасы жарияланды. Одан кейін көп ұзамай IANA порты ресми тіркелді. Дегенмен, RFC 2005 жылға дейін толыққанды аяқталған жоқ.
Қауіпсіздікті қолдану әдістері
FTP клиенттерімен қолдану үшін клиенттік қауіпсіздікті іске қосу үшін екі бөлек әдіс әзірленді: жасырын және ашық. Жасырын әдіс қосылымның бастапқы кезеңінде Транспорттық қабаттың қауіпсіздігін орнатуды талап етеді, бұл FTPS-ті қолдамайтын клиенттер мен серверлермен үйлесімсіздікке әкеледі. Ал ашық әдіс стандартты FTP протоколының командаларын және жауаптарын пайдаланып, қарапайым мәтіндік қосылымды шифрланған қосылымға жаңартады, соның арқасында FTPS-ті қолдайтын және қолдамайтын клиенттерге бір басқару порты арқылы қызмет көрсетуге болады.
Жағдайсыз
Келіссөздер жасырын FTPS конфигурацияларымен қолдау көрсетілмейді. Клиент бірден FTPS серверіне TLS ClientHello хабары жіберіп, байланыс орнатуы күтіледі. Егер FTPS сервері мұндай хабарлама алмаса, сервер қосылысты үзуі тиіс. FTPS-ті білмейтін ескі клиенттермен үйлесімділікті сақтау мақсатында, жасырын FTPS FTPS басқару арнасы үшін IANA белгілі порты 990/TCP, ал FTPS деректер арнасы үшін 989/TCP портын тыңдауға арналған. Бұл әкімшілерге бастапқы 21/TCP FTP басқару арнасында бұрынғы үйлесімді қызметтерді сақтап қалуға мүмкіндік берді. Назарда болсын, жасырын келіссөздер RFC 4217 стандартында сипатталмаған. Сондықтан, бұл FTP үшін TLS/SSL келіссөздерін жүргізудің ескі, қолданыстан шығарылған тәсілі саналады.
Айқын
Ашық режимде (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 әдісін пайдалануы керек болды.
Жалпы қолдау
FTPS TLS және SSL криптографиялық протоколдарын толық қолдайды, оның ішінде серверлік жағындағы ашық кілттің куәліктерін (сертификаттарын) және клиенттік жағындағы рұқсаттама куәліктерін (сертификаттарын) пайдалану мүмкіндігі бар. Сонымен қатар, AES, RC4, RC2, Triple DES және DES сияқты үйлесімді шифрларды қолдайды. Бұған қоса, SHA, MD5, MD4 және MD2 хэш-функциялары да қолдауға ие.
Пайдалану аясы
Имплицитті режимде FTPS сессиясы толығымен шифрланады. Explicit режимде клиент қосылымның қай бөліктерін шифрлауды толық бақылай алады. FTPS басқару арнасы мен FTPS деректер арнасының шифрлауын кез келген уақытта қосу және өшіру мүмкін. Бір ғана шектеу – FTPS серверінің, сервердің шифрлау саясатына сәйкес командаларды қабылдаудан бас тарту мүмкіндігі.
Қауіпсіз басқару арнасы
Қауіпсіз командалық арна режиміне AUTH TLS немесе AUTH SSL командаларын жіберу арқылы кіруге болады. Осыдан кейін FTPS клиенті мен сервер арасындағы барлық командалық басқару шифрланған деп саналады. Пайдаланушы аты мен пароль ақпаратын үшінші тараптардың ұрлауына жол бермеу үшін, пайдаланушыны аутентификациялау және авторизациялау алдында осы режимге кіру ұсынылады.
Қауіпсіз деректер арнасы
Қауіпсіз деректер арнасына PROT командасын беру арқылы кіруге болады. AUTH TLS командасы берілген кезде ол автоматты түрде қосылмайды. Осыдан кейін FTPS клиенті мен сервер арасындағы барлық деректер арнасы бойынша байланыс шифрланған деп саналады. FTPS клиенті кез келген уақытта CDC (clear data channel) командасын беру арқылы қауіпсіз деректер арнасы режимінен шыға алады.
SSL куәліктері
HTTPS сияқты, FTPS серверлері де ашық кілт сертификатын ұсынуы тиіс. Мұндай сертификаттарды OpenSSL сияқты құралдарды пайдаланып сұрап алуға және жасауға болады. Егер сертификатқа сенімді сертификаттау органы қол қойса, бұл клиенттің сұралған серверге қосылғанына сенім береді және «адам арасындағы шабуыл» қаупін болдырмайды. Сертификатқа сенімді CA қол қоймаса (өздігінен қол қойылған сертификат болса), FTPS клиенті сертификаттың жарамсыз екендігі туралы ескерту көрсетуі мүмкін. Клиент сертификатты қабылдау немесе қосылысты үзу туралы шешім қабылдай алады. Бұл, қол қойылған сертификаттарды пайдаланбай, керісінше, ашық кілттерді жеке каналдар арқылы растауға негізделген SSH файлдық протоколынан (SFTP) өзгеше.
Бөренелер арасындағы үйлесімсіздіктер
FTP динамикалық қосалқы портты (дерек каналдары үшін) қолданатындықтан, көптеген брандмауэрлер FTP протоколының басқару хабарламаларын бақылап, қандай қосалқы дерек байланыстарын рұқсат ету керектігін анықтау үшін жасалған. Бірақ, егер FTP басқару байланысы TLS/SSL арқылы шифрланса, брандмауэр клиент пен FTP сервері арасында келісілген дерек байланысының TCP порты нөмірін анықтай алмайды. Сондықтан, көптеген брандмауэрлер орнатылған желілерде FTPS орнатуы, шифрланбаған FTP орнатуы жұмыс істегенде сәтсіз аяқталуы мүмкін. Бұл мәселені шешу үшін дерек үшін шектеулі диапазонды порттарды пайдаланып, брандмауэрді осы порттарды ашуға конфигурациялау қажет.