FTPS

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 augusti 2019; kontroller kräver 4 redigeringar .

FTPS (File Transfer Protocol + SSL, eller FTP/SSL) är en förlängning av det allmänt använda FTP- dataöverföringsprotokollet som lägger till stöd för kryptografiska protokoll för transportsäkerhetslager och säkra uttag .

FTPS ska inte förväxlas med SFTP , det skiljer sig också från FTP över SSH - överföring av FTP-data och kommandon över en säker SSH-anslutning.

Bakgrund

FTP-protokollet kompilerades 1971 för användning i forskningsnätverket ARPANET . På den tiden var tillgången till ARPANET begränsad till ett litet antal militära installationer och universitet. En smal gemenskap av användare som kunde samarbeta med varandra behövde inte skydda information och behovet av att tillhandahålla datakonfidentialitet.

Med tiden utvecklades ARPANET gradvis till NSFNET och senare till World Wide Web . Samtidigt växte antalet användare, avstånden mellan slut-FTP-klienter och FTP-servrar ökade och chansen för obehörig åtkomst av tredje part till hemliga militära eller vetenskapliga filer ökade.

1994 utvecklade och publicerade Netscape SSL- protokollet , ett omslag runt applikationslagerprotokoll (enligt TCP/IP- protokollstacken ). Detta protokoll gjorde det möjligt för applikationer att kommunicera med varandra över nätverket på ett säkert sätt, vilket förhindrade avlyssning, förfalskning och avslöjande av privata data. SSL-protokollet lade till säkerhet till alla protokoll som använder pålitliga anslutningar (som TCP ) och började användas aktivt i Netscape- webbläsaren och senare för att bilda det säkra HTTPS-protokollet .

SSL -protokollet tillämpades så småningom på FTP- protokollet i ett utkast till arbetsförslag ( RFC ) 1996. Lite senare registrerades detta projekt av administrationen av Internetadressutrymmet . Ändringsförslagen slutfördes dock inte förrän 2005.

Säkerhetsmetoder

Det finns två olika metoder för att säkra en FTP-klient: explicit och implicit. Att använda den implicita metoden förutsätter att en TLS- eller SSL- session kommer att upprättas innan någon data skickas, vilket i sin tur bryter kompatibiliteten med FTP-klienter och servrar som inte stöder FTPS-protokollet. Den explicita metoden använder vanliga FTP-protokollkommandon, men krypterar data vid svar, vilket tillåter användning av samma kontrollport för både FTP och FTPS. Denna metod används i HTTPS , STARTTLS när TLS implementeras för HTTP- respektive SMTP-protokollen.

Implicit metod

När du använder implicit FTPS-konfiguration stöds inte förhandling mellan klient och server. FTPS-klienten skickar ett "ClientHello"-meddelande till TLS -servern efter anslutning. Om inget sådant meddelande tas emot från klienten måste FTPS-servern stänga anslutningen.

För bakåtkompatibilitet med klienter som inte stöder FTPS, används port 990/TCP för kontrollanslutningen och 989/TCP för dataöverföring. Detta gör att du kan behålla standardporten 21/TCP för FTP-protokollet.

Explicit metod

När du använder en explicit FTPS-konfiguration (även känd som FTPES), måste klienten uttryckligen begära en säker dataöverföring från servern och sedan godkänna krypteringsmetoden. Om klienten inte begär en säker överföring är FTPS-servern fri att antingen behålla eller stänga den osäkrade anslutningen. En mekanism för identitetsförhandling och datasäkerhet lades till under RFC 2228 som inkluderar ett nytt FTP AUTH-kommando. Även om denna standard inte uttryckligen definierar säkerhetsmekanismer (TLS eller SSL), specificerar den att en säker anslutning måste initieras av klienten med hjälp av algoritmen som beskrivs ovan. Om säkra anslutningar inte stöds av servern ska en felkod 504 returneras. FTPS-klienter kan få information om säkerhetsprotokollen som stöds av servern med hjälp av FEAT-kommandot, men servern behöver inte avslöja vilka säkerhetsnivåer den stödjer. De vanligaste FTPS-kommandona är AUTH TLS och AUTH SSL, som tillhandahåller TLS- respektive SSL- säkerhet .

