Sta facendo parlare molto di sé la nuova app di messaggistica istantanea chiamata Quiet, già disponibile nelle versioni per Windows, Linux, macOS, Android e iOS. L’idea che ha portato allo sviluppo di Quiet è la realizzazione di un programma di comunicazione che potesse fungere da alternativa per “nomi” quali Slack, Discord ed Element.
La caratteristica principale di Quiet è che non presuppone di fidarsi di un server centrale né di doverne gestire uno in proprio. Tutti i dati sono sincronizzati direttamente tra i dispositivi del team, con un approccio peer-to-peer, senza la necessità di ricorrere a un sistema centralizzato.
Ogni gruppo di persone (denominato “comunità” in Quiet) crea la propria rete isolata, in modo che i dati di una comunità non passino mai attraverso i dispositivi di utenti Quiet non appartenenti alla stessa cerchia di individui. Uno schema che mira a proteggere la privacy e la sicurezza dei dati.
Dal punto di vista tecnico, la sincronizzazione dei messaggi è gestita tramite OrbitDB, un progetto che sta diventando sempre più un componente chiave per la realizzazione di DApps (Distributed Applications) e sistemi peer-to-peer. I messaggi di Quiet sono trasferiti attraverso la rete Tor in modo da assicurare privacy e anonimato a ciascun utente.
Perché la scelta della rete Tor per un’app di messaggistica
L’applicazione Quiet utilizza la rete Tor come mezzo per trasferire i messaggi degli utenti tra un nodo e l’altro. L’uso di Tor consente di nascondere l’indirizzo IP dei partecipanti alle comunicazioni e di instradare il traffico attraverso una serie di nodi intermedi.
Sfruttando le caratteristiche di Tor, le chat che transitano attraverso le comunità di Quiet sono crittografate e instradate attraverso una serie di nodi casuali: le comunicazioni non soltanto possono non possono essere lette da parte di utenti non autorizzati ma sono sempre preservate la posizione geografica e l’identità degli utenti.
Non è tutto rose e fiori: l’uso di Tor può comunque rallentare la velocità di trasferimento dati a causa del routing attraverso nodi intermedi.
Cos’è e come funziona OrbitDB
Abbiamo detto che Quiet poggia il suo funzionamento su OrbitDB, base di dati distribuita e piattaforma di gestione dei dati replicati che fa parte del mondo IPFS (InterPlanetary File System, vedere più avanti). Si tratta di una soluzione progettata per consentire la creazione di applicazioni distribuite e decentralizzate che cioè memorizzano e sincronizzano i dati in modo sicuro tra i partecipanti della rete senza la necessità di un server centrale.
In informatica e nella gestione dei dati, il ledger è una sorta di registro che conserva informazioni, eventi o transazioni rilevanti per una particolare applicazione o sistema. OrbitDB funge proprio da ledger distribuito in cui i dati sono immagazzinati in una struttura di dati replicata tra i partecipanti.
Il sistema supporta diverse strutture di dati, tra cui database chiave-valore, elenchi ordinati e documenti JSON offrendo agli sviluppatori massima versatilità e flessibilità. I dati, inoltre, possono essere crittografati cosicché solo i partecipanti alla rete possano accedervi e leggerli.
OrbitDB, inoltre, è event-driven: i nodi della rete possono ricevere notifiche quando i dati cambiano. La gestione delle notifiche permette ad esempio di aggiornare il contenuto delle interfacce utente quando i dati vengono aggiunti o modificati.
IPFS e la relazione con OrbitDB
Il già citato IPFS, una delle colonne portanti di Quiet, è una rete peer-to-peer e un protocollo che sostengono il funzionamento del sistema di archiviazione e recupero distribuito dei file.
IPFS mira a rivoluzionare il modo con cui i dati vengono gestiti e condivisi su Internet: i file sono identificati in modo univoco attraverso un hash crittografico e memorizzati su una rete di nodi partecipanti con un approccio distribuito. Una volta immessi su IPFS, i file possono restarvi memorizzati per sempre evitando perdite di dati: le informazioni sono sempre disponibili e resistono a qualunque tentativo di censura.
Il sistema di versioning offerto da IPFS aiuta a tenere traccia delle diverse versioni dei file e dei dati: ciò significa che è possibile accedere a versioni precedenti dei dati, ove effettivamente disponibili.
OrbitDB sfrutta IPFS come infrastruttura sottostante per l’archiviazione e il recupero dei dati. I dati memorizzati in OrbitDB sono suddivisi in “documenti” o “registri”, a loro volta archiviati su IPFS con uno specifico hash. Utilizzando OrbitDB, inoltre, gli sviluppatori possono beneficiare di un’interfaccia semplificata per la creazione, la modifica e la sincronizzazione dei dati su una rete di nodi.
App messaggistica libera da legami: il caso Quiet
Gli sviluppatori di Quiet raccontano di aver sviluppato la nuova app di messaggistica con l’obiettivo principale di sottrarre le comunicazioni degli utenti all’infrastruttura gestita dalle aziende di più grandi dimensioni. Non si fanno nomi ma è evidente l’implicito riferimento a GAFAM o GAMAM, dopo la costituzione della “casa madre” Meta nel caso di Facebook e “soci”.
Secondo gli ideatori di Quiet, quando il software diventa troppo legato alle infrastrutture aziendali, gli utenti tendono a perdere la capacità di controllarne il comportamento in profondità. La presenza di server centralizzati, si osserva sul repository GitHub, sarebbe risultata un freno per lo sviluppo del software libero e, in generale, per la realizzazione di versioni alternative (“fork”) dei programmi.
La federazione è una soluzione proposta per affrontare il problema dei server centralizzati. Alcuni software per la comunicazione sono, tuttavia, dei prodotti parzialmente federati: in molti casi gli sviluppatori possono ancora controllare molte funzionalità lato server e hanno il controllo su un ampio ventaglio di dati degli utenti.
Con Quiet si vuole eliminare la necessità di server, rendendo il software più privato, sicuro e facilmente accessibile. Inoltre, gli sviluppatori sperano di creare una piattaforma che possa aprire la strada a un periodo nuovo in cui sviluppare app serverless possa diventare la prassi, riducendo così la dipendenza dalle grandi società tecnologiche.
Le principali funzionalità offerte da Quiet
- Niente email e numeri di telefono: Diversamente dalla stragrande maggioranza delle app di messaggistica, Quiet non richiede l’inserimento di indirizzi email e numeri di telefono per partecipare alle comunità.
- Team Chat: L’applicazione permette di creare una comunità per il proprio team e di invitare altri membri.
- Crittografia end-to-end: I dati trasmessi da un capo all’altro della comunicazione, sono automaticamente crittografati (a livello di ogni singolo dispositivo).
- Canali: Le conversazioni possono essere organizzate sotto forma di canali, un po’ come avviene su Slack.
- Immagini: Quiet supporta l’invio e la ricezione di immagini, il copia e incolla, il trascinamento sull’interfaccia del programma e le anteprime.
- File: Il programma consente l’invio e la ricezione di file di qualunque dimensione, anche oggetti molto pesanti, senza alcuna limitazione.
- Notifiche: Quiet mostra avvisi per i messaggi in arrivo, abbinando eventualmente la riproduzione di un suono.
- Link di invito: Esattamente com’è possibile fare su WhatsApp, Signal, Discord e così via, anche Quiet consente di creare e condividere link di invito.
- Controlli da tastiera: Per chi preferisce lavorare con la tastiera, Quiet prevede la possibilità di “navigare” tra i canali in modo semplice, veloce e intuitivo.
Al primo avvio di Quiet, si può cliccare su Create a new community e assegnare un nome alla nuova comunità. Successivamente è possibile invitare altri utenti. È possibile farlo cliccando sul nome della comunità, in alto a sinistra, quindi selezionando Invite a friend e infine Copy to clipboard.
Il lungo URL che si ottiene permette di scaricare il software Quiet e di accedere direttamente alla comunità appena creata. In alternativa, è disponibile un QR code che permette di raggiungere il medesimo indirizzo.
Dettagli tecnici
Quiet è principalmente scritta in TypeScript, utilizza Electron e React Native per le interfacce utente desktop e mobile. Questa scelta è stata criticata perché, ad esempio, Electron è noto per il consumo piuttosto elevato di risorse. Il framework integra infatti le runtime Chromium e Node.js tendendo ad appesantire l’intero pacchetto: non per niente WhatsApp Desktop ha deciso di abbandonare Electron per proporre agli utenti un’applicazione nativa.
React Native è invece noto per le buone prestazioni, ma alcune operazioni intensive possono essere più lente rispetto alle applicazioni native. Inoltre, la sua configurazione dal punto di vista del programmatore può risultare complessa, specialmente se si desiderano supportare più piattaforme.
Gli sviluppatori di Quiet precisano inoltre che l’applicazione non è stata ancora sottoposta ad alcun audit indipendente: non dovrebbe quindi essere utilizzata in situazioni in cui la privacy e la sicurezza sono di vitale importanza. Mancano inoltre alcune funzionalità di base presenti negli altri software di messaggistica più conosciuti.
Trattandosi di un’applicazione nuova, all’avvio dell’eseguibile in Windows è necessario cliccare su Ulteriori informazioni nella schermata di SmartScreen quindi fare clic sul pulsante Esegui comunque.
Credit immagine in apertura: iStock.com/Chainarong Prasertthai