SFTP- ja FTPS-protokollat

Esipuhe

Vain viikko sitten kirjoitin esseetä otsikossa mainitusta aiheesta ja kohtasin sen tosiasian, että sanotaan, että Internetissä ei ole niin paljon opetuksellista tietoa. Enimmäkseen kuivia faktoja ja asennusohjeita. Siksi päätin hieman korjata tekstiä ja julkaista sen artikkelina.

Mikä on FTP

FTP (File Transfer Protocol) on protokolla tiedostojen siirtämiseen verkon kautta. Se on yksi Ethernetin perusprotokollista. Ilmestyi vuonna 1971 ja työskenteli alun perin DARPA-verkoissa. Tällä hetkellä tiedostonsiirto perustuu HTTP:n tapaan malliin, joka koostuu joukosta TCP/IP (Transmission Control Protocol/Internet Protocol) -protokollia. Määritelty RFC 959:ssä.

Protokolla määrittelee seuraavat asiat:

  • Miten virheen tarkistus suoritetaan?
  • Tietojen pakkausmenetelmä (jos pakkausta käytetään)
  • Miten lähettävä laite ilmoittaa, että se on lopettanut viestin?
  • Miten vastaanottava laite ilmoittaa vastaanottaneensa viestin?

Viestintä asiakkaan ja palvelimen välillä

Katsotaanpa tarkemmin prosesseja, jotka tapahtuvat FTP-toiminnan aikana. Käyttäjän protokollatulkki alustaa yhteyden. Keskusta ohjataan TELNET-standardin mukaisen ohjauskanavan kautta. Käyttäjän protokollatulkki luo FTP-komennot ja lähettää ne palvelimelle. Palvelimen vastaukset lähetetään myös käyttäjälle ohjauskanavan kautta. Yleensä käyttäjällä on mahdollisuus muodostaa yhteys palvelimen protokollatulkkiin ja muilla keinoin kuin käyttäjän tulkilla.

FTP:n pääominaisuus on, että se käyttää kaksoisyhteyksiä. Yhtä niistä käytetään komentojen lähettämiseen palvelimelle ja se tapahtuu oletusarvoisesti TCP-portin 21 kautta, jota voidaan muuttaa. Ohjausyhteys on olemassa niin kauan kuin asiakas kommunikoi palvelimen kanssa. Ohjauskanavan on oltava auki siirrettäessä tietoja koneiden välillä. Jos se suljetaan, tiedonsiirto pysähtyy. Toisen kautta tapahtuu suora tiedonsiirto. Se avautuu aina, kun tiedostonsiirto tapahtuu asiakkaan ja palvelimen välillä. Jos useita tiedostoja siirretään samanaikaisesti, kukin niistä avaa oman siirtokanavansa.

FTP voi toimia aktiivisessa tai passiivisessa tilassa, jonka valinta määrittää, miten yhteys muodostetaan. Aktiivisessa tilassa asiakas luo TCP-ohjausyhteyden palvelimeen ja lähettää palvelimelle IP-osoitteensa ja mielivaltaisen asiakasportin numeron ja odottaa sitten, että palvelin aloittaa TCP-yhteyden tällä osoitteella ja porttinumerolla. Jos asiakas on palomuurin takana eikä voi hyväksyä saapuvaa TCP-yhteyttä, voidaan käyttää passiivista tilaa. Tässä tilassa asiakas käyttää ohjausvirtaa PASV-komennon lähettämiseen palvelimelle ja vastaanottaa sitten palvelimelta sen IP-osoitteen ja porttinumeron, joita asiakas käyttää sitten tietovuon avaamiseen mielivaltaisesta portistaan.

On mahdollista, että tietoja voidaan siirtää kolmannelle koneelle. Tässä tapauksessa käyttäjä järjestää ohjauskanavan kahdella palvelimella ja järjestää suoran datakanavan niiden välille. Ohjauskomennot kulkevat käyttäjän läpi ja tiedot suoraan palvelimien välillä.

