Comprensione di SFTP rispetto a FTPS rispetto a FTP

Il File Transfer Protocol (FTP) rappresenta uno dei sistemi più consolidati per lo scambio di dati, adattabile a diverse necessità operative.

Esistono versioni potenziate dell’FTP, come FTPS e SFTP, che introducono modifiche, a volte minime, altre volte sostanziali, nel loro funzionamento. Queste varianti riguardano il modo in cui i dati vengono trasmessi, il grado e il tipo di protezione durante la comunicazione, nonché le problematiche relative ai firewall.

Una comprensione approfondita di questi protocolli e delle loro differenze può agevolare la selezione del metodo più appropriato per le tue esigenze.

FTP

L’FTP, proposto inizialmente con la RFC 114, è un protocollo di trasferimento file che risale a molti anni fa. Successivamente, è stato aggiornato e definito con la RFC 959, che costituisce lo standard attualmente in uso.

L’FTP opera tramite due canali distinti per lo scambio di informazioni: uno dedicato ai comandi e l’altro ai dati. Per questo motivo, necessita di due porte per funzionare: una per il canale dei comandi e una per quello dei dati.

Il canale dei comandi si serve della porta 21, che accetta connessioni dai client e gestisce l’invio dei comandi. Questo canale rimane attivo durante l’intera sessione FTP, fino a quando il client non invia il comando QUIT o il server non interrompe la connessione forzatamente per inattività o altri motivi.

Il canale dei dati utilizza una porta temporanea, attivata dal server (modalità passiva) o dal client (modalità attiva) su richiesta. Questo canale è responsabile della trasmissione effettiva dei dati tra server e client, inclusi gli elenchi di directory e i file.

Diversamente dal canale dei comandi, il canale dati rimane aperto esclusivamente durante il trasferimento dei file e si chiude al termine dell’operazione. Il trasferimento simultaneo di più file o elenchi di directory richiede l’apertura di più porte del canale dati.

L’FTP è considerato un protocollo intrinsecamente non sicuro, poiché sia il canale di comando che quello dei dati trasmettono informazioni in forma non crittografata, rendendole vulnerabili all’intercettazione tramite attacchi man-in-the-middle.

Come accennato, l’FTP richiede una connessione in entrata alla porta 21/tcp lato server per il canale dei comandi. Per il trasferimento di file e la visualizzazione di directory, è necessario definire un intervallo di porte passive che abiliti le connessioni in entrata. Il processo di configurazione di queste porte può variare a seconda del server FTP in uso. Per maggiori dettagli, si raccomanda di consultare la documentazione del server. Sul lato client, è necessario consentire le connessioni in uscita sulla porta 21/tcp e verso l’intervallo di porte passive configurato sul server.

Autenticazione in FTP

Le credenziali di autenticazione FTP vengono inviate tramite il canale di comando durante l’avvio della connessione. Per autenticarsi, l’FTP può richiedere nome utente e password, oppure consentire l’accesso anonimo a chiunque.

Modalità FTP attiva e passiva

L’FTP utilizza due modalità per stabilire le connessioni: attiva e passiva.

In modalità attiva, il client si connette da una porta casuale alla porta 21/tcp del server, inviando il comando PORT che specifica la porta del client a cui il server deve connettersi. Questa porta sarà utilizzata per il canale dati.

Successivamente, il server si connette dalla porta 20/tcp alla porta specificata precedentemente dal client tramite il comando PORT. Questo canale dati viene impiegato per il trasferimento di file tra server e client.

In modalità passiva, il client si connette da una porta casuale alla porta 21/tcp del server e invia il comando PASV. Il server risponde indicando una porta casuale da utilizzare per il canale dati. Il client, a sua volta, utilizza un’altra porta casuale per connettersi alla porta comunicata dal server. Questa connessione del canale dati viene poi usata per il trasferimento di file tra server e client.

Pertanto, in modalità attiva, la richiesta di connessione iniziale parte dal client, mentre quella al canale dati dal server.

Al contrario, in modalità passiva, sia la richiesta di connessione iniziale sia quella al canale dati sono avviate dal client verso il server. Questa sottile distinzione può influire sul comportamento dei firewall, che possono consentire o bloccare le richieste FTP in base alla direzione della connessione in entrata o in uscita.

