SFTP és FTPS protokollok

Előszó

Éppen egy hete írtam egy esszét a címben megjelölt témában, és szembesültem azzal a ténnyel, hogy mondjuk az interneten nincs annyi oktatási információ. Többnyire száraz tények és beállítási utasítások. Ezért úgy döntöttem, hogy kissé javítom a szöveget, és cikkként közzéteszem.

Mi az az FTP

Az FTP (File Transfer Protocol) a fájlok hálózaton keresztüli átvitelére szolgáló protokoll. Ez az egyik alapvető Ethernet protokoll. 1971-ben jelent meg, és kezdetben a DARPA hálózatokban dolgozott. Jelenleg a HTTP-hez hasonlóan a fájlátvitel egy TCP/IP (Transmission Control Protocol/Internet Protocol) protokollkészletből álló modellen alapul. RFC 959 határozza meg.

A protokoll a következőket határozza meg:

  • Hogyan történik a hibaellenőrzés?
  • Az adatok csomagolásának módja (ha csomagolást használnak)
  • Hogyan jelzi a küldő eszköz, hogy befejezte az üzenetet?
  • Hogyan jelzi a fogadó eszköz, hogy üzenetet kapott?

Kommunikáció a kliens és a szerver között

Nézzük meg közelebbről az FTP működése során fellépő folyamatokat. A kapcsolatot a felhasználó protokoll értelmezője inicializálja. A központ vezérlése a TELNET szabvány szerinti vezérlőcsatornán keresztül történik. Az FTP-parancsokat a felhasználó protokoll értelmezője állítja elő, és elküldi a szervernek. A szerver válaszait a vezérlőcsatornán keresztül is elküldi a felhasználónak. Általánosságban elmondható, hogy a felhasználónak lehetősége van arra, hogy kapcsolatot létesítsen a szerver protokoll értelmezőjével és a felhasználó tolmácsától eltérő módon.

Az FTP fő jellemzője, hogy kettős kapcsolatot használ. Ezek egyike parancsok küldésére szolgál a szervernek, és alapértelmezés szerint a TCP 21-es portján keresztül történik, amely módosítható. A vezérlő kapcsolat addig létezik, amíg az ügyfél kommunikál a szerverrel. A gépek közötti adatátvitel során a vezérlőcsatornának nyitva kell lennie. Ha zárva van, az adatátvitel leáll. A másodikon keresztül közvetlen adatátvitel történik. Minden alkalommal megnyílik, amikor fájlátvitel történik a kliens és a szerver között. Ha több fájl egyidejű átvitele történik, mindegyik megnyitja a saját átviteli csatornáját.

Az FTP működhet aktív vagy passzív módban, amelyek választása határozza meg a kapcsolat létrejöttét. Aktív módban a kliens TCP-vezérlő kapcsolatot hoz létre a szerverrel, és elküldi az IP-címét és egy tetszőleges kliens portszámát a szervernek, majd megvárja, amíg a szerver ezzel a címmel és portszámmal TCP-kapcsolatot indít. Ha az ügyfél tűzfal mögött van, és nem tud fogadni bejövő TCP-kapcsolatot, akkor passzív mód használható. Ebben a módban az ügyfél a vezérlőfolyamat segítségével PASV-parancsot küld a szervernek, majd megkapja a szervertől az IP-címét és a portszámát, amelyek segítségével az ügyfél adatfolyamot nyit meg tetszőleges portjáról.

Lehetséges, hogy az adatokat egy harmadik gépre továbbíthatják. Ebben az esetben a felhasználó egy vezérlőcsatornát szervez két szerverrel, és közvetlen adatcsatornát szervez közöttük. A vezérlőparancsok átmennek a felhasználón, az adatok pedig közvetlenül a szerverek között.

Hálózaton keresztüli adatátvitel során négy adatábrázolás használható:

  • ASCII – szöveghez használatos. Az adatokat szükség esetén a küldő gazdagépen lévő karakterábrázolásból "nyolc bites ASCII"-vé alakítják át az átvitel előtt, és (ismét, ha szükséges) a fogadó gazdagépen lévő karakterábrázolásra. Különösen az újsor karakterei módosulnak. Ennek eredményeként ez a mód nem alkalmas olyan fájlokhoz, amelyek nem csak egyszerű szöveget tartalmaznak.
  • Bináris mód - a küldő eszköz minden fájlt bájtonként küld el, és a fogadó fél tárolja a bájtfolyamot a fogadáskor. Ennek a módnak a támogatása minden FTP-megvalósításhoz ajánlott.
  • EBCDIC – egyszerű szöveg átvitelére szolgál a gazdagépek között EBCDIC kódolásban. Egyébként ez az üzemmód hasonló az ASCII módhoz.
  • Helyi mód – lehetővé teszi két azonos beállítású számítógép számára, hogy saját formátumukban küldjön adatokat anélkül, hogy ASCII-re konvertálnának.

