SFTP (SSH File Transfer Protocol) bietet eine sichere Methode zum Übertragen von Dateien zwischen Computern über ein Netzwerk. Es verwendet das SSH-Protokoll (Secure Shell), um eine sichere Verbindung zwischen einem Client und einem Server herzustellen. Im Gegensatz zu FTP (File Transfer Protocol), das standardmäßig nicht verschlüsselt ist, verschlüsselt SFTP sowohl Befehle als auch Daten, die zwischen Client und Server ausgetauscht werden, und gewährleistet so die Vertraulichkeit und Integrität der Dateiübertragungen.
SFTP arbeitet über das SSH-Protokoll und nutzt insbesondere die SSH-Transportschicht, um die Kommunikation zwischen Client und Server zu sichern. SSH bietet Mechanismen zur Authentifizierung, Verschlüsselung und Überprüfung der Datenintegrität. Wenn ein Client eine Verbindung zu einem SFTP-Server herstellt, stellt er eine SSH-Verbindung mithilfe öffentlicher Schlüssel, passwortbasierter oder anderer von SSH unterstützter Authentifizierungsmethoden her. Nach der Authentifizierung können Client und Server SFTP-Befehle austauschen und Dateien sicher übertragen.
Bei der SFTP-Verschlüsselung werden sowohl Befehle als auch Daten, die zwischen Client und Server übertragen werden, mithilfe symmetrischer Verschlüsselungsalgorithmen verschlüsselt, die während des SSH-Handshakes ausgehandelt werden. Typischerweise unterstützt SFTP Verschlüsselungsalgorithmen wie AES (Advanced Encryption Standard) für die Datenverschlüsselung und HMAC-Algorithmen (Hash-based Message Authentication Code) für die Überprüfung der Datenintegrität. Diese Verschlüsselungsalgorithmen stellen sicher, dass per SFTP übertragene Dateien während der Übertragung über das Netzwerk nicht von Unbefugten abgefangen oder verändert werden können. Dieser robuste Verschlüsselungsmechanismus ist ein Schlüsselmerkmal von SFTP und macht es zur bevorzugten Wahl für sichere Dateiübertragungen in Umgebungen, in denen die Datensicherheit an erster Stelle steht.