Kun dataa siirretään verkon yli, voidaan käyttää neljää dataesitystä:

  • ASCII – käytetään tekstiin. Tiedot muunnetaan tarvittaessa lähettävän isännän merkkiesittelystä "kahdeksanbittiseksi ASCII:ksi" ennen lähetystä ja (tarvittaessa jälleen) vastaanottavan isännän merkkiesitykseen. Erityisesti rivinvaihtomerkit muuttuvat. Tästä syystä tämä tila ei sovellu tiedostoille, jotka sisältävät muutakin kuin pelkkää tekstiä.
  • Binääritila - lähettävä laite lähettää jokaisen tiedoston tavulta, ja vastaanottaja tallentaa tavuvirran vastaanotettuaan. Tämän tilan tukea on suositeltu kaikissa FTP-toteutuksissa.
  • EBCDIC – käytetään pelkän tekstin siirtämiseen isäntien välillä EBCDIC-koodauksella. Muuten tämä tila on samanlainen kuin ASCII-tila.
  • Paikallinen tila - sallii kahden tietokoneen, joilla on samat asetukset, lähettää tietoja omassa muodossaan muuntamatta ASCII-muotoon.

Tiedonsiirto voidaan suorittaa missä tahansa kolmesta tilasta:

  • Suoratoistotila - tiedot lähetetään jatkuvana virtana, mikä vapauttaa FTP:n suorittamasta käsittelyä. Sen sijaan kaikki käsittely tapahtuu TCP:llä. Tiedoston lopun ilmaisinta ei tarvita paitsi tietojen erottamiseen tietueiksi.
  • Block mode - FTP jakaa tiedot useisiin lohkoihin (otsikkolohko, tavujen määrä, tietokenttä) ja lähettää ne sitten TCP:lle.
  • Pakkaustila – tiedot pakataan yhdellä algoritmilla (yleensä koodaamalla ajonpituudet).

FTP-palvelin on palvelin, joka tarjoaa mahdollisuuden käyttää tiedostonsiirtoprotokollaa. Siinä on tiettyjä ominaisuuksia, jotka erottavat sen perinteisistä verkkopalvelimista:

  • Käyttäjän todennus vaaditaan
  • Kaikki toiminnot suoritetaan nykyisen istunnon aikana
  • Kyky suorittaa erilaisia ​​toimintoja tiedostojärjestelmän kanssa
  • Kutakin yhteyttä varten käytetään erillistä kanavaa

FTP-asiakasohjelma on ohjelma, jonka avulla voit muodostaa yhteyden etäpalvelimeen FTP:n kautta ja suorittaa myös tarvittavat toiminnot tiedostojärjestelmän elementeillä. Asiakas voi hyvinkin olla selain, jonka osoitepalkkiin tulee kirjoittaa osoite, joka on polku tiettyyn hakemistoon tai tiedostoon etäpalvelimella yleisen URL-lohkokaavion mukaisesti:

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

Verkkoselaimen käyttäminen tässä yhteydessä mahdollistaa kuitenkin vain kiinnostavien tiedostojen katselun tai lataamisen. Hyödynnä kaikki FTP:n edut täysimääräisesti, sinun tulee käyttää asiakkaana erikoisohjelmistoa.

FTP-todennus käyttää käyttäjätunnus-/salasanamallia pääsyn myöntämiseen. Käyttäjätunnus lähetetään palvelimelle USER-komennolla ja salasana lähetetään PASS-komennolla. Jos palvelin hyväksyy asiakkaan antamat tiedot, palvelin lähettää asiakkaalle kutsun ja istunto alkaa. Jos palvelin tukee tätä ominaisuutta, käyttäjät voivat kirjautua sisään antamatta tunnistetietoja, mutta palvelin voi myöntää vain rajoitetun käyttöoikeuden tällaisille istunnoille.

