# FTP over SSL

FTP over SSL, officieel FTPS en ook bekend als FTP Secure en FTP-SSL, is een uitbreiding voor het veelgebruikte file transfer protocol (FTP) dat ondersteuning voor Transport Layer Security (TLS) en Secure Sockets Layer (SSL) biedt.
FTPS mag niet met SSH File Transfer Protocol (SFTP) verward worden. Het verschilt ook van FTP over SSH waarbij FTP via een SSH-verbinding getunneld wordt en FISH, waarmee bestanden over een shellverbinding (SSH, rsh) verstuurd worden.

## Geschiedenis

Het eerste concept van het FTP-protocol werd in 1971 voor gebruik in het wetenschappelijke en onderzoeksgerichte ARPANET ontworpen. De toegang tot ARPANET was gedurende die tijd beperkt tot een aantal militaire websites en universiteiten waardoor men het niet nodig achtte om de gegevens te beveiligen en beveiliging in het protocol te integreren. Terwijl ARPANET de weg vrijmaakte voor het huidige internet begonnen de gegevens er langer over te doen om van bij de server naar de client te gaan. De kans voor onbevoegde personen om de gegevens te onderscheppen werd steeds groter.
In 1994 heeft Netscape (ontwerper van de gelijknamige webbrowser) een omkapseling SSL ontwikkeld. Dit protocol maakte het mogelijk voor programma's om private en veilige communicatie over een netwerk te laten verlopen waardoor mogelijke afluisteraars ontmoedigd worden en het voor hen onmogelijk wordt om de gegevens te vervalsen. Hoewel het ieder protocol dat betrouwbare verbindingen (zoals TCP) gebruikt kan beveiligen werd het door Netscape meestal in combinatie met HTTP gebruikt om HTTPS te vormen.
Het SSL-protocol werd uiteindelijk op FTP toegepast nadat een RFC eind 1996 gepubliceerd werd. Een officiële IANA poort werd kort daarna geregistreerd. De RFC was tot 2005 echter niet voltooid.

## Methoden voor totstandbrenging

Er zijn twee aparte methoden om transportbeveiliging voor gebruik bij FTP clients ontwikkeld: expliciet en impliciet.

## Redenen om de codering uit te schakelen

Het kan onnodig zijn om het gegevenskanaal te coderen als de overdracht volgens een van onderstaande scenario's gebeurt:
* De verstuurde bestanden zijn van een niet-gevoelige aard waardoor de beveiliging overbodig wordt.
* De verstuurde bestanden zijn al op bestandsniveau gecodeerd waardoor de beveiliging die FTPS biedt overbodig wordt.
Het kan nadelig zijn om het controlekanaal te coderen bij een van volgende scenario's:
* Gebruik van FTPS als de server en/of client achter een firewall of network address translation apparaat zitten.
* Herhaald gebruik van AUTH en CCC/CDC commando's door anonieme FTP clients binnen dezelfde sessie. Zo'n gedrag kan als een DoS-aanval gezien worden omdat de TLS/SSL sessie steeds opnieuw gegenereerd moet worden en dat neemt een zekere verwerkingstijd van de processor in beslag.

## SSL-certificaten

Gelijkaardig met HTTPS maar in tegenstelling tot SFTP moeten FTPS-servers een publiekesleutelcertificaat aanbieden. Deze certificaten kunnen met Unix-programma's zoals ssl-ca van OpenSSL aangemaakt worden. Deze certificaten moeten door een vertrouwde certificaatautoriteit ondertekend worden of anders zal de FTPS client een waarschuwing tonen waarin vermeld wordt dat de ondertekening in het certificaat ongeldig is.

## Externe link

* (en) Overzicht van FTPS, lijsten met clients, servers en proxy's die FTPS ondersteunen
* ↑ RFC-265: File Transfer Protocol (FTP)
* ↑ RFC draft, SSL 2.0 Protocol Specification, revision 1995-02-09
* ↑ RFC draft, Secure FTP Over SSL, revision 1996-11-26. Gearchiveerd op 20 januari 2022.
* ↑ RFC-4217: Securing FTP with TLS