SFTP eta FTPS protokoloak

hitzaurrea

Duela astebete, izenburuan adierazitako gaiari buruzko saiakera bat idatzi nuen eta sarean, demagun, horrenbeste informazio kognitiborik ez dagoela aurre egin nuen. Gehienetan gertakari lehorrak eta konfigurazio argibideak. Horregatik, testua apur bat zuzentzea eta artikulu gisa argitaratzea erabaki nuen.

Zer da FTP

FTP (File Transfer Protocol) fitxategiak sare batean transferitzeko protokoloa da. Ethernet oinarrizko protokoloetako bat da. 1971n agertu zen eta hasieran DARPA sareetan lan egin zuen. Momentu honetan, HTTP bezala, fitxategien transferentzia TCP/IP (Transmission Control Protocol/Internet Protocol) protokolo multzo batek osatutako eredu batean oinarritzen da. RFC 959-n definitua.

Protokoloak honako hau zehazten du:

  • Akatsak nola egiaztatu
  • Datuak biltzeko metodoa (ontziratzea erabiltzen bada)
  • Nola adierazten du bidaltzen duen gailuak mezua amaitu duela
  • Nola adierazten duen gailu hartzaileak mezua jaso duela

Bezeroaren eta zerbitzariaren arteko elkarrekintza

Ikus ditzagun FTP funtzionamenduan gertatzen diren prozesuak. Konexioa erabiltzailearen protokolo-interpretatzaileak hasieratzen du. Trukea TELNET estandarreko kontrol kanalaren bidez kontrolatzen da. FTP komandoak erabiltzailearen protokolo-interpretatzaileak sortzen ditu eta zerbitzariari pasatzen zaizkio. Zerbitzariaren erantzunak ere kontrol kanalaren bidez bidaltzen zaizkio erabiltzaileari. Oro har, erabiltzaileak zerbitzariaren protokoloaren interpretearekin eta erabiltzailearen interpretearekin ez beste bitartekoekin harremanetan jartzeko gaitasuna du.

FTP-ren ezaugarri nagusia konexio bikoitza erabiltzen duela da. Horietako bat zerbitzariari komandoak bidaltzeko erabiltzen da eta lehenespenez TCP 21 atakan gertatzen da, alda daitekeena. Kontrol-konexioa existitzen da bezeroa zerbitzariarekin komunikatzen den bitartean. Kontrol-kanalak irekita egon behar du datuak makinen artean transferitzean. Itxita badago, datu-transferentzia gelditzen da. Bigarrenaren bidez datuen transferentzia zuzena dago. Bezeroaren eta zerbitzariaren artean fitxategi bat transferitzen den bakoitzean irekitzen da. Hainbat fitxategi aldi berean transferitzen badira, transferentzia kanal bereizi bat irekiko da horietako bakoitzarentzat.

FTP modu aktiboan edo pasiboan funtziona dezake, eta horrek konexioa nola ezartzen den zehazten du. Modu aktiboan, bezeroak kontrol TCP konexio bat sortzen du zerbitzariarekin eta bere IP helbidea eta bezeroaren ataka zenbaki arbitrario bat zerbitzariari bidaltzen dizkio, ondoren zerbitzariak helbide eta ataka zenbaki honekin TCP konexio bat abiarazi arte itxarongo du. Bezeroa suebaki baten atzean badago eta ezin badu sarrerako TCP konexiorik onartu, modu pasiboa erabil daiteke. Modu honetan, bezeroak kontrol-fluxu bat erabiltzen du zerbitzariari PASV komando bat bidaltzeko, eta, ondoren, zerbitzaritik bere IP helbidea eta ataka zenbakia jasotzen ditu, bezeroak bere ataka arbitrariotik datu-korrontea irekitzeko erabiltzen dituena.

Baliteke datuak hirugarren makina batera transferitzea. Kasu honetan, erabiltzaileak bi zerbitzari dituen kontrol-kanal bat antolatzen du eta haien artean datu-kanal zuzena antolatzen du. Kontrol komandoak erabiltzailearengandik pasatzen dira, eta datuak zuzenean zerbitzarien artean doaz.

