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.
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.
FTP opera in due modalità per i trasferimenti di file:
Modalità Attiva | Modalità Passiva |
---|---|
Il cliente specifica l’indirizzo IP del server e il numero di porta per connettersi | Il 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.
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.
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.
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:
Sebbene sia FTP che HTTP siano utilizzati per il trasferimento di file su Internet, differiscono su diversi aspetti chiave.
Caratteristica | FTP | HTTP |
---|---|---|
Connessione | Canali di controllo e dati separati | Connessione singola per il controllo e i dati |
Stato | Stato (mantiene informazioni di sessione) | Stateless (ogni richiesta è indipendente) |
Adattabilità | File di grandi dimensioni, trasferimenti riprendibili | File più piccoli, semplicità e facilità d’uso |
Sicurezza | Meno sicuro (FTP tradizionale) | Può essere reso sicuro con HTTPS |
Cache | No | Sì (migliora le prestazioni per le ripetizioni) |