Come condividere file in rete locale e tra dispositivi vicini

Presentiamo le migliori soluzioni, pronte per l'uso, utili per condividere file in rete locale e tra dispositivi vicini. Descriviamo anche le basi del loro funzionamento e perché sono sicure non necessitando di alcun server centrale.

Il protocollo SMB è ancora oggi uno degli strumenti più utilizzati per condividere file in rete locale con Windows. Grazie all’implementazione libera disponibile sui sistemi Linux e Unix-like, conosciuta con il nome Samba, è piuttosto semplice condividere cartelle, file e altre risorse all’interno di reti miste che utilizzano workstation, server e dispositivi client basati su sistemi operativi diversi.

Gli utenti, tuttavia, necessitano di strumenti più veloci, fruibili istantaneamente per trasferire documenti e file da un dispositivo all’altro, in rete locale come tra sistemi remoti.

WebRTC, acronimo di Web Real-Time Communication, è una tecnologia open source e un framework che consente la comunicazione audio, video e dati in tempo reale direttamente tra browser Web e applicazioni senza la necessità di plugin o software aggiuntivi. Un insieme di API (Application Programming Interfaces) e protocolli standardizzati permettono agli sviluppatori di creare facilmente applicazioni dotate di funzionalità di comunicazione in tempo reale.

Le vaste possibilità di impiego che contraddistinguono WebRTC, tra cui le comunicazioni peer-to-peer direttamente tra browser o applicazioni senza la necessità di server intermediari, sono utilizzate per sviluppare progetti di primo piano.

PairDrop: per condividere file su qualunque rete locale

State cercando un metodo semplice, veloce e, soprattutto, affidabile e sicuro per inviare file dallo smartphone al notebook e viceversa? Volete condividere foto in qualità originale con gli amici che utilizzano dispositivi Android e iOS? Desiderate condividere file in privato tra sistemi Windows e Linux indipendentemente dalle versioni, dalle edizioni e dalle distribuzioni installate? PairDrop è un’applicazione eccellente che consente di scambiare file di qualunque tipo e dimensione senza bisogno di stabilire una condivisione SMB.

PairDrop funziona allo stesso modo e in modo molto semplice su tutte le piattaforme: basta aprire il browser Web, collegarsi con questa pagina e il gioco è fatto.

Nella parte inferiore della pagina, è mostra il nome di fantasia con cui il sistema in uso è identificato in rete locale. Cliccando su di esso, si può assegnare una denominazione arbitraria in modo tale da rendere il dispositivo ancora più facilmente individuabile.

Il bello è che non appena si apre la pagina di PairDrop da browser Web su un qualsiasi dispositivo connesso in LAN via WiFi o cavo Ethernet, tutti i device si vedranno vicendevolmente.

Condividere file in rete locale con PairDrop

Nell’esempio, il sistema Tomato Basilisk, vede due dispositivi (rispettivamente un sistema Windows con browser Google Chrome e uno smartphone Android) sui quali è visualizzata la pagina principale di PairDrop. Con un semplice clic, si può scegliere il file da inviare all’altro dispositivo mentre usando il tasto destro si può trasferire un messaggio di testo.

Inviare messaggio in rete locale con PairDrop

La procedura per condividere file è la stessa anche sui dispositivi mobili: l’unica differenza consiste nel fatto che per inviare un file basta un tocco sul display mentre per spedire un messaggio, bisogna premere a lungo sull’icona del dispositivo.

Come funziona la condivisione sicura di file tramite WebRTC, crittografia, STUN e TURN

L’uso della crittografia è fondamentale per le connessioni WebRTC ed è gestita interamente dal browser. Quando i dispositivi sono in fase di connessione, viene creato un canale attraverso lo scambio delle informazioni di segnalazione. Queste informazioni di segnalazione includono una chiave pubblica e sono specifiche per l’indirizzo IP di ciascun client.

Nella prima fase entra in gioco il server STUN (Session Traversal Utilities for NAT) che restituisce l’indirizzo IP del dispositivo. La trasmissione delle informazioni di segnalazione avviene attraverso PairDrop utilizzando connessioni WebSocket sicure.

Una volta completata questa fase, il canale diventa completamente peer-to-peer e tutte le informazioni possono essere decifrate solo dal destinatario. Quando i dispositivi si trovano sulla stessa rete locale o comunque non sono dietro a un sistema NAT (come nel caso degli utenti PairDrop), l’invio dei file è diretto, in modalità peer-to-peer.