Datuak sare baten bidez transmititzean, datuen lau irudikapen erabil daitezke:

  • ASCII - testuetarako erabiltzen da. Datuak, behar izanez gero, bidaltzen duen ostalariaren karaktereen irudikapenetik "XNUMX biteko ASCII"ra bihurtzen dira, eta (berriro, beharrezkoa bada) ostalari hartzailearen karaktereen irudikapenera, transmisioa baino lehen. Bereziki, lerro-jarioen karaktereak aldatzen dira. Ondorioz, modu hau ez da egokia testu arrunta baino gehiago duten fitxategietarako.
  • Binary Mode - Bidaltzen duen gailuak fitxategi bakoitza bytez byte bidaltzen du, eta hartzaileak byte-jarioa gordetzen du jasotzen duenean. Modu honen laguntza gomendatu da FTP inplementazio guztietan.
  • EBCDIC - EBCDIC kodeketa ostalarien artean testu arrunta transferitzeko erabiltzen da. Bestela, modu hau ASCII moduaren antzekoa da.
  • Modu lokala - ezarpen berdinak dituzten bi ordenagailuei datuak jatorrizko formatuan bidaltzeko aukera ematen die ASCIIra bihurtu gabe.

Datuen transferentzia hiru modutan egin daiteke:

  • Streaming - datuak etengabeko korronte gisa bidaltzen dira, FTP edozein prozesatzetik askatuz. Horren ordez, prozesaketa guztia TCPk egiten du. Fitxategiaren amaierako adierazlea ez da beharrezkoa, datuak erregistroetan banatzeko izan ezik.
  • Bloke modua - FTP-k datuak hainbat bloketan banatzen ditu (goiburu-blokea, byte kopurua, datu-eremua) eta gero TCPra transferitzen ditu.
  • Konpresio modua - datuak algoritmo bakar baten bidez konprimitzen dira (normalean exekuzio-luzera kodetzea).

FTP zerbitzaria fitxategiak transferitzeko protokoloa erabiltzeko gaitasuna ematen duen zerbitzaria da. Web zerbitzari arruntetatik bereizten duten ezaugarri batzuk ditu:

  • Erabiltzaileen autentifikazioa behar da
  • Eragiketa guztiak uneko saioaren barruan egiten dira
  • Fitxategi-sistemarekin hainbat ekintza egiteko gaitasuna
  • Konexio bakoitzerako kanal bereizia erabiltzen da

FTP bezeroa FTP bidez urruneko zerbitzari batera konektatzeko eta fitxategi-sistemako elementuekin beharrezko ekintzak egiteko aukera ematen duen programa da. Bezeroa oso ondo izan liteke arakatzailea, zeinaren helbide-barran urruneko zerbitzariko direktorio edo fitxategi zehatz baterako bidea den helbide bat sartu beharko litzateke, URLaren fluxu-diagrama orokorraren arabera:

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

Hala ere, testuinguru honetan web-arakatzailea erabiltzeak interesgarri diren fitxategiak ikusteko edo deskargatzeko aukera emango dizu soilik. FTPren abantaila guztiak aprobetxatzeko, software espezializatua erabili behar da bezero gisa.

FTP autentifikazioak erabiltzaile-izen/pasahitz eskema bat erabiltzen du sarbidea emateko. Erabiltzaile-izena zerbitzariari bidaltzen zaio USER komandoarekin, eta pasahitza PASS komandoarekin. Bezeroak emandako informazioa zerbitzariak onartzen badu, zerbitzariak gonbidapena bidaliko dio bezeroari eta saioa hasiko da. Erabiltzaileek, zerbitzariak eginbide hau onartzen badu, saioa hasi dezakete kredentzialak eman gabe, baina zerbitzariak sarbide mugatua soilik eman diezaieke horrelako saioetarako.