Az adatátvitel a három mód bármelyikében hajtható végre:

  • Stream mód - az adatok folyamatos adatfolyamként kerülnek elküldésre, megszabadítva az FTP-t a feldolgozástól. Ehelyett az összes feldolgozást a TCP végzi. A fájl vége jelző nem szükséges, kivéve az adatok rekordokba történő szétválasztását.
  • Blokk mód - Az FTP több blokkra bontja az adatokat (fejléc blokk, bájtok száma, adatmező), majd továbbítja a TCP-nek.
  • Tömörítési mód – az adatok tömörítése egyetlen algoritmussal történik (általában a futási hosszok kódolásával).

Az FTP-kiszolgáló egy olyan kiszolgáló, amely lehetővé teszi a fájlátviteli protokoll használatát. Vannak bizonyos jellemzői, amelyek megkülönböztetik a hagyományos webszerverektől:

  • Felhasználó hitelesítés szükséges
  • Minden művelet az aktuális munkameneten belül történik
  • Különféle műveletek végrehajtása a fájlrendszerrel
  • Minden csatlakozáshoz külön csatorna használatos

Az FTP-kliens egy olyan program, amely lehetővé teszi, hogy FTP-n keresztül csatlakozzon egy távoli kiszolgálóhoz, és elvégezze rajta a szükséges műveleteket a fájlrendszer elemeivel. A kliens lehet egy böngésző, amelynek címsorába be kell írni a címet, amely egy adott könyvtár vagy fájl elérési útja a távoli szerveren, az általános URL blokkdiagramnak megfelelően:

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

A webböngésző használata azonban ebben az összefüggésben csak a kívánt fájlok megtekintését vagy letöltését teszi lehetővé. Az FTP minden előnyének teljes körű kihasználása érdekében speciális szoftvert kell használnia kliensként.

Az FTP-hitelesítés felhasználónév/jelszó sémát használ a hozzáférés biztosításához. A felhasználónév a USER paranccsal, a jelszó pedig a PASS paranccsal kerül elküldésre a szervernek. Ha a kiszolgáló elfogadja a kliens által megadott információkat, akkor a szerver meghívót küld a kliensnek, és megkezdődik a munkamenet. Ha a szerver támogatja ezt a funkciót, a felhasználók hitelesítő adatok megadása nélkül is bejelentkezhetnek, de a szerver csak korlátozott hozzáférést biztosít az ilyen munkamenetekhez.

Az FTP szolgáltatást nyújtó gazdagép anonim FTP hozzáférést tud biztosítani. A felhasználók általában "anonim" felhasználónévvel jelentkeznek be (egyes FTP-szervereken megkülönböztetik a kis- és nagybetűket). Bár a felhasználókat általában az e-mail címük megadására kérik jelszó helyett, valójában nem történik ellenőrzés. Számos szoftverfrissítést biztosító FTP-gazda támogatja az anonim hozzáférést.

Protokoll diagram

A kliens-szerver interakció az FTP kapcsolat során a következőképpen ábrázolható:

SFTP és FTPS protokollok

Biztonságos FTP

Az FTP-t eredetileg nem biztonságosnak szánták, mivel több katonai létesítmény és ügynökség közötti kommunikációra szánták. De az internet fejlődésével és terjedésével sokszorosára nőtt a jogosulatlan hozzáférés veszélye. Szükség volt a szerverek védelmére a különféle típusú támadásokkal szemben. 1999 májusában az RFC 2577 szerzői a következő listában foglalták össze a biztonsági réseket:

  • Rejtett támadások (pattanó támadások)
  • Hamis támadások
  • Brutális erőszakos támadások
  • Csomagfogás, szippantás
  • Kikötőlopás

A normál FTP nem képes titkosított formában továbbítani az adatokat, aminek következtében a felhasználóneveket, jelszavakat, parancsokat és egyéb információkat könnyen és könnyen elfoghatják a támadók. A probléma szokásos megoldása a sebezhető protokoll (FTPS) "biztonságos", TLS-védett változatának vagy más, biztonságosabb protokollnak, például az SFTP/SCP-nek a használata, amelyet a legtöbb Secure Shell protokoll megvalósítása tartalmaz.

FTPS

