SFTP- en FTPS-protokolle

voorwoord

Net 'n week gelede was ek besig om 'n opstel te skryf oor die onderwerp wat in die titel aangedui word en het gekonfronteer met die feit dat, kom ons sê, daar nie soveel opvoedkundige inligting op die internet is nie. Meestal droë feite en opstelinstruksies. Daarom het ek besluit om die teks effens reg te stel en as 'n artikel te plaas.

Wat is FTP

FTP (File Transfer Protocol) is 'n protokol vir die oordrag van lêers oor 'n netwerk. Dit is een van die basiese Ethernet-protokolle. Het in 1971 verskyn en het aanvanklik in DARPA-netwerke gewerk. Tans, soos HTTP, is lêeroordrag gebaseer op 'n model wat bestaan ​​uit 'n stel TCP/IP (Transmission Control Protocol/Internet Protocol) protokolle. Gedefinieer in RFC 959.

Die protokol definieer die volgende:

  • Hoe sal die foutkontrole uitgevoer word?
  • Dataverpakkingsmetode (indien verpakking gebruik word)
  • Hoe dui die stuurtoestel aan dat dit 'n boodskap voltooi het?
  • Hoe dui die ontvangstoestel aan dat dit 'n boodskap ontvang het?

Kommunikasie tussen kliënt en bediener

Kom ons kyk van naderby na die prosesse wat tydens FTP-operasie plaasvind. Die verbinding word geïnisialiseer deur die gebruiker se protokol-tolk. Die uitruil word via 'n beheerkanaal in die TELNET-standaard beheer. FTP-opdragte word deur die gebruiker se protokol-tolk gegenereer en na die bediener gestuur. Die bediener se antwoorde word ook via die beheerkanaal aan die gebruiker gestuur. Oor die algemeen het die gebruiker die vermoë om kontak te bewerkstellig met die bediener se protokoltolk en op ander maniere as die gebruiker se tolk.

Die belangrikste kenmerk van FTP is dat dit dubbele verbindings gebruik. Een daarvan word gebruik om opdragte na die bediener te stuur en vind by verstek plaas via TCP-poort 21, wat verander kan word. Die beheerverbinding bestaan ​​solank die kliënt met die bediener kommunikeer. Die beheerkanaal moet oop wees wanneer data tussen masjiene oorgedra word. As dit gesluit is, stop data-oordrag. Deur die tweede vind direkte data-oordrag plaas. Dit maak oop elke keer as 'n lêeroordrag tussen die kliënt en bediener plaasvind. As verskeie lêers gelyktydig oorgedra word, maak elkeen van hulle sy eie transmissiekanaal oop.

FTP kan in aktiewe of passiewe modus werk, waarvan die keuse bepaal hoe die verbinding tot stand kom. In aktiewe modus skep die kliënt 'n TCP-beheerverbinding met die bediener en stuur sy IP-adres en 'n arbitrêre kliëntpoortnommer na die bediener, en wag dan vir die bediener om 'n TCP-verbinding met hierdie adres en poortnommer te begin. As die kliënt agter 'n firewall is en nie 'n inkomende TCP-verbinding kan aanvaar nie, kan passiewe modus gebruik word. In hierdie modus gebruik die kliënt die beheervloei om 'n PASV-opdrag na die bediener te stuur, en ontvang dan van die bediener sy IP-adres en poortnommer, wat die kliënt dan gebruik om 'n datavloei vanaf sy arbitrêre poort oop te maak.

Dit is moontlik dat data na 'n derde masjien oorgedra kan word. In hierdie geval organiseer die gebruiker 'n beheerkanaal met twee bedieners en organiseer 'n direkte datakanaal tussen hulle. Beheeropdragte gaan deur die gebruiker, en data gaan direk tussen die bedieners.

Wanneer data oor 'n netwerk oorgedra word, kan vier datavoorstellings gebruik word:

  • ASCII – gebruik vir teks. Die data word, indien nodig, omgeskakel van die karaktervoorstelling op die stuurgasheer na "agt-bis ASCII" voor oordrag, en (weereens, indien nodig) na die karaktervoorstelling op die ontvangende gasheer. In die besonder word nuwelynkarakters verander. Gevolglik is hierdie modus nie geskik vir lêers wat meer as net gewone teks bevat nie.
  • Binêre modus - die stuurtoestel stuur elke lêer greep vir greep, en die ontvanger stoor die stroom grepe by ontvangs. Ondersteuning vir hierdie modus is aanbeveel vir alle FTP-implementerings.
  • EBCDIC – word gebruik om gewone teks tussen gashere in EBCDIC-kodering oor te dra. Andersins is hierdie modus soortgelyk aan die ASCII-modus.
  • Plaaslike modus - laat twee rekenaars met identiese instellings toe om data in hul eie formaat te stuur sonder om na ASCII om te skakel.