FTP zerbitzua eskaintzen duen ostalari batek FTP sarbide anonimoa eman dezake. Erabiltzaileak normalean "anonimoa" erabiltzen du (FTP zerbitzari batzuetan maiuskulak eta minuskulak bereiztea) erabiltzaile-izen gisa. Erabiltzaileei normalean pasahitz baten ordez helbide elektronikoa emateko eskatzen zaien arren, ez da egiaztatzerik egiten. Software-eguneratzeak eskaintzen dituzten FTP ostalari askok sarbide anonimoa onartzen dute.

protokolo-eskema

FTP konexio batean bezero-zerbitzariaren elkarrekintza honela ikus daiteke:

SFTP eta FTPS protokoloak

FTP segurua

FTP ez zen jatorriz segurutzat pentsatu, hainbat instalazio eta erakunde militarren arteko komunikaziorako pentsatua baita. Baina Interneten garapenarekin eta hedapenarekin, baimenik gabe sartzeko arriskua askotan handitu da. Zerbitzariak era askotako erasoetatik babesteko beharra zegoen. 1999ko maiatzean, RFC 2577ren egileek ahultasunak arazo-zerrenda honetara murriztu zituzten:

  • Errebote erasoak
  • Faltsio-erasoak
  • Indar gordinaren erasoak
  • Pakete harrapaketa, sniffing
  • Portuko lapurreta

FTP arruntak ez du datu enkriptatutako eran transferitzeko gaitasunik, eta, ondorioz, erabiltzaile-izenak, pasahitzak, komandoak eta bestelako informazioa, nahi izanez gero, erraz atzeman ditzakete intrusitzaileek. Arazo honen ohiko irtenbidea protokolo zaurgarriaren (FTPS) bertsio "seguruak", TLS seguruak erabiltzea da, edo beste protokolo seguruago bat, SFTP/SCP adibidez, Secure Shell protokoloaren inplementazio gehienekin hornitua.

FTPS

FTPS (FTP + SSL) fitxategiak transferitzeko protokolo estandarraren luzapena da, bere oinarrizko funtzionalitateari SSL (Secure Sockets Layer) protokoloa erabiliz enkriptatutako saioak sortzea gehitzen diona. Gaur egun, babesa TLS (Transport Layer Security - garraio-geruzaren babesa) bere pareko aurreratuagoak eskaintzen du.

SSL

SSL protokoloa Netscape Communications Corporation-ek proposatu zuen 1996an, Interneteko konexioen segurtasuna eta pribatutasuna bermatzeko. Protokoloak bezero eta zerbitzarien autentifikazioa onartzen du (autentifikazioa), aplikazioetatik independentea da eta HTTP, FTP eta Telnet protokoloetarako gardena da.

SSL Handshake protokoloak bi urrats ditu: zerbitzariaren autentifikazioa eta aukerako bezeroaren autentifikazioa. Lehenengo fasean, zerbitzariak bere ziurtagiria eta enkriptatze-parametroak bidaltzen ditu bezeroaren eskaerari erantzunez. Ondoren, bezeroak gako nagusi bat sortzen du, zerbitzariaren gako publikoarekin zifratu eta zerbitzariari bidaltzen dio. Zerbitzariak gako nagusia deszifratzen du bere gako pribatuarekin eta bere burua autentifikatzen du bezeroaren aurrean, bezeroaren gako nagusiak autentifikatutako mezu bat itzuliz.

Ondorengo datuak gako nagusi honetatik eratorritako gakoekin zifratzen eta autentifikatzen dira. Bigarren urrats batean, aukerakoa, zerbitzariak eskaera bat bidaltzen dio bezeroari, eta bezeroak zerbitzarian autentifikatzen du eskaera bere sinadura digitalarekin eta gako publikoko ziurtagiri batekin itzuliz.

SSL-k hainbat algoritmo kriptografiko onartzen ditu. RSA gako publikoko kriptosistema erabiltzen da konexioa ezartzean. Gako-trukearen ondoren, hainbat zifraketa erabiltzen dira: RC2, RC4, IDEA, DES eta TripleDES. MD5 ere erabiltzen du, mezuen laburpena sortzeko algoritmoa. Gako publikoaren ziurtagirien sintaxia X.509-n deskribatzen da.

