From 7d2720c952a1c6572e5c838875c441f68d6a342c Mon Sep 17 00:00:00 2001 From: norangebit Date: Fri, 10 Jul 2020 12:26:40 +0200 Subject: [PATCH] Add bibliography --- bib.bib | 63 ++++++++ documentazione.md | 12 +- header.yaml | 2 + ieee.csl | 400 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 472 insertions(+), 5 deletions(-) create mode 100644 bib.bib create mode 100644 ieee.csl diff --git a/bib.bib b/bib.bib new file mode 100644 index 0000000..5ff3766 --- /dev/null +++ b/bib.bib @@ -0,0 +1,63 @@ + +@online{AdvertiseSettings, + title = {{{AdvertiseSettings}}}, + journaltitle = {Android Developers}, + url = {https://developer.android.com/reference/android/bluetooth/le/AdvertiseSettings?hl=it}, + urldate = {2020-07-08}, + file = {/home/norangebit/Zotero/storage/QA2E8KJT/AdvertiseSettings.html}, + langid = {english} +} + +@online{AdvicePublicCOVID19, + title = {Advice for the Public on {{COVID}}-19 \textendash{} {{World Health Organization}}}, + url = {https://www.who.int/emergencies/diseases/novel-coronavirus-2019/advice-for-public}, + urldate = {2020-07-08}, + abstract = {Simple precautions to reduce your chances of being infected or spreading COVID-19.}, + file = {/home/norangebit/Zotero/storage/ZY3MFYWP/advice-for-public.html}, + langid = {english} +} + +@online{AndroidBeaconLibrary, + title = {Android {{Beacon Library}}}, + url = {https://altbeacon.github.io/android-beacon-library/}, + urldate = {2020-07-08}, + file = {/home/norangebit/Zotero/storage/RDCN2EQA/android-beacon-library.html} +} + +@online{BroadcastsOverview, + title = {Broadcasts Overview}, + journaltitle = {Android Developers}, + url = {https://developer.android.com/guide/components/broadcasts}, + urldate = {2020-07-09}, + file = {/home/norangebit/Zotero/storage/PVLZYLKD/broadcasts.html}, + langid = {english} +} + +@software{CryptographycafeEd25519elisabeth2020, + title = {Cryptography-Cafe/Ed25519-Elisabeth}, + date = {2020-06-30T09:56:21Z}, + origdate = {2019-03-17T03:50:16Z}, + url = {https://github.com/cryptography-cafe/ed25519-elisabeth}, + urldate = {2020-07-09}, + abstract = {Pure Java implementation of Ed25519. Contribute to cryptography-cafe/ed25519-elisabeth development by creating an account on GitHub.}, + keywords = {cryptography,ed25519,java,signature-scheme}, + organization = {{cryptography-cafe}} +} + +@online{InstallationBetterBibTeX, + title = {Installation :: {{Better BibTeX}} for {{Zotero}}}, + url = {https://retorque.re/zotero-better-bibtex/installation/}, + urldate = {2020-07-07}, + file = {/home/norangebit/Zotero/storage/4SV9VW2H/installation.html} +} + +@online{ServicesOverview, + title = {Services Overview}, + journaltitle = {Android Developers}, + url = {https://developer.android.com/guide/components/services}, + urldate = {2020-07-08}, + file = {/home/norangebit/Zotero/storage/E42F6BVA/services.html}, + langid = {english} +} + + diff --git a/documentazione.md b/documentazione.md index d18a4b4..dfdb16d 100644 --- a/documentazione.md +++ b/documentazione.md @@ -24,7 +24,7 @@ ## Implementazione del protocollo per la JMV Al fine di utilizzare il protocollo precedentemente descritto all'interno dell'applicazione Android, ne è stato sviluppato un'implementazione per la *Java Virtual Machine*. -La gestione della coppia di chiavi derivate dalla curva ellittica *Ed25519* è stata affidata alla libreria ***ed25519-elisabeth*** @CryptographycafeEd25519elisabeth2020. +La gestione della coppia di chiavi derivate dalla curva ellittica *Ed25519* è stata affidata alla libreria ***ed25519-elisabeth*** [@CryptographycafeEd25519elisabeth2020]. Le chiavi private e pubbliche prodotte sono state *wrappate* rispettivamente nelle classi `ReportAuthorizationKey` e `ReportVerificationKey`. Questa scelta non solo ha permesso di utilizzare nomi dal maggiore significato rispetto al dominio applicativo, ma anche di nascondere l'implementazione della curva *Ed25519* in modo da disaccoppiare l'interfaccia della libreria crittografica da quella utilizzata per il protocollo TCN. @@ -142,8 +142,8 @@ Inoltre a differenza delle prime due modalità è previsto l'upload unicamente d ## 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. -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, che consente di mantenere in *primo piano* le operazioni di trasmissione e scansione anche quando l'applicazione non lo è. +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. +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], che consente di mantenere 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. @@ -177,7 +177,7 @@ private fun rotateTCN() { } ``` -La scelta della frequenza di *advertising* è stata dettata dai vincoli tracciati dall'API di Android @AdvertiseSettings. +La scelta della frequenza di *advertising* è stata dettata dai vincoli tracciati dall'API di Android [@AdvertiseSettings]. Infatti la libreria permette di trasmettere un beacon con una frequenza di 1 *Hz*, 3 *Hz* o 10 *Hz*. Fortunatamente questi vincoli non si sono rilevati troppo limitanti infatti la frequenza di un Hertz, quindi un beacon trasmetto ogni secondo, permette di avere una buona trasmissione e di risparmiare batteria. Inoltre in fase di scanning evita che siano registrate più interazioni nello stesso ciclo. @@ -194,7 +194,7 @@ Com'è possibile dedurre anche dai nomi dei vari livelli, l'API non fornisce nes L'individuazione del livello più adatto è stata svolta per via sperimentale utilizzando cinque dispositivi differenti. I due livelli più alti sono stati immediatamente scartati in quanto permettevano di rilevare i beacon a distanze elevate cosa che avrebbe minato la bontà dell'applicazione. Con il livello ULTRA_LOW si è notato che venivano rilevate unicamente le interazioni inferiori al metro in contesti *free space*. -Poiché l'organizzazione mondiale della sanità raccomanda una distanza di almeno un metro @AdvicePublicCOVID19 questo livello di trasmissione non consente di rilevare contatti potenzialmente a rischio. +Poiché l'organizzazione mondiale della sanità raccomanda una distanza di almeno un metro [@AdvicePublicCOVID19] questo livello di trasmissione non consente di rilevare contatti potenzialmente a rischio. Per questo motivo si è scelto di utilizzare il livello LOW che permette di rilevare contatti fino a circa due metri. [^dispositivi-non-omogenei]: D'altronde, data la natura non omogenea dei vari dispositivi Android, una stima quantitativa sarebbe stata impossibile da ottenere. @@ -217,3 +217,5 @@ Per questo motivo si è scelto di utilizzare il livello LOW che permette di rile ## Rete + +# Riferimenti diff --git a/header.yaml b/header.yaml index fdd0926..1a7870d 100644 --- a/header.yaml +++ b/header.yaml @@ -7,5 +7,7 @@ author: - Noemi Mincolelli numbersections: true toc: true +bibliography: bib.bib +csl: ieee.csl --- diff --git a/ieee.csl b/ieee.csl new file mode 100644 index 0000000..2089efb --- /dev/null +++ b/ieee.csl @@ -0,0 +1,400 @@ + +