Data-oordrag kan in enige van drie modusse uitgevoer word:

  • Stroommodus - data word as 'n deurlopende stroom gestuur, wat FTP bevry van enige verwerking. In plaas daarvan word alle verwerking deur TCP gedoen. Die einde-van-lêer-aanwyser is nie nodig nie, behalwe om data in rekords te skei.
  • Blokmodus - FTP breek die data in verskeie blokke op (kopblok, aantal grepe, dataveld) en stuur dit dan na TCP.
  • Kompressiemodus – data word saamgepers met 'n enkele algoritme (gewoonlik deur lopielengtes te enkodeer).

FTP-bediener is 'n bediener wat die vermoë bied om die lêeroordragprotokol te gebruik. Dit het sekere kenmerke wat dit van konvensionele webbedieners onderskei:

  • Gebruikerstawing vereis
  • Alle bewerkings word binne die huidige sessie uitgevoer
  • Vermoë om verskeie aksies met die lêerstelsel uit te voer
  • 'n Afsonderlike kanaal word vir elke verbinding gebruik

FTP-kliënt is 'n program waarmee u via FTP aan 'n afgeleë bediener kan koppel en ook die nodige aksies daarop kan uitvoer met elemente van die lêerstelsel. Die kliënt kan 'n blaaier wees, in die adresbalk waarvan u die adres moet invoer, wat die pad na 'n spesifieke gids of lêer op die afgeleë bediener is, in ooreenstemming met die algemene URL-blokdiagram:

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

Die gebruik van 'n webblaaier in hierdie konteks sal jou egter net toelaat om die lêers van belang te bekyk of af te laai. Om al die voordele van FTP ten volle te benut, moet jy gespesialiseerde sagteware as 'n kliënt gebruik.

FTP-verifikasie gebruik 'n gebruikersnaam/wagwoordskema om toegang te verleen. Die gebruikersnaam word na die bediener gestuur met die USER-opdrag, en die wagwoord word met die PASS-opdrag gestuur. As die inligting wat deur die kliënt verskaf word deur die bediener aanvaar word, sal die bediener 'n uitnodiging aan die kliënt stuur en die sessie begin. Gebruikers kan, indien die bediener hierdie kenmerk ondersteun, aanmeld sonder om geloofsbriewe te verskaf, maar die bediener kan slegs beperkte toegang vir sulke sessies verleen.

Die gasheer wat die FTP-diens verskaf, kan anonieme FTP-toegang verskaf. Gebruikers meld gewoonlik aan met "anoniem" (kan hooflettersensitief wees op sommige FTP-bedieners) as hul gebruikersnaam. Alhoewel gebruikers tipies gevra word om hul e-posadres in plaas van 'n wagwoord te verskaf, word geen verifikasie eintlik uitgevoer nie. Baie FTP-gashere wat sagteware-opdaterings verskaf, ondersteun anonieme toegang.

Protokoldiagram

Die kliënt-bediener-interaksie tydens 'n FTP-verbinding kan soos volg gevisualiseer word:

SFTP- en FTPS-protokolle

Veilige FTP

FTP was nie oorspronklik bedoel om veilig te wees nie, aangesien dit bedoel was vir kommunikasie tussen verskeie militêre installasies en agentskappe. Maar met die ontwikkeling en verspreiding van die internet het die gevaar van ongemagtigde toegang baie keer toegeneem. Daar was 'n behoefte om bedieners te beskerm teen verskillende soorte aanvalle. In Mei 1999 het die skrywers van RFC 2577 die kwesbaarhede in die volgende lys kwessies opgesom:

  • Versteekte aanvalle (bonsaanvalle)
  • Spoof aanvalle
  • Brute krag aanvalle
  • Pakkie vang, snuif
  • Port steel

Gereelde FTP het nie die vermoë om data in geënkripteerde vorm oor te dra nie, as gevolg waarvan gebruikersname, wagwoorde, opdragte en ander inligting maklik en maklik deur aanvallers onderskep kan word. Die gewone oplossing vir hierdie probleem is om "veilige", TLS-beskermde weergawes van die kwesbare protokol (FTPS) of 'n ander, veiliger protokol te gebruik, soos SFTP/SCP, wat met die meeste Secure Shell-protokolimplementerings voorsien word.

FTPS

