Protokollen SFTP och FTPS.

Förord

För en vecka sedan skrev jag en uppsats om Àmnet angivet i rubriken och stötte pÄ det faktum att, lÄt oss sÀga, den informativa informationen pÄ nÀtet inte Àr sÀrskilt mycket. I huvudsak Àr det torra fakta och instruktioner för konfiguration. DÀrför beslutade jag mig för att göra nÄgra justeringar i texten och publicera den som en artikel.

Vad Àr FTP

FTP (File Transfer Protocol) – ett protokoll för överföring av filer över nĂ€tverket. Det Ă€r ett av de grundlĂ€ggande protokollen för Ethernet. Det kom till 1971 och arbetade frĂ„n början i DARPA-nĂ€tverk. I dagslĂ€get, precis som HTTP, baseras filöverföring pĂ„ en modell som bestĂ„r av en samling av protokollen TCP/IP (Transmission Control Protocol/Internet Protocol). Definieras i RFC 959.

Protokollet definierar följande:

  • Hur kontroll av fel ska utföras
  • Metod för datakodning (om kodning anvĂ€nds)
  • Hur sĂ€ndande enhet meddelar att den har avslutat meddelandet
  • Hur mottagande enhet meddelar att den har tagit emot meddelandet

Interaktionen mellan klient och server

LÄt oss titta nÀrmare pÄ processerna som sker under FTP-arbetet. Anslutningen initieras av anvÀndarprotokollets tolk. Hanteringen av utbytet sker via kontrollkanalen i TELNET-standarden. FTP-kommandon genereras av anvÀndarprotokollets tolk och skickas till servern. Serverns svar skickas till anvÀndaren ocksÄ via kontrollkanalen. I allmÀnhet har anvÀndaren möjlighet att upprÀtta kontakt med serverns protokolltolk och anvÀnda medel som Àr annorlunda Àn anvÀndarens protokolltolk.

Huvuddragen med FTP Àr att det anvÀnder dubbelanslutning. En av dem anvÀnds för att skicka kommandon till servern och sker som standard genom TCP-port 21, vilket kan förÀndras. Kontrollanslutningen finns kvar sÄ lÀnge klienten kommunicerar med servern. Kontrollkanalen mÄste vara öppen vid överföring av data mellan maskiner. Om den stÀngs stÀngs dataöverföringen av. Genom den andra sker den direkta dataöverföringen. Den öppnas varje gÄng nÀr en fil överförs mellan klienten och servern. Om flera filer överförs samtidigt öppnas en egen överföringskanal för var och en av dem.

FTP kan antingen fungera i aktiv eller passiv lÀge, vilket avgör hur anslutningen upprÀttas. I aktivt lÀge skapar klienten en styrande TCP-anslutning till servern och skickar sin IP-adress och ett valfritt nummer för klientporten till servern, varefter den vÀntar pÄ att servern startar en TCP-anslutning med denna adress och portnummer. Om klienten befinner sig bakom en brandvÀgg och inte kan ta emot inkommande TCP-anslutningar kan passivt lÀge anvÀndas. I detta lÀge anvÀnder klienten kontrollströmmen för att skicka kommandot PASV till servern, och fÄr sedan serverns IP-adress och portnummer, som sedan anvÀnds av klienten för att öppna en datakanal frÄn sin valfria port.

Det kan finnas en situation dÀr data kan överföras till en tredje maskin. I detta fall upprÀttar anvÀndaren en kontrollkanal med tvÄ servrar och organiserar en direkt datakanal mellan dem. Kontrollkommandon gÄr genom anvÀndaren, medan data gÄr direkt mellan servrarna.

Vid överföring av data över nÀtverket kan fyra datavidarestÀllningar anvÀndas:

  • ASCII – anvĂ€nds för text. Data konverteras, om det Ă€r nödvĂ€ndigt, innan överföringen frĂ„n den avsĂ€ndande vĂ€rdens teckenrepresentation till 'Ă„tta bits ASCII', och (Ă„terigen, om det behövs) till teckenrepresentationen för den mottagande vĂ€rden. I synnerhet förĂ€ndras radbrytningstecknen. Som ett resultat Ă€r detta lĂ€ge olĂ€mpligt för filer som innehĂ„ller mer Ă€n bara vanlig text.
  • BinĂ€rt lĂ€ge – avsĂ€ndande enhet skickar varje fil byte för byte, och mottagaren sparar byteströmmen vid mottagandet. Stöd för detta lĂ€ge har rekommenderats för alla FTP-implementeringar.
  • EBCDIC – anvĂ€nds för överföring av vanlig text mellan vĂ€rdar i EBCDIC-kodning. I övrigt Ă€r detta lĂ€ge liknande ASCII-lĂ€get.
  • Lokalt lĂ€ge – tillĂ„ter tvĂ„ datorer med identiska instĂ€llningar att skicka data i sitt eget format utan konvertering till ASCII.

