SFTP- en FTPS-protokollen

Foarwurd

Krekt in wike lyn skreau ik in essay oer it ûnderwerp dat yn de titel oanjûn is en waard konfrontearre mei it feit dat, lit ús sizze, net safolle edukative ynformaasje op it ynternet is. Meast droege feiten en opsetynstruksjes. Dêrom besleat ik de tekst in bytsje te korrigearjen en as artikel te pleatsen.

Wat is FTP

FTP (File Transfer Protocol) is in protokol foar it oerdragen fan bestannen oer in netwurk. It is ien fan 'e basis Ethernet-protokollen. Ferskynd yn 1971 en wurke earst yn DARPA-netwurken. Op it stuit, lykas HTTP, is triemferfier basearre op in model besteande út in set fan TCP/IP (Transmission Control Protocol/Internet Protocol) protokollen. Definearre yn RFC 959.

It protokol definiearret it folgjende:

  • Hoe sil de flaterkontrôle wurde útfierd?
  • Gegevensferpakkingsmetoade (as ferpakking wurdt brûkt)
  • Hoe jout it stjoerende apparaat oan dat it in berjocht klear is?
  • Hoe jout it ûntfangende apparaat oan dat it in berjocht ûntfongen hat?

Kommunikaasje tusken client en server

Litte wy in tichterby sjen nei de prosessen dy't foarkomme tidens FTP-operaasje. De ferbining wurdt inisjalisearre troch de protokoltolk fan de brûker. De útwikseling wurdt regele fia in kontrôlekanaal yn 'e TELNET-standert. FTP-kommando's wurde generearre troch de protokol-tolk fan 'e brûker en stjoerd nei de tsjinner. De antwurden fan de tsjinner wurde ek stjoerd nei de brûker fia it kontrôlekanaal. Yn 't algemien hat de brûker de mooglikheid om kontakt te meitsjen mei de protokol-tolk fan de tsjinner en op oare manieren dan de tolk fan de brûker.

It haadfunksje fan FTP is dat it dûbele ferbiningen brûkt. Ien fan harren wurdt brûkt om kommando's nei de tsjinner te stjoeren en komt standert fia TCP-poarte 21, dy't feroare wurde kin. De kontrôleferbining bestiet sa lang as de kliïnt kommunisearret mei de tsjinner. It kontrôlekanaal moat iepen wêze by it oerdragen fan gegevens tusken masines. As it is sletten, stopet gegevens oerdracht. Troch de twadde komt direkte gegevensferfier. It iepenet elke kear as in triemferfier plakfynt tusken de client en de tsjinner. As ferskate bestannen tagelyk wurde oerdroegen, iepenet elk fan har in eigen oerdrachtkanaal.

FTP kin operearje yn aktive of passive modus, wêrfan de kar bepaalt hoe't de ferbining wurdt oprjochte. Yn aktive modus makket de kliïnt in TCP-kontrôleferbining mei de tsjinner en stjoert syn IP-adres en in willekeurige clientpoartenûmer nei de tsjinner, en wachtet dan op 'e tsjinner om in TCP-ferbining te begjinnen mei dit adres en poartenûmer. As de kliïnt efter in firewall sit en in ynkommende TCP-ferbining net akseptearje kin, kin passive modus brûkt wurde. Yn dizze modus brûkt de kliïnt de kontrôlestream om in PASV-kommando nei de tsjinner te stjoeren, en ûntfangt dan syn IP-adres en poartenûmer fan 'e tsjinner, dy't de kliïnt dan brûkt om in gegevensstream te iepenjen fan syn willekeurige poarte.

It is mooglik dat gegevens kinne wurde oerdroegen oan in tredde masine. Yn dit gefal organisearret de brûker in kontrôlekanaal mei twa servers en organisearret in direkte gegevenskanaal tusken har. Kontrôle kommando's geane troch de brûker, en gegevens geane direkt tusken de tsjinners.

