File Transfer Protocol (FTP)

Cos’è FTP?

Il File Transfer Protocol (FTP) è un protocollo di comunicazione standardizzato utilizzato per il trasferimento di file informatici tra un client e un server attraverso una rete. Sviluppato nei primi anni ’70, FTP si è affermato come un protocollo fondamentale per Internet. Il suo framework operativo segue un modello client-server, in cui il client stabilisce una connessione con il server per facilitare il trasferimento dei file. In modo significativo, FTP utilizza connessioni di controllo e dati separate per ottimizzare il processo di trasferimento.

Diagramm: Die Rolle von FTP bei der Erleichterung des Dateitransfers zwischen Clients und einem Server, das den Upload- und Download-Prozess in einem vereinfachten Format darstellt
Diagramma: Il ruolo di FTP nel facilitare il trasferimento di file tra client e un server, raffigurando il processo di upload e download in un formato semplificato

Panoramica del Protocollo

FTP opera attraverso due connessioni separate per facilitare il trasferimento di file tra il client e il server: la connessione di controllo e la connessione di dati.

  • Connessione di Controllo: Questa connessione viene stabilita inizialmente e gestisce lo scambio di comandi e risposte tra il client e il server. Di solito opera sulla porta 21.
  • Connessione di Dati: A differenza della connessione di controllo, la connessione di dati viene stabilita dinamicamente per trasferire i dati effettivi dei file.

FTP opera in due modalità per i trasferimenti di file:

Modalità AttivaModalità Passiva
Il cliente specifica l’indirizzo IP del server e il numero di porta per connettersiIl server fornisce un indirizzo IP e un numero di porta, consentendo al client di stabilire una connessione per il trasferimento di file

La decisione di utilizzare la modalità attiva o passiva dipende dalla configurazione della rete e dalla capacità di stabilire connessioni di dati attraverso firewall e dispositivi NAT.

Attraversamento di NAT e Firewall

Le connessioni FTP spesso incontrano ostacoli durante il passaggio attraverso dispositivi di traduzione degli indirizzi di rete (NAT) e firewall. I dispositivi NAT modificano gli indirizzi IP e i numeri di porta dei pacchetti durante il passaggio, potenzialmente interrompendo l’instaurazione della connessione dati in FTP. Allo stesso modo, i firewall possono bloccare le richieste di connessione in ingresso per la connessione dati.

Per affrontare queste sfide, FTP incorpora un comando PASV (Passivo), consentendo al server di designare un indirizzo IP e un numero di porta per il client da utilizzare per il trasferimento dei dati. Questo meccanismo aiuta a superare le restrizioni imposte da firewall e dispositivi NAT. Inoltre, alcuni firewall supportano gateway a livello di applicazione capaci di ispezionare il traffico FTP e aprire e chiudere dinamicamente le porte secondo necessità per il trasferimento dati.

Supporto Software per FTP

Nel tempo, i trasferimenti di file FTP sono stati resi più accessibili attraverso varie applicazioni software. Inizialmente, i client FTP erano principalmente interfacce a riga di comando. Tuttavia, con l’avanzare della tecnologia, sono emerse applicazioni client FTP dedicate più user-friendly. Queste applicazioni offrono funzionalità come la trascinamento e rilascio, il supporto per il ripristino dei trasferimenti interrotti e interfacce grafiche utente (GUI) per una navigazione semplificata.

Inoltre, molti browser web hanno integrato funzionalità client FTP, consentendo agli utenti di accedere direttamente ai server FTP. Tuttavia, a causa delle preoccupazioni per la sicurezza e della diminuzione della diffusione del protocollo, i principali browser hanno progressivamente eliminato il supporto per FTP.

Considerazioni sulla Sicurezza

Sebbene FTP serva come protocollo pratico per i trasferimenti di file, le sue vulnerabilità di sicurezza sono una preoccupazione degna di nota. Tra queste vi è la trasmissione delle credenziali di accesso e dei dati dei file in testo normale, rendendoli suscettibili all’intercettazione e all’accesso non autorizzato.

Per affrontare queste carenze di sicurezza, sono state sviluppate diverse alternative sicure al tradizionale FTP:

  • FTPS (FTP su SSL/TLS): Questa soluzione migliora il protocollo FTP incorporando uno strato aggiuntivo di crittografia. Sfruttando certificati SSL/TLS, FTPS autentica il server e crittografa la trasmissione dei dati, aumentando significativamente la sicurezza rispetto al FTP normale.
  • SFTP (SSH File Transfer Protocol): SFTP utilizza SSH (Secure Shell) per trasferimenti di file sicuri. Stabilendo una connessione crittografata tra client e server, SFTP garantisce l’integrità e la riservatezza dei dati trasferiti. A differenza di FTPS, SFTP semplifica la configurazione eliminando la necessità di numeri di porta separati per le connessioni di controllo e di dati.

FTP vs. HTTP: Differenze Chiave

Sebbene sia FTP che HTTP siano utilizzati per il trasferimento di file su Internet, differiscono su diversi aspetti chiave.

CaratteristicaFTPHTTP
ConnessioneCanali di controllo e dati separatiConnessione singola per il controllo e i dati
StatoStato (mantiene informazioni di sessione)Stateless (ogni richiesta è indipendente)
AdattabilitàFile di grandi dimensioni, trasferimenti riprendibiliFile più piccoli, semplicità e facilità d’uso
SicurezzaMeno sicuro (FTP tradizionale)Può essere reso sicuro con HTTPS
CacheNoSì (migliora le prestazioni per le ripetizioni)

Riferimenti

  1. Active FTP vs. Passive FTP, a Definitive Explanation”. Slacksite.com.
  2. RFC 959 (Standard) File Transfer Protocol (FTP). Postel, J. & Reynolds, J. (October 1985).
  3. FTP”. docs.kde.org.
  4. File Transfer Protocol – Wikipedia
  5. What is File Transfer Protocol (FTP) meaning | Fortinet
  6. What Is File Transfer Protocol (FTP) and What Is It Used for?
  7. What is FTP: File Transfer Protocol Explained for Beginners

Additional Resources