(+39) 0532 1858052

Dove sei: Home > Blog > FTP, FTP/S e SFTP: quale utilizzare?

FTP, FTP/S e SFTP: quale utilizzare?

Approfondimenti | 17-03-2017

Se per lavoro o per passione hai a che fare con siti internet sicuramente ti sarai imbattuto nel protocollo FTP, fondamentale per caricare file sui server che li ospitano.

Forse non sai che esistono anche due varianti del protocollo, ovvero FTP/S e SFTP entrambi focalizzati sul migliorare la sicurezza del protocollo FTP base.

In questo post ti spiegheremo le differenze principali tra queste varianti del protocollo e perché queste sono di assoluta importanza per quel che riguarda la sicurezza dei tuoi siti internet.

FTP

Il protocollo FTP è quello più utilizzato e il suo scopo è sostanzialmente quello di permettere lo scambio di file tra due computer, in cui uno agisce come server e l'altro come client.

Il funzionamento prevede l'utilizzo di due porte: una porta per il controllo della comunicazione e una porta per il trasferimento dei dati veri e propri. Questo è un comportamento leggermente diverso rispetto ad esempio al protocollo HTTP che utilizza una sola porta sia per controllo che dati.

Il server FTP rimane in ascolto sulla porta 21 a cui il client si collega.

La connessione tra client e server inizia con una serie di comandi necessari per autenticare il client tramite uno username e una password. Se l'autenticazione va a buon fine può iniziare il trasferimento dei dati tramite l'utilizzo del canale riservato ai dati che può avvenire in due maniere differenti.

  • Attivo: il client apre una porta solitamente casuale e tramite il canale comandi rende noto il numero di tale porta al server e attende che si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP.
  • Passivo: il server apre una porta solitamente casuale (superiore alla 1023) e tramite il canale comandi rende noto il numero di tale porta al client e attende che si connetta.

Mentre il canale per i comandi rimane aperto per l'intera sessione di upload/download il canale per i dati viene creato per ogni singolo file. Per questo motivo è consigliato riunire più file in un unico file e lavorarli poi lato server.

Ad esempio i CMS come wordpress sono composti da centinaia di file e caricarli separatamente può richiedere molto tempo. Caricare invece un solo archivio e poi decomprimerlo lato server può farti risparmiare molto tempo.

Il più grande limite relativo alla sicurezza di FTP è che tutte le comunicazioni, sia di controllo che dati, avvengono con testo in chiaro e questo può esporci a un attacco di tipo man-in-the-middle con il quale un malintenzionato potrebbe rubare le nostre credenziali di accesso e avere pieno accesso ai file del nostro sito internet.

Per risolvere questo potenziale problema ci vengono in soccorso i protocolli FTP/S e SFTP che di fatto sono varianti del protocollo base con un occhio in più alla sicurezza.

FTP/S

Questa variante cerca di risolvere il potenziale problema di sicurezza che si presenta nella versione base andando a criptare entrambi i canali di comunicazione tramite il protocollo SSL.

Quindi sia il canale di comando che il canale per i dati possono essere criptati indipendentemente o concorrentemente. Questo è un aspetto da tenere in considerazione in quanto la connessione SSL impiega un certo quantitativo di tempo e può rallentarci nel caso dovessimo trasferire un grande quantitativo di file.

FTP/S può aprire il canale di controllo tramite la classica porta 21 oppure tramite la porta 990. La differenza principale è che la porta 990 viene definita FTP/S implicita, ovvero il server FTP che accetta connessioni su questa porta userà di default una connessione tramite SSL e pertanto il server inizierà fin da subito il processo di handshake del protocollo SSL.

Utilizzando invece la porta standard il client deve specificare che intende trasmettere utilizzando SSL quindi prima del processo di handshake è necessario che il client invii una serie di comandi per specificare la propria intenzione di usare il protocollo SSL.

SFTP

