next up previous contents
Next: Anonymous FTP Up: Analyse der Standard-Dienste Previous: mögliche Sicherheitspolitik

File Transfer

  Ein ebenfalls häufig genutzter Internet-Dienst ist File Transfer, d. h. die Übertragung von Dateien von einem Rechner zu einem anderen. Das im Internet verbreitetste Protokoll zur Übertragung von Dateien ist das File Transfer Protocol (FTP) [RFC959]. Es verwendet auf Transportebene das TCP-Protokoll, wobei der FTP-server üblicherweise auf Port 21 angesiedelt ist.

Möchte ein Benutzer ein File von einem Rechner A auf seinen eigenen Rechner, den Rechner B übertragen, so geht er folgendermaßen vor. Mit Hilfe seines FTP-client eröffnet er einen sogenannten control channel zwischen den beiden Rechnern. Zur Authentifizierung seiner Identität wird er aufgefordert, einen Account-Namen sowie ein gültiges Paßwort anzugeben. Dann stehen ihm Kommandos zur Verfügung, mit denen er sich in der Verzeichnisstruktur von Rechner A bewegen kann, wie z.B. die bekannten Kommandos cd und ls. Möchte er nun ein File übertragen, so kann er den Get-Befehl benutzen, um Daten von Rechner A auf Rechner B zu übertragen, sowie den Put-Befehl zur Übertragung in umgekehrter Richtung.

Die tatsächlichen Daten werden nicht auf dem control channel übertagen, sondern es wird ein zweiter Kanal, der sogenannte data channel eröffnet. Der server verwendet Port 20 für diesen Datenkanal, während der client normalerweise denselben Port verwenden sollte, den er auch für den Kontrollkanal benutzt. Da aber praktisch alle FTP-Implementierungen für jede Datenübertragung den Kanal neu öffnen und bei Ende der Übertragung wieder schließen und TCP außerdem die Eigenschaft hat, eine Neuverbindung derselben Ports erst nach Ablauf eines bestimmten Zeitintervalls zu gestatten, muß für jede Datenübertragung ein neuer Port gewählt werden. Der client wählt also einen neuen Port aus und teilt diesen dem server über das Port-Kommando mit, worauf der server einen Datenkanal zu ebendiesem Port des client-Rechner eröffnet.

Das Protokoll beinhaltet eine Möglichkeit, von einem dritten Rechner aus die Übertragung von Daten zwischen zwei Rechnern anzustoßen. Ein Benutzer an einem Rechner C möchte ein File von einem Rechner A auf einen Rechner B übertragen. Er eröffnet control channels zu beiden Rechnern. Daraufhin schickt er an einen der beiden Rechner, z.B. Rechner B ein sogenanntes PASV-Kommando, was diesen veranlaßt, dem client einen Port mitzuteilen, auf dem er auf eintreffende Verbindungen wartet, anstatt selber eine Verbindung aufzubauen, wenn ein Transferkommando eintrifft. Daraufhin wird an Rechner A ein PORT-Kommando abgesetzt, das diesen anweist, einen Datenkanal zu ebendiesem Port des Rechners B zu erzeugen. Dann kann man den beiden Rechnern die jeweils korrespondierenden Kommandos schicken, get filename an Rechner A, sowie put filename an Rechner B. Daraufhin wird Rechner A einen Datenkanal zu Rechner B erzeugen und die Datenübertragung kann stattfinden. Wie dies ausgenutzt werden kann, um die Sicherheit des FTP-Protokolls zu erhöhen, wird in einem späteren Kapitel (Kap. [*]) dargestellt.



 
next up previous contents
Next: Anonymous FTP Up: Analyse der Standard-Dienste Previous: mögliche Sicherheitspolitik
Root on HPHEGER0
8/28/1998