Die Kommunikation mit SFTP (Secure File Transfer Protocol) erfolgt über eine verschlüsselte Verbindung, in der Regel über SSH (Secure Shell).
SFTP ist eine Erweiterung des SSH-Protokolls und bietet sichere Dateiübertragung und -verwaltung zwischen einem Client und einem Server. Hier ist eine Schritt-für-Schritt-Erklärung, wie die Kommunikation mit SFTP abläuft:
1. SSH-Verbindung herstellen: Der Client (z. B. Ihr SFTP-Client-Programm) initiiert eine SSH-Verbindung zum SFTP-Server. Diese Verbindung wird normalerweise über Port 22 (Standard-SSH-Port) hergestellt.
2. Authentifizierung: Der Client authentifiziert sich gegenüber dem Server, indem er Benutzername und Kennwort oder alternative Methoden wie öffentliche Schlüssel verwendet. Diese Informationen werden verschlüsselt übertragen.
3. Sitzung aufbauen: Sobald die Authentifizierung erfolgreich abgeschlossen ist, wird eine sichere Sitzung zwischen Client und Server aufgebaut. Während dieser Sitzung erfolgt die Übertragung von Befehlen und Daten.
4. SFTP-Subsystem starten: Der Client startet das SFTP-Subsystem innerhalb der SSH-Sitzung. Dies erfolgt normalerweise automatisch, wenn Sie ein SFTP-Client-Programm verwenden.
5. SFTP-Befehle senden: Der Client sendet SFTP-Befehle (z. B. ls, get, put, cd, mkdir, usw.) an den Server, um Dateien oder Verzeichnisse zu verwalten und zu übertragen. Diese Befehle werden in einer speziellen SFTP-Sitzung verschlüsselt.
6. Datenübertragung: Wenn Dateien übertragen werden, werden die Dateiinhalte ebenfalls verschlüsselt, bevor sie über das SFTP-Protokoll gesendet werden. Dies gewährleistet die Sicherheit der übertragenen Daten.
7. Zertifikatüberprüfung: Während des SSH-Handshakes überprüft der Client das Serverzertifikat, um sicherzustellen, dass er tatsächlich mit dem erwarteten Server kommuniziert. Die Überprüfung erfolgt anhand der öffentlichen Schlüssel des Servers und kann gegen eine lokale Liste von vertrauenswürdigen Zertifikaten (bekannt als Host-Schlüssel) durchgeführt werden. Wenn das Serverzertifikat nicht vertrauenswürdig ist oder nicht mit den erwarteten Schlüsseln übereinstimmt, wird die Verbindung beendet, um vor möglichen Man-in-the-Middle-Angriffen zu schützen.
8. Ende der Sitzung: Nach Abschluss der SFTP-Operationen und bei Bedarf wird die SSH-Sitzung sicher beendet. Alle Daten und Befehle, die während der Sitzung übertragen wurden, sind verschlüsselt und geschützt.
Die Verschlüsselung und Authentifizierung in der SSH-SFTP-Kommunikation bieten ein hohes Maß an Sicherheit und Datenschutz. Die Zertifikatüberprüfung gewährleistet, dass der Client sicher mit dem richtigen Server kommuniziert, ohne Opfer von Man-in-the-Middle-Angriffen zu werden. Die Details der Zertifikatüberprüfung können je nach SFTP-Client und Konfiguration variieren, sind aber ein entscheidender Bestandteil der Sicherheit von SSH-Verbindungen.
SFTP nicht verwechseln mit FTPS:
Aspekt | SFTP | FTPS |
---|---|---|
Protokoll | SFTP ist ein Teil des SSH-Protokolls und bietet verschlüsselte Dateiübertragungen und -verwaltung. | FTPS steht für „FTP Secure“ und ist eine Erweiterung von FTP, die TLS/SSL-Verschlüsselung verwendet. |
Port | Standardmäßig Port 22 oder benutzerdefinierte Ports für SSH-Verbindungen. | Standardmäßig Port 21 für FTP-Verbindungen, und ein zusätzlicher Port (z. B. 990) für verschlüsselte Datenverbindungen im expliziten FTPS-Modus. |
Verschlüsselung | Die gesamte Kommunikation ist verschlüsselt, einschließlich Authentifizierung und Datenübertragung. | Die Verschlüsselung erfolgt nur für die Datenübertragung, die Authentifizierung kann jedoch unverschlüsselt sein (im impliziten Modus) oder verschlüsselt (im expliziten Modus). |
Zertifikatsüberprüfung | Die Überprüfung der Serverzertifikate ist üblich und wird während des SSH-Handshakes durchgeführt. | In FTPS erfolgt die Überprüfung von Serverzertifikaten optional und wird normalerweise vom Client konfiguriert. |
Unterstützte Plattformen | Weit verbreitet und plattformunabhängig, da es auf SSH basiert. | Plattformunabhängig, aber die Unterstützung für TLS/SSL-Zertifikate kann variieren. |
Client-Unterstützung | Viele SFTP-Clients sind verfügbar, darunter OpenSSH (Linux), WinSCP (Windows), Cyberduck (Multiplattform) und mehr. | FTPS-Clients sind ebenfalls weit verbreitet, darunter FileZilla, WinSCP, Core FTP und andere. |
Firewall-Freundlichkeit | In der Regel firewallfreundlich, da SFTP normalerweise über Port 22 (SSH) läuft und keine zusätzlichen Datenkanäle benötigt. | Erfordert das Öffnen von Ports für die Datenübertragung, was die Konfiguration in Firewalls komplexer machen kann. |
Kompatibilität | Eher kompatibel mit modernen Sicherheitsstandards und -praktiken aufgrund der integrierten Verschlüsselung und Authentifizierung. | Kann mit älteren FTP-Clients und -Servern kompatibel sein, aber erfordert möglicherweise zusätzliche Konfiguration für Sicherheitsfunktionen. |
Download sftp.pdf.