The indoor localization Blog

L’impiego del solo segnale bluetooth rilevato attraverso una applicazione per smartphone è davvero utilizzabile come strumento valido di contenimento dell’emergenza Covid19?

No comments

Aggiornamento del 27 Maggio 2020: la app opensource di cui si discute in questo articolo è finalmente stata pubblicata sullo store di google. Questo ne rende più semplice l’utilizzo anche per i non addetti ai lavori. Il nome della app è BleTestContact e la rovate a questo link dello store.

Nelle ultime settimane si continua a parlare della possibilità di utilizzare mezzi tecnologici a supporto del contenimento della diffusione del virus COVID-19 che sta letteralmente mettendo in ginocchio il Mondo.

Essendo noi di GiPStech attivi da anni sulle problematiche legate alla localizzazione ed al tracciamento sentiamo la necessità di evidenziare alcuni aspetti che ci lasciano perplessi e che descriviamo di seguito. Speriamo di trovare a breve delle risposte da parte degli Enti preposti che hanno già effettuato delle scelte precise le quali, seppur da un lato ci rassicurano lasciando presupporre un errore di percezione da parte nostra, dall’altro non ci sembrano abbiano fornito chiarimenti sui punti che andiamo a proporre di seguito.

Si è scelto di rilevare il “contatto” tra più utenti utilizzando solamente il segnale bluetooth. A nostro parere questa imposizione sull’utilizzo di un singolo segnale, a discapito della scelta dell’impiego di tecniche di fusione dati multi-sensore, rischia di compromettere profondamente l’affidabilità con la quale la app può rilevare (o meno) i contatti tra persone diverse. Di conseguenza i dati raccolti potrebbero essere di affetti da un gran numero di falsi positivi o falsi negativi con ripercussioni sulla validità degli avvisi che devono essere notificati al successivo rilevamento di un contagio: in un primo caso questi avvisi sarebbero inviati ad utenti non a rischio (rilevati erroneamente) e, in un secondo caso, non riuscire ad essere inviati ad utenti realmente a rischio in quanto questi ultimi potrebbero non essere stati rilevati del tutto dalla app.

Come premesso, il modo che consente di rendere disponibile nel più breve tempo possibile uno strumento, a larga diffusione, che consenta di fornire un qualche tipo di aiuto nel contenimento dell’emergenza è certamente quello legato al rilascio di una “App” la quale può essere installata sullo smartphone che ognuno di noi ha già in tasca. Se però l’app risulta il mezzo più economico e veloce da realizzare, probabilmente non si può dire altrettanto per quanto riguarda l’efficacia ottenibile attraverso l’impiego delle tecnologie comunemente fruibili attraverso uno smartphone commerciale che, tra l’altro, sono state ridotte, per vari motivi, alla possibilità di utilizzare il solo segnale Bluetooth.

Ci è capitato di leggere, da diverse fonti sia Nazionali che Estere, dei grandi problemi di privacy che un approccio basato sul “contact tracing” può provocare. Tuttavia, almeno per quella che è la nostra conoscenza alla data di scrittura di questo testo, non abbiamo trovato nessuna fonte che trattasse due dei potenziali problemi che stanno alla base della realizzabilità e della efficacia dell’app suddetta:

  1. Il problema legato alla possibilità di stimare una distanza a partire dalle misure della potenza del segnale bluetooth emesso da due o più smaprthones
  2. Il problema legato alla possibilità di mantenere la app attiva in background, facendola su tutti i tipi e modelli di telefono in circolazione, in modo da poter garantire “pari” diritto di accesso a chiunque abbia uno smartphone.

Con riferimento ai suddetti punti proviamo a spiegare meglio il problema in modo che qualcuno possa chiarire, a noi ed a tutti, questi interrogativi.

1. Stima di distanza a partire dalla sola misura della potenza di un segnale radiofrequenza

Tutti gli smartphone sono dotati di una radio bluetooth più tradizionalmente utilizzata per scopi ben diversi da quelli a cui si sta pensando ora: il bluetooth serviva per collegare l’auricolare, per trasferire qualche (piccolo) file, per connettere il vivavoce dell’auto. Oggi invece proviamo ad utilizzare il segnale bluetooth, o meglio la misura della sua intensità, per calcolare a che distanza reciproca si trovano due o più smartphones.

