Das File Transfer Protocol (FTP) dient zur plattformunabhängigen
Dateiübertragung im Internet und basiert auf einer
Server-Client-Architektur.
RFC 959
schreibt vor, dass FTP in zwei unterschiedliche Kanäle getrennt wird,
wobei ein Kanal für die Daten (TCP-Port 20) und der andere zur
Steuerung (TCP-Port 21) dient. Über den Steuerkanal tauschen die beiden
Seiten (Server und Client) Kommandos aus, welche dann den Datentransfer
einleiten. Eine FTP-Verbindung verläuft in vier Schritten:
-
Benutzerauthentifizierung
-
Aufbau des Steuerungskanals
-
Aufbau des Datenkanals
-
Beenden der Verbindung
FTP benutzt als Transportprotokoll das verbindungsorientierte
TCP
(Transmission Control Protocol), welches sicherstellt, dass die Daten
auch wirklich beim Empfänger ankommen. Somit braucht sich FTP nicht um
einen möglichen Paketverlust bzw. eine Fehlerkontrolle bei der
Dateiübertragung kümmern. Grob formuliert sorgt
TCP
also dafür, dass jedes einzelne Datenpaket nur einmal ankommt - fehlerfrei
bei der Übertragung und in der richtigen Reihenfolge.
Bei der Dateiübertragung unterscheidet man drei Transferarten, wobei der
Abschluß des Transfers im Stream-Modus durch ein End-of-File (EOF), bei
den beiden anderen Übertragungsarten durch ein End-of-Record (EOR)
gekennzeichnet wird.
Des Weiteren gibt es zwei verschiedene Transfermodi:
Der ASCII-Modus dient zur Übertragung von Textdateien, wohingegen der
Binary-Modus beispielsweise zum Transfer von Programmen oder dergleichen
dient. Der Benutzer muß den Transfermodus für gewöhnlich nicht explizit
auswählen, da mittlerweile alle FTP-Clients die zu übertragende Datei
erkennen und automatisch umschalten.
Da die Übermittlung der Benutzerkennung und des Passwortes zur
Authentifizierung nicht verschlüsselt wird, ist es sehr wichtig,
ausdrücklich auf dieses potentielle Sicherheitsrisiko hinzuweisen. Aus
diesem Grund machte man sich Gedanken über die Sicherheit von FTP. Im
Oktober 1997 wurde schließlich das
RFC 2228
veröffentlicht, welches sicherheitsspezifische Erweiterungen für das
File Transfer Protocol definiert.
|