FTP-palvelun tarjoava isäntä voi tarjota anonyymin FTP-käytön. Käyttäjät kirjautuvat yleensä sisään "anonyymi" (joissakin FTP-palvelimissa voi olla isot ja pienet kirjaimet erotteleva) käyttäjänimellään. Vaikka käyttäjiä pyydetään yleensä antamaan sähköpostiosoitteensa salasanan sijaan, varmennusta ei tehdä. Monet ohjelmistopäivityksiä tarjoavat FTP-isännät tukevat anonyymiä pääsyä.

Protokollakaavio

Asiakas-palvelin-vuorovaikutus FTP-yhteyden aikana voidaan visualisoida seuraavasti:

SFTP- ja FTPS-protokollat

Suojattu FTP

FTP:tä ei alun perin ollut tarkoitus olla suojattu, koska se oli tarkoitettu useiden sotilaslaitosten ja virastojen väliseen viestintään. Mutta Internetin kehittymisen ja leviämisen myötä luvattoman käytön vaara on lisääntynyt monta kertaa. Oli tarvetta suojata palvelimia erilaisilta hyökkäyksiltä. Toukokuussa 1999 RFC 2577:n kirjoittajat tiivistivät haavoittuvuudet seuraavaan ongelmaluetteloon:

  • Piilotetut hyökkäykset (pomppimishyökkäykset)
  • Huijaushyökkäykset
  • Raaka voimahyökkäykset
  • Pakettien sieppaus, haisteleminen
  • Portin varastaminen

Tavallisella FTP:llä ei ole mahdollisuutta siirtää tietoja salatussa muodossa, minkä seurauksena hyökkääjät voivat siepata käyttäjätunnukset, salasanat, komennot ja muut tiedot helposti ja helposti. Tavallinen ratkaisu tähän ongelmaan on käyttää "suojattuja", TLS-suojattuja versioita haavoittuvasta protokollasta (FTPS) tai toista, turvallisempaa protokollaa, kuten SFTP/SCP:tä, joka toimitetaan useimpien Secure Shell -protokollatoteutusten kanssa.

FTP

FTPS (FTP + SSL) on standardin tiedostonsiirtoprotokollan laajennus, joka lisää sen perustoimintoihin salattujen istuntojen luomisen SSL-protokollalla (Secure Sockets Layer). Nykyään suojan tarjoaa sen edistyneempi analoginen TLS (Transport Layer Security).

SSL

Netscape Communications ehdotti SSL-protokollaa vuonna 1996 varmistaakseen Internet-yhteyksien turvallisuuden ja yksityisyyden. Protokolla tukee asiakkaan ja palvelimen todennusta, on sovelluksesta riippumaton ja on läpinäkyvä HTTP-, FTP- ja Telnet-protokollia varten.

SSL Handshake -protokolla koostuu kahdesta vaiheesta: palvelimen todennus ja valinnainen asiakastodennus. Ensimmäisessä vaiheessa palvelin vastaa asiakkaan pyyntöön lähettämällä varmenteen ja salausparametrit. Asiakas luo sitten pääavaimen, salaa sen palvelimen julkisella avaimella ja lähettää sen palvelimelle. Palvelin purkaa pääavaimen salauksen yksityisellä avaimellaan ja todentaa itsensä asiakkaalle palauttamalla viestin, joka on todennettu asiakkaan pääavaimella.

Myöhemmät tiedot salataan ja todennetaan tästä pääavaimesta johdetuilla avaimilla. Toisessa vaiheessa, joka on valinnainen, palvelin lähettää pyynnön asiakkaalle ja asiakas todentaa itsensä palvelimelle palauttamalla pyynnön omalla digitaalisella allekirjoituksellaan ja julkisen avaimen sertifikaatilla.

SSL tukee useita salausalgoritmeja. Viestinnän muodostamisen aikana käytetään RSA:n julkisen avaimen salausjärjestelmää. Avaimenvaihdon jälkeen käytetään monia erilaisia ​​salauksia: RC2, RC4, IDEA, DES ja TripleDES. Käytetään myös MD5:tä - algoritmia viestin tiivistelmän luomiseen. Julkisen avaimen sertifikaattien syntaksi on kuvattu X.509:ssä.