Questo protocollo è relativamente nuovo in quanto sviluppato negli anni '90.

L'idea di fondo è simile a quella di FTP/S in cui la comunicazione tra client e server avviene tramite connessioni criptate utilizzando però in questo caso il protocollo SSH anziché SSL.

Mentre l'idea di fondo rimane la stessa i due protocolli hanno comunque una logica di funzionamento molto diversa.

  • Mentre con FTP l'invio di dati avviene tramite comandi testuali (ad esempio se voglio cancellare un file il comando da inviare al server sarà “DELE file.txt”) nel secondo la comunicazione è packet-based.
    Sempre facendo l'esempio che io voglia eliminare un file sul server non dovrò mandare un comando testuale ma un file binario, in questo caso 0xBC seguito dal nome del file “file.txt”.
    Il vantaggio di questo meccanismo è che la quantità di dati scambiata è inferiore rendendo quindi più veloci i trasferimenti che coinvolgono un grande numero di file.
  • La seconda differenza è che SFTP non utilizza due connessioni separate ma una unica in cui invia sia comandi che dati. Dal punto di vista della sicurezza questo ha il notevole vantaggio di utilizzare una singola connessione sicura che rende quindi la comunicazione più efficiente e snella.

Un altro vantaggio implicito dell'usare SFTP è che la connessione è sicura per definizione in quanto non è possibile disattivare la criptazione SSL con nessun comando.

Per questi vantaggi rispetto a FTP e FTP/S abbiamo quindi deciso di affidare tutti i trasferimenti di file tra la nostra sede operativa di Ferrara e i server sparsi per il mondo al protocollo SFTP per garantire massima sicurezza ai file, ai dati e ai software in cloud dei nostri clienti e in contemporanea per poterlo fare nella maniera più efficiente possibile.

Fonti:

Abbiamo conquistato la fiducia di realtà autorevoli ed affermate

Dicono di noi

  • Sergio Lucci, Shopping Venice

    “Quando ho presentato il mio progetto, i ragazzi di PJ non hanno risparmiato dubbi e critiche. Quando sono tornato con delle alternative e abbiamo iniziato a realizzarlo, non hanno risparmiato impegno ed entusiasmo. Secondo me un partner tecnologico non deve essere un mero esecutore, ma deve scovare i punti deboli, proporre soluzioni, lavorare con impegno come se fosse il suo business. Tutte cose che PJ fa.”

    Sergio Lucci

  • Feltech, soluzioni per l'industria

    “Con Hydra di PJ dormiamo sonni tranquilli, i nostri dati sono al sicuro e sempre aggiornati!”

    Feltech, soluzioni per l'industria

  • Paolo Mazzini, Geostrutture

    “PJ è il nostro migliore partner per le attività web della nostra azienda, è anche grazie a loro se oggi il nostro sito e i nostri portali sono fra i più visitati tra le aziende edili locali”

    Paolo Mazzini, Geostrutture

  • Marco Rasi, Best Sales Blogger Awards

    “Ho chiesto al team di PJ di creare un sito web basandosi solo su delle idee che avevo in mente da tempo. Il risultato è stato eccellente per organizzazione del lavoro, rapidit√† di esecuzione e qualità del risultato. Oltre a questo la soluzione di PJ si è dimostrata estremamente semplice da implementare e ricca di funzionalità applicative disponibili tutte in un unico ambiente operativo.”

    Marco Rasi, Best Sales Blogger Awards

  • Caleidos Group

    “Siamo partner ormai da diverso tempo: i ragazzi di PJ si occupano di tutta la parte di programmazione dei nostri progetti web, offrendoci assistenza e consulenza, prima, durante e dopo la realizzazione di un progetto. Sempre disponibili e mai superficiali, lavorano con grande impegno ed entusiasmo e non si lasciano spaventare neanche dai progetti più impegnativi.”

    Lo staff di Caleidos Group srl