By it ferstjoeren fan gegevens oer in netwurk kinne fjouwer gegevensfertsjintwurdigingen brûkt wurde:

  • ASCII - brûkt foar tekst. De gegevens wurde, as it nedich is, omboud fan 'e karakterfertsjintwurdiging op 'e stjoerende host nei "acht-bit ASCII" foar oerdracht, en (wer, as it nedich is) nei de karakterfertsjintwurdiging op 'e ûntfangende host. Benammen newline karakters wurde feroare. Dêrtroch is dizze modus net geskikt foar bestannen dy't mear befetsje as gewoane tekst.
  • Binêre modus - it stjoerende apparaat stjoert elke triem byte foar byte, en de ûntfanger bewarret de stream fan bytes by ûntfangst. Stipe foar dizze modus is oanrikkemandearre foar alle FTP-ymplemintaasjes.
  • EBCDIC - brûkt om platte tekst oer te dragen tusken hosts yn EBCDIC-kodearring. Oars is dizze modus fergelykber mei de ASCII-modus.
  • Lokale modus - lit twa kompjûters mei identike ynstellings gegevens yn har eigen formaat stjoere sûnder konvertearjen nei ASCII.

Gegevens oerdracht kin wurde útfierd yn ien fan trije modi:

  • Streammodus - gegevens wurde ferstjoerd as in trochgeande stream, wêrtroch FTP gjin ferwurking kin útfiere. Ynstee dêrfan wurdt alle ferwurking dien troch TCP. De ein-fan-bestân-yndikator is net nedich, útsein foar it skieden fan gegevens yn records.
  • Blokmodus - FTP brekt de gegevens yn ferskate blokken (headerblok, oantal bytes, gegevensfjild) en stjoert se dan nei TCP.
  • Kompresjemodus - gegevens wurde komprimearre mei ien inkeld algoritme (meastentiids troch kodearring fan runlengten).

FTP-tsjinner is in server dy't de mooglikheid biedt om it File Transfer Protocol te brûken. It hat bepaalde funksjes dy't it ûnderskiede fan konvinsjonele webservers:

  • Brûkersferifikaasje fereaske
  • Alle operaasjes wurde útfierd binnen de aktuele sesje
  • Mooglikheid om ferskate aksjes út te fieren mei it bestânsysteem
  • Foar elke ferbining wurdt in apart kanaal brûkt

FTP-kliïnt is in programma wêrmei jo kinne ferbine mei in tsjinner op ôfstân fia FTP en ek de nedige aksjes derop útfiere mei eleminten fan it bestânsysteem. De kliïnt kin in browser wêze, yn 'e adresbalke wêrfan jo it adres moatte ynfiere, dat is it paad nei in spesifike map of bestân op' e tsjinner op ôfstân, yn oerienstimming mei it algemiene URL-blokdiagram:

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

It brûken fan in webblêder yn dizze kontekst lit jo allinich de bestannen fan belang besjen of downloade. Om alle foardielen fan FTP folslein te brûken, moatte jo spesjalisearre software as kliïnt brûke.

FTP-ferifikaasje brûkt in brûkersnamme/wachtwurdskema om tagong te jaan. De brûkersnamme wurdt stjoerd nei de tsjinner mei de USER kommando, en it wachtwurd wurdt stjoerd mei de PASS kommando. As de ynformaasje levere troch de kliïnt wurdt akseptearre troch de tsjinner, dan sil de tsjinner in útnoeging stjoere nei de kliïnt en de sesje begjint. Brûkers kinne, as de tsjinner dizze funksje stipet, ynlogge sûnder bewiisbrieven te jaan, mar de tsjinner kin allinich beheinde tagong jaan foar sokke sesjes.

De host dy't de FTP-tsjinst leveret, kin anonime FTP-tagong leverje. Brûkers melde gewoanlik oan mei "anonymous" (kinne haadlettergefoelich wêze op guon FTP-tsjinners) as har brûkersnamme. Hoewol't brûkers typysk frege wurde om harren e-mailadres yn stee fan in wachtwurd op te jaan, wurdt der eins gjin ferifikaasje útfierd. In protte FTP-hosts dy't software-updates leverje stypje anonime tagong.

