In diesem Abschnitt wird das SSH-Dateiübertragungsprotokoll („SFTP“) mit FTP over SSL („FTPS“) verglichen.
Trotz der unglücklichen Namensähnlichkeit unterscheiden sich die Protokolle SFTP (SSH File Transfer Protocol, SSH-Dateiübertragungsprotokoll) und FTP over SSL (FTPS) grundsätzlich. SFTP basiert auf SSH, das mit einem Satz Dateiübertragungsbefehlen ausgestattet wurde. FTPS hingegen ist das herkömmliche FTP-Protokoll, zu dem SSL hinzugefügt wurde, um eine gewisse Sicherheit zu bieten.
SFTP nutzt SSH (Secure Shell Protocol) als Grundlage. Es verwendet SSH für die integrierte Verschlüsselung während der Übertragung sowie einen spezifischen Satz von Benutzerbefehlen. Mit diesen Befehlen können Benutzer Dateien so übertragen, wie sie es von FTP gewohnt sind, aber mit der Sicherheit, die dem SSH-Protokoll innewohnt.
MOVEit Transfer implementiert Revision 3 (auch als Version 3 bezeichnet) des SFTP-Standardentwurfs.
IETF-Standard/Standardentwurf |
Kurze Beschreibung |
Hinweise |
SSH (RFC 4251) |
Ein Protokoll, das zur verschlüsselten Kommunikation über ein unverschlüsseltes Netzwerk genutzt wird. (In SFTP bezeichnet das „S“ das SSH-Protokoll.) SSH ist die Branchennorm für verschlüsselte Kommunikation. |
MOVEit Transfer SSH unterstützt die sicherere und beliebtere SSH-Version SSH2 (Version 2.x). SSH verwendet einen einzigen Verbindungskanal für Daten und Befehle. Dadurch ist es optimal für den Datenverkehr durch Firewalls hindurch. |
SFTP (SSH File Transfer Protocol) |
FTP-ähnliche Benutzerfunktionen mit der Sicherheit von SSH. |
SFTP ist praktisch der Internet-Standard für die verschlüsselte Dateiübertragung. MOVEit Transfer implementiert Revision 3 (auch als Version 3 bezeichnet) des SFTP-Standardentwurfs. Darin sind die Dateiübertragungsfunktionen von Entwurf 00, Entwurf 01 und Entwurf 02 enthalten. |
Obwohl das SSH2-Protokoll ein von der IETF-Community etablierter RFC ist, hat das darauf basierende SFTP-Protokoll regelmäßige Änderungen durchlaufen, um verschiedene Nutzungsmodelle zu implementieren. Einige Funktionen dieser Erweiterungsentwürfe sind mit älteren Entwurfsversionen nicht kompatibel. MOVEit Transfer implementiert einen frühen und weit verbreiteten Funktionsumfang von SFTP (Version 3).
FTPS bezeichnet das herkömmliche FTP, das mit SSL/TLS ausgeführt wird, um eine Verschlüsselung bei der Übertragung sicherzustellen.
IETF-Standard/Standardentwurf |
Kurze Beschreibung |
Hinweise |
FTP (RFC 959) |
Dateiübertragungsprotokoll (keine Sicherheitsfunktionen). |
FTP ist ein offizieller Internetstandard. |
FTPS |
FTPS fügt das Secure Socket Layer-Protokoll (SSL) (RFC 2246) hinzu, das als letzte Entwicklungsstufe von SSL bezeichnet wird („TLS“). |
FTP verwendet getrennte Kanäle für Steuerelemente (Befehle) und Daten. In der Regel nutzt der Datenkanal einen Port, der zufällig aus einem Portbereich ausgewählt wird. Aus diesem Grund ist FTP nicht immer die beste Lösung, wenn strenge Firewall-Grenzen überquert werden müssen. |
SFTP-Sitzungen bestehen aus einer Reihe von Befehls- und Antwortpaketen. Die Pakete bestehen aus strukturierten binären Informationen, einschließlich Integer-Befehlscodes und Antwortcodes. Die Befehle entsprechen Dateisystem-E/A-Routinen wie Öffnen(), Lesen(), Schreiben() und Schließen(). Zum Download einer Datei muss der SFTP-Client beispielsweise die Datei mit einem Öffnen-Befehl öffnen, gefolgt von einer Anzahl von Lese-Befehlen und einem Schließen-Befehl.
Im Gegensatz dazu verwenden FTP und FTP über SSL ASCII-Befehle, die mit CR LF getrennt werden. Zum Download einer Datei sendet der Client beispielsweise den Befehl „PORT“ oder „PASV“, um eine Datenverbindung herzustellen, gefolgt von dem Befehl „RETR“, der den Dateinamen angibt.
SSH verwendet eine einzige TCP-Portnummer – in der Regel Port 22 – für alle Arten von Verbindungen. Im Gegensatz dazu verwendet SSL verschiedene Portnummern für unterschiedliche Anwendungen. Zum Beispiel wird Port 443 in der Regel für HTTP über SSL und Port 990 für eine Version von FTP über SSL verwendet. Zudem erfordert FTP mehrere Portnummern bei Dateiübertragungen, da jede einzelne Dateiübertragung eine neue Verbindung an einem neuen Port herstellt.
Die Tatsache, dass Port 22 für alle SSH-Dienste verwendet wird, gestaltet es etwas schwierig, mehrere SSH-Serverprodukte auf demselben Computer auszuführen. Aber dies stellt für Systeme, auf denen MOVEit Transfer ausgeführt wird, selten ein Problem dar. Aufgrund der Tatsache, dass Port 22 der einzige für SFTP erforderliche Port ist – es gibt keine separaten Datenports – ist SFTP ein „firewallfreundlicheres“ Protokoll als FTP over SSL.
Sowohl SSH als auch SSL verwenden die Kryptographie für öffentliche Schlüssel zum Austausch von Sitzungsschlüsseln, die dann zum Verschlüsseln der Befehle und der Daten, die über das Netzwerk übertragen werden, verwendet wird. Die Sicherheit der von SSH verwendeten Algorithmen ist der von SSL verwendeten ähnlich, allerdings unterstützt SSH NICHT das Konzept einer Zertifizierungsstelle (ZS).
SSL erfordert ein Zertifikat, das in der Regel von einer Zertifizierungsstelle wie www.thawte.com erworben wird. Ein Zertifikat bürgt für die Identität des Servers. SSH verwendet einen unterschiedlichen Ansatz, bei dem jeder Server seinen eigenen öffentlichen Schlüssel erzeugt. Es gibt keine vertrauenswürdige Stelle, die für die Identität eines SSH-Servers bürgt. Zum Ausgleich speichert laut Konvention jeder SSH-Client den öffentlichen Schlüssel jedes Servers, zu dem der Client jemals eine Verbindung hergestellt hat. Wenn bei einem späteren Verbindungsversuch der Server einen unterschiedlichen öffentlichen Schlüssel vorweist, warnt der SSH-Client den Benutzer, dass es sich beim SSH-Server möglicherweise um einen feindlichen Server handelt, der sich als ursprünglicher Server tarnt.
Aufgrund dieser Unterschiede kann die Verwaltung von FTP-über-SSL (FTPS)-Servern etwas mühsamer sein als die Verwaltung von SSH/FTP (SFTP)-Servern. Allerdings sind FTPS-Server aufgrund des ausgefeilteren Zertifikatsschemas etwas sicherer.