SFTP жана FTPS протоколдору

сөздөр

Бир жума мурун мен аталышта көрсөтүлгөн тема боюнча эссе жазып жатып, Интернетте билим берүүчү маалымат көп эмес экенине туш болдум. Көбүнчө кургак фактылар жана орнотуу көрсөтмөлөрү. Ошондуктан, мен текстти бир аз оңдоп, макала катары жарыялоону чечтим.

FTP деген эмне

FTP (File Transfer Protocol) – бул тармак аркылуу файлдарды өткөрүү протоколу. Бул негизги Ethernet протоколдорунун бири болуп саналат. 1971-жылы пайда болуп, алгач DARPA тармактарында иштеген. Учурда, HTTP сыяктуу, файлдарды өткөрүү TCP/IP (Transmission Control Protocol/Internet Protocol) протоколдорунун жыйындысынан турган моделге негизделген. RFC 959да аныкталган.

Протокол төмөнкүлөрдү аныктайт:

  • Ката текшерүү кантип жүргүзүлөт?
  • Маалыматтарды таңгактоо ыкмасы (эгер таңгак колдонулса)
  • Жөнөтүүчү аппарат кабарды бүтүргөнүн кантип көрсөтөт?
  • Кабыл алуучу аспап билдирүү алганын кантип көрсөтөт?

Кардар менен сервердин ортосундагы байланыш

Келгиле, FTP операциясы учурунда пайда болгон процесстерди кененирээк карап чыгалы. Туташуу колдонуучунун протокол котормочусу тарабынан инициализацияланат. Алмашуу TELNET стандартындагы башкаруу каналы аркылуу башкарылат. FTP буйруктары колдонуучунун протоколдук интерпретатору тарабынан түзүлөт жана серверге жөнөтүлөт. Сервердин жооптору да башкаруу каналы аркылуу колдонуучуга жөнөтүлөт. Жалпысынан, колдонуучу сервердин протокол котормочусу менен жана колдонуучунун котормочусунан башка ыкмалар менен байланыш түзө алат.

FTPдин негизги өзгөчөлүгү - ал кош байланыштарды колдонот. Алардын бири серверге буйруктарды жөнөтүү үчүн колдонулат жана демейки боюнча TCP 21 порту аркылуу пайда болот, аны өзгөртүүгө болот. Башкаруу байланышы кардар сервер менен байланышып турганда бар. Машиналар ортосунда маалыматтарды өткөрүүдө башкаруу каналы ачык болушу керек. Эгер ал жабык болсо, маалыматтарды берүү токтойт. Экинчи аркылуу, түздөн-түз маалыматтарды берүү пайда болот. Бул кардар менен сервердин ортосунда файлды өткөрүү ар бир жолу ачылат. Эгерде бир эле учурда бир нече файл өткөрүлүп берилсе, алардын ар бири өзүнүн берүү каналын ачат.

FTP активдүү же пассивдүү режимде иштей алат, алардын тандоосу байланыш кантип орнотулгандыгын аныктайт. Активдүү режимде кардар сервер менен TCP башкаруу байланышын түзөт жана серверге өзүнүн IP дарегин жана ыктыярдуу кардар портунун номерин жөнөтөт, андан кийин сервер бул дарек жана порт номери менен TCP байланышын баштоону күтөт. Эгерде кардар брандмауэрдин артында болсо жана кирүүчү TCP байланышын кабыл ала албаса, пассивдүү режим колдонулушу мүмкүн. Бул режимде кардар серверге PASV буйругун жөнөтүү үчүн башкаруу агымын колдонот, андан кийин серверден өзүнүн IP дарегин жана порт номерин алат, андан кийин кардар өзүнүн ыктыярдуу портунан маалымат агымын ачуу үчүн колдонот.

Маалыматтар үчүнчү машинага өткөрүлүп берилиши мүмкүн. Бул учурда колдонуучу эки сервер менен башкаруу каналын уюштурат жана алардын ортосунда түз маалымат каналын уюштурат. Башкаруу буйруктары колдонуучу аркылуу өтөт, ал эми маалыматтар серверлердин ортосунда түз өтөт.

