Comprensione di SFTP rispetto a FTPS rispetto a FTP

Pubblicato: 2022-08-18

FTP o File Transfer Protocol è uno dei metodi di trasferimento dati più diffusi disponibili per vari casi d'uso.

FTP ha diverse varianti di sicurezza disponibili, note come FTPS e SFTP, che incorpora alcune differenze sottili e alcune non così sottili nel modo in cui funzionano. Queste differenze riguardano il modo in cui i dati vengono scambiati, il livello e il tipo di sicurezza nella comunicazione e le considerazioni sul firewall.

Sapere come funzionano questi protocolli e le differenze tra questi popolari meccanismi di trasferimento può aiutarti a scegliere quale funziona meglio per le tue esigenze.

FTP

FTP è il protocollo di trasferimento file vecchio di decenni originariamente proposto con RFC 114. Successivamente si è evoluto come RFC 959, che è lo standard in uso oggi.

FTP funziona su due canali per lo scambio di informazioni: uno per i comandi e l'altro per i dati. Ciò richiede due porte per il funzionamento dell'FTP: il canale dei comandi e il canale dei dati.

Il canale dei comandi funziona sulla porta 21, che accetta le connessioni dai client e gestisce il passaggio dei comandi. Il canale di comando rimane aperto per tutta la durata della sessione FTP fino a quando il client non invia il comando QUIT o il server si disconnette forzatamente per inattività o per qualsiasi altro possibile motivo.

Il canale dati utilizza una porta temporanea su richiesta in ascolto sul server (modalità passiva) o sul client (modalità attiva). Questo canale è responsabile della condivisione dei dati effettivi tra server e client sotto forma di elenchi di directory e trasferimenti di file.

A differenza del canale di comando, il canale dati rimane aperto solo per la durata del trasferimento file e, non appena termina, il canale dati viene chiuso. Per il trasferimento simultaneo di più file o elenchi di directory, sono necessarie più porte del canale dati.

FTP è un protocollo intrinsecamente insicuro poiché sia ​​i canali di comando che quelli di dati trasferiscono le informazioni in una forma non crittografata, che è facilmente suscettibile di intercettazione da parte di chiunque utilizzi attacchi man-in-the-middle.

Come discusso in precedenza, FTP richiede una connessione in entrata sulla porta 21/tcp lato server per il canale di comando. Viene definito un intervallo di porte passive per i trasferimenti di file e gli elenchi di directory e consente le connessioni in entrata. Questo processo di definizione può variare in base al server FTP in uso. Fare riferimento alla sua documentazione per ulteriori dettagli. Sul lato client, dovrebbe essere consentita la connessione in uscita sulla porta 21/tcp insieme all'intervallo di porte passive definito sul server.

Autenticazione in FTP

Le informazioni di autenticazione FTP vengono trasmesse sul canale di comando durante la creazione della connessione iniziale. FTP può utilizzare un nome utente e una password per l'autenticazione, oppure può essere anonimo per consentire a chiunque di accedere e accedere al server.

Modalità FTP attiva e passiva

FTP utilizza la modalità attiva o passiva per impostare le connessioni.

In modalità attiva , un utente si connette da una porta casuale sul client FTP alla porta FTP 21/tcp sul server e invia il comando PORT, specificando la porta del client a cui il server deve connettersi. Questa porta verrà utilizzata per il canale dati.

Il server si connette quindi dalla porta 20/tcp alla porta del client precedentemente specificata con il comando PORT dal client. Questo canale di dati viene quindi utilizzato per i trasferimenti di file tra server e client.

In modalità passiva , il client si connette da una porta casuale dal client FTP alla porta 21/tcp del server e invia il comando PASV. Il server risponde quindi con una porta casuale che dovrebbe essere utilizzata per il canale dati. Il client utilizza quindi un'altra porta casuale per connettersi alla porta a cui ha risposto un server nel passaggio precedente. Questa connessione del canale dati viene quindi utilizzata per il trasferimento di file tra server e client.

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

D'altra parte, in modalità passiva, sia le richieste di connessione iniziali che le successive richieste di canale dati vengono avviate dal client al server. Questa sottile differenza a volte influisce sul modo in cui un firewall consente/blocca le richieste FTP tradizionali a causa della direzione del tipo di connessione in entrata/uscita.

