App

Immuni è l'app per il contact tracing in Italia: ecco cosa sappiamo (Aggiornato: codice sorgente)

Giuseppe Tripodi
Giuseppe Tripodi Tech Master
Immuni è l'app per il contact tracing in Italia: ecco cosa sappiamo (Aggiornato: codice sorgente)

Nella giornata di ieri, 16 aprile, il commissario straordinario per l'emergenza sanitaria, Domenico Arcuri, ha firmato l'ordinanza (riportata da Repubblica) da cui apprendiamo la scelta del governo in merito alla tanto discussa app di contact tracing: per il nostro paese, la scelta è ricaduta sull'app chiamata Immuni, sviluppata da Bending Spoons.

Partiamo con qualche notizia in merito alla società che si occuperà, a titolo gratuito, di realizzare il software e mantenerlo aggiornato nei prossimi mesi: Bending Spoons è un'azienda con sede a Milano specializzata nello sviluppo di app mobile (principalmente iOS, ma anche Android). Negli anni ha sviluppato diverse app di successo: in particolare, lo scorso anno si era fatta conoscere in tutta Italia per il successo di Live Quiz.

L'idea  su cui si baserà Immuni è la stessa del framework proposto da Apple e Google la scorsa settimana: ogni smartphone genera un ID temporaneo, che viene trasmesso in broadcast via Bluetooth Low Energy e registrato da tutti gli smartphone vicini.