FTPS (FTP + SSL) is 'n uitbreiding van die standaard lêeroordragprotokol wat die skepping van geënkripteerde sessies met behulp van die SSL (Secure Sockets Layer) protokol by die basiese funksionaliteit daarvan voeg. Vandag word beskerming verskaf deur sy meer gevorderde analoog TLS (Transport Layer Security).

SSL

Die SSL-protokol is in 1996 deur Netscape Communications voorgestel om die sekuriteit en privaatheid van internetverbindings te verseker. Die protokol ondersteun kliënt- en bedienerverifikasie, is toepassing-onafhanklik en is deursigtig vir HTTP-, FTP- en Telnet-protokolle.

Die SSL Handshake-protokol bestaan ​​uit twee fases: bediener-verifikasie en opsionele kliënt-verifikasie. In die eerste stadium reageer die bediener op die kliënt se versoek deur sy sertifikaat- en enkripsieparameters te stuur. Die kliënt genereer dan 'n hoofsleutel, enkripteer dit met die bediener se publieke sleutel, en stuur dit na die bediener. Die bediener dekripteer die hoofsleutel met sy private sleutel en verifieer homself aan die kliënt deur 'n boodskap terug te stuur wat deur die kliënt se hoofsleutel gewaarmerk is.

Daaropvolgende data word geïnkripteer en geverifieer met sleutels wat van hierdie hoofsleutel afgelei is. In die tweede stap, wat opsioneel is, stuur die bediener 'n versoek aan die kliënt, en die kliënt verifieer homself aan die bediener deur die versoek terug te stuur met sy eie digitale handtekening en 'n publieke sleutelsertifikaat.

SSL ondersteun 'n verskeidenheid kriptografiese algoritmes. Tydens die totstandkoming van kommunikasie word die RSA publieke sleutel kriptostelsel gebruik. Na die sleuteluitruiling word baie verskillende syfers gebruik: RC2, RC4, IDEA, DES en TripleDES. MD5 word ook gebruik - 'n algoritme om 'n boodskapsamevatting te skep. Die sintaksis vir publieke sleutelsertifikate word in X.509 beskryf.

Een van die belangrike voordele van SSL is sy volledige sagteware-platform-onafhanklikheid. Die protokol is ontwikkel op die beginsels van oordraagbaarheid, en die ideologie van die konstruksie daarvan hang nie af van die toepassings waarin dit gebruik word nie. Daarbenewens is dit ook belangrik dat ander protokolle deursigtig bo-op die SSL-protokol oorgelê kan word; óf om die mate van beskerming van teikeninligtingvloei verder te verhoog, óf om die kriptografiese vermoëns van SSL aan te pas vir 'n ander, goed gedefinieerde taak.

SSL-verbinding

SFTP- en FTPS-protokolle

Die veilige kanaal wat deur SSL verskaf word, het drie hoofeienskappe:

  • Die kanaal is privaat. Enkripsie word vir alle boodskappe gebruik na 'n eenvoudige dialoog wat dien om die geheime sleutel te bepaal.
  • Die kanaal is geverifieer. Die bedienerkant van die gesprek word altyd geverifieer, terwyl die kliëntkant opsioneel geverifieer is.
  • Die kanaal is betroubaar. Boodskapvervoer sluit integriteitkontrolering in (met die MAC).

Kenmerke van FTPS

Daar is twee implementerings van FTPS, wat verskillende metodes gebruik om sekuriteit te verskaf:

  • Die implisiete metode behels die gebruik van die standaard SSL-protokol om 'n sessie te vestig voordat data gestuur word, wat op sy beurt versoenbaarheid met gewone FTP-kliënte en -bedieners verbreek. Vir terugwaartse versoenbaarheid met kliënte wat nie FTPS ondersteun nie, word TCP-poort 990 vir die beheerverbinding gebruik en 989 vir data-oordrag. Dit behou die standaardpoort 21 vir die FTP-protokol. Hierdie metode word as uitgedien beskou.
  • Eksplisiet is baie geriefliker, aangesien dit standaard FTP-opdragte gebruik, maar die data enkripteer wanneer jy reageer, wat jou toelaat om dieselfde beheerverbinding vir beide FTP en FTPS te gebruik. Die kliënt moet uitdruklik veilige data-oordrag vanaf die bediener versoek, en dan die enkripsiemetode goedkeur. As die kliënt nie 'n veilige oordrag versoek nie, het die FTPS-bediener die reg om die onversekerde verbinding óf in stand te hou óf te sluit. 'n Verifikasie- en datasekuriteit-onderhandelingsmeganisme is bygevoeg onder RFC 2228 wat die nuwe FTP AUTH-opdrag insluit. Alhoewel hierdie standaard nie uitdruklik sekuriteitsmeganismes definieer nie, spesifiseer dit wel dat 'n veilige verbinding deur die kliënt geïnisieer moet word deur die algoritme hierbo beskryf te gebruik. As veilige verbindings nie deur die bediener ondersteun word nie, moet 'n foutkode van 504 teruggestuur word. FTPS-kliënte kan inligting verkry oor die sekuriteitsprotokolle wat deur die bediener ondersteun word deur die FEAT-opdrag te gebruik, maar die bediener hoef egter nie te openbaar watter sekuriteitsvlakke dit is nie. ondersteun. Die mees algemene FTPS-opdragte is AUTH TLS en AUTH SSL, wat onderskeidelik TLS- en SSL-sekuriteit bied.