Se un utente si trova a valle di un router, dove è in uso il NAT, allora il contenuto viene instradato attraverso un server TURN (Traversal Using Relays around NAT). Anche in questo caso, il contenuto inviato tramite il canale può essere decifrato solo dal destinatario. Un server TURN non autorizzato potrebbe solo vedere che c’è una connessione, ma non può accedere al contenuto dei dati. È il browser Web a stabilire quando è necessario chiamare in causa l’utilizzo di un server TURN o meno.

Due parole sull’accoppiamento dei dispositivi mediante IndexedDB

La funzionalità di accoppiamento dei dispositivi utilizza l’API IndexedDB: crea delle stringhe segrete piuttosto lunghe condivise con il sistema che avvia la comunicazione e al peer che ne fa richiesta (solo quando la chiave risulta corretta). IndexedDB è in qualche modo il successore di LocalStorage in quanto i dati salvati sono condivisi tra tutte le schede aperte nel browser. Tuttavia, si pone un gradino più in alto per via del fatto che i dati restano memorizzati tra una sessione di lavoro e l’altra; inoltre, restano disponibili offline se implementati in un’app PWA.

ShareDrop: per scambiare file tra dispositivi remoti

Su uno schema molto simile si basa anche il funzionamento di ShareDrop, un’applicazione che avevamo già presentato a suo tempo e che permette di trasferire file pesanti a distanza in modo diretto. In ShareDrop i nomi dei vari peer sono contraddistinti con nomi di fantasia, senza la possibilità di alcuna personalizzazione.

Anche ShareDrop è un’applicazione Web gratuita e open source, il cui sorgente è disponibile pubblicamente su GitHub. Il trasferimento dei file tra sistemi locali e remoti è diretto, senza la necessità di ricorrere ad alcun server intermediario. La connessione peer-to-peer sicura e crittografata trasferisce le informazioni sul file (nome e dimensione) e i dati del file stesso.

Condivisione file con ShareDrop

Per inviare un file a un altro dispositivo nella stessa rete locale, basta aprire la pagina di ShareDrop su ciascun device quindi trascinare e rilasciare un file direttamente sull’avatar corrispondente all’altro dispositivo. Il trasferimento del file inizia una volta che il destinatario ha accettato la ricezione del file.

L’invio di un file a un dispositivo remoto che quindi si trova su una rete diversa, si concretizza semplicemente cliccando sul pulsante “+” nell’angolo in alto a destra della pagina.

Applicazioni come ShareDrop non funzionano con una VPN attiva né con la rete Tor perché entrambe le connessioni instradano le connessioni attraverso un proprio tunnel che non interagisce mai direttamente con la LAN.

LANDrop: per condividere file in locale. Necessita di installazione

Un’altra applicazione open source che consente la condivisione diretta di file tra dispositivi connessi alla stessa rete locale senza la necessità di utilizzare servizi cloud o avere connessioni Internet attive è LANDrop. Dal punto di vista tecnico, LANDrop combina una serie di tecnologie e protocolli.

Quando un dispositivo avvia LANDrop, l’app cerca altri dispositivi nella rete locale. La procedura coinvolge la scansione degli indirizzi IP locali usati nella LAN e l’invio di annunci in broadcast. Una volta che LANDrop trova altri dispositivi nella rete locale, inizia lo scambio di informazioni di segnalazione. Queste informazioni includono dati come l’indirizzo IP e una chiave di sessione generata in modo pseudocasuale.

Inizia così la fase che prevede la creazione del canale di comunicazione peer-to-peer vero e proprio: i dispositivi sono così in grado di stabilire uno scambio diretto di dati senza passare attraverso un server centrale.

In generale, LANDrop rende molto più semplice e immediata la condivisione di file all’interno di una rete locale e può risultare particolarmente utile in situazioni in cui l’accesso a Internet è limitato o quando si desidera mantenere la condivisione dei file all’interno di un ambiente di rete controllato.

Sul sito ufficiale di LANDrop sono disponibili le applicazioni per Windows, macOS, Linux, Android e iOS. Mentre la versione per iOS è pubblicata sullo store di Apple, quella per i dispositivi Android non è condivisa tramite il Play Store e deve essere eventualmente installata a partire dal file APK.

Come avviare e usare LANDrop in Windows

In Windows, dopo aver fatto clic sull’eseguibile LANDrop.exe, alla comparsa dell’avviso di sicurezza “Windows Defender Firewall ha bloccato alcune funzionalità di questa app“, è necessario spuntare entrambe le caselle Reti privateReti pubbliche quindi fare clic su Consenti accesso.

