SHARE THE PERSPECTIVE
Un test offline deve fornire un risultato preciso; un hash o una dimostrazione crittografica non è un audit completo del prodotto.

Un test offline può mostrare che un determinato calcolo viene eseguito senza una risposta in tempo reale del server. È utile, ma non dimostra la sicurezza dell’intero messenger. Per ottenere un risultato utilizzabile, annotate esattamente quale file, versione, input e output avete testato.

Hash dei file, firme delle release, vettori di test, build riproducibili e audit di sicurezza rispondono a domande diverse. Combinare le prove è più utile che trasformarne una in un «sigillo di sicurezza completa».

Che cosa dimostra ogni tipo di prova?

Prova Conclusione limitata e corretta Che cosa non dimostra automaticamente
SHA-256 del file Il file corrisponde al digest di riferimento La fonte di riferimento è onesta o il codice è perfetto
Firma APK La firma è valida per il pacchetto ed è associata alla chiave di firma La chiave appartiene all’editore desiderato, salvo verifica separata
Vettori di test I casi coperti producono l’output atteso Sono coperti tutti gli stati e gli errori del prodotto
Build riproducibile Sorgente e ambiente specificati producono un output identico Il codice sorgente è privo di vulnerabilità
Audit Sono stati esaminati un ambito e una versione specifici Sono state approvate anche modifiche successive e componenti fuori ambito

La definizione di build riproducibile si basa su input e ambiente specificati. Lo strumento ufficiale Android apksigner verifica le firme APK: non è la stessa cosa che calcolare un hash.

Qual è l’ambito attuale del Proof Lab di Livara?

La pagina Proof Lab presenta uno strumento locale per l’hash degli APK e dimostrazioni delle operazioni P-256, HKDF e AES-GCM, inclusa l’alterazione di un bit per osservare il fallimento della verifica di autenticità. La pagina dichiara esplicitamente che la combinazione completa LVR1/LGS1 è fuori dall’ambito di questo banco di prova.

Scrivete quindi la conclusione corretta così: «Questo file corrispondeva al digest di riferimento» oppure «Questa dimostrazione crittografica ha respinto l’alterazione testata». Non scrivete «L’intero protocollo ibrido e tutta la versione installata sono stati sottoposti ad audit indipendente». Questo articolo non riporta un nuovo test pratico di quello strumento.

Come preparare un test offline ripetibile?

  1. Definite l’obiettivo. Volete verificare l’identità di un file o il comportamento di un’operazione crittografica?
  2. Registrate versione e fonte. Nome dell’APK, numero di versione, indirizzo di download e digest della stessa release devono corrispondere.
  3. Preparate strumento e input da una fonte attendibile. Disconnettersi non rende affidabile un codice malevolo fin dall’origine.
  4. Usate dati di test non sensibili. Una dimostrazione crittografica non richiede messaggi privati né segreti reali.
  5. Disconnettetevi e ripetete il test. Questo passaggio misura la dipendenza da una risposta in tempo reale, non l’affidabilità del codice scaricato in precedenza.
  6. Registrate risultati ed errori. Non sostituite differenze di versione, errori di caricamento o output non corrispondenti con «superato».

Se l’hash è diverso, interrompete l’installazione e controllate prima versione, file e fonte di riferimento. La differenza può derivare dalla scelta di un’altra release: senza verificarla, non consideratela certamente malware né certamente innocua.

In che cosa differiscono vettori di test e certificazione ufficiale?

Un vettore di test specifica l’input e l’output atteso di un comportamento. Raccolte come Wycheproof aiutano a testare le librerie con casi legati ad attacchi noti. Superarli non dimostra la copertura di casi sconosciuti.

Il NIST CAVP prevede un processo di validazione degli algoritmi. Eseguire alcuni vettori pubblici nel browser non equivale a ottenere un certificato di validazione; neppure l’uso di un algoritmo standard certifica automaticamente un prodotto.

Che cosa chiedere per confrontare i messenger?

Per Livara, Signal, WhatsApp, Session o Element, ponete le stesse domande: qual è la versione esatta? Quale file è ufficiale? Come viene verificata la chiave di firma o il digest di riferimento? Quali test si possono eseguire? Quali parti di codice e componenti erano inclusi nel rapporto di audit?

Questo articolo non è una classifica di questi prodotti basata su test. L’assenza di uno strumento in una sola pagina non dimostra l’assenza di prove di sicurezza; la sua presenza non dimostra neppure la superiorità dell’intero prodotto. Confrontate la documentazione ufficiale di quella versione e un rapporto ripetibile.

Una scheda dei risultati utile

In un breve rapporto annotate obiettivo, versione, fonte del file, hash, strumento e relativa versione, stato della rete, input non sensibile, output atteso, output osservato e limiti. Se un altro test non è stato eseguito, indicatelo come «non testato».

Anche la verifica della chiave di un contatto è un controllo separato. Uno strumento locale può mostrare un’operazione, ma non verifica al vostro posto l’identità dell’interlocutore o lo stato del suo telefono. Leggete i limiti di sicurezza di Livara insieme ai risultati, senza considerare un punteggio perfetto nello strumento una garanzia per tutti quei limiti.

Esegui un test in Proof Lab
CONTINUE THE THREADAndroid & device security ↗Calls, sync & reliability ↗
YOU’VE REACHED THE ENDBack to the reading room ↗