Il principio è molto semplice: per analogia immaginate di avere due lampadine. Ogni lampadina emette luce ed è a sua volta “illuminata” dalla luce emessa dall’altra lampadina. E’ facile immaginare che l’intensità luminosa che ogni lampadina riceve dall’altra è, evidentemente, tanto minore (o tanto maggiore) quanto rispettivamente le lampadine sono più lontane o più vicine tra loro. Con il bluetooth avviene la stessa cosa: ogni telefono è in grado di emettere un segnale e di ricevere i segnali che sono emessi dagli altri smartphones che si trovano nelle immediate vicinanze: se un segnale è ricevuto con intensità “elevata” allora lo smartphone si trova “vicino” (o meglio: probabilmente si trova vicino) allo smartphone ricevente e viceversa.

Senza voler entrare nel merito di una trattazione rigorosa e semplificando al massimo la descrizione del problema, grazie alle leggi che regolano l’elettromagnetismo, esiste una relazione che permette di convertire la misura dell’intensità di un segnale radio in una distanza:

Dove R0 è il valore di potenza del segnale misurata quanto ci si trova esattamente ad 1 metro di distanza (parametro costante di solito noto o misurato a priori), RSSI è la misura del segnale ricevuto ed N è un coefficiente relativo all’ambiente di solito variabile tra 2 e 4.

Di conseguenza sembrerebbe semplice poter calcolare, anche con precisioni elevate, la distanza tra due smartphones partendo dalla semplice misura dell’RSSI del segnale che uno smartphone riceve dall’altro. Tuttavia purtroppo non è così. Come peraltro evidenziato anche dallo stesso consorzio che standardizza il bluetooth numerosi fattori impediscono di effettuare una stima di distanza precisa ed in tempo reale utilizzando solamente l’RSSI del segnale, tra l’altro unico valore misurabile su smartphone Android e iOS.

In parole povere, ciò significa che almeno due smartphone di marca e modello diversi, posizionati ad una distanza predefinita che rimane costante durante la misurazione, sia essa per esempio 2 metri, NON ricevono reciprocamente un segnale con lo stesso valore di RSSI (Received Signal Strength Indication). Ovvero l’RSSI misurato dai due telefoni sarà diverso e di conseguenza ogni telefono potrà stimare una distanza che sarà diversa l’una dall’altra nonostante i telefoni restino fermi tra loro.

E, considerato questo particolare tipo di legame esponenziale che lega l’RSSI e la distanza, allora piccole variazioni della misura dell’RSSI possono provocare errori rilevanti nella stima della distanza.

Facciamo un esempio:

  • disponiamo due smartphone ad una distanza di 2 metri. A questa distanza, in accordo con la formula ed utilizzando coefficienti di uso comune quali per esempio R0=-65dBm e N=2, il livello teorico di segnale che ogni smartphone dovrebbe ricevere a 2 metri di distanza è pari a -71,05 dBm.
  • Utilizzando per esempio la app di cui discutiamo più avanti, proviamo a rilevare, da entrambi i telefoni che per comodità chiamiamo A e B, il valore misurato di intensità di segnale.

E’ facile verificare che le misure del telefono A e/o del telefono B possono differire, senza voler esagerare, anche di 6dBm che ad una distanza di 2 metri significa quasi 1 metro di errore (se misuriamo 6dBm in meno) e 2 metri di errore (se misuriamo 6dBm in più). Di conseguenza la distanza reale di 2 metri potrebbe essere erroneamente stimata essere pari ad 1 metro oppure, peggio, a 4 metri: il doppio della distanza reale. A questo si aggiunge che, se i modelli di telefono sono diversi, anche la stima sarà diversa per il telefono A e per il telefono B e senza voler considerare che l’esempio descritto è un caso esemplificativo degli scenari reali nei quali gli smaprthone si troveranno in condizioni ben diverse e lontate da quella che li immagina essere collocati su un tavolo a distanza fissata e senza oggetti nel mezzo che ostacolano la propagazione del segnale radio.

Infatti, se “complichiamo” leggermente lo scenario riportando la simulazione ad un caso reale allora essenzialmente quasi mai i due telefoni staranno fermi tra loro. E, ancora peggio, non saranno quasi mai “a vista” ovvero più comunemente saranno posti in tasca, nella borsa etc. Ora cosa succede se nell’esperimento di prima delle lampadine posizioniamo una delle due lampadine dietro una tenda nera? Anche se le due lampadine fossero ad una distanza di 10 cm nessuna delle due potrebbe “vedere” la luce dell’altra. La stessa cosa avviene con il bluetooth: la radiazione elettromagnetica è sostanzialmente quasi completamente assorbita da eventuali ostacoli, particolarmente dallo stesso corpo umano essendo quest’ultimo molto denso di acqua.

[…] il bluetooth che deve “stimare con sufficiente precisione” (circa 1 metro) “la vicinanza” tra le persone per rendere efficace l’avvertimento […]