Az FTPS (FTP + SSL) a szabványos fájlátviteli protokoll kiterjesztése, amely alapfunkcióit kiegészíti az SSL (Secure Sockets Layer) protokoll használatával titkosított munkamenetek létrehozásával. Ma a védelmet a fejlettebb analóg TLS (Transport Layer Security) biztosítja.

SSL

Az SSL protokollt a Netscape Communications javasolta 1996-ban, hogy biztosítsa az internetkapcsolatok biztonságát és titkosságát. A protokoll támogatja a kliens és a szerver hitelesítését, alkalmazásfüggetlen, és transzparens a HTTP, FTP és Telnet protokollok számára.

Az SSL Handshake protokoll két szakaszból áll: a szerver hitelesítésből és az opcionális kliens hitelesítésből. Az első szakaszban a szerver a kliens kérésére a tanúsítvány és a titkosítási paraméterek elküldésével válaszol. A kliens ezután generál egy mesterkulcsot, titkosítja azt a szerver nyilvános kulcsával, és elküldi a szervernek. A szerver visszafejti a mesterkulcsot a privát kulcsával, és az ügyfél főkulcsával hitelesített üzenet visszaküldésével hitelesíti magát az ügyfél számára.

A későbbi adatok titkosítása és hitelesítése a főkulcsból származó kulcsokkal történik. A második lépésben, amely nem kötelező, a szerver kérést küld a kliensnek, a kliens pedig a kérést saját digitális aláírásával és nyilvános kulcsú tanúsítvánnyal visszaadva hitelesíti magát a szerver felé.

Az SSL számos kriptográfiai algoritmust támogat. A kommunikáció kialakítása során az RSA nyilvános kulcsú kriptorendszert használjuk. A kulcscsere után sokféle titkosítást használnak: RC2, RC4, IDEA, DES és TripleDES. Az MD5 is használatos - egy algoritmus az üzenet kivonat létrehozásához. A nyilvános kulcsú tanúsítványok szintaxisát az X.509 írja le.

Az SSL egyik fontos előnye a teljes szoftver-platform függetlenség. A protokollt a hordozhatóság elvei alapján fejlesztették ki, felépítésének ideológiája nem függ attól, hogy milyen alkalmazásokban használják. Ezen túlmenően az is fontos, hogy az SSL-protokollra átlátszó módon más protokollokat is lehessen fedni; vagy a cél információáramlások védettségi fokának további növelése érdekében, vagy az SSL kriptográfiai képességeinek adaptálása valamilyen más, jól meghatározott feladathoz.

SSL kapcsolat

SFTP és FTPS protokollok

Az SSL által biztosított biztonságos csatornának három fő tulajdonsága van:

  • A csatorna privát. A titkosítást minden üzenetnél alkalmazzák egy egyszerű párbeszéd után, amely a titkos kulcs meghatározására szolgál.
  • A csatorna hitelesítve van. A beszélgetés szerveroldala mindig hitelesítve van, míg a kliensoldal opcionálisan hitelesítve van.
  • A csatorna megbízható. Az üzenettovábbítás magában foglalja az integritás ellenőrzését (a MAC segítségével).

Az FTPS jellemzői

Az FTPS-nek két megvalósítása létezik, amelyek különböző biztonsági módszereket használnak:

  • Az implicit módszer magában foglalja a szabványos SSL-protokoll használatát egy munkamenet létrehozására az adatok küldése előtt, ami viszont megszakítja a kompatibilitást a hagyományos FTP-kliensekkel és -kiszolgálókkal. Az FTPS-t nem támogató kliensekkel való visszafelé kompatibilitás érdekében a vezérlőkapcsolathoz a 990-es TCP-port, az adatátvitelhez pedig a 989-es TCP-port szolgál, amely megtartja az FTP-protokoll szabványos 21-es portját. Ez a módszer elavultnak tekinthető.
  • Az Explicit sokkal kényelmesebb, mivel szabványos FTP-parancsokat használ, de válasz közben titkosítja az adatokat, ami lehetővé teszi, hogy ugyanazt a vezérlőkapcsolatot használja mind az FTP-hez, mind az FTPS-hez. Az ügyfélnek kifejezetten kérnie kell a biztonságos adatátvitelt a szervertől, majd jóvá kell hagynia a titkosítási módszert. Ha a kliens nem kér biztonságos átvitelt, az FTPS-szervernek joga van fenntartani vagy lezárni a nem biztonságos kapcsolatot. Az RFC 2228 alatt egy hitelesítési és adatbiztonsági egyeztetési mechanizmus került hozzáadásra, amely tartalmazza az új FTP AUTH parancsot. Bár ez a szabvány nem határozza meg kifejezetten a biztonsági mechanizmusokat, azt mégis előírja, hogy a biztonságos kapcsolatot az ügyfélnek kell kezdeményeznie a fent leírt algoritmus segítségével. Ha a szerver nem támogatja a biztonságos kapcsolatokat, 504-es hibakódot kell visszaadni. Az FTPS kliensek a FEAT paranccsal tájékozódhatnak a szerver által támogatott biztonsági protokollokról, azonban a kiszolgálónak nem kell nyilvánosságra hoznia, hogy milyen biztonsági szinteket tartalmaz. támogatja. A leggyakoribb FTPS-parancsok az AUTH TLS és az AUTH SSL, amelyek TLS, illetve SSL biztonságot nyújtanak.