Тармак аркылуу маалыматтарды өткөрүп жатканда, төрт маалымат өкүлчүлүгүн колдонсо болот:

  • ASCII – текст үчүн колдонулат. Маалыматтар, зарыл болсо, жөнөтүүчү хосттогу символдун көрсөтүүсүнөн өткөрүп берүүнүн алдында "сегиз биттик ASCIIге" жана (кайра, зарыл болсо) кабыл алуучу хосттогу символдун өкүлчүлүгүнө айландырылат. Тактап айтканда, жаңы саптын символдору өзгөртүлгөн. Натыйжада, бул режим жөн эле текстти камтыган файлдар үчүн ылайыктуу эмес.
  • Бинардык режим - жөнөтүүчү түзүлүш ар бир файлды байт менен жөнөтөт, ал эми алуучу алгандан кийин байттардын агымын сактайт. Бул режимди колдоо бардык FTP ишке ашыруу үчүн сунушталган.
  • EBCDIC – EBCDIC коддоодо хосттор арасында жөнөкөй текстти өткөрүү үчүн колдонулат. Болбосо, бул режим ASCII режимине окшош.
  • Локалдык режим - бирдей орнотуулары бар эки компьютерге маалыматтарды ASCIIге конвертирлебестен өз форматында жөнөтүүгө мүмкүндүк берет.

Маалыматтарды өткөрүү үч режимдин каалаганында жүргүзүлүшү мүмкүн:

  • Агым режими - маалыматтар үзгүлтүксүз агым катары жөнөтүлүп, FTP ар кандай иштетүүдөн бошотот. Анын ордуна, бардык иштетүү TCP тарабынан жүзөгө ашырылат. Файлдын аягы индикатору маалыматтарды жазууларга бөлүүдөн башка кереги жок.
  • Блок режими - FTP маалыматтарды бир нече блокторго (баш блок, байттардын саны, маалымат талаасы) бөлүп, андан кийин TCPге өткөрүп берет.
  • Кысуу режими – маалымат бир алгоритм менен кысылган (көбүнчө иштөө узундугун коддоо менен).

FTP сервери - бул File Transfer протоколун колдонуу мүмкүнчүлүгүн камсыз кылган сервер. Аны кадимки веб-серверлерден айырмалап турган кээ бир өзгөчөлүктөрү бар:

  • Колдонуучунун аутентификациясы талап кылынат
  • Бардык операциялар учурдагы сессиянын ичинде аткарылат
  • Файл системасы менен ар кандай аракеттерди жасоо мүмкүнчүлүгү
  • Ар бир туташуу үчүн өзүнчө канал колдонулат

FTP кардары - FTP аркылуу алыскы серверге туташуу жана ошондой эле файл тутумунун элементтери менен андагы керектүү аракеттерди жасоого мүмкүндүк берген программа. Кардар браузер болушу мүмкүн, анын дарек тилкесине жалпы URL блок диаграммасына ылайык алыскы сервердеги белгилүү бир каталогго же файлга жол болгон даректи киргизүү керек:

ftp://user:pass@address:port/directory/file

Бирок, бул контекстте веб-браузерди колдонуу сизге кызыккан файлдарды көрүү же жүктөө гана мүмкүнчүлүк берет. FTP бардык артыкчылыктарын толук пайдалануу үчүн, кардар катары атайын программалык камсыздоону колдонушуңуз керек.

FTP аутентификациясы кирүү мүмкүнчүлүгүн берүү үчүн колдонуучу атын/пароль схемасын колдонот. Колдонуучунун аты серверге USER буйругу менен, ал эми сырсөз PASS буйругу менен жөнөтүлөт. Эгерде кардар тарабынан берилген маалымат сервер тарабынан кабыл алынса, анда сервер кардарга чакыруу жөнөтөт жана сессия башталат. Колдонуучулар, эгерде сервер бул функцияны колдосо, эсептик дайындарды көрсөтпөстөн кире алышат, бирок сервер мындай сеанстар үчүн чектелген мүмкүнчүлүктү гана бере алат.