SSLren abantaila garrantzitsuenetako bat bere software eta plataformaren independentzia osoa da. Protokoloa eramangarritasunaren printzipioetan garatzen da, eta bere eraikuntzaren ideologia ez da erabiltzen den aplikazioen araberakoa. Horrez gain, garrantzitsua da beste protokolo batzuk SSL protokoloaren gainean gardentasunez gainjartzea; helburuko informazio-fluxuen babes-maila gehiago areagotzeko, edo SSL-ren gaitasun kriptografikoak beste zeregin zehatz batzuetara egokitzeko.

SSL konexioa

SFTP eta FTPS protokoloak

SSL-k eskaintzen duen kanal seguruak hiru propietate nagusi ditu:

  • Kanala pribatua da. Enkriptatzea mezu guztietan erabiltzen da gako sekretua zehazteko balio duen elkarrizketa soil baten ondoren.
  • Kanala autentifikatu da. Elkarrizketa-koadroaren zerbitzariaren aldea autentifikatu egiten da beti, eta bezeroaren aldea, berriz, aukeran.
  • Kanala fidagarria da. Mezuen garraioak osotasunaren egiaztapena barne hartzen du (MAC barne).

FTPSren ezaugarriak

Segurtasun metodo desberdinak erabiltzen dituzten bi FTPS inplementazio daude:

  • Metodo inplizituak datuak bidali aurretik SSL protokolo estandarra erabiltzean datza, eta horrek, aldi berean, FTP bezero eta zerbitzari arruntekin bateragarritasuna hausten du. FTPS onartzen ez duten bezeroekin atzerako bateragarritasuna lortzeko, TCP 990 ataka erabiltzen da kontrol-konexiorako eta 989 datu-transferentziarako. Honek 21 ataka estandarra gordetzen du FTP protokolorako. Metodo hau zaharkituta geratu da.
  • Esplizitua - Askoz erosoagoa, FTP komando estandarrak erabiltzen baititu, baina erantzunean datuak zifratzen ditu, eta horrek kontrol-konexio bera erabiltzeko aukera ematen du bai FTP bai FTPSrako. Bezeroak zerbitzariari datu-transferentzia seguru bat eskatu behar dio esplizituki, eta gero enkriptatzeko metodoa onartu. Bezeroak ez badu transferentzia segururik eskatzen, FTPS zerbitzaria aske dago seguru gabeko konexioa mantentzeko edo ixteko. Identitatea negoziatzeko eta datuen segurtasunerako mekanismo bat gehitu zen RFC 2228-ren arabera, FTP AUTH komando berri bat barne. Estandar honek segurtasun-mekanismoak esplizituki definitzen ez dituen arren, bezeroak konexio seguru bat abiarazi behar duela zehazten du goian deskribatutako algoritmoa erabiliz. Zerbitzariak konexio seguruak onartzen ez baditu, 504 errore-kode bat itzuli beharko litzateke. FTPS bezeroek zerbitzariak onartzen dituen segurtasun-protokoloei buruzko informazioa lor dezakete FEAT komandoa erabiliz, hala ere, zerbitzariak ez du zer segurtasun-maila duen agerrarazi behar. euskarriak. FTPS komando ohikoenak AUTH TLS eta AUTH SSL dira, TLS eta SSL segurtasuna ematen dutenak, hurrenez hurren.

SFTP

SFTP (Secure File Transfer Protocol) kanal seguru baten gainean exekutatzen den aplikazio-geruzako fitxategi transferitzeko protokoloa da. Ez da nahastu behar (Simple File Transfer Protocol), laburdura bera duena. FTPS FTP-ren luzapena besterik ez bada, SFTP protokolo bereizi eta erlaziorik gabeko bat da, SSH (Secure Shell) oinarri gisa erabiltzen duena.