FTPS

Anche se sei disposto a correre i rischi associati all'FTP con trasmissione di dati non crittografati e attacchi main-in-the-middle, i requisiti del settore ti obbligano a utilizzare un'alternativa più sicura come FTPS e SFTP, che sono relativamente molto più sicuri.

Nel 1990, con il cambiamento del panorama della sicurezza, Netscape ha creato il protocollo SSL o Secure Sockets Layer (SSL, ora noto come TLS) per proteggere la comunicazione su una rete. SSL è stato applicato a FTP che è diventato FTPS o File Transfer Protocol Secure . FTPS o FTP/S girano comunemente sulla porta 990/tcp , ma possono essere visti anche sulla porta 21/tcp. Allo stesso modo, per il canale dati la porta 989/tcp è la porta comune utilizzata per FTPS. Se la porta di comando è 21/tcp , la sua porta dati dovrebbe essere 20/tcp .

Come FTP, FTPS utilizza due canali per la comunicazione: comando e canale dati. Il canale dati può essere crittografato con FTPS oppure entrambi i canali di comando e dati possono essere crittografati per una maggiore sicurezza.

FTPS, come FTP, utilizza anche più porte per i canali di comando e dati. Quindi, la porta 21/tcp viene utilizzata per la connessione iniziale e la trasmissione delle informazioni di autenticazione. Successivamente, saranno necessarie porte diverse per impostare i canali dati per ogni trasferimento di file o richiesta di elenco di directory dal client. Pertanto, come FTP, ha bisogno di un intervallo di porte per essere consentito nel firewall.

Autenticazione in FTPS

L'autenticazione per FTPS funziona utilizzando un nome utente e una password insieme a un certificato del server per la crittografia. Quando il client FTPS si connette a un server, controlla se il certificato del server è attendibile per procedere con la connessione. Questo certificato può essere richiesto dal client e dal server.

SFTP

A differenza di FTP e FTPS, SFTP (SSH File Transfer Protocol) è un protocollo completamente diverso basato su SSH (o Secure Shell). SFTP, per impostazione predefinita, funziona sulla porta 22/tcp, lo stesso di SSH sebbene possa essere configurato per utilizzare una porta libera personalizzata sul server.

SFTP è un protocollo FTP sicuro che utilizza SSH sottostante per inviare e ricevere file. Essendo SSH completamente crittografato, SFTP è un metodo robusto e sicuro per trasferire file su una rete.

SFTP, a differenza di FTP e FTPS, utilizza un unico canale di comunicazione per trasferire comandi e traffico dati, che vengono passati tutti in forma crittografata insieme all'autenticazione iniziale.

Autenticazione in SFTP

L'autenticazione in SFTP può essere eseguita tramite un semplice nome utente e password, ma a differenza di FTP, tutte le informazioni, inclusi i dettagli di autenticazione, vengono trasmesse crittografate sulla rete.

SFTP supporta anche l'autenticazione tramite coppia di chiavi SSH, combinazione di chiavi private e pubbliche, in cui il client fornisce la chiave privata per l'utente specificato e il server deve disporre della chiave pubblica corrispondente affinché l'autenticazione abbia esito positivo. È più sicuro rispetto all'utilizzo di una combinazione nome utente/password. È possibile autenticare lo stesso utente utilizzando password e chiavi SSH se entrambi i metodi sono configurati sul server SFTP.

Riepilogo

Questo articolo riassume le caratteristiche di base dei diversi protocolli di trasferimento file più diffusi, vale a dire FTP, FTPS e SFTP, e mette in evidenza le sottili e principali differenze tra questi protocolli. Copre le porte necessarie per consentire a un firewall di configurare un server FTP/FTPS/SFTP funzionante, evidenziando anche la necessità di passare a protocolli più sicuri come FTPS e SFTP.

Quando dico FTP qui, mi riferisco a tutti i protocolli discussi in questo articolo. Il motivo è che FTP è vecchio di decenni e anche le versioni sicure più recenti vengono talvolta chiamate FTP invece del nome designato per l'uso quotidiano.

Potresti anche essere interessato a conoscere i migliori software per server FTP e client FTP/SFTP.