Questo ID viene rinnovato periodicamente (ogni quarto d'ora circa) e si basa su un sistema di chiavi che identificano lo smartphone: quando qualcuno risulta infetto, i suoi codici identificativi vengono caricati su un server e le persone che gli sono state vicine (e hanno salvato i relativi ID) vengono avvisati con una notifica.

Dal punto di vista della privacy, si tratta di una delle migliori infrastrutture possibili, perché non registra la localizzazione geografica, non usa GPS ma solo Bluetooth e, verosimilmente, esegue la maggior parte delle operazioni in locale, senza caricare alcun dato sui server: le uniche operazioni per cui lo smartphone comunica con il cloud sono per caricare e scaricare le chiavi delle persone infette.

L'app Immuni servirà per il contact tracing, ma avrà anche un'altra funzione importante: una sorta di diario clinico, in cui registrare tutte le informazioni relative alla salute dell'utente, come sesso, età, malattie pregresse, farmaci assunti e così via.

L'idea è appunto quella di un diario, ossia di un registro da aggiornare quotidianamente.

L'app Immuni sarà disponibile per Android e iOS e verrà distribuita tramite i rispettivi store di applicazioni, Play Store e App Store.

A scanso di equivoci, l'installazione del software sarà su base volontaria. Tuttavia, secondo quanto ampiamente anticipato dagli studi effettuati su altri paesi, affinché il sistema di contact tracing risulti efficace, è necessario che l'app venga installata da almeno il 60% dei cittadini italiani.

Ci sono ancora diversi dubbi che riguardano l'app Immuni: ad esempio, quando sarà disponibile, implementerà il framework di Apple e Google per il contact tracing (vedi video qui sotto)? Chi gestirà i server su cui verranno caricati i dati degli infetti: sarà la stessa Bending Spoons o le istituzioni? Il codice sorgente sarà liberamente consultabile? Purtroppo non abbiamo ancora risposte in merito, ma seguiremo da vicino gli sviluppi del software.

Aggiornamento 21/04/2020

Negli ultimi giorni si è parlato molto dell'app Immuni, anche in seguito ad informazioni erronee riportate da alcuni giornali nazionali che suggerivano possibili vincoli alla libertà di movimento per chi non avesse installato l'applicazione.

Dopo molto chiacchiericcio, il Governo ha fornito una serie di importanti delucidazioni, comunicate tramite un post sul portale del Ministero per l'Innovazione tecnologica e la digitalizzazione.

La nota del Ministero evidenzia una serie di aspetti cruciali per il sistema di contact tracing che verrà adottato per l'Italia, che sarà conforme alle linee guida dalla Commissione Europea (Mobile applications to support contact tracing in the EU’s fight against COVID-19).

In primo luogo, l'utilizzo o meno dell'applicazione sarà su base assolutamente volontaria e, contrariamente a quanto ipotizzato nei giorni scorsi, non ci sarà alcuna limitazione di movimento per chi deciderà di non usarla. Lo aveva già annunciato poche ore fa il Presidente del Consiglio Giuseppe Conte, ma adesso possiamo anche leggerlo nero su bianco sul post in questione.

L’applicazione non dovrà accedere alla rubrica dei contatti del proprio telefono, non chiederà nemmeno il numero e non manderà SMS per notificare chi è a rischio.

Inoltre sarà necessaria l’integrazione delle indicazioni e dei protocolli sanitari stabiliti dal Ministero della Salute e dalle autorità sanitarie. L’applicazione si baserà sull’installazione volontaria da parte degli utenti e il suo funzionamento potrà cessare non appena terminerà la fase di emergenza, con cancellazione di tutti i dati generati durante il suo funzionamento.

Inoltre, l'applicazione utilizzerà un sistema di tracciamento basato esclusivamente su Bluetooth Low Energy e non conserverà alcun dato relativo alla geolocalizzazione: contrariamente a quanto richiesto da alcuni esponenti politici, quindi, non ci sarà alcun utilizzo del GPS.

L’applicazione non conserverà i dati relativi alla geolocalizzazione degli utenti, ma registrerà esclusivamente i contatti pseudonimizzati di prossimità rilevati mediante la tecnologia bluetooth low energy.

Un'altra buona notizia è che l'applicazione sarà open source: il codice sarà liberamente visualizzabile da tutti.

Il codice sorgente del sistema di contact tracing sarà rilasciato con licenza Open Source MPL 2.0 e quindi come software libero e aperto.

Infine, nel documento si fa esplicito riferimento al sistema di contact tracing di Apple e Google, su cui eventualmente potrebbe appoggiarsi l'intera infrastrtuttura: attualmente non è c'è alcuna certezza in merito e, a giudicare da quanto scritto, sembra ci vorranno ancora un po' di settimane prima di una decisione definitiva.

Aggiornamento 23/04/2020

Nella giornata di ieri, sono arrivate importanti conferme relative al funzionamento di Immuni: in particolare, è stato confermato che i codice che identificano i dispositivi saranno generati dai dispositivi stessi, e non da un server centrale.

Per questo, si parla di un approccio decentralizzato: lo stesso seguito da Apple e Google, descritto dal protocollo DP-3T (Decentralized Privacy-Preserving Proximity Tracing), e che viene ritenuto il più sicuro per la privacy da tutti i maggiori esperti di sicurezza informatica.

La notizia è particolarmente rilevante, poiché nei giorni scorsi c'è stata molta confusione in merito al protocollo che sarebbe stato adottato.

In origine, infatti, si era parlato molto del protocollo PEPP-PT (Pan-European Privacy-Preserving Proximity Tracing), definito dall'omonimo consorzio di cui anche Bending Spoons fa parte, e che si riteneva che potesse la base per l'app italiana di contact tracing.

In origine, questo protocollo prevedeva che la generazione delle chiavi potesse avvenire lato server (approccio centralizzato) o lato client (approccio decentralizzato, cui aderisce anche DP3T): nei giorni scorsi, tuttavia, qualsiasi riferimento all'approccio decentralizzato è stato rimosso dalle specifiche, al punto che tra gli esperti di sicurezza informatica si è creata una vera e propria spaccatura.

L'approccio centralizzato, con le chiavi identificative generate dai server, è infatti considerato meno sicuro in termini di privacy: tra i tanti, un lungo elenco di professori, avvocati, giornalisti e professionisti in generale ha firmato una lettera aperta pubblicata suil sito del Centro Nexa del Politecnico di Torino.

Fortunatamente, le richieste di maggiore privacy e trasparenza sono state accolte: Immuni si baserà sul protocollo DP-3T, anche se non è ancora stato deciso se adotterà o meno il framework di Apple e Google quando sarà disponibile.

Aggiornamento 23/04/2020

Abbiamo parlato della notizia anche nel nostro podcast, <a title="" href="https://smartworld.it/tag/smartworld-news">SmartWorld News</a>

Aggiornamento 28/04/2020

Nonostante Vittorio Colao, a capo della task force del governo, continui ad auspicare una rapida adozione dell'app di contact tracing (come riportato da Repubblica), ad oggi non ci sono nuove conferme sull'app Immuni.

Domenica 26 aprile il Presidente del Consiglio Giuseppe Conte ha annunciato che il 4 maggio inzierà la cosiddetta Fase 2; tuttavia, durante la conferenza stampa non ha fatto alcun accenno a Immuni o al sistema di contact tracing.

Sembra quindi evidente che l'applicazione non sarà disponibile a breve: una delle possibili ipotesi è che, in seguito ai dubbi sollevati da esperti del settore e la scelta di adottare un approccio decentralizzato, il team di sviluppo stia aspettando di poter verificare come funzionerà il framework sviluppato da Google ed Apple, che potrebbe essere la base su cui costruire l'app Immuni.

A tal proposito, una prima versione delle API per il contact tracing per iOS e Android verrà rilasciata oggi, 28 aprile, come riferito da Tim Cook al Commissario Europeo Thierry Breton (via La Stampa).

Aggiornamento 15/05/2020

Nella serata di ieri, 14 maggio, è stata pubblicata su GitHub la documentazione relativa all'app Immuni, che in larga parte conferma quanto sapevamo sull'app.

Come anticipato, l'applicazione utilizzerà il framework sviluppato da Apple e Google e non raccoglierà alcun dato relativo alla geolocalizzazione.

Immuni si baserà esclusivamente su Bluetooth Low Energy: quando due persone si trovano vicine, i dispositivi si scambiano codici generati randomicamente, che vengono salvati esclusivamente in locale (sul dispositivo). Quando una persona scopre di essere infetta, potrà scegliere di permettere all'app di caricare sul server i propri codici identificativi: in tal caso, le persone che sono state vicine (e che di conseguenza ne conservano i codici), riceveranno una notifica che li avvisa dell'esposizione.

In particolare, per ogni esposizione, Immuni registra:

  • il codice alfanumerico generato dal dispositivo;
  • la data dell'incontro;
  • la durata dell'esposizione (con un range variabile tra 5 e 30 minuti);
  • l'attenuazione del segnale, per stimare la distanza tra i due soggetti;

L'applicazione, quindi, non registra alcun dato personale, né tanto meno la posizione geografica. Inoltre, per preservare ulteriormente la privacy, il tempo di esposizione registrato non va mai oltre la mezz'ora: per questo motivo, anche nel caso in cui foste stati a contatto con un infetto per più tempo, l'applicazione vi segnalerà un'esposizione di mezz'ora.

La scelta di limitare il range temporale serve a tutelare l'identità degli infetti: infatti, indicare il tempo preciso dell'esposizione, potrebbe permettere a chi riceve la notifica di capire chi è la persona infetta di COVID-19 con cui è stato a contatto.

È importante ribadire che tutti questi dati vengono conservati esclusivamente in locale, sullo smartphone: nessuna di queste informazioni viene caricata su un server in cloud, quindi nessuno può accedere alla lista (seppur anonimizzata) delle persone incontrate. Questo approccio, definito decentralizzato, viene ritenuto il migliore dagli esperti di privacy e sicurezza informatica.

L'unico dato personale che sarà necessario indicare è la provincia di residenza: al momento della prima configuraizone, infatti, Immuni vi chiederà di scegliere la provincia dove vivete. Questa informazione, insieme ai tamponi registrati dagli ospedali, permetterà alle autorità sanitarie di mappare la diffusione dell'epidemia sul territoria nazionale.

Quando una persona scopre di essere infetta, potrà decidere di caricare sul server i propri codici personali: per farlo, sarà necessaria l'approvazione di un operatore sanitario, che dovrà quindi certificare l'effettriva positività al virus.

Periodicamente, Immuni scaricherà dai server tutte le chiavi delle persone infette e avviserà l'utente nel caso in cui sia stato a contatto con una persona malata. Inoltre, in questo caso, il sistema calcolerà anche una stima di quato potesse essere contagiosa la persona infetta nel giorno dell'incontro.

I codici delle persone infette saranno conservate su server pubblici gestiti da Sogei, società informatica controllata dal ministero dell'Economia e delle finanze. Tutti i dati verranno eliminati quando non più necessari (dopo due settimane circa) e, in ogni caso, tutti i dati conservati su smartphone e server verranno eliminati il 31 dicembre 2020.

Infine, Bending Spoons ha previsto una serie di interessanti procedure per evitare problemi con eventuali malintenzionati: l'app trasmetterà anche del dummy traffic, ossia dei dati fasulli (che verranno ignorati dal sistema) per confondere chi proverà a intercettare i dati.

Immuni sarà compatibile con tutti gli smartphone con Android 6 e superiori e con iPhone aggiornati ad iOS 13.5. Il codice sorgente verrà presto reso disponibile su GitHub: verrà pubblicato non appena finalizzato.

Secondo quanto riferito da Wired, l'applicazione sarà disponibile a fine mese (forse il 29 maggio) e attualmente l'Italia sta trattando con gli altri paesi dell'Unione Europea per rendere interoperabili le diverse applicazioni nazionali: in questo modo, sarà più facile riaprire le frontiere, poiché se un cittadino italiano si trova (ad esempio) in Francia, Immuni potrà comunicare anche con il software francese.

Aggiornamento

Abbiamo parlato (nuovamente) della notizia nel nostro podcast giornaliero, SmartWorld News

Aggiornamento 25/05/2020

Come ancitipato nelle scorse settimane, su GitHub è stato pubblicato anche il codice sorgente dell'app Immuni per Android e iOS. In dettaglio, su GitHub troviamo quattro repository, ossia:

  • immuni-app-android: contiene il codice sorgente dell'app per Android, scritta in Kotlin;
  • immuni-app-ios: contiene il codice sorgente dell'app per iOS, scritta in Swift;
  • immuni-ci-scheduler: contiene il codice sorgente per il sistema di scheduling delle app, scritto in Python;
  • immuni-documentation: contiene la documentazione dell'app, scritta in inglese.

Tutto il codice sorgente è rilasciato sotto licenza AGPL-3.0.

Precisiamo che si tratta del codice sorgente delle app per smartphone (client), ma non è ancora disponibile il codice che girerà sui server di Sogei. Inoltre, i servizi backend non sono ancora attivi: per questo motivo, provando a compilare ed installare l'app dal codice sorgente, questa non funzionerà, poiché punta a server non ancora accessibili, come precisato nel file readme.

At the current stage, the application points to backend services which are not publicly accessible and whose source code has not been released. Note that the application is designed to work without a backend, especially in the context of not having the Exposure Notification entitlements (see Installation for more details).

Dai repository di Immuni, possiamo anche dare un'occhiata al logo dell'applicazione, che trovate di seguito.

Secondo quanto riferito, l'applicazione Immuni verrà rilasciata su Android e iOS tra la fine di questa settimana e i primi giorni di giugno.

Aggiornamento 29/05/2020

Sul progetto GitHub di Immuni sono stati pubblicati sei nuovi repository, in cui troviamo il codice sorgente del backend, ossia il software che girerà sui server gestiti da Sogei, con cui si interfacceranno le applicazioni per Android e iOS.

Il backend è stato scritto in Python, di seguito tuti i realtivi repository:

 

 

Mostra i commenti