Transport Layer Security (TLS)/Secure Sockets Layer (SSL)

Allmänt stöd

FTPS inkluderar fullt stöd för TLS- och SSL-krypteringsprotokollen, inklusive användningen av certifikat för offentliga nyckel på serversidan och auktoriseringscertifikat på klientsidan. Den stöder även standardkrypteringsalgoritmer - AES , RC4 , RC2 , Triple DES och DES och hashfunktionerna SHA , MD5 , MD4 och MD2 .

Användningsomfång

I implicit läge är hela FTPS-sessionen krypterad. Explicit läge skiljer sig genom att klienten har full kontroll över trafiken som kräver kryptering.
Aktivering och inaktivering av krypteringsläget för både kontrollanslutningen och dataanslutningen kan göras när som helst. Den enda begränsningen är att servern kan avvisa kommandon baserat på sin egen säkerhetspolicy.

Säker kontrollanslutning

Du kan växla till läget för säker kontrollanslutning med båda kommandona - AUTH TLS och AUTH SSL. I detta läge kommer alla kommandon mellan servern och klienten att krypteras. Det rekommenderas i allmänhet att ange detta tillstånd innan du autentiserar och auktoriserar en användare för att undvika avlyssning av användarnamnet eller lösenordet av tredje part.

Säker dataanslutning

Du kan växla till läget för säker dataanslutning med kommandot PROT. Det är inte aktiverat som standard när kommandot AUTH TLS grant används. I detta läge kommer alla anslutningar för datautbyte mellan klienten och servern att krypteras. Klienten kan ändra dataöverföringsläget när som helst med CDC-kommandot.

Skäl att inaktivera kryptering

I följande fall kanske datalänkkryptering inte är fördelaktigt:

  • Filerna som överförs är redan krypterade av applikationen eller så sker överföringen över en krypterad VPN- anslutning
  • Tillgängliga TLS- eller SSL-protokoll ger inte den nödvändiga säkerhetsnivån.

I följande fall kanske det inte är fördelaktigt att kryptera kommandokanalen:

  • Använda FTPS-protokollet när klienten och/eller servern körs över en brandvägg eller NAT-enhet
  • Flera användningar av AUTH- och CCC/CDC-kommandon av en anonym FTP-klient under en session. Detta beteende kan misstas för en överbelastningsattack, eftersom TSL/SSL-sessionen måste återskapas varje gång.

SSL-certifikat

Precis som HTTPS-protokollet måste FTPS-servrar tillhandahålla ett certifikat för offentlig nyckel. Dessa certifikat kan begäras och skapas med OpenSSL eller andra program.

Certifikat måste signeras av en betrodd certifikatutfärdare [1] , detta säkerställer att klienten kommer att ansluta till den begärda servern, vilket undviker en man-in-the-middle- attack . Om certifikatet inte är signerat genererar FTPS-klienten en ogiltiga certifikatvarning. Klienten har rätt att antingen acceptera certifikatet eller avvisa anslutningen.

Certifikatstöd skiljer FTPS från SFTP , som inte tillhandahåller signerade certifikat, utan istället förlitar sig på offentliga nyckelparnycklar.

Brandväggsproblem _

Som ni vet använder FTP- protokollet två anslutningar för sitt arbete: en för dataöverföring, den andra för att utbyta kommandon. Många brandväggar är utformade för att bestämma porten där data överförs och säkerställa dess funktion. Men om kontrollanslutningen är krypterad med TLS eller SSL , krypteras dataanslutningens portnummerinformation och brandväggen kan inte dekryptera den. I detta fall är dataöverföring och drift via FTPS-protokollet antingen helt omöjligt eller begränsat till passivt läge. Detta problem kan lösas på följande sätt: ställ in ett begränsat antal portar för dataöverföring och konfigurera brandväggen så att dessa portar förblir öppna.

Se även

Anteckningar

  1. Vad är ett SSL-rotcertifikat och varför behövs det? . Hämtad 18 februari 2016. Arkiverad från originalet 25 februari 2016.

Länkar