FTP кызматын камсыз кылуучу хост анонимдүү FTP мүмкүнчүлүгүн камсыздай алат. Колдонуучулар, адатта, колдонуучу аты катары "анонимдүү" (айрым FTP серверлеринде регистрге сезимтал болушу мүмкүн) менен кирүүгө болот. Демейде колдонуучулар сырсөздүн ордуна электрондук почта дарегин көрсөтүүнү талап кылышса да, текшерүү иш жүзүндө аткарылбайт. Программанын жаңыртууларын камсыз кылган көптөгөн FTP хосттору анонимдүү кирүү мүмкүнчүлүгүн колдойт.

Протокол диаграммасы

FTP туташуусу учурунда кардар менен сервердин өз ара аракеттенүүсүн төмөнкүчө чагылдырууга болот:

SFTP жана FTPS протоколдору

Коопсуз FTP

FTP алгач коопсуз болушу үчүн арналган эмес, анткени ал бир нече аскердик объектилер менен мекемелердин ортосундагы байланыш үчүн арналган. Бирок интернеттин өнүгүшү жана жайылуусу менен уруксатсыз кирүү коркунучу көп эсе өстү. Серверлерди ар кандай чабуулдардан коргоо зарылчылыгы бар болчу. 1999-жылдын май айында, RFC 2577 авторлору көйгөйлөрдүн төмөнкү тизмесине кемчиликтерди жалпылашты:

  • Жашыруун чабуулдар (секирүү чабуулдары)
  • Жалган чабуулдар
  • Оор күч чабуулдары
  • Пакетти тартуу, жыттоо
  • Порт уурдоо

Регулярдуу FTP шифрленген түрдө маалыматтарды өткөрүп берүү мүмкүнчүлүгүнө ээ эмес, анын натыйжасында колдонуучу аттары, сырсөздөр, буйруктар жана башка маалыматтар чабуулчулар тарабынан оңой жана оңой кармалып калышы мүмкүн. Бул маселенин демейки чечими - аялуу протоколдун (FTPS) "коопсуз", TLS менен корголгон версияларын же Secure Shell протоколдорунун көбү менен камсыздалган SFTP/SCP сыяктуу коопсузураак протоколдорун колдонуу.

FTPS

FTPS (FTP + SSL) стандарттык файлдарды өткөрүп берүү протоколунун кеңейтилиши болуп саналат, ал SSL (Secure Sockets Layer) протоколун колдонуу менен шифрленген сеанстарды түзүүнү анын негизги функцияларына кошот. Бүгүнкү күндө коргоо анын өнүккөн аналогу TLS (Transport Layer Security) менен камсыз кылынат.

SSL

SSL протоколу Netscape Communications тарабынан 1996-жылы интернет байланыштарынын коопсуздугун жана купуялуулугун камсыз кылуу үчүн сунушталган. Протокол кардар менен сервердин аутентификациясын колдойт, тиркемеден көз карандысыз жана HTTP, FTP жана Telnet протоколдоруна ачык-айкын болот.

SSL Handshake протоколу эки этаптан турат: сервердин аутентификациясы жана кошумча кардар аутентификациясы. Биринчи этапта сервер кардардын суроо-талабына өзүнүн сертификатын жана шифрлөө параметрлерин жөнөтүү менен жооп берет. Андан кийин кардар башкы ачкычты жаратып, аны сервердин ачык ачкычы менен шифрлейт жана аны серверге жөнөтөт. Сервер өзүнүн купуя ачкычы менен башкы ачкычтын шифрин чечет жана кардардын башкы ачкычы менен аутентификацияланган билдирүүнү кайтаруу аркылуу кардарга аутентификацияланат.

Кийинки маалыматтар шифрленген жана бул башкы ачкычтан алынган ачкычтар менен аутентификацияланат. Экинчи кадамда, бул милдеттүү эмес, сервер кардарга суроо-талапты жөнөтөт, ал эми кардар өзүнүн санариптик колтамгасы жана ачык ачкыч сертификаты менен суроо-талапты кайтарып берүү менен серверге аутентификацияланат.

SSL ар кандай криптографиялык алгоритмдерди колдойт. Байланышты түзүү учурунда RSA ачык ачкыч криптосистемасы колдонулат. Ачкыч алмашуудан кийин көптөгөн ар кандай шифрлер колдонулат: RC2, RC4, IDEA, DES жана TripleDES. MD5 да колдонулат - кабар дайджест түзүү үчүн алгоритм. Ачык ачкыч сертификаттарынын синтаксиси X.509 сүрөттөлгөн.