Dataöverföring kan göras i nÄgot av de tre lÀgena:

  • StrömmingslĂ€ge – data skickas som en kontinuerlig ström, vilket befriar FTP frĂ„n att utföra nĂ„gon bearbetning. IstĂ€llet utförs all bearbetning av TCP. En filslutindikator behövs inte, förutom vid uppdelning av data i poster.
  • Block Mode – FTP delar data i flera block (blockhuvud, antal byte, datavĂ€rde) och skickar dem sedan via TCP.
  • KomprimeringslĂ€ge – data komprimeras med en enhetlig algoritm (vanligtvis kodning av lĂ„nga serier).

FTP-server – en server som möjliggör anvĂ€ndning av filöverföringsprotokollet. Den har vissa egenskaper som skiljer den frĂ„n vanliga webbservrar:

  • AnvĂ€ndarautentisering krĂ€vs
  • Alla operationer utförs inom den aktuella sessionen
  • Möjlighet till olika Ă„tgĂ€rder med filsystemet
  • Separat kanal anvĂ€nds för varje anslutning

FTP-klient – ett program som gör det möjligt att ansluta till en fjĂ€rrserver via FTP och ocksĂ„ utföra nödvĂ€ndiga Ă„tgĂ€rder med filsystemets element. En klient kan mycket vĂ€l vara en webblĂ€sare, dĂ€r adressfĂ€ltet ska innehĂ„lla adressen som representerar en vĂ€g till en viss katalog eller fil pĂ„ den fjĂ€rrservern, i överensstĂ€mmelse med den allmĂ€nna blockdiagrammet för URL:

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

Dock, anvÀndning av webblÀsare pÄ detta sÀtt tillÄter endast att se eller ladda ner intressanta filer. För att fullt ut utnyttja alla fördelar med FTP, bör ett specialiserat programvara anvÀndas som klient.

FTP-autentisering anvÀnder en anvÀndarnamn/lösenordsstruktur för att ge Ätkomst. AnvÀndarnamnet skickas till servern med kommandot USER, och lösenordet med kommandot PASS. Om den information som klienten tillhandahÄller accepteras av servern, kommer servern att skicka en inbjudan till klienten och sessionen börjar. AnvÀndare kan, om servern stöder denna funktion, logga in utan att tillhandahÄlla inloggningsuppgifter, men servern kan endast ge begrÀnsad Ätkomst för sÄdana sessioner.

Hosten som erbjuder FTP-tjĂ€nsten kan ge anonym Ă„tkomst till FTP. AnvĂ€ndare loggar vanligtvis in som 'anonymous' (kan vara skiftlĂ€geskĂ€nsligt pĂ„ vissa FTP-servrar) som anvĂ€ndarnamn. Även om anvĂ€ndare vanligtvis ombeds att skicka sin e-postadress istĂ€llet för lösenord, görs det faktiskt ingen verifiering. MĂ„nga FTP-vĂ€rdar som tillhandahĂ„ller programuppdateringar stöder anonym Ă„tkomst.

Protokollschema

Interaktionen mellan "klient och server" vid FTP-anslutningar kan tydligt illustreras pÄ följande sÀtt:

Protokollen SFTP och FTPS.

SĂ€ker FTP

FTP var frÄn början inte tÀnkt som en sÀker lösning, eftersom det var avsett för kommunikation mellan flera militÀra objekt och institutioner. Men med internets utveckling och spridning har faran för obehörig Ätkomst ökat avsevÀrt. Det har uppstÄtt ett behov av att skydda servrar mot olika typer av attacker. I maj 1999 sammanstÀllde författarna till RFC 2577 en lista över sÄrbarheter:

  • Dolda attacker (bounce attacks)
  • Spoof-attacker (spoof attacks)
  • Attacker med brute force (brute force attacks)
  • Paketsniffer och fĂ„ngst (packet capture, sniffing)
  • Portstöld (port stealing)