SFTP

SFTP (Secure File Transfer Protocol) is 'n toepassingslaag lêeroordragprotokol wat bo-op 'n veilige kanaal loop. Moet nie verwar word met (Simple File Transfer Protocol), wat dieselfde afkorting het nie. As FTPS bloot 'n uitbreiding van FTP is, dan is SFTP 'n aparte en onverwante protokol wat SSH (Secure Shell) as basis gebruik.

Veilige Shell

Die protokol is ontwikkel deur een van die IETF-groepe genaamd Secsh. Die werksdokumentasie vir die nuwe SFTP-protokol het nie 'n amptelike standaard geword nie, maar het aktief begin gebruik word vir toepassingsontwikkeling. Daarna is ses weergawes van die protokol vrygestel. Die geleidelike toename in funksionaliteit daarin het egter daartoe gelei dat daar op 14 Augustus 2006 besluit is om op te hou werk aan die ontwikkeling van die protokol weens die voltooiing van die hooftaak van die projek (SSH-ontwikkeling) en die gebrek van 'n voldoende kundige vlak om aan te beweeg na die ontwikkeling van 'n volwaardige afgeleë lêerstelselprotokol.

SSH is 'n netwerkprotokol wat afstandbeheer van die bedryfstelsel en tonneling van TCP-verbindings moontlik maak (byvoorbeeld vir lêeroordrag). Soortgelyk in funksionaliteit aan die Telnet- en rlogin-protokolle, maar, anders as hulle, enkripteer dit alle verkeer, insluitend gestuurde wagwoorde. SSH laat 'n keuse van verskillende enkripsie-algoritmes toe. SSH-kliënte en SSH-bedieners is beskikbaar vir die meeste netwerkbedryfstelsels.