Yksi SSL:n tärkeistä eduista on sen täydellinen ohjelmistoalustariippumattomuus. Protokolla on kehitetty siirrettävyyden periaatteille, eikä sen rakenteen ideologia riipu sovelluksista, joissa sitä käytetään. Lisäksi on myös tärkeää, että muut protokollat ​​voidaan läpinäkyvästi peittää SSL-protokollan päälle; joko lisäämään edelleen kohdetietovirtojen suojausastetta tai mukauttamaan SSL:n kryptografisia ominaisuuksia johonkin muuhun, hyvin määriteltyyn tehtävään.

SSL-yhteys

SFTP- ja FTPS-protokollat

SSL:n tarjoamalla suojatulla kanavalla on kolme pääominaisuutta:

  • Kanava on yksityinen. Salausta käytetään kaikissa viesteissä yksinkertaisen dialogin jälkeen, jonka avulla voidaan määrittää salainen avain.
  • Kanava on todennettu. Keskustelun palvelinpuoli todennetaan aina, kun taas asiakaspuoli todennettu valinnaisesti.
  • Kanava on luotettava. Viestien siirto sisältää eheyden tarkistuksen (MAC:n avulla).

FTPS:n ominaisuudet

FTPS:llä on kaksi toteutusta, jotka käyttävät erilaisia ​​suojausmenetelmiä:

  • Implisiittiseen menetelmään kuuluu tavallisen SSL-protokollan käyttäminen istunnon muodostamiseen ennen tietojen lähettämistä, mikä puolestaan ​​rikkoo yhteensopivuuden tavallisten FTP-asiakkaiden ja -palvelimien kanssa. Taaksepäin yhteensopivuuden takaamiseksi asiakkaiden kanssa, jotka eivät tue FTPS:tä, ohjausyhteydessä käytetään TCP-porttia 990 ja tiedonsiirtoon 989. Tämä säilyttää FTP-protokollan vakioportin 21. Tätä menetelmää pidetään vanhentuneena.
  • Explicit on paljon kätevämpi, koska se käyttää tavallisia FTP-komentoja, mutta salaa tiedot vastattaessa, jolloin voit käyttää samaa ohjausyhteyttä sekä FTP:lle että FTPS:lle. Asiakkaan tulee erikseen pyytää suojattua tiedonsiirtoa palvelimelta ja hyväksyä sitten salausmenetelmä. Jos asiakas ei pyydä suojattua siirtoa, FTPS-palvelimella on oikeus joko ylläpitää tai sulkea suojaamaton yhteys. RFC 2228:aan lisättiin todennus- ja tietoturvaneuvottelumekanismi, joka sisältää uuden FTP AUTH -komennon. Vaikka tämä standardi ei nimenomaisesti määrittele suojausmekanismeja, se määrittää kuitenkin, että asiakkaan on aloitettava suojattu yhteys käyttämällä yllä kuvattua algoritmia. Jos palvelin ei tue suojattuja yhteyksiä, tulee palauttaa virhekoodi 504. FTPS-asiakkaat voivat saada tietoa palvelimen tukemista suojausprotokollista käyttämällä FEAT-komentoa, mutta palvelimen ei tarvitse paljastaa, mitä suojaustasoja se on tukee. Yleisimmät FTPS-komennot ovat AUTH TLS ja AUTH SSL, jotka tarjoavat vastaavasti TLS- ja SSL-suojauksen.

SFTP

SFTP (Secure File Transfer Protocol) on sovelluskerroksen tiedostonsiirtoprotokolla, joka toimii suojatun kanavan päällä. Ei pidä sekoittaa (Simple File Transfer Protocol), jolla on sama lyhenne. Jos FTPS on yksinkertaisesti FTP:n laajennus, SFTP on erillinen ja asiaankuulumaton protokolla, joka käyttää SSH:ta (Secure Shell) perustana.

Secure Shell

