# FTP über SSL

FTPS im TCP/IP-Protokollstapel: :
| Anwendung | FTP | FTP | FTP | FTP | FTP |
| Transport | SSL/TLS | SSL/TLS | SSL/TLS | SSL/TLS | SSL/TLS |
| TCP |||||
| Internet | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) |
| Netzzugang | Ethernet | Token Bus | Token Ring | FDDI | … |
FTP über SSL oder FTP over TLS, kurz FTPS, ist eine Methode zur Verschlüsselung des File Transfer Protocol (FTP).

## Beschreibung

FTPS stellt eine FTP-Kommunikation über Transport Layer Security (TLS) dar. Durch die Nutzung von TLS ist eine Authentifizierung über X.509-Zertifikate möglich, die auf einer öffentlichen Vertrauensstruktur (PKI) beruht. Neben FTPS gibt es auch noch FTP over SSH, was SSH statt einer TLS-Verbindung nutzt. FTP over SSH wurde jedoch größtenteils durch SFTP verdrängt, einem unabhängig von FTP entwickelten Protokoll zum Übertragen von Dateien per SSH.
Man unterscheidet zwischen dem expliziten und dem (veralteten) impliziten FTPS-Verbindungsaufbau. Der Standardport für den expliziten Verbindungsaufbau vom Client am Server ist der FTP-Standard-Port 21/TCP. Explizite FTPS-Verbindungen werden über diesen Port zunächst als FTP-Verbindung aufgebaut, bevor sie zu FTPS wechseln. Danach baut der Server meist aktiv über Port 20/TCP eine Datenverbindung zum Client auf. Für den impliziten Verbindungsaufbau werden die Ports 990/TCP (Control) und Port 989/TCP (Data) verwendet.
Die Verschlüsselung von FTP erfordert mindestens zwei separate Verbindungen. FTPS sieht vor, dass die Nutzdaten nicht unbedingt verschlüsselt werden und nach der Authentifizierung die Verschlüsselung entfallen kann. Inwieweit beim FTPS verschlüsselt wird, hängt auch vom jeweiligen Server und Client ab. Durch die alleinige Verschlüsselung des Verbindungsaufbaus kann sich ein deutlicher Vorteil in der Übertragungsgeschwindigkeit im Vergleich zu SFTP oder SCP ergeben. Ob SFTP oder SCP ähnliche hohe Übertragungsgeschwindigkeiten erreichen, hängt von der genutzten Client- und Server-Software ab.
Mehrere Dutzend Clients und Server sowie einige Proxys unterstützen FTPS. Für FXP über TLS gibt es beispielsweise SSCN (set secured client negotiation).

## Ablauf

* Der Client baut einen herkömmlichen unverschlüsselten Kontrollkanal zum Server auf.
* Der Client sendet die Aufforderung AUTH TLS.
** Bleibt diese Aufforderung aus, kann der Server alle anderen Aufforderungen ablehnen.
* Der Server sendet als Ankündigung des Wechsels zu TLS die Antwort 234.
** Bleibt diese Antwort aus, kann der Client unverschlüsselt fortfahren.
* Ist auf dem Kontrollkanal zu TLS gewechselt, kann der Client zusätzlich TLS der Nutzdatenkanäle anfordern.
** Alternativ kann der Client jederzeit die Rückkehr zur unverschlüsselten Verbindung fordern, was der Server aber verweigern kann.

## Normen und Standards

FTPS ist als Request for Comments (RFC) standardisiert. Die erste und bis heute gültige Version ist RFC 4217 aus dem Jahre 2005 mit dem Titel Securing FTP with TLS. Kurios an diesem RFC ist, dass es ein Protokoll definiert, ohne eine eigene Abkürzung oder offiziellen Kurznamen festzulegen.
Das mitgenutzte Protokoll TLS erfuhr zwischenzeitlich einige Weiterentwicklungen, so dass seit 2021 eine Update-Verlinkung erfolgte mit RFC 8996.