Shell segurua

Secsh izeneko IETF taldeetako batek garatu zuen protokoloa. SFTP protokolo berriaren lan-dokumentazioa ez zen estandar ofizial bihurtu, baina aplikazioak garatzeko aktiboki erabiltzen hasi zen. Ondoren, protokoloaren sei bertsio kaleratu ziren. Hala ere, funtzionalitatea pixkanaka handitzeak 14ko abuztuaren 2006an proiektuaren zeregin nagusia betetzearekin lotuta (SSHren garapena) protokoloaren garapenean lan egiteari uztea erabaki zuen eta urruneko fitxategi-sistemako protokolo osoa garatzeko behar adinako aditu-mailarik ez izatea.

SSH sare-protokolo bat da, sistema eragilea urrunetik kontrolatzeko eta TCP konexioak tunelatzeko aukera ematen duena (adibidez, fitxategiak transferitzeko). Telnet eta rlogin protokoloen antzeko funtzionalitatean, baina horiek ez bezala, trafiko guztia enkriptatzen du, transmititutako pasahitzak barne. SSH-k enkriptazio-algoritmo desberdinak aukeratzen ditu. SSH bezeroak eta SSH zerbitzariak sareko sistema eragile gehienetarako eskuragarri daude.

SSH-k sareko beste edozein protokolo segurtasunez transferitzeko aukera ematen du ingurune seguru batean. Horrela, ordenagailuan urrunetik lan egin dezakezu komando-shell baten bidez, baizik eta audio-korronte edo bideo bat ere transmititu enkriptatutako kanal baten bidez (adibidez, webcam batetik). SSH-k transmititutako datuen konpresioa ere erabil dezake ondorengo enkriptatzeko, eta hori komenigarria da, adibidez, X WindowSystem bezeroak urrutiko abiarazteko.

Protokoloaren lehen bertsioa, SSH-1, 1995ean garatu zuen Helsinkiko Teknologia Unibertsitateko (Finlandia) Tatu Ulyonen ikertzaileak. SSH-1 rlogin, telnet eta rsh protokoloak baino pribatuagoa izateko idatzi zen. 1996an, protokoloaren bertsio seguruagoa garatu zen, SSH-2, SSH-1ekin bateraezina dena. Protokoloak are ospe handiagoa lortu zuen, eta 2000. urterako bi milioi erabiltzaile inguru zituen. Gaur egun, "SSH" terminoak normalean SSH-2 aipatzen du, zeren. protokoloaren lehen bertsioa, gabezia nabarmenak direla eta, gaur egun ia ez da erabiltzen. 2006an, IETF lantaldeak protokoloa onartu zuen Interneteko estandar gisa.

SSHren bi inplementazio ohikoak dira: merkataritza pribatua eta doakoa. Doako inplementazioa OpenSSH deitzen da. 2006rako, Interneteko ordenagailuen % 80k OpenSSH erabiltzen zuten. Inplementazio pribatua SSH Communications Security-k garatzen ari da, Tectia Corporation-en guztizko filiala, eta doakoa da erabilera ez-komertzialerako. Inplementazio hauek ia argibide multzo bera dute.

SSH-2 protokoloa, telnet protokoloa ez bezala, erresistentea da trafikoa sniffing erasoekiko, baina ez da erresistente gizon-erdiko erasoekiko. SSH-2 protokoloa ere erresistentea da erasoen aurrean erdian sartuz (ingelesezko sessionhijacking), ezinezkoa baita jada ezarritako saio batean sartzea edo atzematea.

Erdiko gizonen erasoak saihesteko, bezeroak oraindik gakoa ezagutzen ez duen ostalari batera konektatzean, bezeroaren softwareak "gako-marka" bat erakusten dio erabiltzaileari (ingelesezko keyfingerprint). Bezeroaren softwareak erakusten duen "gako-moldea" arretaz egiaztatzea gomendatzen da zerbitzariaren gakoaren argazkiarekin, ahal izanez gero komunikazio-kanal fidagarrien bidez edo pertsonalki lortuta.

