#148 – Immuni

#148 – Immuni

 
Play/Pause Episode
00:00 / 16:16
Rewind 30 Seconds
1X

L’app per il contact tracing è uscita e ci sono un sacco di persone in giro che dicono tutto e il contrario di tutto. Ho cercato di fare il punto tecnico, delle polemiche mi importa poco.

Il video di Matteo Flora da vedere assolutamente
Un articolo di DDAY.it dove viene descritto molto bene il funzionamento dell’app
Il video di Bressanini su acqua, ghiaccio e sale

Pillole di Bit (https://www.pilloledib.it) è un podcast indipendente realizzato da Francesco Tucci, se vuoi contribuire alla realizzazione puoi usare Paypal, Satispay, il vecchio IBAN (contattami per chiedermelo) oppure i BitCoin (vedi QR code nella barra laterale del sito)
Se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme:
Telegram (un gruppo dove discutere degli argomenti del podcast)
Twitter del podcast e Twitter personale (il social che amo di più)
La mail (se mi vuoi scrivere in modo diretto e vuoi avere più spazio per il tuo messaggio, puoi anche scrivere crittografato usando la mia chiave pubblica PGP)

Rispondo sempre

Se ti serve della consulenza tecnica, puoi avere tutte le informazioni alla mia pagina professionale

Se questo podcast ti piace, parlane con un amico e faglielo ascoltare!

Realizzo anche un altro podcast, sui videogiochi, facili, economici e affrontabili, si chiama Pillole di Videogiochi

Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 148 e io sono, come sempre, Francesco.

Ebbene sì, è uscita, se ne parla bene e male, ma soprattutto si dicono un sacco di fesserie. Sto parlando della famosa, benedetta, maledetta, famigerata app sul contact tracing che è disponibile in Italia dal 3 giugno 2020: Immuni.
Non la volevo fare questa puntata, ma poi ho scritto 2 tweet e ho scoperto che sì, sarebbe necessario capire un po’ di più prima di parlare. Spero di esservi di aiuto.
In questa puntata cercherò di andare a fondo su alcune parti tecniche, isolandomi dalla polemica, dall’effettiva utilità e dalle mille parole sbagliate che sono state detto, che leggo e che mi fanno sanguinare gli occhi.

Parleremo di questi punti principali
1: perché è open source e cosa vuol dire
2: come funziona il tracciamento e la notifica
3: perché funziona solo su alcuni telefoni

Mi limito a questi punti se no poi la puntata arriva a 5 ore e mi pare eccessivo.

Primo punto di oggi.
Perché l’app è open source, perché è stato chiesto a gran voce che lo fosse e cosa vuol dire.
Un software, quando viene sviluppato, può essere con sorgente aperto o chiuso, ne abbiamo già parlato più volte su queste frequenze digitali, ma è bene riprendere il filo. Se io scarico un’app che non ha i codici sorgenti aperti, la installo, la uso, vedo come funziona, ma non so di preciso cosa fa l’app all’interno.
Faccio un banale esempio. Ho un’app che mi permette di giocare a tris contro il telefono.
Anche se so che l’unico modo di vincere è non giocare.
La scarico, la apro, ci gioco, mi diverto, la chiudo. Fine.
Non so però se l’app, quando la apro invia allo sviluppatore alcuni dati come il numero di serie del mio telefono, data e ora di apertura e chiusura, reti wifi che il mio telefono vede in quel momento.
Possono essere semplici dati di telemetria che lo sviluppatore usa per tenere sotto controllo l’app, ma potrebbero, se elaborati in un certo modo, capire dove mi muovo e quando, sapendo quali reti wifi vedo nelle vicinanze.
I sistemi operativi moderni, quando un’app chiede accesso ad aree sensibili, chiedono conferma. Ad esempio se l’app che mi fa giocare a tetris chiede l’uso del GPS o del microfono, prima di concedergli l’accesso mi devo porre qualche domanda: che se ne fa?
Se la stessa app ha il sorgente aperto e pubblicato, tipicamente su Github, chiunque, basta che sia in grado di leggere e capire la programmazione, potrebbe vedere esattamente che tipo di chiamate fa l’app, a quali server si collega e quali dati manda e riceve.
Ovviamente, se pubblico il codice, qualcuno potrebbe prenderlo, copiarlo e fare la stessa app, magari con un’interfaccia più bella, ma rubandomi gli algoritmi dell’intelligenza che gioca a tris con me. E’ il bello dell’Open, puoi guardarlo, studiarlo e riutilizzarlo. A patto che tu faccia progetti derivati che siano Open.
Questo viene definito dalla licenza che io applico al software quando lo pubblico. Una delle più usate e conosciute è la GPL, General Public License

Immuni è stata rilasciata al pubblico come Open, quidni è possibile accedere alla pagina di GitHub per vedere nel dettaglio le righe di codice dell’app e del server, questo ha dimostrato quello che l’app fa con i nostri dati, come ci trasforma in un identificativo che cambia nel tempo, come gestisce il contatto e come salva queste relazioni sul telefono.
Molti esperti hanno controllato nel codice e ci hanno detto che nessun dato a rischio viene trasmesso ai server del sistema, quindi non c’è pericolo privacy nell’utilizzo.

Punto secondo, tracciamento e notifica.
L’app, quando è installata sul telefono, deve cercare di capire vicino a quali persone sono e per quanto tempo. Senza questa informazione è perfettamente inutile.
La tecnologia disponibile per questo tipo di attività è il bluetooth, nel suo sottoinsieme del BLE, il bluetooth low energy. Se nel telefono è attivo, l’antenna riesce a captare altre antenne attive nelle vicinanze e riesce a stimare la distanza con queste.
Ogni app genera dei codici che cambiano nel tempo e li scambia con le app vicine.
Quindi nel telefono viene memorizzato che io, che in quel determinato momento avevo codice 001, sono stato a contatto con un’app che aveva codice 990, la stessa cosa viene fatta dell’app con codice 990.
Nel momento in cui la persona che in quel momento aveva codice 990 viene trovata positiva dopo un tampone può decidere di comunicare l’evento al server. La comunicazione è fatta controllando che effettivamente sia stato fatto un tampone.
Il server quindi memorizza che la persona con codici 990 991 992 e 993 (i codici sono inventati, eh? quelli reali sono più complessi) è positiva.
Le app di tutti i telefoni, a intervalli regolari, chiedono al server la lista dei positivi.
questa viene scaricata e l’app verifica se c’è stato un contatto con qualcuno all’interno della lista dei positivi. Se c’è parte la notifica, generata dal telefono stesso che chiede di andare a controllarsi.
La lista dei contatti avvenuti viene cancellata dopo due settimane.
Fine. Questo è quello che fa l’app.
Sul server ci sono i codici dei positivi, che non sono legati a nessuno dei dati del telefono, né alla persona che lo usa. Il controllo del contatto viene fatto in locale sul singolo telefono e non sul server. La notifica viene generata localmente dall’app. I dati all’interno dell’app non sono esportabili. Quindi resta tutto solo nel telefono e basta.
E come fa l’app a fare tutto questo?
La si attiva, si abilita il bluetooth e la si lascia in background.
Qui scatta il problema.
I due sistemi operativi per smartphone gestiscono in modo diverso la gestione delle app in background e del  bluetooth.
Per questo motivo Google e Apple hanno apportato alcune modifiche al loro sistema in modo tale che il bluetooth dei due sistemi possa essere gestito. Ne parliamo nel terzo e ultimo punto

Punto tre. La tecnologia e i telefoni
Partiamo dal presupposto che Immuni funziona solo su telefoni Android e iOS. Per poter funzionare i due grandi del mercato hanno dovuto fare un po’ di modifiche ai loro sistemi operativi.
Si sono parlati e si sono accordati sul far comunicare il protocollo bluetooth tra di loro, cosa che prima era impossibile. Perché nel mondo ci sono gli standard, ma alcuni sono più standard degli altri, per capirci.
Poi, hanno anche dovuto modificare la gestione interna dell’utilizzo del bluetooth per le app non in primo piano.
Soprattutto Apple, quando un’app smette di essere in primo piano, le toglie alcuni diritti, tra questi, la possibilità di usare il bluetooth.
Prima dell’aggiornamento, l’unico sistema per far funzionare l’app era tenerla sempre attiva, non bloccare mai il telefono e mettere lo schermo alla luminosità minima. Insomma, una vera schifezza.
Con questa modifica adesso, solo le app governative dedicate al tracciamento, possono usare il bluetooth quando non sono in primo piano e non vengono chiuse dopo un tot di tempo.
Android ha fatto una cosa simile anche se il sistema già di suo è molto più permissivo.
Come sono stati fatti questi aggiornamenti?
In due modi molto diversi, figli anche della diversa gestione del sistema operativo.
Per quello che riguarda gli iPhone è stato rilasciato un aggiornamento del sistema operativo della versione 13. Quindi tutti coloro che hanno aggiornato alla 13.5 possono usare immuni, in quanto in questa versione sono state tolte le limitazioni al bluetooth come dicevamo prima. iOS 13 può essere installato da iPhone 6S in poi, quindi funziona con telefoni usciti fino a circa 5 anni fa, il 6S è uscito nel 2015.
Per android la faccenda è diversa. Google vende ai produttori una versione base del sistema operativo, questa viene poi modificata, anche in maniera molto pesante, da ciascun produttore, per poi essere installata sul telefono. Questo significa che se Google rilascia un aggiornamento del sistema operativo, questo deve essere prima rielaborato dal produttore, magari una volta per ogni telefono messo in vendita, per poi essere inviato su tutti i dispositivi.
Vi svelo il segreto di pulcinella: tutti gli android che non sono di fascia altissima, ricevono aggiornamenti del sistema operativo, se va bene per due anni. Sono esclusi da questo limite i telefoni Pixel e gli Android One, che hanno la versione di Android pulita.
E quindi? Come si fa?
Google ha rilasciato un aggiornamento dei Google Play Services, che alla fine si aggiornano per tutti come se fosse una semplice app, indipendentemente dal fatto che il sistema operativo sia nuovo o vecchio.
Questo aggiornamento è stato rilasciato per tutti i dispositivi da Android 6 a questa parte.
Android 6 fu rilasciato a fine 2015, quidni i telefoni più vecchi che adesso ce l’hanno a bordo, sono del 2016.
Su telefoni più vecchi non funziona.
E non è finita qui.
I telefoni, seppur nuovi, ma senza i servizi Google, il Play Services non c’è, quindi l’app non funziona. Questi sono i telefoni Huawei, anche quelli appena usciti da mille e più Euro.
Ce n’è ancora una. I telefoni Honor e Huawei, quelli con i servizi Google, hanno un’interfaccia, appoggiata sul sistema base, che è molto cattiva, passatemi il termine, con le app in background, quindi le chiudono a forza. Su questi dispositivi l’app non funziona. Pare che stiano risolvendo in queste settimane.

Punto quattro. A sorpresa. Qualche domanda.
Servirebbe, a detta degli esperti del Ministero, che quest’app venisse usata dal 70% della popolazione.
Stime dell’ISTAT dicono che il 70% della popolazione ha uno smartphone.
Esiste molta gente che ha telefoni android più vecchi di 5 anni, quindi non compatibili, oppure Honor o Huawei, anche loro non compatibili, o telefoni Apple più vecchi di Iphone 6S.
Aggiungiamo che non tutti la vogliono installare, beh, il 70% è utopia.

Molti si sono lamentati che Google e Apple hanno volutamente tagliato fuori dal mercato i telefoni più vecchi, magari per spingere la gente a cambiare telefono per mettere un’app. Non lo so se lo hanno fatto davvero per questo scopo, ma mi domando perché non attivare queste API anche su telefoni più vecchi, a patto che questi abbiano il BLE.

Adesso la vera domanda difficile. Installo l’app, questa a un certo punto mi comunica che sono stato a contatto con un positivo, ma io non ho sintomi.
Devo stare in isolamento per 14 giorni, senza avere diagnosi, quindi se lavoro non posso andare al lavoro e il medico non mi fa il foglio della malattia. Questa è o non è un’ottima motivazione per NON installare l’app?

Ultima nota a corredo, Matteo Flora, uno dei più paranoici riguardanti la sicurezza che io conosca, l’ha installata. E’ una notizia che ha un certo peso. Vi lascio il link al suo video dove ne parla, dura una mezz’oretta e vale la pena ascoltarlo per bene.

I contatti
Il podcast è sempre disponibile, da ascoltare, ma è vivo e attivo anche durante la settimana, potete scrivermi su diversi canali digitali, la mail, twitter o il gruppo Telegram dove, tempo permettendo, rispondo sempre a tutti, ma solo se si usa l’educazione.
Inutile che ve li dica qui a voce, andate sul sito pilloledib.it e trovate tutto quel che vi serve, anche dal cellulare.

Se volete partecipare economicamente al podcast potete donare qualche spicciolo su una delle tre piattaforme più usate al mondo: Satispay, Paypal e Patreon, sulle ultime due potete persino fare una specie di abbonamento con una donazione mensile. per me sarebbe bellissimo.
Se donate più di 5€, compilate anche il modulo con i vostri dati e vi spedisco gli adesivi a casa.
Se donate meno di 3€, ogni donazione è sempre gradita e bene accetta, e non volete fare un regalo solo alle piattaforme che gestiscono le donazioni, preferite Satispay, se non ce l’avete, protreste farlo, è gratis e lo usano un sacco di negozi e siti. Se lo fate e usate il codice promo FRANCESCOT vi regalano anche 2€, a volte di più.

Grazie ai donatori di questa settimana

Se invece avete un’azienda e volete sponsorizzare una singola puntata, trovate tutte le informazioni alla pagina pilloledib.it/sponsor.

E per concludere, se vi serve una consulenza tecnica su un progetto sul quale siete bloccati, per un sito web, la rete a casa o nel piccolo ufficio, potete andare a guardare la mia paguna di consulenza professionale su www.iltucci.com/consulenza.



Il tip
Oggi un tip che con bit e byte non c’entra assolutamente nulla. Parliamo di estate. Quel periodo caldo, durante il quale si suda e fa sempre piacere avere qualcosa di fresco da bere. Ma si apre il frigo e non c’è nulla, ci si è dimenticati di mettere la bottiglia di bibita o di birra. E’ un bel problema: come raffreddare in breve una bottiglia di una bevanda qualsiasi?
C’è un modo più veloce di quello di metterla in freezer, l’ho scoperto da un vecchio video di Bressasnini, che vi lascio come sempre nelle note dell’episodio.
Si prende una bacinella e ci si versa dell’acqua del rubinetto. Poi si prende un po’ di sale e lo si scioglie dentro. Infine di aggiunge del ghiaccio.
Se il rapporto del volume di ghiaccio più acqua rispetto al sale è di circa 3 a 1, in poco tempo, quasi per magia, l’acqua raggiungerà una temperatura di circa -20 gradi centigradi. Si mette la bottiglia dentro e in pochi minuti sarà bella gelata.
Si mette acqua e ghiaccio perché nel ghiaccio il sale non si può sciogliere e perché così l’acqua sarà completamente a contatto con la bottiglia, con solo il ghiaccio la superficie di contatto bottiglia-cubetti è minore e il trasferimento termico, sarà minore di conseguenza. Grazie al sale l’acqua diventerà molto più fredda, senza il sale non scenderà mai sotto lo zero. 


Bene è proprio tutto, non mi resta che salutarvi e darvi appuntamento alla prossima puntata.

Ciao!