Registrazione obbligatoria, funzioni bloccate dietro un abbonamento, dipendenza da server esterni e prestazioni poco prevedibili: molte soluzioni di accesso remoto chiedono all’utente di accettare compromessi che risultano difficili da giustificare. USBridge Remote è un nuovo progetto aperto (repository GitHub) che nasce proprio dal rifiuto di questi limiti. L’obiettivo è offrire un sistema gratuito, open source e controllabile in autonomia, pensato per chi vuole raggiungere computer e server senza affidare ogni sessione a un’infrastruttura cloud di terze parti.
USBridge Remote integra Tailscale per creare collegamenti peer-to-peer basati su WireGuard; il supporto a ZeroTier è in corso di sviluppo.
Sul piano tecnico, il software usa il protocollo Moonlight e Sunshine per lo streaming video ad alto frame rate, aggiunge supporto nativo a Wayland su Linux e riduce le richieste di autorizzazione che spesso rendono scomodo l’accesso non presidiato. Il tratto più interessante, però, è l’unificazione tra agente software e USBridge KVM 2.0: dalla stessa interfaccia si può controllare un sistema operativo già avviato oppure intervenire tramite KVM hardware quando la macchina è ferma al BIOS, non completa il boot o non risponde.
Il progetto si trova ancora in beta, con build pronte per Windows, macOS, Linux e Android (download disponibili); il client iOS è disponibile nell’App Store.

Un client, due livelli di accesso remoto
L’architettura di USBridge Remote ruota attorno a due componenti. Il client gira sulla postazione dell’operatore e gestisce l’elenco delle macchine, il flusso video, l’invio degli input, i supporti virtuali e le informazioni necessarie alla connessione. L’agent risiede invece sul computer remoto: coordina la cattura dello schermo, l’iniezione di tastiera e mouse, l’avvio del server di streaming e la rete Tailscale.
Quando l’agent lavora su una macchina con il sistema operativo funzionante e correttamente in esecuzione, il flusso video passa attraverso Sunshine, il server open source compatibile con i client Moonlight. L’agent non codifica direttamente i fotogrammi: avvia e controlla Sunshine, interroga la sua API amministrativa e inoltra le informazioni necessarie all’associazione. Una separazione sensata, perché delega acquisizione, codifica hardware e trasporto multimediale a un progetto già specializzato in streaming a bassa latenza.
Per il controllo prima dell’avvio del sistema operativo entra invece in gioco USBridge KVM 2.0. Il dispositivo acquisisce il segnale video della macchina e simula periferiche USB per tastiera, mouse e supporti di avvio. In pratica, il client presenta agent software e unità KVM nella stessa interfaccia, ma le fondamenta restano diverse: da una parte c’è un processo privilegiato dentro il sistema operativo; dall’altra un apparato esterno che continua a funzionare anche se il disco non parte o il kernel va in crash.

Sunshine e Moonlight dietro lo streaming a bassa latenza
Il repository dichiara il supporto fino alla risoluzione 2K e 240 fps (frame per secondo). Si tratta di un valore massimo, non di una prestazione garantita in ogni sessione: risoluzione, frame rate e ritardo dipendono dalla GPU, dal codec disponibile, dalla rete, dal decoder del client e dal contenuto visualizzato. Un desktop quasi statico pesa poco; animazioni, giochi, video o applicazioni 3D generano molti più cambiamenti tra un fotogramma e l’altro.
Nel client compare il sottomodulo moonlight-common-c, la libreria che implementa parti del protocollo usato dalla famiglia Moonlight. La documentazione interna cita inoltre RTP con video H.264 trasportato su UDP e una catena GStreamer composta da udpsrc, rtph264depay, decoder e appsink. La porta predefinita indicata per il flusso video è la 55000.
L’uso del protocollo UDP riduce i tempi di attesa rispetto a un trasporto che ritrasmette ogni pacchetto perso; su una connessione instabile, però, qualche perdita può produrre artefatti o brevi salti. È un compromesso normale e abituale nei sistemi interattivi.

