- In conformità con una nuova legge dell'UE, il Digital Markets Act (DMA), che entrerà in vigore il 7 marzo, abbiamo apportato modifiche significative a WhatsApp e Messenger per consentire l'interoperabilità con servizi di messaggistica di terze parti.
- Condividiamo il modo in cui abbiamo abilitato l'interoperabilità di terze parti mantenendo il più possibile la crittografia end-to-end (E2EE) e altre misure di tutela della privacy nei nostri servizi.
Il 7 marzo è entrata in vigore una nuova legge dell’UE, il Digital Markets Act (DMA). Uno dei suoi requisiti è che i servizi di messaggistica designati debbano consentire ai servizi di messaggistica di terze parti di diventare interoperabili, a condizione che la terza parte soddisfi una serie di ammissibilità, inclusi requisiti tecnici e di sicurezza.
Ciò consente agli utenti di fornitori di terze parti che scelgono di abilitare l'interoperabilità (interoperabilità) di inviare e ricevere messaggi con gli utenti di Messenger o WhatsApp che hanno aderito, entrambi definiti dalla Commissione Europea (CE) come tenuti a fornire in modo indipendente interoperabilità con terze parti. – Servizi di messaggistica di partito.
Da quasi due anni, il nostro team collabora con la Commissione Europea per implementare l’interoperabilità in modo da soddisfare i requisiti di legge e massimizzare la sicurezza, la privacy e l’incolumità degli utenti. L’interoperabilità è una sfida tecnica, anche quando ci si concentra sulle funzionalità principali come richiesto da DMA. Nel primo anno, il requisito è inviare messaggi di testo 1:1 tra singoli utenti e condividere foto, messaggi vocali, video e altri file allegati tra i singoli utenti finali. In futuro, i requisiti si espanderanno per includere funzioni di gruppo e di comunicazione.
Per l'interoperabilità, i fornitori di terze parti firmeranno un accordo con Messenger e/o WhatsApp e lavoreremo insieme per consentire l'interoperabilità. Oggi pubblicheremo una demo di riferimento di WhatsApp per fornitori di terze parti che delineerà ciò che è necessario per interagire con il servizio. La visualizzazione di riferimento di Messenger verrà implementata a tempo debito.
Sebbene Meta dovrebbe essere pronto per consentire l'interoperabilità con altri servizi entro tre mesi dalla ricezione della richiesta, potrebbe essere necessario più tempo prima che la funzionalità sia pronta per l'uso generale. Volevamo cogliere questa opportunità per delineare l'infrastruttura tecnica e il pensiero alla base della nostra soluzione di interoperabilità.
Un approccio incentrato sulla privacy per la creazione di servizi di messaggistica interoperabili
Il nostro approccio alla conformità DMA è incentrato sul mantenimento della privacy e della sicurezza dei nostri utenti nella massima misura possibile. Il DMA impone come requisito legale di non indebolire la sicurezza fornita agli utenti Meta.
L'approccio che abbiamo adottato per implementare l'interoperabilità è il modo migliore per soddisfare i requisiti DMA, creando al tempo stesso un approccio praticabile per i fornitori di terze parti interessati a diventare interoperabili con Meta e ad aumentare la sicurezza e la privacy degli utenti.
Implementazione di un protocollo crittografato end-to-end
Innanzitutto, dobbiamo proteggere la sicurezza di base che mantiene sicura la comunicazione tra le app di messaggistica Meta E2EE: il protocollo di crittografia. Sia WhatsApp che Messenger utilizzano il collaudato protocollo Signal come elemento centrale della loro crittografia.
Messenger utilizza ancora E2EE per impostazione predefinita per le comunicazioni di persona, ma su WhatsApp questa impostazione predefinita è attiva dal 2016. In entrambi i casi, utilizziamo il protocollo Signal come base per queste comunicazioni E2EE, perché rappresenta l'attuale gold standard per E2EE. conversazioni.
Per massimizzare la sicurezza dell'utente, preferiamo che i fornitori di terze parti utilizzino il protocollo Signal. Poiché questo dovrebbe funzionare per tutti, consentiremo ai fornitori di terze parti di utilizzare un protocollo compatibile se sono in grado di dimostrare che fornisce le stesse garanzie di sicurezza di Signal.
Per inviare messaggi, i provider di terze parti devono creare strutture di messaggi iniziali che vengono poi codificate utilizzando il protocollo Signal e quindi assemblate in segmenti di messaggi XML (Extensible Markup Language).
I server di identificazione inviano messaggi ai client connessi tramite una connessione permanente. I server di terze parti sono responsabili dell'hosting di tutti i file multimediali che le loro applicazioni client inviano ai Meta Client (come file di immagini o video). Dopo aver ricevuto un messaggio multimediale, i client Meta scaricheranno successivamente il supporto crittografato da server di messaggistica di terze parti utilizzando il servizio proxy Meta.
È importante notarlo La promessa E2EE di Meta agli utenti dei nostri servizi di messaggistica ci impone di controllare sia i client di invio che quelli di ricezione. Questo ci consente di garantire che solo il mittente e i destinatari previsti possano vedere ciò che è stato inviato e che nessuno possa ascoltare la tua conversazione senza che entrambe le parti lo sappiano.
Sebbene abbiamo creato una soluzione sicura e interoperabile che utilizza la crittografia del protocollo Signal per proteggere i messaggi in transito, senza la proprietà di entrambi i client (endpoint) non possiamo garantire ciò che fa il provider di terze parti con i messaggi inviati o ricevuti e pertanto non possiamo fare lo stesso promettere.
La nostra soluzione tecnica si basa sull'architettura client/server esistente di Meta
Riteniamo che il modo migliore per garantire l'interoperabilità sia attraverso una soluzione basata sull'architettura client/server esistente di Meta [Figure 1]. In particolare, i requisiti richiesti ai client per connettersi alla Meta infrastruttura presentano i seguenti vantaggi:
- Consente a Meta di massimizzare la sicurezza e la protezione per tutti gli utenti eseguendo molti degli stessi controlli di integrità degli utenti Meta esistenti
- Costituisce un modello “plug and play” per i fornitori terzi, riducendo le barriere per potenziali nuovi concorrenti e i costi per i fornitori terzi
- Aiuta a proteggere ulteriormente la privacy degli utenti limitando l'esposizione dei loro dati personali solo ai server Meta
- Migliora l'affidabilità complessiva del servizio interoperabile poiché sfrutta l'infrastruttura Meta, che è già scalabile a livello globale per gestire oltre 100 miliardi di messaggi al giorno
Prendendo l'esempio di WhatsApp, i client di terze parti si connetteranno ai server WhatsApp utilizzando il nostro protocollo (basato sull'Extensible Messaging and Presence Protocol – XMPP). Il server WhatsApp interagirà con un server di terze parti tramite HTTP per facilitare una serie di cose tra cui l'autenticazione di utenti di terze parti e le notifiche push.
WhatsApp espone l'API di arruolamento che i client di terze parti devono implementare quando si iscrivono alla rete WhatsApp. Quando un utente esterno si registra su WhatsApp o Messenger, mantiene il suo ID attuale visibile all'utente e gli viene anche assegnato un ID WhatsApp interno univoco che viene utilizzato a livello di infrastruttura (per protocolli, archiviazione dati, ecc.)
WhatsApp richiede ai clienti di terze parti di fornire una “prova” della loro proprietà dell'ID visibile dell'utente di terze parti durante le chiamate o il reclutamento. La prova viene generata da un servizio di terze parti che firma crittograficamente il token di autenticazione. WhatsApp utilizza il protocollo OpenID standard (con alcune piccole modifiche) insieme a JSON Web Token (JWT Token) per verificare l'ID visibile dell'utente tramite chiavi pubbliche recuperate periodicamente da un server di terze parti.
WhatsApp utilizza il framework Noise Protocol per crittografare tutti i dati che viaggiano tra il client e il server WhatsApp. Nell'ambito del protocollo Noise, il client di terze parti deve eseguire un “noise handshake” ogni volta che si connette al server WhatsApp. Parte di questa stretta di mano fornisce un carico utile al server che contiene anche il token JWT.
Una volta che il client si è connesso con successo al server WhatsApp, il client deve utilizzare il protocollo chat di WhatsApp per comunicare con il server WhatsApp. Il protocollo di chat di WhatsApp utilizza blocchi XML ottimizzati per comunicare con i nostri server.
Mentre continuiamo a discutere di questa architettura con fornitori di terze parti, crediamo che esista anche un modo per implementare l'interoperabilità in cui possiamo dare ai fornitori di terze parti la possibilità di aggiungere un proxy o un “intermediario” tra il loro client e il server WhatsApp. Un proxy offre potenzialmente ai fornitori di terze parti maggiore flessibilità e controllo su ciò che i loro clienti possono ricevere dal server WhatsApp ed elimina anche la necessità per i clienti di terze parti di dover implementare un protocollo server client-to-WhatsApp, vale a dire mantenere i loro esistenti “canale chat” sui propri clienti.
La sfida qui è che WhatsApp non avrà una connessione diretta con entrambi i client e, di conseguenza, perderà importanti segnali a livello di connessione per proteggere gli utenti da spam e truffe come il rilevamento delle impronte digitali TCP. Ci aspettiamo pertanto di implementare requisiti aggiuntivi per i fornitori terzi che optano per questa opzione nell'ambito della nostra Offerta di riferimento. Questo approccio espone inoltre tutti i metadati della chat al server proxy, aumentando la possibilità che questi dati vengano divulgati accidentalmente o intenzionalmente.
Una spiegazione chiara di come funziona l'interoperabilità per gli utenti
Riteniamo che sia essenziale fornire agli utenti informazioni trasparenti su come funziona l'interoperabilità e su come si differenzia dalle loro conversazioni con altri utenti WhatsApp o Messenger. Questa sarà la prima volta che gli utenti faranno parte di una rete interoperabile sui nostri servizi, quindi fornire loro informazioni chiare e dirette su cosa aspettarsi sarà fondamentale. Ad esempio, gli utenti devono sapere che la nostra promessa di sicurezza e privacy, così come il nostro set di funzionalità, non corrisponderà mai esattamente a ciò che offriamo nelle conversazioni di WhatsApp.
La privacy e la sicurezza sono una responsabilità condivisa
Come speriamo sia chiaro da questo post, mantenere la privacy e la sicurezza in un sistema interoperabile è una responsabilità condivisa, non qualcosa che Meta può fare da solo. Pertanto, dovremo continuare a collaborare con fornitori di servizi di terze parti per fornire l'esperienza migliore e più sicura ai nostri utenti.
“Esperto televisivo sottilmente affascinante. Drogato di alcol. Appassionato di zombie impenitente.”