Protokollan on kehittänyt yksi IETF-ryhmistä nimeltä Secsh. Uuden SFTP-protokollan työdokumentaatiosta ei tullut virallista standardia, mutta sitä alettiin käyttää aktiivisesti sovellusten kehittämiseen. Myöhemmin protokollasta julkaistiin kuusi versiota. Toimivuuden asteittainen lisääntyminen siinä johti kuitenkin siihen, että 14. elokuuta 2006 protokollan kehittäminen päätettiin lopettaa projektin päätehtävän (SSH-kehitys) valmistumisen ja puutteen vuoksi. riittävän asiantuntijatason siirtyäkseen täysimittaisen etätiedostojärjestelmäprotokollan kehittämiseen.

SSH on verkkoprotokolla, joka mahdollistaa käyttöjärjestelmän etähallinnan ja TCP-yhteyksien tunneloinnin (esimerkiksi tiedostonsiirtoa varten). Toiminnaltaan samanlainen kuin Telnet- ja rlogin-protokollat, mutta toisin kuin ne, se salaa kaiken liikenteen, mukaan lukien lähetetyt salasanat. SSH mahdollistaa erilaisten salausalgoritmien valinnan. SSH-asiakkaat ja SSH-palvelimet ovat saatavilla useimpiin verkkokäyttöjärjestelmiin.

SSH:n avulla voit siirtää turvallisesti lähes minkä tahansa muun verkkoprotokollan suojaamattomassa ympäristössä. Siten et voi vain työskennellä tietokoneellasi etätyöskentelyä komentotulkin kautta, vaan myös lähettää äänivirtaa tai videota (esimerkiksi verkkokamerasta) salatun kanavan kautta. SSH voi myös käyttää lähetettyjen tietojen pakkausta myöhempään salaukseen, mikä on kätevää esimerkiksi X WindowSystem -asiakkaiden etäkäynnistykseen.

Protokollan ensimmäisen version, SSH-1, kehitti vuonna 1995 tutkija Tatu Ulönen Teknillisestä korkeakoulusta (Suomi). SSH-1 on kirjoitettu tarjoamaan suurempaa yksityisyyttä kuin rlogin-, telnet- ja rsh-protokollat. Vuonna 1996 protokollasta kehitettiin turvallisempi versio SSH-2, joka ei ole yhteensopiva SSH-1:n kanssa. Protokolla nousi entisestään, ja vuoteen 2000 mennessä sillä oli noin kaksi miljoonaa käyttäjää. Tällä hetkellä termi "SSH" tarkoittaa yleensä SSH-2:ta, koska Protokollan ensimmäistä versiota ei nyt käytännössä käytetä merkittävien puutteiden vuoksi. Vuonna 2006 protokolla hyväksyttiin IETF-työryhmässä Internet-standardiksi.

SSH:lla on kaksi yleistä toteutusta: yksityinen kaupallinen ja ilmainen avoin lähdekoodi. Ilmainen toteutus on nimeltään OpenSSH. Vuoteen 2006 mennessä 80 % Internetin tietokoneista käytti OpenSSH:ta. Toteutuksen on kehittänyt SSH Communications Security, joka on Tectia Oyj:n kokonaan omistama tytäryhtiö, ja se on ilmainen ei-kaupalliseen käyttöön. Nämä toteutukset sisältävät lähes saman joukon komentoja.

SSH-2-protokolla, toisin kuin telnet-protokolla, kestää liikenteen salakuunteluhyökkäyksiä ("haistelua"), mutta ei kestä mies-in-the-middle-hyökkäyksiä. SSH-2-protokolla kestää myös istuntojen kaappaushyökkäyksiä, koska on mahdotonta liittyä tai kaapata jo muodostettuun istuntoon.

Välimieshyökkäyksen estämiseksi, kun muodostetaan yhteys isäntään, jonka avainta asiakas ei vielä tiedä, asiakasohjelmisto näyttää käyttäjälle "avaimen sormenjäljen". On suositeltavaa tarkistaa huolellisesti asiakasohjelmiston näyttämä "avainkuva" palvelimen avaimen otos, mieluiten luotettavia viestintäkanavia pitkin tai henkilökohtaisesti.