LANDrop non mostra un’interfaccia utente classica ma si limita a esporre la sua icona: cliccando su di essa con il tasto destro, si può ad esempio fare clic su Settings per impostare il nome con cui il dispositivo in uso deve essere riconosciuto in rete locale (Device Name). Il campo Download Path consente di specificare il percorso in cui sono salvati i file mentre la casella Discoverable fa sì che il sistema sia rilevato dalle altre istanze di LANDrop utilizzate in rete locale.

LocalSend: condivisione di file e cartelle all’interno della rete locale. Anche in formato portabile

Così come LANDrop, anche LocalSend permette il trasferimento di file e cartelle tra i dispositivi collegati alla rete LAN. Uno dei principali vantaggi è il fatto che il programma non solo è disponibile nelle versioni per Windows, macOS, Linux, Android e iOS ma gli sviluppatori offrono indicazioni estremamente precise per l’installazione.

Vengono proposti sia eseguibili che rendono semplice il caricamento di LocalSend sulle varie piattaforme, sia file compressi per l’utilizzo del programma in formato “portabile”. Diversamente rispetto a LANDrop, LocalSend non necessita d’installazione: basta scaricare il programma e fare doppio clic sul suo eseguibile.

Gli autori dell’applicazione condividono anche le indicazioni per caricare LocalSend tramite packet manager. In Windows si può fare con Winget (Microsoft), Chocolatey e Scoop; su macOS con Homebrew e Nix. Per quanto riguarda Android, inoltre, LocalSend è ospitato sul Play Store oltre che negli store alternativi F-Store e Amazon AppStore.

Il funzionamento di LocalSend si basa sull’utilizzo di un protocollo di comunicazione sicuro che consente ai dispositivi di comunicare tra loro utilizzando un’API REST. Tutti i dati vengono inviati in modo sicuro tramite HTTPS e un certificato TLS/SSL generato dinamicamente su ciascun dispositivo.

Come usare LocalSend in Windows

Dopo aver installato LocalSend oppure scaricato la versione portabile (il contenuto del file compresso va estratto in una cartella di propria scelta), all’avvio è bene autorizzare le comunicazioni server sia su rete privata che pubblica, esattamente come abbiamo visto nel caso di LANDrop.

La sezione Ricevi consente di mettersi in ascolto delle richieste di collegamento da parte di altri dispositivi in rete locale: nella parte più ampia della finestra, viene mostrato il nome assegnato al dispositivo.

Ricevere file in rete locale con LocalSend

Cliccando invece su Invia, LocalSend effettua una scansione della LAN alla ricerca dei dispositivi raggiungibili. Questi, a loro volta, devono avere lo stesso programma in esecuzione.

Agendo sui pulsanti al di sotto di Selezione, si può scegliere di inviare file, cartelle oppure messaggi di testo.

Invio file in rete locale con LocalSend

Un clic sulla seconda icona accanto a Dispositivi vicini permette eventualmente di inserire l’indirizzo del device di destinazione mentre l’icona raffigurante un piccolo ingranaggio (Modalità di invio) consente di configurare un invio singolo, multiplo oppure la condivisione tramite link.

Destinatari file LocalSend

Diversamente rispetto alle altre soluzioni che abbiamo presentato nella nostra “carrellata”, LocalSend consente infatti di trasferire file verso i sistemi sui quali non è installata la stessa applicazione. Basta infatti scegliere Condividi tramite link e fornire all’altro utente l’URL locale che viene visualizzato.

Condivisione file con link locale

Attenzione però all’URL che si condivide con gli altri utenti connessi in rete locale. Nell’esempio in figura, gli ultimi due non sono raggiungibili perché sono associati a vari sistemi per la gestione di macchine virtuali. Inoltre, per impostazione predefinita LocalSend non attiva la cifratura dei dati (i link presentano l’URI http: anziché https:).

Si possono eventualmente generare indirizzi HTTPS semplicemente spuntando la casella Crittografia in basso. Va comunque tenuto presente che, in questo caso, essendo il certificato digitale generato in locale, i browser mostrano il messaggio d’allerta “La connessione non è privata” o similare. È possibile proseguire senza problemi cliccando su Avanzate, Procedi.

In ogni caso, il trasferimento dati deve essere sempre esplicitamente autorizzato sul sistema dove LocalSend risulta in esecuzione.

Credit immagine in apertura: iStock.com/tsingha25

Ti consigliamo anche

Link copiato negli appunti