Vanlig FTP erbjuder ingen möjlighet att överföra data i krypterad form, vilket gör att anvÀndarnamn, lösenord, kommandon och annan information lÀtt kan snappas upp av illasinnade aktörer. Den vanliga lösningen pÄ detta problem Àr att anvÀnda "sÀkra", TLS-skyddade versioner av den sÄrbara protokollet (FTPS) eller ett annat, mer skyddat protokoll, som SFTP/SCP, som tillhandahÄlls med de flesta implementationer av Secure Shell-protokollet.

FTPS

FTPS (FTP + SSL) Àr en utvidgning av den standardiserade filöverföringsprotokollen, som lÀgger till möjligheten att skapa krypterade sessioner med hjÀlp av protokollet SSL (Secure Sockets Layer). Idag tillhandahÄlls skyddet av dess mer avancerade motsvarighet TLS (Transport Layer Security).

SSL

SSL-protokollet föreslogs av Netscape Communications 1996 för att sÀkerstÀlla sÀkerhet och sekretess i internetanslutningar. Protokollet stödjer autentisering av klient och server, Àr oberoende av applikationer och Àr transparent för protokollen HTTP, FTP och Telnet.

SSL Handshake-protokollet bestÄr av tvÄ steg: autentisering av servern och valfritt autentiseringssteg för klienten. I det första steget skickar servern sitt certifikat och krypteringsparametrar som svar pÄ klientens begÀran. Klienten genererar sedan en masternyckel, krypterar den med serverns offentliga nyckel och skickar den till servern. Servern dekrypterar masternyckeln med sin privata nyckel och bekrÀftar sin identitet för klienten genom att returnera ett meddelande signerat med klientens masternyckel.

Efterföljande data krypteras och verifieras med nycklar som hÀmtats frÄn denna masternyckel. I det andra steget, som inte Àr obligatoriskt, skickar servern en begÀran till klienten, som bekrÀftar serverns autenticitet genom att returnera begÀran med sin egen digitala signatur och certifikat för den offentliga nyckeln.

SSL stöder ett antal kryptografiska algoritmer. Under anslutningsetablering anvÀnds kryptosystemet för offentlig nyckel RSA. Efter nyckelutbytet anvÀnds mÄnga olika algoritmer: RC2, RC4, IDEA, DES och TripleDES. MD5 anvÀnds ocksÄ - en algoritm för att skapa meddelandedigester. Syntaxen för certifikat med offentlig nyckel beskrivs i X.509.

En av de viktigaste fördelarna med SSL Àr dess fullstÀndiga plattformsoberoende. Protokollet Àr utvecklat pÄ principer av portabilitet, och ideologin bakom dess konstruktion Àr oberoende av de applikationer i vilka det anvÀnds. Dessutom Àr det viktigt att notera att andra protokoll kan lÀggas ovanpÄ SSL-protokollet; antingen för att ytterligare öka sÀkerhetsnivÄn för de mÄlade informationsflödena, eller för att anpassa SSL:s kryptografiska kapabiliteter för en specifik uppgift.

SSL-anslutning

Protokollen SFTP och FTPS.

Den tillhandahÄllna SSL-sÀkra kanalen har tre huvudegenskaper:

  • Kanalen Ă€r privat. Kryptering anvĂ€nds för alla meddelanden efter en enkel dialog som syftar till att faststĂ€lla den hemliga nyckeln.
  • Kanalen Ă€r autentiserad. Serverns sida av dialogen autentiseras alltid, medan klientens sida autentiseras valfritt.
  • Kanalen Ă€r pĂ„litlig. Transport av meddelanden inkluderar integritetskontroll (med hjĂ€lp av MAC).

Egenskaper hos FTPS

Det finns tvÄ implementeringar av FTPS som anvÀnder olika metoder för att tillhandahÄlla sÀkerhet:

  • Den implicita metoden innebĂ€r anvĂ€ndning av den standardiserade SSL-protokollen med sessionetablering före dataöverföring, vilket Ă„ sin sida bryter mot kompatibiliteten med vanliga FTP-klienter och servrar. För att sĂ€kerstĂ€lla bakĂ„tkompatibilitet med klienter som inte stöder FTPS anvĂ€nds TCP-port 990 för kontrollanslutning och 989 för dataöverföring. Detta gör att den standardiserade porten 21 för FTP-protokollet kan bevaras. Denna metod anses vara förĂ„ldrad.
  • Explicit – mycket mer bekvĂ€mt eftersom det anvĂ€nder standard FTP-kommandon, men vid svar krypterar det data, vilket möjliggör ett och samma styranslutning för bĂ„de FTP och FTPS. Klienten mĂ„ste uttryckligen begĂ€ra sĂ€ker dataöverföring frĂ„n servern och sedan bekrĂ€fta krypteringsmetoden. Om klienten inte begĂ€r sĂ€ker överföring, har FTPS-servern rĂ€tt att antingen behĂ„lla eller stĂ€nga av den oskyddade anslutningen. Mekanismen för förhandling av identitet och dataskydd lades till under RFC 2228, som inkluderar ett nytt FTP-kommando, AUTH. Även om denna standard inte uttryckligen definierar skyddsmekanismer, faststĂ€ller den att en sĂ€ker anslutning ska initieras av klienten med hjĂ€lp av den ovan beskrivna algoritmen. Om sĂ€kra anslutningar inte stöds av servern, ska felkod 504 returneras. FTPS-klienter kan fĂ„ information om serverns stödda skyddprotokoll genom kommandot FEAT, men servern Ă€r inte skyldig att avslöja vilka sĂ€kerhetsnivĂ„er den stöder. De vanligaste FTPS-kommandona Ă€r AUTH TLS och AUTH SSL, som ger skydd genom TLS respektive SSL.

