From Specs to Apps: Verifying and Monitoring Models of Signal and WhatsApp
Questo articolo colma il divario tra le specifiche formali dei protocolli e le implementazioni nel mondo reale utilizzando il monitor di runtime SpecMon per verificare che le esecuzioni osservate di WhatsApp Web e Signal Desktop siano conformi a modelli appena sviluppati e compatibili con Tamarin, confermando così le proprietà di sicurezza e svelando differenze non documentate tra le applicazioni.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Nell'era digitale, miliardi di persone si affidano alle applicazioni di messaggistica per condividere i propri pensieri più privati, proteggere i propri dati finanziari e coordinare la propria vita quotidiana. Dietro le quinte di queste applicazioni si cela un insieme complesso di regole noto come protocollo, che funge da progetto per il modo in cui i messaggi vengono bloccati, inviati e sbloccati. Il più famoso di questi progetti è il protocollo Signal, un sistema progettato per garantire che, anche se un hacker intercettasse un messaggio, non possa leggerlo. Per anni, gli esperti di sicurezza hanno utilizzato potenti strumenti informatici per dimostrare che questo progetto è matematicamente solido. Hanno dimostrato che, se le regole vengono seguite perfettamente, il sistema è infrangibile. Tuttavia, un progetto non è la stessa cosa di un edificio. Il fatto che un design sembri perfetto sulla carta non significa che la squadra di costruzione abbia seguito ogni istruzione, abbia usato i materiali giusti o abbia evitato errori accidentali durante la costruzione delle pareti. Nel mondo del software, il divario tra il design teorico e il codice effettivo in esecuzione sul telefono di un utente è dove spesso si nascondono le vulnerabilità.
Un team di ricercatori del CISPA Helmholtz Center for Information Security si è posto l'obiettivo di colmare questo divario. Volevano sapere se le versioni reali del protocollo Signal, così come girano all'interno delle applicazioni WhatsApp e Signal, seguano effettivamente le rigide regole che sono state progettate per rispettare. Invece di cercare di leggere l'intero codice sorgente di queste massicce applicazioni — un compito reso difficile dal fatto che parti di esse sono nascoste o chiuse — i ricercatori hanno costruito un osservatore specializzato. Questo osservatore, chiamato SpecMon, osserva l'applicazione mentre è in esecuzione, ascoltando ogni conversazione che ha con la rete e ogni calcolo che esegue con le sue chiavi di sicurezza. Confronta queste azioni dal vivo con il modello teorico perfetto in tempo reale. Se l'applicazione cerca di prendere una scorciatoia, saltare un passaggio o utilizzare un metodo diverso da quello consentito dal progetto, l'osservatore lancia un allarme.
I ricercatori hanno applicato questo metodo a due importanti applicazioni: Signal Desktop, che è aperta all'ispezione di chiunque, e WhatsApp Web, un sistema proprietario e chiuso di proprietà di una massiccia corporazione. Per l'applicazione Signal Desktop, sono partiti da un modello matematico esistente e altamente dettagliato del protocollo e hanno aggiunto i dettagli specifici e disordinati presenti nel software effettivo, come il modo in cui gestisce nuovi tipi di crittografia progettati per resistere ai futuri computer quantistici. Per WhatsApp, hanno dovuto lavorare a ritroso. Partendo da nessun modello preesistente, hanno osservato il comportamento dell'applicazione, ne hanno registrato le azioni e hanno costruito un nuovo progetto personalizzato da zero che corrispondesse esattamente a ciò che il software stava facendo. Questo è stato un traguardo significativo, poiché ha segnato la prima volta che un modello formale è stato derivato direttamente dall'implementazione della versione del protocollo di WhatsApp.
Una volta pronti questi modelli, i ricercatori li hanno messi alla prova. Hanno eseguito migliaia di conversazioni simulate, inclusi scenari in cui i messaggi erano ritardati, inviati fuori ordine o in cui la connessione di rete veniva interrotta. In ogni caso, le applicazioni si sono comportate esattamente come previsto dai modelli, confermando che i meccanismi di sicurezza centrali funzionavano correttamente. I ricercatori hanno anche iniettato deliberatamente errori nel software per vedere se il loro osservatore li avrebbe colti. Hanno fatto in modo che le app riutilizzassero vecchie chiavi di crittografia, saltassero i controlli delle firme o rivelassero dati segreti in modi inaspettati. Il sistema ha rilevato ogni singolo uno di questi difetti di sicurezza, dimostrando che lo strumento di monitoraggio è abbastanza sensibile da individuare deviazioni pericolose dalle regole.
Tuttavia, il monitoraggio ha anche rivelato sottili differenze tra le due applicazioni che non erano immediatamente ovvie. I ricercatori hanno scoperto che WhatsApp gestisce le "conferme di lettura" — le notifiche che comunicano al mittente che un messaggio è stato letto — in modo diverso rispetto a Signal. In Signal, queste conferme sono avvolte nella stessa forte crittografia dei messaggi e partecipano all'aggiornamento continuo delle chiavi di sicurezza. In WhatsApp, queste conferme vengono inviate al di fuori di quello strato crittografato, il che significa che non attivano gli stessi aggiornamenti di sicurezza. Sebbene i ricercatori non abbiano trovato un modo per violare la sicurezza di WhatsApp basandosi su questa differenza, hanno notato che ciò significa che l'applicazione potrebbe impiegare più tempo per ripristinare la propria sicurezza se una chiave segreta venisse mai rubata. Hanno anche confermato che WhatsApp non include ancora alcune funzioni avanzate di privacy, come nascondere l'identità del mittente al server, che sono invece presenti nell'app Signal.
Lo studio dimostra che è possibile osservare software complessi e reali in azione e verificare che aderiscano alle loro promesse di sicurezza senza la necessità di vedere ogni singola riga del loro codice sorgente. Il processo è stato efficiente, richiedendo solo poche settimane per essere impostato ed eseguito, e ha aggiunto pochissimo ritardo alla velocità delle applicazioni. Creando un sistema in cui il modello teorico e il monitoraggio dal vivo condividono lo stesso linguaggio, i ricercatori hanno fornito un modo per i developer e gli esperti di sicurezza per controllare continuamente che le loro applicazioni rimangano sicure mentre evolvono. Questo approccio offre una nuova via per costruire fiducia negli strumenti digitali che usiamo ogni giorno, assicurando che gli edifici in cui viviamo siano sicuri quanto i progetti da cui sono stati costruiti.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.