SSH euskarria UNIX antzeko sistema guztietan ezartzen da, eta gehienek ssh bezero eta zerbitzari bat dute utilitate estandar gisa. SSH bezeroen inplementazio asko daude UNIX ez diren sistema eragileetarako ere. Protokoloak ospe handia lortu zuen trafiko analizatzaileen eta sare lokalak eteteko metodoen garapen zabalaren ostean, nodo garrantzitsuak kudeatzeko Telnet protokolo seguruaren alternatiba gisa.

SSH erabiliz komunikazioa

SSH-k SSH zerbitzari bat eta SSH bezero bat behar ditu. Zerbitzariak bezero-makinen konexioak entzuten ditu eta, konexioa ezartzen denean, autentifikazioa egiten du, eta ondoren bezeroari zerbitzua ematen hasten da. Bezeroa urruneko makina batean saioa hasteko eta komandoak exekutatzeko erabiltzen da.

SFTP eta FTPS protokoloak

FTPSarekin alderatzea

SFTP FTP eta FTPS estandarretik bereizten duen gauza nagusia da SFTP-k komando, erabiltzaile-izen, pasahitzak eta isilpeko beste informazio guztiak zifratzen dituela.

FTPS zein SFTP protokoloek algoritmo asimetrikoen (RSA, DSA), algoritmo simetrikoen (DES/3DES, AES, Twhofish etab.) eta gakoen truke algoritmoaren konbinazioa erabiltzen dute. Autentifikaziorako, FTPS (edo zehatzago esateko, SSL/TLS FTP protokoloaren bidez) X.509 ziurtagiriak erabiltzen ditu, eta SFTP (SSH protokoloa) SSH gakoak erabiltzen ditu.

X.509 ziurtagiriek gako publiko bat eta jabearen ziurtagiriari buruzko informazio batzuk dituzte. Informazio horrek, bestalde, egiaztatzeko aukera ematen du ziurtagiriaren beraren osotasuna, benetakotasuna eta ziurtagiriaren jabea. X.509 ziurtagiri batek dagokion gako pribatu bat du, normalean ziurtagiritik bereizita gordetzen dena segurtasun arrazoiengatik.

SSH gakoak gako publikoa baino ez dauka (dagokion gako pribatua bereiz gordetzen da). Ez du giltzaren jabeari buruzko informaziorik. SSH inplementazio batzuek X.509 ziurtagiriak erabiltzen dituzte autentifikaziorako, baina ez dute egiaztatzen ziurtagiri-kate osoa; gako publikoa bakarrik erabiltzen da (horrek autentifikazio hori osatu gabe bihurtzen du).

Ondorioa

FTP protokoloak, zalantzarik gabe, oraindik ere zeregin garrantzitsua betetzen du sarean informazioa gordetzeko eta banatzeko gaian, adin agurgarria izan arren. Protokolo erosoa, funtzio anitzeko eta estandarizatua da. Fitxategi artxibo asko bere oinarrian eraiki dira, eta horiek gabe lan teknikoa ez litzateke hain eraginkorra izango. Horrez gain, konfiguratzeko erraza da, eta zerbitzari-programak eta bezeroak existitzen dira ia plataforma garrantzitsu eta ez hain guztietan.

Bere bertsio seguruek mundu modernoan gordetako eta transmititutako datuen konfidentzialtasunaren arazoa konpontzen dute. Bi protokolo berriek alde onak eta txarrak dituzte eta rol apur bat desberdinak betetzen dituzte. Fitxategien artxiboa behar den eremuetan, hobe da FTPS erabiltzea, batez ere aurretik FTP klasikoa dagoeneko erabili bada. SFTP ez da hain ohikoa protokolo zaharrarekin bateraezintasunagatik, baina seguruagoa da eta funtzionaltasun gehiago du, urruneko kontrol sistemaren parte baita.

Iturrien zerrenda

Iturria: www.habr.com

Gehitu iruzkin berria