Matrix

Premessa

Questo post segue quelli precedenti (Hugo, Obsidian parte 1, Obsidian parte 2, Matomo, Cactus Comments) che hanno l’intento di presentare soluzioni che utilizziamo oppure che valutiamo essere interessanti.
Per l’analisi poniamo attenzione a diversi profili quali, a titolo esemplificativo ma non esaustivo, se si tratta di open source, gli impatti su privacy e protezione dei dati personali, gli aspetti di cybersecurity.
Prossimamente pubblicheremo altri post che avranno ad oggetto numerose altre valide soluzioni.

Matrix: cos’è?

Quando si sente parlare di Matrix, molto comunemente, subito si pensa al famoso film del 1999 dal titolo “Matrix” (in inglese “The Matrix”), vincitore di quattro premi Oscar, scritto e diretto dai fratelli Andy e Larry Wachowski. Probabilmente, si può anche pensare ai sequel “Matrix Reloaded” e “Matrix Revolutions” del 2003 che hanno completato la trilogia di Matrix.

Tuttavia, in questo post non ci riferiamo ai film, seppure affascinanti e coinvolgenti, ma a una soluzione software, un protocollo che è stato pubblicato (out of beta) nel 2019, iniziando la sua diffusione nel mondo con un’ascesa considerevole che continua tuttora (per avere un’idea è sufficiente seguire i tweet su #Matrix).

Probabilmente a questo punto non è ancora tanto chiaro cosa sia Matrix.

Sulla home page del sito di Matrix c’è questa definizione “An open network for secure, decentralized communication” (Una rete aperta per una comunicazione sicura e decentralizzata - N.B.: la traduzione è nostra e non è ufficiale).

Come si comprende dalla sintetica definizione su riportata, Matrix è una innovativa e significativa soluzione, per certi versi rivoluzionaria, utile per la comunicazione.

Sulla pagina delle FAQ, alla domanda “What is Matrix?” si legge la risposta

Matrix è uno standard aperto per la comunicazione interoperabile, decentralizzata e in tempo reale su IP. Può essere usato per alimentare la messaggistica istantanea, la segnalazione VoIP/WebRTC, la comunicazione Internet of Things - o dovunque abbiate bisogno di un’API HTTP standard per la pubblicazione e la sottoscrizione di dati mentre tracciate la storia della conversazione.” (N.B.: la traduzione è nostra e non è ufficiale).

Pertanto, Matrix non riguarda unicamente la messaggistica, ma anche VoIP e IoT.
Il concetto di “open standard” non sembra ancora avere allo stato una definizione univoca (un esempio è la definizione fornita dall’ITU).

Molto genericamente, Matrix funziona con server (chiamato “"homeserver”") e client.

Nel tentativo di continuare fornire maggiori dettagli su come funzioni Matrix, riportiamo di seguito un’immagine statica di quanto presente sulla home page del loro sito. Dalla home page del sito di Matrix alla voce “How does it work?” è possibile vedere lo schema di funzionamento del protocollo in modalità dinamica, visualizzando anche i dettagli relativi al codice se si clicca sul pulsante “Next”.
Bob

Comunicare consapevolmente

Dicevamo che Matrix - molto genericamente - è una soluzione per la comunicazione.

Le persone comunicano con modalità differenti (comunicazione vocale, dei gesti, del corpo, elettronica mediante device, video chiamate, ecc.) ma raramente ci preoccupiamo degli aspetti che riguardano la privacy e la protezione dei nostri dati personali.

Anche nei sistemi e negli ecosistemi IoT gli oggetti comunicano tra loro per trasmettere informazioni.

Quindi, come approfondiremo al termine di questo post, la privacy e la protezione dei dati personali è fondamentale.

Allo stesso modo la sicurezza è rilevante.

Riportiamo alcune parti contenute nel primo capitolo del nostro ultimo libro dal titolo “GDPR & Privacy - Consapevolezza e opportunità. L’approccio con il Data Protection and Privacy Relationships Model (DAPPREMO)”, 2020, che reputiamo attinenti al tema oggetto di questo paragrafo.

“L’essere umano ha bisogno di comunicare (primo assioma della Scuola di Palo Alto) e il vantaggio offerto da Internet di poter interagire con altre persone anche a distanza ha avuto un successo che è diventato dirompente proprio quando mantenere la distanza è diventato essenziale per contenere la pandemia”.

e più avanti

“*Gli utenti, però, scelgono le app seguendo il criterio della loro maggiore diffusione (spesso per moda o per essere parte di un gruppo) invece di prestare attenzione alla protezione delle informazioni che vengono veicolate. Paradossalmente, gli utenti preferiscono continuare ad utilizzare app potenzialmente meno sicure, ma molto diffuse, invece, che riflettere sulle conseguenze dei rischi connessi alla sicurezza dei dati. A fronte dell’invito rivolto alle persone di riflettere sui potenziali rischi di sicurezza, si sente rispondere che quella o quelle app sono le più utilizzate; prevale, quindi, il criterio (imprudente?) delle scelte operate dalla maggioranza degli utenti (inconsapevoli).

Del resto, le scelte degli utenti sono al contempo indirizzate verso app che si assumono poter essere utilizzate gratuitamente senza alcuna riflessione sul reale costo da pagare che, quasi sempre, corrisponde ai dati degli utilizzatori (dati personali, indirizzi IP, data e ora di accesso e di utilizzo, metadati, ecc.). La smania di accedere a determinati servizi o di utilizzare le app prevale sul minimo buon senso che viene ampiamente prevaricato sia dalla accettazione incondizionata delle condizioni generali e delle privacy policy (quasi sempre non lette) sia dal disinteresse per i rischi, anche minimi, connessi alla sicurezza delle informazioni (valutabili con tre banali domande: “A chi e dove invio i miei dati, da chi essi saranno trattati e dove gli stessi saranno salvati”?)”.

e ancora

Una adeguata consapevolezza e un approccio etico riguardo a ciò che si sta compiendo e soprattutto alle conseguenze che ne possono derivare potrebbero però costituire un valido strumento preventivo per ridurre il rischio in capo a ciascun soggetto per sé e per gli altri. Consapevolezza ed etica non costituiscono decisamente “la soluzione”, ma componenti del processo sulla protezione dei dati personali.

Pertanto, a nostro avviso sono fondamentali e imprescindibili i temi della consapevolezza, dell’etica, della privacy, della protezione dei dati personali e della sicurezza.

Le nostre riflessioni si basano su ciò che accade ogni giorno nella vita reale.
La gente preferisce comunicare mediante applicazioni che hanno maggiore diffusione e sono più note, trascurando la consapevolezza circa la sorte dei propri dati personali e gli aspetti di sicurezza.

Questo dilagante fenomeno lascerà poco spazio a considerazioni “consapevoli” sul trattamento dei dati personali, sulla privacy e sulla cybersecurity.

Tuttavia, è bene che si faccia sana opera di divulgazione per sensibilizzare la gente sia riguardo ai rischi sia relativamente all’esistenza di soluzioni che possono ridurli.

Perché scegliere Matrix?

Le ultime parole del precedente paragrafo sono in qualche modo la risposta al perché scegliere Matrix.

Intanto si tratta di una soluzione gratuita, open source e trasparente (tutte le risorse sono disponibili in rete).

Matrix è una soluzione abbastanza sicura (la sicurezza assoluta in informatica non esiste) e che rispetta la privacy.

Sulla home di Matrix sono riportati alcuni tweet tra i quali quello di @lrvick che ha elaborato un report nel quale è riportata la comparazione relativa a sicurezza e privacy di diversi sistemi di messaggistica.

Sebbene il tweet sia del 14/10/2018, esso costituisce un’indicazione chiara dei profili di sicurezza e privacy di Matrix anche nella comparazione con gli altri sistemi.

Al di là dei profili di sicurezza e del rispetto della privacy e della disciplina in materia di protezione dei dati personali, evidenziamo come questa soluzione possa essere adottata non solo per la comunicazione personale tra utenti, ma anche come architettura informatica per organizzazioni private e pubbliche.

Del resto, ci risulta che alcune Università abbiano già adottato Matrix-Synapse per la comunicazione.

Non abbiamo dubbi che Matrix-Synapse possa essere gratuitamente utilizzato anche dalla PA, favorendo così la comunicazione “sicura” con gli utenti.

Insomma, gli utilizzi concreti dell’ecosistema Matrix è davvero molto ampia e sarebbe anche ora che qualcuno facesse una riflessione sull’argomento.

La nostra valutazione

Dopo aver conosciuto l’ecosistema Matrix, abbiamo effettuato alcune valutazioni e, da subito, l’abbiamo considerata una soluzione innovativa e soprattutto che rispetta la privacy.

I dati degli utenti, il contenuto dei messaggi, dei media e di ogni attività effettuata sul server Matrix ("homeserver”) sono criptati e quindi non consultabili neppure dall’amministratore di sistema.

Riguardo all’utilizzo di Matrix, va precisato che l’unico dato “in chiaro” è lo “Username” che, però, può anche non essere “parlante” (cioè non presentare elementi che possano identificare l’utente).

Matrix non utlizza numeri di telefono (mobile o altri) per la comunicazione tra utenti, non utilizza indirizzi email; insomma, l’utente è identificabile unicamente dallo “Username” e dallo “homeserver” poiché l’indirizzo utile per farsi identificare nell’ecosistema Matrix è @username:homeserver e cioè, ad esempio, @name:matrix.org (se l’utente è stato creato sul server matrix.org).

Questo aspetto è indubbiamente di estremo rilievo se si considera che altri sistemi di messaggistica funzionano esclusivamente con il numero mobile (che è dato personale di cui il titolare fa trattamento).

Altro aspetto fondamentale è il rispetto del Considerando (7) del GDPR secondo il quale

È opportuno che le persone fisiche abbiano il controllo dei dati personali che li riguardano e che la certezza giuridica e operativa sia rafforzata tanto per le persone fisiche quanto per gli operatori economici e le autorità pubbliche.”."

Infatti, l’utente è l’unico ad avere pieno controllo sul proprio account e può decidere in ogni momento di modificarlo oppure cancellarlo.

Queste, in estrema sintesi, le principali motivazioni che ci hanno indotto a scegliere Matrix come protocollo di comunicazione anche nella piena consapevolezza che gran parte degli utenti utilizza altri sistemi maggiormente diffusi.

Ottenere un account Matrix?

Sul sito di Matrix c’è una guida che descrive come essere coinvolti nell’ecosistema.

Per utilizzare Matrix è necessario avere un account che, pertanto, va creato.

E’ possibile creare un account o sul server di Matrix - matrix.org - oppure su qualsiasi altro server Matrix esistente nel mondo.

Per creare un account Matrix è necesario registrarsi tramite un client e si possono scegliere quelli indicati a questa pagina.
Il client utilizzato da Matrix è Element.

Matrix.org

Per creare un account su matrix.org si deve:

  1. accedere alla pagina web di Element.
  2. cliccare su “Create Account”;
  3. inserire uno “Username”";
  4. inserire una “Password”;
  5. inserire un “Email”;
  6. cliccare su “Register”.

Verrà creato un profilo utente che sarà nella forma @Username:matrix.org

E’ possibile, quindi, accedere a Matrix mediante il client (nel nostro caso Element) e iniziare a comunicare con altri utenti (evidentemente che hanno già un account Matrix) oppure accedere alle room (stanze) che interessano.

Matrix sul proprio server

Se si installa Matrix-Synapse sul proprio server la procedura per la creazione dell’account sarà la stessa di quella su indicata.

Per i motivi su indicati abbiamo deciso di installare sia Matrix-Synapse sul nostro server che è matrix.nicfab.it sia Element.

Peraltro, siamo tra i supporter di Matrix.

La registrazione dell’account può essere effettuata sul nostro server raggiungendo la pagina web di Element.

Nel nostro caso, per ragioni di sicurezza, abbiamo aggiunto l’indicazione obbligatoria del numero di telefono (mobile) al solo fine di ricevere notifiche oppure nel caso che si dimentichi la password.

Dobbiamo precisare che i dati restano tutti criptati sul server e quindi non consultabili da nessuno, neppure dall’amministratore di sistema (sysadmin).

I client per Matrix

Si è detto che l’utente ha bisogno di un client per utilizzare Matrix.
La scelta del client è importante per apprezzare tutte le funzioni di Matrix.

Per potersi orientare sulla scelta del client si può consultare la pagina del sito di Matrix ove sono indicati i clients suddivisi per:

  1. Mobile
  2. Desktop
  3. Terminal-based / Command Line
  4. Web
  5. Nintendo 3DS

Qualora si volesse consultare un elenco più dettagliato con indicazione anche del sistema operativo, dalla predetta pagina si può raggiungere altra risorsa.

Element è stata la nostra scelta sia per Desktop/Web sia per il mobile.

Element

Element è il client scelto da Matrix e in fondo alla home page si legge:

Our mission is to preserve your right to privacy, in the face of an increasingly centralised internet, and routine surveillance.

Privacy is protected by the UN Declaration of Human Rights

Il client è gratuito, salvo che non si voglia optare per una delle soluzioni presenti sul sito di Element.

L’interfaccia di Element è pulita come possiamo vedere dall’immagine che riportiamo di seguito

Element

Come si può vedere, sul lato sinistro c’è una parte con l’elenco delle chat con le persone (People) e delle room.

La parte centrale indica il contenuto della room o della chat con un box in basso per scrivere.

Sulla barra in alto sono presenti delle icone che rappresentano il telefono, la videocamera per poter avviare rispettivamente telefonate o videochiamate.

Cliccando sull’icona in alto a sinistra che rappresenta l’utente che ha effettuato l’accesso si apre un menu che contiene anche la voce impostazioni.

L’interfaccia è la stessa sia per il client Desktop/Web, sia per il mobile.

Matrix self-hosted

La nostra scelta è stata quella di creare un nostro “homeserver” Matrix.

Chi fosse interessato, può seguire le guide presenti sul sito di Matrix che fanno riferimento all’installazione di Synapse che, come si legge a questa pagina, è descritto così:

Synapse è un’implementazione di Matrix “homeserver” sviluppata dal core team di matrix.org, scritta in Python 3/Twisted. (N.B.: la traduzione è nostra e non è ufficiale)

Per installare Synapse si può seguire questa guida ufficiale.

Segnaliamo anche questo post pubblicato sul Blog ufficiale di Matrix che contiene anche un video: “Running your own secure communication service with Matrix and Jitsi”.

A nostro avviso è un’ottima risorsa per chi intende realizzare il proprio “homeserver” Matrix.

Non ci addentriamo nei profili puramente tecnici perché lo scopo di questo post è divulgativo e comunque sono disponibili in rete le risorse ufficiali, nonché la possibilità di accedere a room specifiche su matrix.org ove potersi confrontare con altri utenti.

Possiamo certamente dire che l’installazione del nostro “homeserver” Matrix ci ha davvero divertito e ne siamo entusiasti.

I bridge

Se si installa Matrix-Synapse sul proprio server, è anche possibile installare i bridge che sono delle applicazioni per lo più scritte in Python che consentono di utilizzare altre app di messaggistica all’interno del client Matrix.

In sostanza, potrei installare il bridge per Telegram o per Signal, oppure entrambi, in modo da avere tutte le conversazioni di Telegram stesso all’interno del client Matrix (nel nostro caso Element).
Non c’è limite all’installazione dei bridge; si potrebbe decidere di installare tutti quelli che necessitano.

Chi non avesse un proprio server (c.d. self-hosted), invece, può utilizzare t2bot.io, un bot che consente di avere disponibili diverse funzioni tra le quali bridge con altri sistemi. Sul sito leggiamo “Una rete pubblica di integrazione per Matrix. Migliaia di comunità usano i bot e i ponti di t2bot.io per connettersi e condividere, tutto senza pubblicità.

In sostanza, queste soluzioni descritte solo brevemente, evidenziano una delle potenzialità dell’ecosistema Matrix che si rivela essere una risorsa interoperabile con altri sistemi.

Matrix e la privacy

Come di consueto riserviamo un paragrafo ad hoc sulla privacy per esprimere le nostre valutazioni che devono essere considerate come un’opinione e non come una dichiarazione di conformità o non conformità.

Dopo questa debita precisazione possiamo dire che non è facile esprimere una valutazione sulla compliance alla normativa in materia di protezione dei dati personali, sia perché ciò richiederebbe una corretta e completa indagine sul codice del software (comunque è open e disponibile su GitHub) sia in quanto il nostro contributo esprime semplicemente la nostra libera opinione.

Tuttavia, mesi di utilizzo intenso e di interventi sul nostro “homeserver” ci consentono di affermare, sperando di non essere smentiti, che Matrix-Synapse è una soluzione realizzata secondo il principio “Privacy by Design” o “Protezione dei dati fin dalla progettazione e protezione per impostazione predefinita” così come descritto nell’art. 25 del GDPR.

L’intera architettura informatica sviluppata dal Team di Matrix, unitamente alle misure tecniche e organizzative adottate, ci sembrano - sia dal lato dell’utente sia da quello di amministratore del server - compatibili con i principi e le norme contenuti nel Regolamento 2016/679 (GDPR).

Abbiamo già precisato che l’utente ha il pieno controllo dei propri dati personali secondo quanto previsto dal Considerando (7) del GDPR.

Altro aspetto importante riguarda il rilascio degli aggiornamenti che sono frequenti e pubblicati sempre con la massima trasparenza, in modo che l’utente abbia piena consapevolezza.

La posizione di Matrix sulla privacy è quella contenuta nella Privacy Notice alla quale rimandiamo per chi avesse interesse ad approfondire.

L’intero progetto merita il nostro massimo apprezzamento e questo è uno dei motivi che ci ha spinti a supportare Matrix, convinti che il continuo sviluppo possa migliorare sempre di più l’intero ecosistema software.

E’ appena il caso di evidenziare che la “Coalizione per i mercati digitali competitivi” (The Coalition for Competitive Digital Markets) ha pubblicato una lettera aperta (disponibile solo in lingua inglese) dal titolo “L’UE ha bisogno di una legge efficace sui mercati digitali” (The EU Needs an Effective Digital Markets Act).

Da quanto si legge sul sito, la Coalizione è composta da 50 società appartenenti a 16 Paesi di cui 12 dell’Unione Europea.

Il testo della open letter è disponibile a questa pagina e i punti evidenziati in sintesi sono i seguenti:

  • Extend the interoperability provision to all core platform services, for all business and consumer offerings;
  • Prohibit the gatekeepers’ harmful self-preferencing by introducing an explicit pre-installation and default setting ban for core platform services;
  • Extend the bundling prohibition to ancillary services.

Facciamo riferimento a questa open letter perché Matrix è una delle società che ha aderito a questa iniziativa.

Il contenuto della open letter è complessivamente condivisibile se l’Europa vuole essere competitiva sui mercati digitali.

Stay tuned!