Merge pull request #5 from Untori/api_ag
All checks were successful
continuous-integration/drone/push Build is passing

Add Apple Google api
This commit is contained in:
Raffaele Mignone 2020-07-14 10:56:58 +02:00 committed by GitHub
commit 341d465642
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 1 deletions

20
bib.bib
View File

@ -33,6 +33,16 @@
langid = {english}
}
@online{AppleGooglePartner,
title = {Apple and {{Google}} Partner on {{COVID}}-19 Contact Tracing Technology},
journaltitle = {Apple Newsroom},
url = {https://www.apple.com/newsroom/2020/04/apple-and-google-partner-on-covid-19-contact-tracing-technology/},
urldate = {2020-07-12},
abstract = {Apple and Google announce a joint effort to help governments and health agencies reduce the spread of the virus, with user privacy central to the design.},
file = {/home/norangebit/Zotero/storage/V2SPLUEJ/apple-and-google-partner-on-covid-19-contact-tracing-technology.html},
langid = {american}
}
@online{BroadcastsOverview,
title = {Broadcasts Overview},
journaltitle = {Android Developers},
@ -60,6 +70,16 @@
file = {/home/norangebit/Zotero/storage/4SV9VW2H/installation.html}
}
@online{NotificheDiEsposizione,
title = {Notifiche di esposizione: un aiuto alla lotta al COVID-19 - Google},
shorttitle = {Notifiche di esposizione},
url = {https://www.google.com/intl/en_us/covid19/exposurenotifications/},
urldate = {2020-07-12},
abstract = {Scopri come le Notifiche di esposizione, progettate da Google e Apple, consentono alle app di inviarti una notifica in caso di una tua probabile esposizione al COVID-19.},
file = {/home/norangebit/Zotero/storage/BXRM92VF/exposurenotifications.html},
langid = {italian}
}
@online{RoomPersistenceLibrary,
title = {Room {{Persistence Library}}},
journaltitle = {Android Developers},

View File

@ -34,7 +34,7 @@ tck_i ← H_tck(rvk || tck_{i-1})
dove `||` indica una concatenazione.
### Numeri temporanei di contatto
### Numeri temporanei di contatto {#sec:tcn}
Per ogni tck viene generato un numero di contatto temporaneo come mostrato di seguito:
@ -178,6 +178,22 @@ Mentre il matching locale permette di condividere il minor numero di informazion
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.
## API covid di Apple e Google
La prima scelta progettuale che abbiamo dovuto affrontare ha riguardato l'utilizzo o meno dell'API messa a disposizione da Apple [@AppleGooglePartner] e Google [@NotificheDiEsposizione].
Infatti i due giganti californiani hanno sviluppato in modo congiunto un protocollo che permettesse di tracciare i contatti degli utenti dei due sistemi operativi mobili più diffusi.
Questo protocollo ricorda per molte caratteristiche il protocollo TCN illustrato precedentemente.
Entrambi i protocolli ricavano gli identificativi (*rolling proximity identifier* nel protocollo di Apple e Google) in modo deterministico a partire da delle chiavi (*temporary exposure keys*).
I due protocolli differiscono nel numero di identificativi ricavati da ciascuna chiave; come visto nella @sec:tcn il protocollo TCN ricava un unico tcn per chiave, mentre l'altro protocollo permette di ricavare un numero imprecisato di identificativi.
Un'ulteriore differenza risiede nella derivazioni delle chiavi, che nel protocollo TCN è deterministica, mentre in quello di Apple e Google non è specificato.
Oltre al protocollo, le due società, hanno fornito agli sviluppatori un API che permettesse alle applicazioni di di utilizzare il protocollo descritto nel paragrafo precedente.
Sfortunatamente l'API non ci avrebbe permesso di implementare tutte e tre le modalità di funzionamento, ma solo l'ultima che si basa su un matching locale.
Questa caratteristica, unita alle regole stringenti di utilizzo imposte della libreria[^regole-api-apple-google] ci ha condotto alla scelta di implementare le varie funzionalità in maniera indipendente.
[^regole-api-apple-google]: Le due società californiane consentono lo sviluppo di applicazioni che fanno uso della loro API solo ad enti governativi e impongo un numero massimo di applicazioni per nazione pari ad uno.
Dalla documentazione ufficiale non è ben chiaro se questi vincoli riguardino solo la pubblicazione sugli store o anche lo sviluppo.
## Bluetooth
L'interazione tra l'hardware bluetooth del dispositivo e l'applicazione è stata gestita attraverso l'impiego della libreria *Android Beacon Library* [@AndroidBeaconLibrary] che permette di gestire più facilmente le operazioni con beacon bluetooth.