FTPS (File Transfer Protocol + SSL nebo FTP/SSL) je rozšířením široce používaného protokolu přenosu dat FTP , který přidává podporu pro šifrovací protokoly transportní bezpečnostní vrstvy a zabezpečené sokety .
FTPS by se nemělo zaměňovat s SFTP , liší se také od FTP přes SSH - přenos FTP dat a příkazů přes zabezpečené připojení SSH.
Protokol FTP byl sestaven v roce 1971 pro použití ve výzkumné síti ARPANET . V té době byl přístup k ARPANET omezen na malý počet vojenských zařízení a univerzit. Úzká komunita uživatelů, kteří mohli mezi sebou spolupracovat, nepotřebovala chránit informace a poskytovat důvěrnost dat.
Postupem času se ARPANET postupně vyvinul v NSFNET a později v World Wide Web . Zároveň rostl počet uživatelů, zvětšovaly se vzdálenosti mezi koncovými FTP klienty a FTP servery a zvyšovala se možnost neoprávněného přístupu třetích osob k tajným vojenským či vědeckým souborům.
V roce 1994 Netscape vyvinul a publikoval protokol SSL , obal kolem protokolů aplikační vrstvy (podle zásobníku protokolů TCP/IP ). Tento protokol umožňoval aplikacím komunikovat mezi sebou po síti bezpečným způsobem, čímž zabraňoval odposlechu, falšování a prozrazení soukromých dat. Protokol SSL přidal zabezpečení každému protokolu, který používá spolehlivá spojení (jako je TCP ) a začal se aktivně používat v prohlížeči Netscape a později k vytvoření zabezpečeného protokolu HTTPS .
Protokol SSL byl nakonec aplikován na protokol FTP v pracovním návrhu ( RFC ) v roce 1996. O něco později byl tento projekt zaregistrován správou internetového adresního prostoru . Návrhy změn však byly dokončeny až v roce 2005.
Existují dva různé způsoby zabezpečení FTP klienta: explicitní a implicitní. Použití implicitní metody předpokládá, že před odesláním jakýchkoli dat bude vytvořena relace TLS nebo SSL , což zase narušuje kompatibilitu s FTP klienty a servery, které nepodporují protokol FTPS. Explicitní metoda používá standardní příkazy protokolu FTP, ale šifruje data při odpovědi, což umožňuje použití stejného řídicího portu pro FTP i FTPS. Tato metoda se používá v HTTPS , STARTTLS při implementaci TLS pro protokoly HTTP a SMTP.
Při použití implicitní konfigurace FTPS není podporováno vyjednávání mezi klientem a serverem. Klient FTPS po připojení odešle zprávu „ClientHello“ serveru TLS . Pokud od klienta žádná taková zpráva neobdrží, FTPS server musí spojení ukončit.
Pro zpětnou kompatibilitu s klienty, kteří nepodporují FTPS, je port 990/TCP použit pro řídicí připojení a 989/TCP pro přenos dat. To vám umožní zachovat standardní port 21/TCP pro protokol FTP.
Při použití explicitní konfigurace FTPS (známé také jako FTPES) musí klient výslovně požádat o zabezpečený přenos dat ze serveru a poté schválit metodu šifrování. Pokud klient nepožaduje zabezpečený přenos, server FTPS může nezabezpečené připojení ponechat nebo ukončit. Do RFC 2228 byl přidán mechanismus vyjednávání identity a zabezpečení dat, který obsahuje nový příkaz FTP AUTH. Ačkoli tento standard explicitně nedefinuje bezpečnostní mechanismy (TLS nebo SSL), specifikuje, že zabezpečené připojení musí být iniciováno klientem pomocí výše popsaného algoritmu. Pokud server nepodporuje zabezpečená připojení, měl by být vrácen chybový kód 504. Klienti FTPS mohou získat informace o bezpečnostních protokolech podporovaných serverem pomocí příkazu FEAT, server však nemusí sdělovat, jaké úrovně zabezpečení má. podporuje. Nejběžnější příkazy FTPS jsou AUTH TLS a AUTH SSL, které poskytují zabezpečení TLS a SSL .
FTPS zahrnuje plnou podporu pro kryptografické protokoly TLS a SSL, včetně použití certifikátů veřejného klíče na straně serveru a autorizačních certifikátů na straně klienta. Podporuje také standardní šifrovací algoritmy - AES , RC4 , RC2 , Triple DES a DES a hashovací funkce SHA , MD5 , MD4 a MD2 .
V implicitním režimu je celá relace FTPS šifrována. Explicitní režim se liší tím, že klient má plnou kontrolu nad provozem, který vyžaduje šifrování.
Povolení a zakázání režimu šifrování pro řídicí i datové připojení lze provést kdykoli. Jediným omezením je, že server může odmítat příkazy na základě své vlastní bezpečnostní politiky.
Do režimu zabezpečeného řídicího připojení se můžete přepnout pomocí obou příkazů – AUTH TLS a AUTH SSL. V tomto režimu budou všechny příkazy mezi serverem a klientem šifrovány. Obecně se doporučuje zadat tento stav před autentizací a autorizací uživatele, aby se zabránilo zachycení uživatelského jména nebo hesla třetími stranami.
Zabezpečené datové připojeníDo režimu zabezpečeného datového připojení můžete přepnout pomocí příkazu PROT. Při použití příkazu udělení AUTH TLS není ve výchozím nastavení povoleno. V tomto režimu budou všechna spojení pro výměnu dat mezi klientem a serverem šifrována. Klient může kdykoli změnit režim přenosu dat pomocí příkazu CDC.
Důvody pro zakázání šifrováníV následujících případech nemusí být šifrování datového spojení výhodné:
V následujících případech nemusí být výhodné šifrovat příkazový kanál:
Stejně jako protokol HTTPS musí servery FTPS poskytovat certifikát veřejného klíče. Tyto certifikáty lze vyžádat a vytvořit pomocí OpenSSL nebo jiných programů.
Certifikáty musí být podepsány důvěryhodnou certifikační autoritou [1] , tím je zajištěno, že se klient připojí k požadovanému serveru, čímž se zabrání útoku typu man-in-the-middle . Pokud certifikát není podepsán, klient FTPS vygeneruje varování o neplatnosti certifikátu. Klient má právo buď přijmout certifikát, nebo odmítnout připojení.
Podpora certifikátů odlišuje FTPS od SFTP , které neposkytuje podepsané certifikáty, ale místo toho se spoléhá na klíče páru veřejných klíčů.
Jak víte, protokol FTP používá ke své práci dvě připojení: jedno pro přenos dat a druhé pro výměnu příkazů. Mnoho firewallů je navrženo tak, aby určovalo port, na kterém jsou data přenášena, a zajišťovala jeho provoz. Pokud je však řídicí připojení šifrováno pomocí TLS nebo SSL , informace o čísle portu datového připojení jsou zašifrovány a brána firewall je nedokáže dešifrovat. V tomto případě je přenos dat a provoz přes protokol FTPS buď zcela nemožný, nebo omezený na pasivní režim. Tento problém lze vyřešit následujícím způsobem: nastavit omezený rozsah portů pro přenos dat a nakonfigurovat firewall tak, aby tyto porty zůstaly otevřené.
protokoly TCP /IP podle vrstev modelu OSI | Základní|
---|---|
Fyzický | |
odvedeny | |
síť | |
Doprava | |
zasedání | |
Zastoupení | |
Aplikovaný | |
Uplatněno jiné | |
Seznam portů TCP a UDP |