FTPS

Anche se si è disposti a tollerare i rischi legati all’FTP, come la trasmissione di dati non crittografati e gli attacchi man-in-the-middle, le normative di settore spesso impongono l’uso di alternative più sicure come FTPS e SFTP.

Negli anni ’90, in risposta all’evoluzione del panorama della sicurezza, Netscape ha sviluppato il protocollo Secure Sockets Layer (SSL), ora noto come TLS, per proteggere le comunicazioni di rete. L’applicazione di SSL all’FTP ha portato alla nascita di FTPS, o File Transfer Protocol Secure. L’FTPS, o FTP/S, utilizza spesso la porta 990/tcp, ma può essere presente anche sulla porta 21/tcp. In maniera analoga, per il canale dati, la porta 989/tcp è comunemente impiegata per FTPS. Se la porta di comando è la 21/tcp, la sua porta dati dovrebbe essere la 20/tcp.

Come l’FTP, l’FTPS utilizza due canali per la comunicazione: uno per i comandi e uno per i dati. Il canale dati può essere crittografato in FTPS, oppure entrambi i canali possono essere criptati per una maggiore sicurezza.

L’FTPS, analogamente all’FTP, utilizza più porte per i canali di comando e dati. La porta 21/tcp è adoperata per la connessione iniziale e per la trasmissione delle credenziali di autenticazione. Successivamente, sono necessarie altre porte per stabilire i canali dati per ogni trasferimento di file o richiesta di elenco di directory da parte del client. Per questo motivo, l’FTPS richiede che un intervallo di porte sia autorizzato nel firewall.

Autenticazione in FTPS

L’autenticazione in FTPS avviene tramite nome utente e password, insieme a un certificato del server per la crittografia. Quando il client FTPS si connette al server, verifica l’attendibilità del certificato del server prima di procedere con la connessione. Questo certificato può essere richiesto sia dal client sia dal server.

SFTP

A differenza di FTP e FTPS, l’SFTP (SSH File Transfer Protocol) è un protocollo del tutto differente, basato su SSH (Secure Shell). L’SFTP opera di default sulla porta 22/tcp, la stessa di SSH, sebbene sia possibile configurarlo per utilizzare una porta libera personalizzata sul server.

L’SFTP è un protocollo FTP protetto, che usa SSH come base per inviare e ricevere file. Grazie alla crittografia integrale di SSH, l’SFTP è considerato un metodo robusto e sicuro per il trasferimento di file in rete.

Diversamente da FTP e FTPS, l’SFTP usa un singolo canale di comunicazione per il trasferimento di comandi e dati, i quali vengono trasmessi in forma crittografata, insieme alle credenziali di autenticazione.

Autenticazione in SFTP

L’autenticazione in SFTP può essere effettuata tramite un semplice nome utente e password, ma a differenza dell’FTP, tutte le informazioni, incluse le credenziali, sono trasmesse crittografate sulla rete.

L’SFTP supporta anche l’autenticazione tramite coppia di chiavi SSH (chiave privata e pubblica), in cui il client fornisce la chiave privata per l’utente specificato, mentre il server deve possedere la corrispondente chiave pubblica per l’autenticazione. Questa modalità è più sicura rispetto all’uso di nome utente e password. È possibile configurare l’autenticazione tramite password e chiavi SSH, se entrambi i metodi sono supportati sul server SFTP.

Riepilogo

Questo articolo ha riassunto le caratteristiche fondamentali dei principali protocolli di trasferimento file: FTP, FTPS e SFTP, evidenziandone le principali differenze. Sono state discusse le porte necessarie per configurare un server FTP/FTPS/SFTP funzionante e l’importanza di adottare protocolli più sicuri come FTPS e SFTP.

Quando si parla di FTP in questo contesto, ci si riferisce in generale a tutti i protocolli discussi, poiché, a causa della sua lunga storia, anche le versioni sicure sono talvolta chiamate FTP nel linguaggio comune.

Potrebbe interessarti anche conoscere i migliori software per server FTP e client FTP/SFTP.