From fe3f3a31c6b13cc0cfc4f10827d956457192f761 Mon Sep 17 00:00:00 2001 From: norangebit Date: Wed, 8 Jul 2020 19:16:24 +0200 Subject: [PATCH] Add app and bluetooth intro --- documentazione.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/documentazione.md b/documentazione.md index 0d3f74c..addb237 100644 --- a/documentazione.md +++ b/documentazione.md @@ -1,4 +1,4 @@ -# Protocollo TCN +# Protocollo TCN {#sec:tcn-protocol} @@ -27,16 +27,43 @@ # Applicazione +L'applicazione permette di tracciare i contatti degli utenti attraverso l'impiego del Bluetooth Low Energy (BLE). +In particolare lo smartphone di ogni utente si comporta sia da trasmittente di beacon bluetooth che da ricevente. +In questo modo quando due utenti entrano nel raggio di azione del bluetooth il contatto verrà memorizzato sui rispettivi dispositivi. +L'applicazione prevede differenti modalità di funzionamento, ognuna delle quali garantisce un differente livello di privacy. +Nella modalità di funzionamento ***A*** ogni qual volta si verifica un contatto l'applicazione si occupa di notificare immediatamente l'evento al server in modo tale che esso possa essere aggiunto al database. +Questa modalità è quella meno *privacy friendly* in quanto la comunicazione avviene in *real-time* e all'interno del messaggio scambiato viene riportato sia l'UUID del utente sia quello della persona incontrata. + +La modalità ***B*** prevede lo scambio delle stesse informazioni previste per la modalità precedente, ma solo se richiesto dalle autorità sanitarie. +In questo modo non solo si evita che i dati siano catturati dal server in *real-time*, ma si espongono le informazioni dell'utente solo quando queste sono strettamente necessarie. +Sia in questa modalità, che nella precedente si è scelto di non ruotare gli UUID identificativi degli utenti in modo da facilitare la generazione del grafo sul server. +Questa soluzione può mettere a repentaglio la privacy degli utenti e essere sfruttata da *avversari* per ottenere informazioni sulle abitudini degli utilizzatori[^catena-negozi]. + +[^catena-negozi]: Per esempio una catena di negozi attraverso l'impiego di uno scanner bluetooth potrebbe ricostruire la *fedeltà* degli utenti, conoscere i settori del negozio preferiti ecc. + +L'ultima modalità, la ***C***, è quella che tutela maggiormente la privacy degli utilizzatori attraverso due accorgimenti: + +- Rotazione degli UUID +- Matching locale + +La generazione degli UUID avviene attraverso una derivazione deterministica come visto nella @sec:tcn-protocol, in modo tale da avere lo stesso livello di privacy di una soluzione randomica, ma migliore scalabilità. +Mentre il matching locale permette di condividere il minor numero di informazioni possibili e solo quando strettamente necessario. +Infatti in questa modalità l'applicazione carica le informazioni sul server solo in seguito alla richiesta delle autorità sanitarie. +Inoltre a differenza delle prime due modalità è previsto l'upload unicamente degli UUID che il dispositivo ha assunto nel tempo, in questo modo il server non è in grado di conoscere o ricavare i contatti avuti dall'utente. ## Bluetooth +L'interazione tra l'hardware bluetooth del dispositivo è l'applicazione è stata gestita attraverso l'impiego della libreria *Android Beacon Library* @AndroidBeaconLibrary che permette di gestire più facilmente le operazioni con beacon bluetooth. +Inoltre per rendere l'applicazione più funzionale, e quindi garantirne il funzionamento anche in background o a schermo spento è stato utilizzato un *foreground service* @ServicesOverview per tenere in *primo piano* le operazioni di trasmissione e scansione anche quando l'applicazione non lo è. +Data la natura variegata di Android, le diverse implementazioni del sistema operativo adoperate dai vari produttori non si comportano sempre nello stesso modo, motivo per il quale alcuni dispositivi tenderanno a terminare, o mettere in pausa ugualmente l'applicazione[^dont-kill-my-app]. +Potendo opera unicamente nello spazio utente non è stato possibile superare questi limiti. +[^dont-kill-my-app]: Molti produttori Android per aumentare la vita della batteria dei propri dispositivi tendono a stoppare e ridurre le funzionalità delle applicazioni. Maggiori dettagli possono essere trovati al seguente link \url{https://dontkillmyapp.com}. ### Trasmissione - ### Scansione