Protokol diagram

De klant-tsjinner ynteraksje tidens in FTP-ferbining kin as folget wurde visualisearre:

SFTP- en FTPS-protokollen

Feilige FTP

FTP wie oarspronklik net bedoeld om feilich te wêzen, om't it bedoeld wie foar kommunikaasje tusken meardere militêre ynstallaasjes en ynstânsjes. Mar mei de ûntwikkeling en fersprieding fan it ynternet is it gefaar fan unautorisearre tagong in protte kearen tanommen. D'r wie ferlet om servers te beskermjen tsjin ferskate soarten oanfallen. Yn maaie 1999 gearfetten de auteurs fan RFC 2577 de kwetsberens yn 'e folgjende list mei problemen:

  • Ferburgen oanfallen (bounce oanfallen)
  • Spoof oanfallen
  • Brute krêft oanfallen
  • Pakket fangen, snuffelje
  • Port stellen

Reguliere FTP hat net de mooglikheid om gegevens oer te dragen yn fersifere foarm, wêrtroch brûkersnammen, wachtwurden, kommando's en oare ynformaasje maklik en maklik kinne wurde ûnderskept troch oanfallers. De gewoane oplossing foar dit probleem is it brûken fan "feilige", TLS-beskerme ferzjes fan it kwetsbere protokol (FTPS) of in oar, feiliger protokol, lykas SFTP/SCP, foarsjoen fan de measte Secure Shell-protokol-ymplementaasjes.

FTPS

FTPS (FTP + SSL) is in útwreiding fan it standert bestânferfierprotokol dat oan syn basisfunksjonaliteit it oanmeitsjen fan fersifere sesjes tafoegje mei it SSL (Secure Sockets Layer) protokol. Tsjintwurdich wurdt beskerming fersoarge troch syn mear avansearre analoge TLS (Transport Layer Security).

SSL

It SSL-protokol waard foarsteld troch Netscape Communications yn 1996 om de feiligens en privacy fan ynternetferbiningen te garandearjen. It protokol stipet client- en serverautentikaasje, is applikaasje ûnôfhinklik, en is transparant foar HTTP-, FTP- en Telnet-protokollen.

It SSL Handshake-protokol bestiet út twa stadia: serverautentikaasje en opsjonele clientferifikaasje. Op it earste poadium reagearret de tsjinner op it fersyk fan 'e kliïnt troch syn sertifikaat- en fersiferingsparameters te ferstjoeren. De kliïnt genereart dan in masterkaai, fersiferet it mei de iepenbiere kaai fan 'e tsjinner en stjoert it nei de tsjinner. De tsjinner ûntsiferet de masterkaai mei syn priveekaai en autentisearret himsels nei de kliïnt troch in berjocht werom te jaan dat authentisearre is troch de masterkaai fan de kliïnt.

Folgjende gegevens wurde fersifere en authentisearre mei kaaien ôflaat fan dizze master kaai. Yn 'e twadde stap, dy't opsjoneel is, stjoert de tsjinner in fersyk nei de kliïnt, en de kliïnt authentisearret himsels nei de tsjinner troch it fersyk werom te jaan mei in eigen digitale hantekening en in sertifikaat foar iepenbiere kaai.

SSL stipet in ferskaat oan kryptografyske algoritmen. Tidens de oprjochting fan kommunikaasje wurdt it RSA iepenbiere kaai kryptosysteem brûkt. Nei de kaai-útwikseling wurde in protte ferskillende sifers brûkt: RC2, RC4, IDEA, DES en TripleDES. MD5 wurdt ek brûkt - in algoritme foar it meitsjen fan in berjochtdigest. De syntaksis foar sertifikaten foar iepenbiere kaai wurdt beskreaun yn X.509.