SFTP

Az SFTP (Secure File Transfer Protocol) egy alkalmazási rétegbeli fájlátviteli protokoll, amely egy biztonságos csatorna tetején fut. Nem tévesztendő össze a (Simple File Transfer Protocol) -val, amelynek ugyanaz a rövidítése. Ha az FTPS egyszerűen az FTP kiterjesztése, akkor az SFTP egy különálló és nem kapcsolódó protokoll, amely az SSH-t (Secure Shell) használja alapul.

Secure Shell

A protokollt az egyik Secsh nevű IETF csoport fejlesztette ki. Az új SFTP protokoll munkadokumentációja nem vált hivatalos szabvánnyá, hanem aktívan elkezdték használni az alkalmazásfejlesztéshez. Ezt követően a protokoll hat változata jelent meg. A benne lévő funkcionalitás fokozatos növekedése azonban oda vezetett, hogy 14. augusztus 2006-én úgy döntöttek, hogy a projekt fő feladatának (SSH fejlesztés) befejezése és hiánya miatt leállítják a protokoll fejlesztését. kellő szintű szakértői szint a teljes értékű távoli fájlrendszer-protokoll fejlesztéséhez.

Az SSH egy hálózati protokoll, amely lehetővé teszi az operációs rendszer távvezérlését és a TCP-kapcsolatok alagútkezelését (például fájlátvitelhez). Funkciójában hasonló a Telnet és az rlogin protokollokhoz, de azokkal ellentétben titkosítja az összes forgalmat, beleértve a továbbított jelszavakat is. Az SSH lehetővé teszi a különböző titkosítási algoritmusok kiválasztását. SSH-kliensek és SSH-kiszolgálók állnak rendelkezésre a legtöbb hálózati operációs rendszerhez.

Az SSH lehetővé teszi szinte bármilyen más hálózati protokoll biztonságos átvitelét nem biztonságos környezetben. Így nem csak távolról dolgozhat a számítógépén a parancshéjon keresztül, hanem hangfolyamot vagy videót is továbbíthat (például webkameráról) egy titkosított csatornán. Az SSH a továbbított adatok tömörítését is használhatja a későbbi titkosításhoz, ami kényelmes például az X WindowSystem kliensek távoli indításakor.

A protokoll első változatát, az SSH-1-et 1995-ben Tatu Ulönen, a Helsinki Műszaki Egyetem kutatója fejlesztette ki (Finnország). Az SSH-1 azért készült, hogy nagyobb adatvédelmet biztosítson, mint az rlogin, telnet és rsh protokollok. 1996-ban kifejlesztették a protokoll biztonságosabb változatát, az SSH-2-t, amely nem kompatibilis az SSH-1-gyel. A protokoll még nagyobb népszerűségre tett szert, és 2000-re megközelítőleg kétmillió felhasználója volt. Jelenleg az „SSH” kifejezés általában SSH-2-t jelent, mert A protokoll első verzióját jelentős hiányosságok miatt gyakorlatilag nem használják. 2006-ban a protokollt az IETF munkacsoportja internetes szabványként hagyta jóvá.

Az SSH-nak két gyakori megvalósítása van: privát kereskedelmi és ingyenes nyílt forráskódú. Az ingyenes megvalósítást OpenSSH-nak hívják. 2006-ra az interneten lévő számítógépek 80%-a OpenSSH-t használt. A védett megvalósítást az SSH Communications Security, a Tectia Corporation XNUMX%-os tulajdonában lévő leányvállalat fejlesztette ki, és nem kereskedelmi használatra ingyenes. Ezek a megvalósítások majdnem ugyanazt a parancskészletet tartalmazzák.