SSLдин маанилүү артыкчылыктарынын бири анын программалык-платформанын толук көз карандысыздыгы. Протокол көчүрүү принциптеринде иштелип чыккан жана анын түзүлүшүнүн идеологиясы ал колдонулган тиркемелерден көз каранды эмес. Мындан тышкары, башка протоколдор SSL протоколунун үстүнө ачык-айкын капталышы да маанилүү; же максаттуу маалымат агымдарынын коргоо даражасын андан ары жогорулатуу, же SSL криптографиялык мүмкүнчүлүктөрүн кандайдыр бир башка, так аныкталган тапшырмага ылайыкташтыруу.

SSL байланышы

SFTP жана FTPS протоколдору

SSL тарабынан камсыздалган коопсуз канал үч негизги касиетке ээ:

  • Канал купуя. Шифрлөө жашыруун ачкычты аныктоо үчүн кызмат кылган жөнөкөй диалогдон кийин бардык билдирүүлөр үчүн колдонулат.
  • Канал аутентификацияланган. Сүйлөшүүнүн сервер тарабы ар дайым аутентификацияланат, ал эми кардар тарабы кошумча түрдө аутентификацияланат.
  • Канал ишенимдүү. Кабарды ташууга бүтүндүгүн текшерүү кирет (MAC колдонуу).

FTPS өзгөчөлүктөрү

Коопсуздукту камсыз кылуунун ар кандай ыкмаларын колдонуу менен FTPSтин эки ишке ашырылышы бар:

  • Жашыруун ыкма стандарттык SSL протоколун колдонууну камтыйт, ал өз кезегинде кадимки FTP кардарлары жана серверлери менен шайкештикти бузат, маалыматтарды жөнөтүүдөн мурун сессияны түзүү. FTPSти колдобогон кардарлар менен артка шайкеш келүү үчүн TCP порт 990 башкаруу туташуусу үчүн колдонулат жана 989 ​​бул FTP протоколу үчүн стандарттык порт 21 сакталат. Бул ыкма эскирген деп эсептелет.
  • Explicit алда канча ыңгайлуу, анткени ал стандарттык FTP буйруктарын колдонот, бирок жооп бергенде маалыматтарды шифрлейт, бул FTP жана FTPS үчүн бирдей башкаруу туташуусун колдонууга мүмкүндүк берет. Кардар серверден маалыматтарды коопсуз өткөрүп берүүнү ачык талап кылып, андан кийин шифрлөө ыкмасын бекитиши керек. Эгерде кардар коопсуз которууну талап кылбаса, FTPS сервери корголбогон байланышты сактоого же жабууга укуктуу. Жаңы FTP AUTH буйругун камтыган RFC 2228 астында аутентификация жана маалымат коопсуздугу боюнча сүйлөшүү механизми кошулду. Бул стандарт коопсуздук механизмдерин так аныктабаса да, коопсуз туташууну кардар жогоруда сүрөттөлгөн алгоритмди колдонуу менен башташы керек экенин белгилейт. Эгер коопсуз туташуулар сервер тарабынан колдоого алынбаса, 504 ката коду кайтарылышы керек, FTPS кардарлары сервер тарабынан колдоого алынган коопсуздук протоколдору жөнүндө маалыматты FEAT буйругу менен ала алышат, бирок серверден анын кандай коопсуздук деңгээлдерин ачып берүү талап кылынбайт. колдойт. Эң кеңири таралган FTPS буйруктары AUTH TLS жана AUTH SSL болуп саналат, алар тиешелүүлүгүнө жараша TLS жана SSL коопсуздугун камсыз кылат.

SFTP

SFTP (Коопсуз File Transfer Protocol) - коопсуз каналдын үстүндө иштеген тиркеме катмарынын файлдарын өткөрүп берүү протоколу. Ошол эле аббревиатурасы бар (Жөнөкөй File Transfer Protocol) менен чаташтырбоо керек. Эгерде FTPS жөн гана FTP кеңейтүүсү болсо, анда SFTP өзүнчө жана байланышы жок протокол, анын негизи катары SSH (Secure Shell) колдонот.

Коопсуз кабык