Ien fan 'e wichtige foardielen fan SSL is syn folsleine software-platfoarm-ûnôfhinklikens. It protokol is ûntwikkele op 'e prinsipes fan portabiliteit, en de ideology fan syn konstruksje is net ôfhinklik fan' e applikaasjes wêryn it wurdt brûkt. Dêrnjonken is it ek wichtich dat oare protokollen transparant boppe op it SSL-protokol oerlein wurde kinne; itsij om de mjitte fan beskerming fan doelynformaasjestreamen fierder te fergrutsjen, of om de kryptografyske mooglikheden fan SSL oan te passen foar in oare, goed definieare taak.

SSL ferbining

SFTP- en FTPS-protokollen

It feilige kanaal levere troch SSL hat trije haadeigenskippen:

  • It kanaal is privee. Fersifering wurdt brûkt foar alle berjochten nei in ienfâldige dialooch dy't tsjinnet om de geheime kaai te bepalen.
  • It kanaal is authentisearre. De serverkant fan it petear wurdt altyd authentisearre, wylst de kliïntside opsjoneel authentisearre is.
  • It kanaal is betrouber. Berjochtferfier omfettet kontrôle fan yntegriteit (mei MAC).

Funksjes fan FTPS

D'r binne twa ymplemintaasjes fan FTPS, mei ferskate metoaden om feiligens te leverjen:

  • De ymplisite metoade omfettet it brûken fan it standert SSL-protokol om in sesje te fêstigjen foardat jo gegevens ferstjoere, wat op syn beurt de kompatibiliteit mei reguliere FTP-kliïnten en -tsjinners brekt. Foar efterkompatibiliteit mei kliïnten dy't gjin FTPS stypje, wurdt TCP-poarte 990 brûkt foar de kontrôleferbining en 989 wurdt brûkt foar gegevensferfier Dit behâldt de standertpoarte 21 foar it FTP-protokol. Dizze metoade wurdt beskôge as ferâldere.
  • Eksplisite is folle handiger, om't it standert FTP-kommando's brûkt, mar de gegevens fersiferet by it reagearjen, wêrtroch jo deselde kontrôleferbining kinne brûke foar sawol FTP as FTPS. De kliïnt moat eksplisyt befeilige gegevensoerdracht oanfreegje fan 'e tsjinner, en dan de fersiferingsmetoade goedkarre. As de kliïnt gjin feilige oerdracht freget, hat de FTPS-tsjinner it rjocht om de ûnbefeilige ferbining te behâlden of te sluten. In ûnderhannelingsmeganisme foar autentikaasje en gegevensfeiligens waard tafoege ûnder RFC 2228 dy't it nije FTP AUTH-kommando omfettet. Hoewol dizze standert net eksplisyt befeiligingsmeganismen definiearret, spesifisearret it wol dat in feilige ferbining moat wurde inisjearre troch de kliïnt mei it hjirboppe beskreaune algoritme. As feilige ferbiningen net wurde stipe troch de tsjinner, moat in flaterkoade fan 504 weromjûn wurde FTPS-kliïnten kinne ynformaasje krije oer de befeiligingsprotokollen dy't stipe wurde troch de tsjinner mei it FEAT-kommando. stipet. De meast foarkommende FTPS-kommando's binne AUTH TLS en AUTH SSL, dy't respektivelik TLS- en SSL-befeiliging leverje.

SFTP

SFTP (Secure File Transfer Protocol) is in protokol foar bestânferfier fan tapassingslaach dat boppe op in feilich kanaal rint. Net te betiizjen mei (Simple File Transfer Protocol), dy't deselde ôfkoarting hat. As FTPS gewoan in útwreiding fan FTP is, dan is SFTP in apart en net-relatearre protokol dat SSH (Secure Shell) as basis brûkt.

Secure Shell

