Passa al contenuto principale

Che cos’è il Secure File Transfer Protocol (SFTP)?

Che cos’è il Secure File Transfer Protocol?

Il Secure File Transfer Protocol (SFTP) è un protocollo di rete standard per il trasferimento sicuro dei file tra sistemi connessi. Un protocollo di rete è un insieme di regole stabilite che agiscono come un linguaggio comune indipendentemente dall’hardware o dal software specifico utilizzato dai dispositivi sulla rete. SFTP aggiunge l’autenticazione e la crittografia al trasferimento dei file, consentendo alle organizzazioni di condividere i file in modo sicuro e di soddisfare i requisiti di conformità normativa per i dati sensibili di tali file.

Perché il Secure File Transfer Protocol è importante?

La sicurezza e la riservatezza dei dati sono requisiti fondamentali per il trasferimento di file su qualsiasi rete, sia all’interno di una rete locale (LAN) aziendale che su Internet. Il Secure File Transfer Protocol viene utilizzato insieme ad altri protocolli di sicurezza di rete comuni, come HTTPS (Hypertext Transfer Protocol Secure), per garantire la sicurezza dei dati dei file a livello di rete.

Il protocollo SFTP è stato sviluppato per sostituire il File Transfer Protocol (FTP), un metodo tradizionale di trasferimento di file. Viene utilizzato per trasferire file sensibili in molte delle app più utilizzate al mondo, come Git, VSCode, Ansible, WordPress e AWS Transfer Family.

A cosa corrisponde la S in SFTP?

SFTP è anche noto come SSH File Transfer Protocol, visto che utilizza il protocollo di connessione Secure Shell (SSH). La lettera S corrisponde sia a Secure che a Secure Shell.

SSH

Il protocollo SSH è un protocollo di connessione crittografica basato sull’autenticazione per le comunicazioni di rete e gestisce il trasporto sicuro dei dati, l’autenticazione e le connessioni tramite TCP (Transmission Control Protocol). Il TCP è uno dei principali protocolli di trasporto via Internet.

SSH impedisce a qualsiasi listener tra due parti su una rete di decifrare le comunicazioni condivise e riservate una volta stabilita una sessione. Ad esempio, un listener su una rete non sarà in grado di visualizzare le password o le informazioni di identificazione personale (PII) inviate tramite una connessione con crittografia Secure Shell.

SSH dà al client (utente) il permesso di eseguire comandi di base su un server remoto, ma non ha la capacità di trasferire e manipolare i file. Per il trasferimento sicuro dei dati dei file e le operazioni di manipolazione dei file, SSH richiede un approccio a più livelli, in combinazione con SFTP.

Come funziona il protocollo SFTP (protocollo per il trasferimento sicuro dei file)?

Il protocollo SFTP consente agli utenti di inviare, ricevere e manipolare file e cartelle del server, riducendo il rischio di perdita di informazioni a causa di una connessione compromessa. Infatti, crittografa tutti i contenuti e i comandi dei file, rendendoli indecifrabili in transito e garantendo così la conformità del trasferimento dei file.

Architettura client-server

Il protocollo SFTP utilizza il modello di architettura client-server SSH per la comunicazione. Questo modello di architettura offre al server il controllo su connessioni, risorse e sicurezza, anche se il client avvia una sessione.

Infrastruttura a chiave pubblica e privata

Il protocollo SFTP utilizza chiavi SSH pubbliche e private per autenticare le sessioni tra client e server. L’utilizzo dell’infrastruttura con chiave SSH garantisce un sovraccarico minimo della gestione della sicurezza, che coinvolge solo il client e il server SFTP.

Porta 22 per impostazione predefinita

Il protocollo SFTP utilizza la porta 22 per impostazione predefinita per consegnare in modo affidabile dei dati con connessioni SSH tramite TCP. Tuttavia, è possibile denominare una porta diversa in SFTP, nel caso di connessioni esistenti sulla porta 22.

Ripresa dei trasferimenti interrotti

Il protocolli SFTP consente agli utenti di riprendere i trasferimenti di file precedentemente sospesi a causa di sessioni interrotte. La ripresa dei trasferimenti di file aumenta la produttività, anche con connessioni instabili.

Quali sono alcuni comandi SFTP comuni?

Gli utenti possono eseguire comandi SFTP tramite l’interfaccia a riga di comando (CLI) o seguendo i flussi di lavoro click-through in un’app con SFTP integrato. Gli utenti Windows, Mac e Linux hanno tutti accesso alla riga di comando SFTP tramite un’app shell. Ecco alcuni comandi SFTP utili che utilizzano la shell bash.

Avvio e chiusura di una sessione SFTP

sftp user@hostname ad es. sftp dan@example.com

Apre una nuova connessione SFTP sul server esempio.com. Il prompt dei comandi nella shell diventerà sftp> per indicare che la sessione è iniziata. Ci sono varie opzioni che possono essere incluse in questo comando, ad esempio:

  • -P [numero] per specificare un numero di porta
  • -i [file] per includere un file con chiave privata e
  • -r per attivare il trasferimento ricorsivo delle directory.