SSH laat jou toe om byna enige ander netwerkprotokol veilig in 'n onversekerde omgewing oor te dra. U kan dus nie net op afstand op u rekenaar werk deur die opdragdop nie, maar ook 'n oudiostroom of video (byvoorbeeld vanaf 'n webkamera) oor 'n geënkripteerde kanaal oordra. SSH kan ook kompressie van oorgedrade data gebruik vir daaropvolgende enkripsie, wat gerieflik is, byvoorbeeld om X WindowSystem-kliënte op afstand te begin.

Die eerste weergawe van die protokol, SSH-1, is in 1995 ontwikkel deur navorser Tatu Ulönen van die Helsinki Universiteit van Tegnologie (Finland). SSH-1 is geskryf om groter privaatheid te bied as die rlogin-, telnet- en rsh-protokolle. In 1996 is 'n veiliger weergawe van die protokol, SSH-2, ontwikkel, wat nie met SSH-1 versoenbaar is nie. Die protokol het selfs meer gewild geword, en teen 2000 het dit ongeveer twee miljoen gebruikers gehad. Tans beteken die term "SSH" gewoonlik SSH-2, want Die eerste weergawe van die protokol word nou feitlik nie gebruik nie weens aansienlike tekortkominge. In 2006 is die protokol deur die IETF-werkgroep as 'n internetstandaard goedgekeur.

Daar is twee algemene implementerings van SSH: privaat kommersiële en gratis oopbron. Die gratis implementering word OpenSSH genoem. Teen 2006 het 80% van rekenaars op die internet OpenSSH gebruik. Die eie implementering is ontwikkel deur SSH Communications Security, 'n volfiliaal van Tectia Corporation, en is gratis vir nie-kommersiële gebruik. Hierdie implementerings bevat byna dieselfde stel opdragte.

Die SSH-2-protokol, anders as die telnet-protokol, is bestand teen verkeersafluisteraanvalle ("snuif"), maar is nie bestand teen man-in-die-middel-aanvalle nie. Die SSH-2-protokol is ook bestand teen sessie-kapingsaanvalle, aangesien dit onmoontlik is om by 'n reeds gevestigde sessie aan te sluit of te kaap.

Om mens-in-die-middel-aanvalle te voorkom wanneer daar aan 'n gasheer gekoppel word wie se sleutel nog nie aan die kliënt bekend is nie, wys die kliëntsagteware die gebruiker 'n "sleutelvingerafdruk". Dit word aanbeveel om die "sleutelfoto" wat deur die kliëntsagteware gewys word, noukeurig na te gaan met die bedienersleutelfoto, verkieslik verkry deur betroubare kommunikasiekanale of persoonlik.

SSH-ondersteuning is beskikbaar op alle UNIX-agtige stelsels, en die meeste het 'n ssh-kliënt en -bediener as standaardhulpmiddels. Daar is baie implementerings van SSH-kliënte vir nie-UNIX-bedryfstelsels. Die protokol het groot gewildheid gekry ná die wydverspreide ontwikkeling van verkeersontleders en metodes om die werking van plaaslike netwerke te ontwrig, as 'n alternatiewe oplossing vir die onveilige Telnet-protokol vir die bestuur van belangrike nodusse.

Kommunikasie met behulp van SSH

Om via SSH te werk, benodig jy 'n SSH-bediener en 'n SSH-kliënt. Die bediener luister vir verbindings vanaf kliëntmasjiene en, wanneer 'n verbinding tot stand gebring word, voer verifikasie uit, waarna dit die kliënt begin bedien. Die kliënt word gebruik om by 'n afgeleë masjien aan te meld en opdragte uit te voer.

SFTP- en FTPS-protokolle

Vergelyking met FTPS

Die belangrikste ding wat SFTP van standaard FTP en FTPS onderskei, is dat SFTP absoluut alle opdragte, gebruikersname, wagwoorde en ander vertroulike inligting enkripteer.

Beide FTPS- en SFTP-protokolle gebruik 'n kombinasie van asimmetriese algoritmes (RSA, DSA), simmetriese algoritmes (DES/3DES, AES, Twhofish, ens.), sowel as 'n sleuteluitruilalgoritme. Vir verifikasie gebruik FTPS (of om meer presies te wees, SSL/TLS oor FTP) X.509-sertifikate, terwyl SFTP (SSH-protokol) SSH-sleutels gebruik.

X.509-sertifikate sluit 'n publieke sleutel en 'n paar inligting oor die eienaar se sertifikaat in. Hierdie inligting maak dit aan die ander kant moontlik om die integriteit van die sertifikaat self, die egtheid en die eienaar van die sertifikaat te verifieer. X.509-sertifikate het 'n ooreenstemmende private sleutel, wat gewoonlik om sekuriteitsredes apart van die sertifikaat gestoor word.

Die SSH-sleutel bevat slegs die publieke sleutel (die ooreenstemmende private sleutel word apart gestoor). Dit bevat geen inligting oor die eienaar van die sleutel nie. Sommige SSH-implementerings gebruik X.509-sertifikate vir stawing, maar hulle verifieer nie eintlik die hele sertifikaatketting nie – net die publieke sleutel word gebruik (wat sulke verifikasie onvolledig maak).

Gevolgtrekking

Die FTP-protokol speel ongetwyfeld steeds 'n belangrike rol in die berging en verspreiding van inligting op die netwerk ten spyte van sy eerbiedwaardige ouderdom. Dit is 'n gerieflike, multifunksionele en gestandaardiseerde protokol. Baie lêerargiewe is op die basis daarvan gebou, waarsonder tegniese werk nie so effektief sou wees nie. Daarbenewens is dit maklik om op te stel, en bediener- en kliëntprogramme bestaan ​​vir byna alle huidige en nie so huidige platforms nie.

Op sy beurt los die beskermde weergawes die probleem van vertroulikheid van gestoor en versend data in die moderne wêreld op. Beide nuwe protokolle het hul voor- en nadele en dien effens verskillende rolle. In daardie gebiede waar 'n lêerargief benodig word, is dit verkieslik om FTPS te gebruik, veral as klassieke FTP reeds voorheen daar gebruik is. SFTP is minder algemeen as gevolg van die onverenigbaarheid daarvan met die ou protokol, maar dit is veiliger en het meer funksionaliteit, aangesien dit deel is van die afstandbestuurstelsel.

Lys van bronne

Bron: will.com

Voeg 'n opmerking