SSH-tuki on saatavilla kaikissa UNIX-tyyppisissä järjestelmissä, ja useimmissa niissä on ssh-asiakas ja -palvelin vakioapuohjelmina. Muille kuin UNIX-käyttöjärjestelmille on olemassa monia SSH-asiakkaiden toteutuksia. Protokolla saavutti suuren suosion liikenneanalysaattoreiden ja paikallisten verkkojen toiminnan häiritsemismenetelmien laajan kehittämisen jälkeen vaihtoehtona turvattomalle Telnet-protokollalle tärkeiden solmujen hallintaan.

Viestintä SSH:lla

SSH:n kautta työskentelyyn tarvitaan SSH-palvelin ja SSH-asiakas. Palvelin kuuntelee yhteyksiä asiakaskoneista ja, kun yhteys on muodostettu, suorittaa todennuksen, jonka jälkeen se alkaa palvella asiakasta. Asiakasta käytetään kirjautumiseen etäkoneeseen ja suorittamaan komentoja.

SFTP- ja FTPS-protokollat

Vertailu FTPS:ään

Pääasia, joka erottaa SFTP:n tavallisesta FTP:stä ja FTPS:stä, on se, että SFTP salaa ehdottomasti kaikki komennot, käyttäjätunnukset, salasanat ja muut luottamukselliset tiedot.

Sekä FTPS- että SFTP-protokollat ​​käyttävät yhdistelmää epäsymmetrisiä algoritmeja (RSA, DSA), symmetrisiä algoritmeja (DES/3DES, AES, Twhofish jne.) sekä avaimenvaihtoalgoritmia. Todennusta varten FTPS (tai tarkemmin sanottuna SSL/TLS over FTP) käyttää X.509-varmenteita, kun taas SFTP (SSH-protokolla) käyttää SSH-avaimia.

X.509-varmenteet sisältävät julkisen avaimen ja joitain tietoja omistajan varmenteesta. Näiden tietojen avulla voidaan toisaalta tarkistaa itse varmenteen eheys, aitous ja varmenteen omistaja. X.509-varmenteilla on vastaava yksityinen avain, joka yleensä tallennetaan turvallisuussyistä erillään varmenteesta.

SSH-avain sisältää vain julkisen avaimen (vastaava yksityinen avain tallennetaan erikseen). Se ei sisällä tietoja avaimen omistajasta. Jotkut SSH-toteutukset käyttävät X.509-varmenteita todennukseen, mutta ne eivät itse asiassa vahvista koko varmenneketjua – käytetään vain julkista avainta (mikä tekee tällaisesta todennuksen epätäydellisestä).

Johtopäätös

FTP-protokollalla on epäilemättä edelleen tärkeä rooli tiedon tallentamisessa ja jakelussa verkossa kunnioitetusta iästään huolimatta. Se on kätevä, monitoiminen ja standardoitu protokolla. Sen pohjalle on rakennettu monia tiedostoarkistoja, joita ilman tekninen työ ei olisi niin tehokasta. Lisäksi se on helppo asentaa, ja palvelin- ja asiakasohjelmat ovat olemassa lähes kaikille nykyisille ja vähemmän nykyisille alustoille.

Sen suojatut versiot puolestaan ​​ratkaisevat tallennettujen ja siirrettyjen tietojen luottamuksellisuuden ongelman nykymaailmassa. Molemmilla uusilla protokollilla on hyvät ja huonot puolensa, ja ne palvelevat hieman erilaisia ​​rooleja. Niillä alueilla, joilla tiedostoarkistoa tarvitaan, kannattaa käyttää FTPS:ää, varsinkin jos siellä on jo käytetty klassista FTP:tä. SFTP on vähemmän yleinen johtuen sen yhteensopimattomuudesta vanhan protokollan kanssa, mutta se on turvallisempi ja siinä on enemmän toimintoja, koska se on osa etähallintajärjestelmää.

Lista lähteistä

Lähde: will.com

Lisää kommentti