It protokol waard ûntwikkele troch ien fan 'e IETF-groepen neamd Secsh. De wurkdokumintaasje foar it nije SFTP-protokol waard gjin offisjele standert, mar begon aktyf te brûken foar applikaasjeûntwikkeling. Dêrnei waarden seis ferzjes fan it protokol frijlitten. Lykwols, de stadichoan tanimmen fan funksjonaliteit dêryn late ta it feit dat op 14 augustus 2006 waard besletten om te stopjen wurkjen oan de ûntwikkeling fan it protokol fanwege it foltôgjen fan de wichtichste taak fan it projekt (ûntwikkeling fan SSH) en de gebrek oan genôch saakkundich nivo om troch te gean nei de ûntwikkeling fan in folweardich protokol foar bestânsysteem op ôfstân.

SSH is in netwurkprotokol wêrmei remote control fan it bestjoeringssysteem en tunneling fan TCP ferbinings (bygelyks, foar triem oerdracht). Fergelykber yn funksjonaliteit mei de Telnet- en rlogin-protokollen, mar, yn tsjinstelling ta harren, fersiferet it alle ferkear, ynklusyf oerstjoerde wachtwurden. SSH lit in kar meitsje fan ferskate fersiferingsalgoritmen. SSH-kliïnten en SSH-tsjinners binne beskikber foar de measte netwurkbestjoeringssystemen.

SSH lit jo hast alle oare netwurkprotokol feilich oerdrage yn in net befeilige omjouwing. Sa kinne jo net allinich op ôfstân wurkje op jo kompjûter fia de kommando-shell, mar ek in audiostream of fideo (bygelyks fan in webcam) oer in fersifere kanaal oerstjoere. SSH kin ek kompresje fan oerbrochte gegevens brûke foar folgjende fersifering, wat handich is, bygelyks foar it op ôfstân starten fan X WindowSystem-kliïnten.

De earste ferzje fan it protokol, SSH-1, waard yn 1995 ûntwikkele troch ûndersiker Tatu Ulönen fan de Helsinki University of Technology (Finlân). SSH-1 is skreaun om gruttere privacy te leverjen dan de rlogin-, telnet- en rsh-protokollen. Yn 1996 waard in feiliger ferzje fan it protokol, SSH-2, ûntwikkele, dy't ynkompatibel is mei SSH-1. It protokol krige noch mear populariteit, en yn 2000 hie it sawat twa miljoen brûkers. Op it stuit, de term "SSH" meastal betsjut SSH-2, omdat De earste ferzje fan it protokol wurdt no praktysk net brûkt fanwegen wichtige tekoarten. Yn 2006 waard it protokol troch de IETF-wurkgroep goedkard as in ynternetstandert.

D'r binne twa mienskiplike ymplemintaasjes fan SSH: privee kommersjele en frije iepen boarne. De fergese ymplemintaasje hjit OpenSSH. Tsjin 2006 brûkte 80% fan kompjûters op it ynternet OpenSSH. De proprietêre ymplemintaasje is ûntwikkele troch SSH Communications Security, in folslein eigendom fan Tectia Corporation, en is fergees foar net-kommersjeel gebrûk. Dizze ymplemintaasjes befetsje hast deselde set fan kommando's.

It SSH-2-protokol, yn tsjinstelling ta it telnet-protokol, is resistint foar ôflústerjende oanfallen fan ferkear ("snuffeljen"), mar is net resistint foar man-in-the-middle oanfallen. It SSH-2-protokol is ek resistint foar oanfallen fan sesjekaping, om't it ûnmooglik is om mei te dwaan of in al fêststelde sesje te kapjen.

Om man-in-the-middle oanfallen te foarkommen by it ferbinen mei in host wêrfan de kaai noch net bekend is oan de kliïnt, toant de clientsoftware de brûker in "kaaifingerprint". It is oan te rieden om de "kaai-snapshot" foarsichtich te kontrolearjen werjûn troch de kliïntsoftware mei de tsjinner-kaai-snapshot, by foarkar krigen fia betroubere kommunikaasjekanalen of persoanlik.