Протокол Secsh деп аталган IETF топторунун бири тарабынан иштелип чыккан. Жаңы SFTP протоколунун жумушчу документтери расмий стандарт болуп калган жок, бирок тиркемени иштеп чыгуу үчүн жигердүү колдонула баштады. Андан кийин протоколдун алты версиясы чыкты. Бирок, андагы функционалдык мүмкүнчүлүктөрдүн акырындык менен көбөйүшү 14-жылдын 2006-августунда долбоордун негизги тапшырмасы (SSH иштеп чыгуу) аяктагандыгына байланыштуу протоколду иштеп чыгуу боюнча ишти токтотуу жөнүндө чечим кабыл алынганына алып келди. толук кандуу алыскы файл тутумунун протоколун иштеп чыгууга өтүү үчүн жетиштүү эксперттик деңгээлдин жоктугу.

SSH - бул операциялык системаны алыстан башкарууга жана TCP байланыштарын туннелдештирүүгө мүмкүндүк берген тармак протоколу (мисалы, файлдарды өткөрүү үчүн). Функционалдыгы боюнча Telnet жана rlogin протоколдоруна окшош, бирок алардан айырмаланып, ал бардык трафикти, анын ичинде берилген сырсөздөрдү шифрлейт. SSH ар кандай шифрлөө алгоритмдерин тандоого мүмкүндүк берет. SSH кардарлары жана SSH серверлери көпчүлүк тармактык операциялык системалар үчүн жеткиликтүү.

SSH коопсуз чөйрөдө дээрлик бардык башка тармак протоколдорун өткөрүп берүүгө мүмкүндүк берет. Ошентип, сиз командалык кабык аркылуу компьютериңизде алыстан гана иштебестен, шифрленген канал аркылуу аудио агымын же видеону (мисалы, веб-камерадан) өткөрө аласыз. SSH ошондой эле кийинки шифрлөө үчүн өткөрүлүп берилген маалыматтарды кысуу колдоно алат, бул ыңгайлуу, мисалы, X WindowSystem кардарларын алыстан ишке киргизүү үчүн.

Протоколдун биринчи версиясы, SSH-1, 1995-жылы Хельсинки технологиялык университетинен (Финляндия) изилдөөчү Тату Улёнен тарабынан иштелип чыккан. SSH-1 rlogin, telnet жана rsh протоколдоруна караганда көбүрөөк купуялуулукту камсыз кылуу үчүн жазылган. 1996-жылы SSH-2 менен шайкеш келбеген SSH-1 протоколунун коопсуз версиясы иштелип чыккан. Протокол ого бетер популярдуулукка ээ болуп, 2000-жылы болжол менен эки миллион колдонуучуга ээ болгон. Азыркы учурда, термин "SSH" адатта SSH-2 билдирет, анткени Протоколдун биринчи версиясы олуттуу кемчиликтерден улам азыр дээрлик колдонулбайт. 2006-жылы протокол IETF жумушчу тобу тарабынан Интернет стандарты катары бекитилген.

SSH эки жалпы ишке ашыруу бар: жеке коммерциялык жана эркин ачык булак. Акысыз ишке ашыруу OpenSSH деп аталат. 2006-жылга карата Интернеттеги компьютерлердин 80% OpenSSH колдонушкан. Проприетардык ишке ашыруу SSH Communications Security тарабынан иштелип чыккан, Tectia корпорациясынын XNUMX пайыздык туунду компаниясы жана коммерциялык эмес колдонуу үчүн акысыз. Бул ишке ашыруу командалардын дээрлик бирдей топтомун камтыйт.

SSH-2 протоколу, telnet протоколунан айырмаланып, трафикти тыңшоочу чабуулдарга («жыттоо»), бирок ортодогу адамдын чабуулдарына туруктуу эмес. SSH-2 протоколу сеанстарды басып алуу чабуулдарына да туруктуу, анткени буга чейин түзүлгөн сессияга кошулуу же басып алуу мүмкүн эмес.

Ачкычы кардарга белгисиз болгон хостко туташууда ортодогу адамдын чабуулдарын алдын алуу үчүн, кардар программасы колдонуучуга "ачкыч манжа изин" көрсөтөт. Кардардын программалык камсыздоосу көрсөткөн "ачкыч сүрөтүн" сервердик ачкычтын сүрөтү менен кылдаттык менен текшерип чыгуу сунушталат, жакшысы ишенимдүү байланыш каналдары аркылуу же жеке адамдан алынган.