SFTP

SFTP (Secure File Transfer Protocol) – ett applikationsprotokoll för filöverföring som fungerar ovanpĂ„ en sĂ€ker kanal. Det ska inte förvĂ€xlas med (Simple File Transfer Protocol), som har samma förkortning. Medan FTPS Ă€r enbart en utökning av FTP, Ă€r SFTP ett separat och helt orelaterat protokoll som anvĂ€nder SSH (Secure Shell – sĂ€ker skal).

SĂ€ker skal

Utvecklingen av protokollet utfördes av en av IETF-grupperna kallad Secsh. Arbetsdokumentationen för det nya SFTP-protokollet blev inte en officiell standard, men började tillÀmpas aktivt för utveckling av applikationer. Senare slÀpptes sex versioner av protokollet. Men den gradvisa tillÀggningen av funktionalitet ledde till att den 14 augusti 2006 togs beslutet att avbryta arbetet med protokollets utveckling pÄ grund av att huvudmÄlet för projektet (utveckling av SSH) var uppfyllt och att det inte fanns tillrÀcklig expertis för att gÄ vidare med utvecklingen av ett fullstÀndigt protokoll för fjÀrrfilsystem.

SSH Àr ett nÀtverksprotokoll som möjliggör fjÀrrhantering av operativsystem och tunneling av TCP-anslutningar (till exempel för att överföra filer). Det Àr liknande i funktionalitet med protokollen Telnet och rlogin, men till skillnad frÄn dem krypterar det all trafik, inklusive överförda lösenord. SSH tillÄter val av olika krypteringsalgoritmer. SSH-klienter och SSH-servrar finns tillgÀngliga för de flesta nÀtverksoperativsystem.

SSH gör det möjligt att sÀkert överföra nÀstan vilket annat nÀtverksprotokoll som helst i en osÀker miljö. PÄ sÄ sÀtt kan man inte bara arbeta pÄ datorn pÄ distans via kommandoraden, utan ocksÄ överföra ljud eller video (till exempel frÄn en webbkameran) över en krypterad kanal. Dessutom kan SSH anvÀnda komprimering av överförda data för efterföljande kryptering, vilket Àr praktiskt, till exempel för att fjÀrrstarta X WindowSystem-klienter.

Den första versionen av protokollet, SSH-1, utvecklades 1995 av forskaren Tatu Ylönen vid Tekniska universitetet i Helsingfors (Finland). SSH-1 skrevs för att sĂ€kerstĂ€lla mer konfidentialitet Ă€n protokollen rlogin, telnet och rsh. År 1996 utvecklades en sĂ€krare version av protokollet, SSH-2, som Ă€r inkompatibel med SSH-1. Protokollet blev Ă€nnu mer populĂ€rt och Ă„r 2000 hade det cirka tvĂ„ miljoner anvĂ€ndare. Idag syftar termen "SSH" vanligtvis pĂ„ just SSH-2, eftersom den första versionen av protokollet, pĂ„ grund av betydande brister, numera praktiskt taget inte anvĂ€nds. År 2006 godkĂ€nde IETF:s arbetsgrupp protokollet som en Internetstandard.

Det finns tvĂ„ vanliga implementationer av SSH: en privat kommersiell och en gratis öppen. Den öppna implementationen kallas OpenSSH. År 2006 anvĂ€nde 80 % av datorerna pĂ„ Internet just OpenSSH. Den privata implementationen utvecklas av SSH Communications Security, som Ă€r ett helĂ€gt dotterbolag till Tectia Corporation, och Ă€r gratis för ideellt bruk. Dessa implementationer innehĂ„ller praktiskt taget samma uppsĂ€ttning kommandon.