Il Sole24Ore, 17 Aprile 2020 versione online: https://www.ilsole24ore.com/art/scelta-nuova-app-tracciamento-contagi-si-chiama-immuni-AD1icnK

Come si fa quindi a garantire la “ormai famosa” stima di distanza con precisione di circa 1 metro che in accordo con quanto riportato da vari quotidiani (es. Il Sole24Ore, Il Messaggero, Agenda Digitale ed altri)  fa parte dei “requisiti da rispettare” imposti dalla UE? Quando saranno chiarite le modalità ed i mezzi tecnici utilizzati per soddisfare detto requisito da parte della “app” scelta per contrastare la diffusione del virus?

Un modo semplice per fare delle prove in autonomia

Per dare a tutte le persone che hanno uno smartphone Android la possibilità di comprendere meglio nella realtà cosa è possibile ottenere attraverso la misura dell’RSSI del bluetooth da parte di due telefoni, abbiamo realizzato una app di prova che è rilasciata in open source su github e che chiunque può visionare e scaricare.. La stessa app può anche essere direttamente installata attraverso l’utilizzo dell’APK scaricabile sempre da questo link di github. Come visibile dal codice sorgente la app non memorizza e/o invia nessun dato su internet ma si limita soltanto ad emettere e ricevere segnali Bluetooth. La richiesta del permesso di Android di accedere al dato di posizione è necessaria per poter gestire correttamente il Bluetooth del telefono.

Per semplificare l’installazione anche a persone “meno addette ai lavori”, la app che è resa disponibile su github sarà a breve presente anche sullo store Android: il processo di pubblicazione è stato avviato e bisogna attendere i tempi tecnici di Google. Non appena la  app sarà disponibile pubblicheremo qui il link.

Suggeriamo di installare la app su due o più telefoni e di eseguire qualche prova in autonomia. Una volta che l’app è lanciata essa mostra sulla schermata principale una lista di “identificativi” relativi ai segnali che è possibile ricevere dai telefoni vicini e che stanno eseguendo la medesima app. Per ogni identificativo è mostrato sia il valore di RSSI che la relativa distanza calcolata con la formula indicata in precedenza.

Cosa succede se posizionate i due telefoni a qualche metro di distanza e leggete i valori di distanza su ognuno di essi? E se li fate semplicemente “ruotare” su un tavolo? E se vi mettete seduti di spalle, l’uno poggiato all’altro, tenendo lo smaprthone in mano, che distanza viene misurata?

2. Mantenere la “app” sempre attiva sul telefono

Altro problema che, seppur non ancora adeguatamente evidenziato è a nostro modo di vedere sostanziale, è rappresentato dalla ben nota “non aderenza” dei diversi produttori di telefoni alle specifiche originali imposte per esempio da Google per quanto riguarda  Android.

E’ immediato infatti rendersi conto che affinché ci sia lo scambio di segnali bluetooth descritto nella sezione precedente allora ci deve essere una app sempre in esecuzione sul telefono che si occupi di svolgere il compito di rilevare il “contatto” con un’altra persona che, per definizione, può accadere in qualsiasi momento.

Anche in questo caso è ben noto, principalmente agli addetti ai lavori, che è sostanzialmente impossibile che una applicazione mobile venga mantenuta sempre attiva sul telefono senza che questa, per motivi principalmente legati al consumo della batteria, sia terminata dal sistema operativo. In parole povere, sulla maggior parte dei telefoni non si può garantire che la app resti attiva per poter svolgere il compito per il quale la app stessa deve essere progettata: rilevare il contatto tra persone diverse. Senza pretese di completezza di trattazione per esempio è possibile avere maggiori evidenze di quanto affermato presso il seguente sito che rappresenta uno dei progetti opensource più completi sull’argomento: il suo nome è in quale modo auto-esplicativo, si tratta di “Dont Kill My App“.

In definitiva, alla luce di quanto evidenziato, come sarà possibile risolvere questo problema e garantire parità di accesso e medesimo livello di servizio e di tutela per tutti gli utenti considerato, tra l’altro, che la app scelta a livello nazionale potrebbe, forse, diventare “obbligatoria”?

Cosa succede se chi, scaricando l’app credendo di essere in qualche modo tutelato, si dovesse ritrovare a scoprire il contrario al momento del bisogno semplicemente perché la app ha funzionato a singhiozzo o non ha funzionato del tutto?

admin1L’impiego del solo segnale bluetooth rilevato attraverso una applicazione per smartphone è davvero utilizzabile come strumento valido di contenimento dell’emergenza Covid19?