sftp exit chiude una sessione SFTP.

Trasferimento di file

get server_path_and_filename local_path copia il file dal server nella directory specificata.

ad es. get /projects/marketing/proposal.txt /newopportunities

put local_path_and_filename server_path trasferisce un file locale nella directory del server specificata.

ad es. put /finances/invoices/march.txt /projects/marketing/payments

Allo stesso modo, i comandi reget e reput riprendono i trasferimenti interrotti.

Gestione remota dei file

  • chown user path cambia la proprietà del file o della cartella nel percorso specificato sul server all’utente specificato.
  • chmod number path modifica i permessi del file o della cartella nel percorso specificato sul server.
  • ls mostra l’elenco dei file e delle cartelle nella directory corrente del server.
  • cd path naviga nella directory specificata sul server.
  • mkdir dir_name crea una nuova cartella sul server.
  • rmdir dir_name rimuove una determinata cartella sul server.
  • rename old_file_name new_file_name rinomina un determinato file sul server.
  • pwd mostra la directory corrente sul server.
  • lpwd mostra la directory locale corrente.

Com’è il protocollo SFTP rispetto ad altri protocolli di trasferimento dei file?

Il protocollo SFTP fa parte di una gamma di protocolli di trasferimento di file standard.

SFTP vs. FTPS

FTP Secure (FTPS) utilizza il protocollo Transport Layer Security (TLS) e il protocollo SSL (Secure Socket Layer) oltre al File Transfer Protocol per effettuare trasferimenti di file sicuri. L’autenticazione con FTPS si basa su pratiche di gestione dei certificati SSL. L’FTPS è perlopiù considerato obsoleto.

Si basa infatti sul protocollo FTP, mentre SFTP è stato introdotto per sostituire il protocollo FTP con un’architettura più sicura. Grazie alla sua semplicità, alla sua sicurezza e al supporto cloud, oggi l’SFTP è utilizzato molto di più rispetto all’FTPS.

SFTP vs. TFTP

Trivial File Transfer Protocol (TFTP) è un protocollo leggero per il trasferimento di file che utilizza un’architettura client-server. Non contiene misure di sicurezza integrate e quindi deve prevedere altri protocolli di sicurezza o protezioni per i trasferimenti di file in ambienti normali.

Anche se il protocollo SFTP è utilizzato in un’ampia varietà di applicazioni, in genere il TFTP viene utilizzato solo direttamente su una rete locale sicura durante la configurazione o l’avvio di nuovi hardware, firmware e sistemi operativi.

Quali sono alcune best practice per l’utilizzo del protocollo SFTP?

Utilizza le best practice per la gestione delle chiavi pubbliche e private, come la rotazione delle chiavi e l’archiviazione sicura sul server SFTP. Assicurati che il server SFTP sia sempre aggiornato con aggiornamenti e patch di sicurezza e utilizza una crittografia avanzata come AES. Registra i trasferimenti di file riusciti e i tentativi di accesso non riusciti per rilevare le anomalie e poter rispondere di conseguenza.

Ricorda che il protocollo SFTP è solo una parte della sicurezza della rete. I firewall, i sistemi di rilevamento delle intrusioni e altre misure di sicurezza devono essere adattati alla specifica architettura di rete.

In che modo AWS può supportare i tuoi requisiti di archiviazione di file?

Amazon offre una gamma di soluzioni sicure per l’archiviazione e il trasferimento sicuro dei file.

Amazon S3 è uno spazio di archiviazione di oggetti per archiviare e recuperare qualsiasi volume di dati da qualsiasi origine. È possibile utilizzarlo per archiviare e recuperare qualsiasi quantità di dati, inclusi i file, in qualsiasi momento e da qualsiasi luogo, compresi i trasferimenti automatici di file.

Amazon Elastic File System (EFS) offre un’archiviazione di file nel cloud serverless e completamente elastica che consente di creare file system accessibili alle istanze Amazon Elastic Compute Cloud (EC2) e ad altri servizi cloud AWS. Supporta la semantica completa di accesso al file system, come la coerenza forte e il blocco dei file. Permette inoltre di condividere dati di file senza provisioning o gestione della capacità e delle prestazioni di archiviazione.

AWS Transfer Family fornisce un supporto completamente gestito per il trasferimento sicuro dei file in SFTP, AS2, FTPS, FTP e browser web direttamente verso o da Amazon S3 oppure Amazon EFS. Permette di migrare, automatizzare e monitorare con semplicità i flussi di lavoro di trasferimento file mantenendo le attuali configurazioni lato client per autenticazione, accesso e firewall, lasciando quindi invariate le configurazioni di clienti, partner e team interni o le rispettive applicazioni.

Inizia a usare l’archiviazione di file in AWS creando un account gratuito oggi stesso.