SSH-stipe is beskikber op alle UNIX-like systemen, en de measte hawwe in ssh-kliïnt en tsjinner as standert nutsbedriuwen. D'r binne in protte ymplemintaasjes fan SSH-kliïnten foar net-UNIX OS's. It protokol krige grutte populariteit nei de wiidfersprate ûntwikkeling fan ferkearsanalysators en metoaden foar it fersteuren fan de wurking fan lokale netwurken, as in alternative oplossing foar it ûnfeilige Telnet-protokol foar it behearen fan wichtige knopen.

Kommunikaasje mei help fan SSH

Om fia SSH te wurkjen, hawwe jo in SSH-tsjinner en in SSH-kliïnt nedich. De tsjinner harket nei ferbiningen fan kliïntmasines en, as in ferbining is ta stân kommen, fiert autentikaasje, wêrnei't it begjint mei it betsjinjen fan 'e kliïnt. De kliïnt wurdt brûkt om oan te melden by in masine op ôfstân en kommando's út te fieren.

SFTP- en FTPS-protokollen

Ferliking mei FTPS

It wichtichste ding dat SFTP ûnderskiedt fan standert FTP en FTPS is dat SFTP absolút alle kommando's, brûkersnammen, wachtwurden en oare fertroulike ynformaasje fersiferet.

Sawol FTPS- as SFTP-protokollen brûke in kombinaasje fan asymmetryske algoritmen (RSA, DSA), symmetryske algoritmen (DES/3DES, AES, Twhofish, ensfh.), En ek in kaai-útwikselalgoritme. Foar autentikaasje brûkt FTPS (of om krekter te wêzen, SSL/TLS oer FTP) X.509-sertifikaten, wylst SFTP (SSH-protokol) SSH-kaaien brûkt.

X.509-sertifikaten befetsje in iepenbiere kaai en wat ynformaasje oer it sertifikaat fan de eigner. Dizze ynformaasje lit, oan 'e oare kant, de yntegriteit fan it sertifikaat sels, de autentisiteit en de eigner fan it sertifikaat ferifiearje. X.509 sertifikaten hawwe in oerienkommende privee kaai, dy't meastal opslein apart fan it sertifikaat foar feiligens redenen.

De SSH-kaai befettet allinich de iepenbiere kaai (de oerienkommende priveekaai wurdt apart bewarre). It befettet gjin ynformaasje oer de eigner fan 'e kaai. Guon SSH-ymplemintaasjes brûke X.509-sertifikaten foar autentikaasje, mar se ferifiearje net eins de heule sertifikaatketen - allinich de iepenbiere kaai wurdt brûkt (wat sa'n autentikaasje ûnfolslein makket).

konklúzje

It FTP-protokol spilet sûnder mis noch in wichtige rol yn 'e opslach en distribúsje fan ynformaasje op it netwurk nettsjinsteande syn earbiedige leeftyd. It is in handich, multyfunksjoneel en standerdisearre protokol. Op basis dêrfan binne in protte triemargiven boud, sûnder dat technysk wurk net sa effektyf wêze soe. Dêrneist is it maklik om te setten, en server- en kliïntprogramma's besteane foar hast alle aktuele en net sa aktuele platfoarms.

Op syn beurt oplosse har beskerme ferzjes it probleem fan fertroulikens fan bewarre en oerdroegen gegevens yn 'e moderne wrâld. Beide nije protokollen hawwe har foar- en neidielen en tsjinje wat ferskillende rollen. Yn dy gebieten dêr't in triem argyf nedich is, is it better om FTPS te brûken, benammen as klassike FTP dêr al earder brûkt is. SFTP is minder gewoan troch syn ynkompatibiliteit mei it âlde protokol, mar it is feiliger en hat mear funksjonaliteit, om't it diel útmakket fan it remote management systeem.

List fan boarnen

Boarne: www.habr.com

Add a comment