Tailscale evita porte pubbliche, ma non elimina la rete
Per raggiungere macchine collocate dietro NAT (Network Address Translation) o firewall domestici, USBridge Remote integra – come accennatto nell’introduzione – Tailscale.
Il software costruisce una rete privata basata su WireGuard e prova a stabilire un collegamento diretto tra i nodi; quando la negoziazione non riesce, può usare un relay DERP. L’utente non deve quindi esporre manualmente una porta del router né conoscere l’indirizzo pubblico del computer remoto.
Va detto però che “peer-to-peer” non significa sempre traffico diretto: NAT simmetrici, filtri restrittivi e alcune reti aziendali possono impedire il percorso più breve. In tali casi il relay mantiene la raggiungibilità, ma aggiunge un passaggio e può aumentare la latenza. Una verifica pratica dovrebbe quindi controllare se la sessione usa una connessione diretta o un relay, soprattutto quando si inseguono frame rate molto alti.
L’integrazione può funzionare con il daemon di sistema di Tailscale oppure in modalità userspace; l’agent mostra indirizzi LAN e Tailscale, stato di Sunshine e procedura di accesso alla tailnet.
La configurazione risulta più semplice rispetto alle VPN tradizionali, ma richiede comunque una gestione accurata delle ACL, dei dispositivi autorizzati e della scadenza delle chiavi.
Autenticazione, firme HMAC e cifratura AES-GCM
USBridge Remote usa un meccanismo chiamato Master QR Sync. Il client scansiona un codice QR o importa un token che contiene il segreto necessario alla sincronizzazione; da quel momento firma le richieste con HMAC-SHA256. La verifica tollera uno scarto temporale di circa 60 secondi per limitare il riutilizzo di richieste catturate in precedenza.
La fase di associazione impiega AES-256-GCM, modalità di cifratura autenticata che protegge sia la riservatezza sia l’integrità dei dati: PIN, chiavi e altre informazioni sensibili non viaggiano quindi come semplice testo leggibile.
Il limite più evidente riguarda il modello basato su un segreto principale trasferito tramite QR: se qualcuno copia quel segreto, può firmare richieste valide finché la chiave non cambia o non interviene un ulteriore controllo di autorizzazione.
Per installazioni su sistemi “delicati” servono quindi rotazione delle credenziali, revoca dei client smarriti, archiviazione nel portachiavi del sistema e separazione tra utenti con privilegi differenti. Il repository descrive bene la firma delle richieste, ma non presenta ancora la ricchezza di ruoli, audit e criteri granulari tipica delle piattaforme aziendali mature.
Una proposta tecnica interessante, ancora da misurare sul campo
USBridge Remote non sviluppa da zero un nuovo protocollo per la trasmissione video: integra tecnologie già consolidate – Sunshine e Moonlight per lo streaming remoto, GStreamer per l’elaborazione dei flussi multimediali, Tailscale per la connessione sicura tra dispositivi, HMAC e AES-GCM per autenticazione e cifratura, NBD per l’accesso remoto ai dispositivi a blocchi – collegandole a un KVM fisico, cioè un sistema che consente di controllare tastiera, video e mouse, gestibile dalla stessa applicazione. L’elemento più originale del progetto è proprio questa integrazione.
L’approccio ha senso per chi amministra macchine che richiedono due livelli di intervento. Durante il lavoro normale si usa l’agent, più fluido e capace di sfruttare la GPU; quando il sistema non parte, si passa al KVM hardware senza ricostruire la sessione in un prodotto diverso. Il valore di USBridge Remote non sta soltanto nei 240 fps dichiarati, ma nella continuità operativa tra desktop, installazione, BIOS e recupero.
Restano alcuni aspetti da valutare con attenzione: la gestione di CAP_SYS_ADMIN su Linux, una capacità che concede privilegi molto estesi al processo; la protezione del segreto principale, da cui dipende la sicurezza dell’intero sistema; la mancanza di funzionalità avanzate per le aziende; il supporto ancora parziale alle diverse architetture hardware. Si tratta di limiti comprensibili per un progetto ancora giovane, ma devono essere considerati in modo realistico e consapevole.