Protokoll SSH-2, till skillnad frÄn telnet-protokollet, Àr motstÄndskraftigt mot avlyssningsattacker ("sniffing"), men sÄrbart för "man-in-the-middle"-attacker. Protokoll SSH-2 Àr ocksÄ motstÄndskraftigt mot attacker genom sessionhijacking, eftersom det Àr omöjligt att ansluta sig till en redan etablerad session eller att fÄnga den.

För att förhindra "man-in-the-middle"-attacker vid anslutning till en vÀrd vars nyckel Ànnu inte Àr kÀnd för klienten, visar klientprogramvaran anvÀndaren en "nyckelfingeravtryck". Det rekommenderas att noggrant kontrollera det av klientprogramvaran visade "nyckelfingeravtrycket" mot serverns nyckelfingeravtryck, helst erhÄllet via pÄlitliga kommunikationskanaler eller personligen.

Stöd för SSH finns i alla UNIX-liknande system, och de flesta av dem har standardverktyg som inkluderar ssh-klient och server. Det finns mÄnga implementationer av SSH-klienter Àven för icke-UNIX operativsystem. Protokollet har blivit populÀrt efter den omfattande utvecklingen av trafikanalysatorer och sÀtt att störa lokala nÀtverk, som en alternativ lösning till det osÀkra Telnet-protokollet för att hantera viktiga noder.

Kommunikation med hjÀlp av SSH

För att arbeta via SSH krÀvs en SSH-server och en SSH-klient. Servern lyssnar pÄ anslutningar frÄn klientmaskiner och vid upprÀttande av kontakt autentiserar den sig, varefter den börjar betjÀna klienten. Klienten anvÀnds för att logga in pÄ en fjÀrrmaskin och köra kommandon.

Protokollen SFTP och FTPS.

JÀmförelse med FTPS

Det som frÀmst skiljer SFTP frÄn standard FTP och FTPS Àr att SFTP krypterar absolut alla kommandon, anvÀndarnamn, lösenord och annan konfidentiell information.

BÄde FTPS och SFTP anvÀnder en kombination av asymmetriska algoritmer (RSA, DSA), symmetriska algoritmer (DES/3DES, AES, Twhofish etc.), samt algoritmer för nyckelutbyte. För autentisering anvÀnder FTPS (eller, för att vara mer exakt, SSL/TLS via FTP) X.509-certifikat, medan SFTP (SSH-protokollet) anvÀnder SSH-nycklar.

X.509-certifikat innehÄller en offentlig nyckel och viss information om certifikatets Àgare. Denna information gör det möjligt att kontrollera certifikatets integritet, Àkthet och Àgaren av certifikatet. X.509-certifikat har en motsvarande privat nyckel som vanligtvis lagras separat frÄn certifikatet av sÀkerhetsskÀl.

SSH-nyckeln innehĂ„ller endast den offentliga nyckeln (den motsvarande privata nyckeln lagras separat). Den innehĂ„ller ingen information om nyckelns Ă€gare. Vissa SSH-implementationer anvĂ€nder X.509-certifikat för autentisering, men de verifierar faktiskt inte hela certifikatkedjan — endast den offentliga nyckeln anvĂ€nds (vilket gör att autentiseringen Ă€r ofullstĂ€ndig).

Slutsats

FTP-protokollet spelar fortfarande en viktig roll nÀr det gÀller lagring och distribution av information pÄ nÀtet trots sin Älder. Det Àr ett anvÀndarvÀnligt, multifunktionellt och standardiserat protokoll. MÄnga filarkiv bygger pÄ det, vilket gör tekniskt arbete mer effektivt. Dessutom Àr det lÀtt att konfigurera, och server- och klientprogram finns nÀstan för alla aktuella och mindre aktuella plattformar.

Dess skyddade versioner löser i sin tur problemet med sekretessen för lagrad och överförd data i dagens vÀrld. BÄda nya protokollen har sina fördelar och nackdelar och utför nÄgot olika roller. I de omrÄden dÀr ett filarkiv Àr nödvÀndigt, Àr det att föredra att anvÀnda FTPS, sÀrskilt om den klassiska FTP redan har anvÀnts dÀr. SFTP Àr mindre vanligt pÄ grund av sin inkompatibilitet med det Àldre protokollet, men det Àr mer sÀkert och har större funktionalitet, eftersom det Àr en del av systemet för fjÀrrstyrning.

KÀllförteckning

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster