SFTP, FTPS SCP & FTP

Verschillende protocollen om in essentie het zelfde te doen; bestandsoverdracht. Maar wat is dan het verschil tussen deze protocollen? Wanneer gebruik je SCP i.p.v. FTP? Wat is het verschil tussen FTPS en SFTP?

Als eerste FTP. FTP is het File Transfer Protocol wat al decennia lang wordt gebruikt om bestanden tussen systemen over te dragen. Hoewel FTP prima zijn ding doet is het niet het protocol waar vertrouwelijke informatie aan kan worden toevertrouwd. Gebruikersnaam, wachtwoord en data worden als tekst over de lijn heen verstuurd en kunnen indien onderschept door iedereen worden gelezen…

Om het e.e.a. wat veiliger te maken zijn er aan het FTP protocol encryptie protocollen toegevoegd. Hiervoor worden de protocollen SSH en SSL gebruikt.

FTP over SSH wordt SFTP genoemd. We doelen hier op de variant Secure File Transfer Protocol (niet Simple File Transfer protocol!) SFTP is onderdeel van OpenSSH. SFTP wordt dan ook veel binnen deze, hoofdzakelijk op Linux en Unix systemen geïmplementeerde, SSH variant gebruikt maar er zijn ook Windows implementaties. Het grote voordeel ten opzichte van FTP is dat alle pakketen, zowel de control sessie als de data sessie, versleuteld worden door een nader te specificeren encrytpie methodiek (AES, 3DES etc.). Als client kunnen onder andere een groot aantal FTP programma’s op Windows / Mac / Linux worden gebruikt. Ook in OpenSSH zit een commandline client. SFTP vindt plaats over de SSH poort; TCP poort 22 en staat standaard aan als OpenSSH wordt geïnstalleerd.

Erg nauw aan SFTP verbonden is SCP – Secure Copy. SCP is een alternatief voor RCP wat staat voor Remote Copy. SCP kan worden gebruikt om bestanden tussen verschillende systemen op een veilige manier te kopiëren. SCP biedt ongeveer de zelfde opties als het rcp commando op Linux / Unix wat de mogelijkheid biedt om bestanden met vele opties te kopiëren. Binnen Windows kan, naast de bij SFTP genoemde FTP programma’s, bijvoorbeeld ook WinSCP (of alternatieven hiervan) gebruikt worden. SCP is bijzonder goed op te nemen in scripts wat het een krachtig protocol maakt. Hiervoor moeten de hosts elkaar wel vertrouwen door vooraf key’s uit te wisselen. De host moet worden aangepast wat het minder ad-hoc maakt dan SFTP op FTPS. SCP gebruikt ook SSH, standaard over TCP poort 22

FTP over TSL/SSL wordt FTPS genoemd. De S in FTPS staat dan ook voor SSL. FTPS bied je de mogelijkheid om te kiezen of je data sessie wel of niet versleuteld moet worden. De control sessie waarin de credentials zich bevinden is altijd versleuteld. FTPS kan door de vrijheid de data wel of niet te versleutelen goed gebruikt worden als de data die verzonden moet worden al versleuteld is. Het is dan niet noodzakelijk om deze nogmaals te versleutelen wat performance en bandbreedte kan besparen. FTPS kan over verschillende poorten geconfigureerd worden maar vaak is TCP/UDP 990 de gebruikte poort voor de control sessie en TCP/UDP 989 voor de data sessie.