Az SSH-2 protokoll a telnet protokolltól eltérően ellenáll a forgalom lehallgatási támadásainak ("szippantás"), de nem ellenáll a köztes támadásoknak. Az SSH-2 protokoll ellenáll a munkamenet-eltérítő támadásoknak is, mivel nem lehet csatlakozni vagy eltéríteni egy már létrehozott munkamenethez.

A köztes támadások elkerülése érdekében, amikor olyan gazdagéphez csatlakozik, amelynek kulcsát az ügyfél még nem ismeri, az ügyfélszoftver megmutatja a felhasználónak a „kulcs ujjlenyomatát”. Javasoljuk, hogy gondosan ellenőrizze a kliensszoftver által megjelenített „kulcs-pillanatfelvételt” a szerver kulcs-pillanatfelvételével, lehetőleg megbízható kommunikációs csatornákon keresztül vagy személyesen.

Az SSH-támogatás minden UNIX-szerű rendszeren elérhető, és a legtöbb szabványos segédprogramként ssh-klienst és szervert tartalmaz. Az SSH-klienseknek számos megvalósítása létezik nem UNIX operációs rendszerekhez. A protokoll nagy népszerűségre tett szert a forgalomelemzők és a helyi hálózatok működését zavaró módszerek széles körű kifejlesztése után, mint a nem biztonságos Telnet protokoll alternatív megoldása a fontos csomópontok kezelésére.

Kommunikáció SSH használatával

Az SSH-n keresztüli munkához egy SSH-kiszolgálóra és egy SSH-kliensre van szükség. A szerver figyeli az ügyfélgépekről érkező kapcsolatokat, és a kapcsolat létrejöttekor hitelesítést hajt végre, majd megkezdi a kliens kiszolgálását. Az ügyfél egy távoli gépre való bejelentkezésre és parancsok végrehajtására szolgál.

SFTP és FTPS protokollok

Összehasonlítás az FTPS-sel

A fő dolog, ami megkülönbözteti az SFTP-t a szabványos FTP-től és FTPS-től, az az, hogy az SFTP abszolút minden parancsot, felhasználónevet, jelszót és egyéb bizalmas információt titkosít.

Mind az FTPS, mind az SFTP protokollok aszimmetrikus algoritmusok (RSA, DSA), szimmetrikus algoritmusok (DES/3DES, AES, Twhofish stb.), valamint kulcscsere-algoritmus kombinációját használják. A hitelesítéshez az FTPS (pontosabban az SSL/TLS FTP-n keresztül) X.509 tanúsítványokat, míg az SFTP (SSH protokoll) SSH-kulcsokat használ.

Az X.509 tanúsítványok tartalmaznak egy nyilvános kulcsot és néhány információt a tulajdonos tanúsítványáról. Ez az információ másrészt lehetővé teszi magának a tanúsítványnak a sértetlenségét, a hitelességét és a tanúsítvány tulajdonosát. Az X.509-tanúsítványok rendelkeznek egy megfelelő privát kulccsal, amelyet általában biztonsági okokból a tanúsítványtól elkülönítve tárolnak.

Az SSH-kulcs csak a nyilvános kulcsot tartalmazza (a megfelelő privát kulcsot külön tároljuk). Nem tartalmaz információt a kulcs tulajdonosáról. Egyes SSH-megvalósítások X.509-tanúsítványokat használnak a hitelesítéshez, de valójában nem ellenőrzik a teljes tanúsítványláncot – csak a nyilvános kulcsot használják (ami az ilyen hitelesítést hiányossá teszi).

Következtetés

Az FTP protokoll kétségtelenül még mindig fontos szerepet játszik a hálózaton történő információtárolásban és -elosztásban, tiszteletreméltó kora ellenére. Ez egy kényelmes, többfunkciós és szabványosított protokoll. Ennek alapján számos irattár épült fel, amelyek nélkül nem lenne olyan hatékony a technikai munka. Ezenkívül könnyen beállítható, és szinte minden jelenlegi és kevésbé aktuális platformhoz léteznek szerver- és kliensprogramok.

A védett verziói viszont megoldják a tárolt és továbbított adatok bizalmas kezelésének problémáját a modern világban. Mindkét új protokollnak megvannak a maga előnyei és hátrányai, és kissé eltérő szerepet tölt be. Azokon a területeken, ahol fájlarchívumra van szükség, célszerű az FTPS-t használni, különösen, ha a klasszikus FTP-t korábban már használták. Az SFTP kevésbé elterjedt, mivel nem kompatibilis a régi protokollal, de biztonságosabb és több funkcióval rendelkezik, mivel a távfelügyeleti rendszer része.

Források listája

Forrás: will.com

Hozzászólás