SSH колдоосу бардык UNIX сыяктуу системаларда жеткиликтүү жана көпчүлүгү стандарттык утилиталар катары ssh кардары жана сервери бар. UNIX эмес OS үчүн SSH кардарларынын көптөгөн ишке ашыруулары бар. Протокол трафик анализаторлорун жана локалдык тармактардын ишин үзгүлтүккө учуратуу ыкмаларын кеңири иштеп чыккандан кийин, маанилүү түйүндөрдү башкаруу үчүн кооптуу Telnet протоколуна альтернативалуу чечим катары чоң популярдуулукка ээ болгон.

SSH аркылуу байланыш

SSH аркылуу иштөө үчүн сизге SSH сервери жана SSH кардары керек. Сервер кардар машиналарынан туташууларды угат жана байланыш түзүлгөндө аутентификацияны жүргүзөт, андан кийин ал кардарды тейлөөгө киришет. Кардар алыскы машинага кирүү жана буйруктарды аткаруу үчүн колдонулат.

SFTP жана FTPS протоколдору

FTPS менен салыштыруу

SFTPди стандарттык FTP жана FTPSден айырмалап турган негизги нерсе, SFTP таптакыр бардык буйруктарды, колдонуучу атын, сырсөздөрдү жана башка купуя маалыматты шифрлейт.

FTPS жана SFTP протоколдору тең асимметриялык алгоритмдердин (RSA, DSA), симметриялык алгоритмдердин (DES/3DES, AES, Twhofish ж.б.) айкалышын, ошондой эле негизги алмашуу алгоритмин колдонушат. Аутентификация үчүн FTPS (же тагыраак айтканда, FTP аркылуу SSL/TLS) X.509 сертификаттарын колдонот, ал эми SFTP (SSH протоколу) SSH ачкычтарын колдонот.

X.509 сертификаттары ачык ачкычты жана ээсинин сертификаты жөнүндө кээ бир маалыматтарды камтыйт. Бул маалымат, экинчи жагынан, күбөлүктүн өзүнүн бүтүндүгүн, аныктыгын жана сертификаттын ээсин текшерүүгө мүмкүндүк берет. X.509 сертификаттарынын тиешелүү купуя ачкычы бар, ал адатта коопсуздук максатында сертификаттан өзүнчө сакталат.

SSH ачкычы ачык ачкычты гана камтыйт (тиешелүү жеке ачкыч өзүнчө сакталат). Анда ачкычтын ээси тууралуу эч кандай маалымат жок. Кээ бир SSH ишке ашыруулары аутентификация үчүн X.509 сертификаттарын колдонушат, бирок алар чындыгында бүтүндөй тастыктама чынжырын текшербейт — ачык ачкыч гана колдонулат (бул аутентификацияны толук эмес кылат).

жыйынтыктоо

FTP протоколу, албетте, өзүнүн улуу курагына карабастан, тармактагы маалыматты сактоодо жана бөлүштүрүүдө маанилүү ролду ойнойт. Бул ыңгайлуу, көп функциялуу жана стандартташтырылган протокол. Анын негизинде көптөгөн файл архивдери курулган, ансыз техникалык иш анчалык эффективдүү болбойт. Мындан тышкары, аны орнотуу оңой жана сервердик жана кардар программалары дээрлик бардык учурдагы жана азыркы эмес платформалар үчүн бар.

Өз кезегинде анын корголгон версиялары заманбап дүйнөдө сакталган жана берилүүчү маалыматтардын купуялуулугу маселесин чечет. Эки жаңы протоколдун тең жакшы жана жаман жактары бар жана бир аз башкача ролдорду аткарышат. Файл архиви талап кылынган аймактарда, өзгөчө классикалык FTP мурда колдонулган болсо, FTPSти колдонуу артык. SFTP эски протоколго туура келбегендиктен азыраак кездешет, бирок ал алыстан башкаруу тутумунун бир бөлүгү болгондуктан коопсузураак жана көбүрөөк функцияга ээ.

Булактардын тизмеси

Source: www.habr.com

Комментарий кошуу