
Torniamo a parlare dell’app Immuni perché, almeno dalle promesse iniziali, dovrebbe arrivare questo mese. Nella giornata di ieri è stato pubblicato il codice su GitHub. Questo per consentire agli esperti di studiarne il codice e trovare possibili debolezze.
In effetti gli esperti si sono messi all’opera per cercare di capire come funziona l’app che dovrebbe, almeno sulla carta, aiutarci a capire se siamo entrati a contatto con persone infette da COVID-19.
Piccola premessa: Bending Spoons, società scelta per realizzare l’app, ha dichiarato di farlo gratuitamente e in totale saranno impiegate 10.000 ore uomo tra realizzazione e manutenzione. Tanto per intenderci, se consideriamo che un’ora costi 40 € siamo di fronte ad una donazione di 400.000 €.
Ma servono realmente 10.000 ore per realizzare un’app come Immuni? Considerando che una persona lavora 8 ore al giorno occupando 160 ore al mese, stiamo parlando del lavoro di 20 persone per ben 3 mesi, o 40 persone per 1,5 mesi.
Terminata questa premessa, possiamo andare su GitHub e scaricare la repository caricata da Bending Spoons. Dal codice si evincono alcune cose:
- Si utilizzano i CocoaPods. Questi sono librerie esterne. Parti di codice fatti da altri e adattati all’app. Quindi il codice non è al 100% sviluppato in Bending Spoons. Questo crea delle dipendenze. Un caso esemplare: con iOS 14 se le librerie CocoaPods non saranno aggiornate dai rispettivi sviluppatori parte di Immuni potrebbe smettere di funzionare.
- Il codice è commentato bene. Segno che in Bending Spoons lavorano con professionalità.
- Il back-end dell’app non c’è. Per chi non è del mestiere possiamo semplificare la differenza tra front-end e back-end indicando la prima come la parte di app con la quale gli utenti interagiscono, la seconda come la parte di codice che serve a far funzionare i sistemi. Immaginate una panetteria: il front-end è la vetrina e la cassa per pagare il pane; il back-end è il laboratorio con i forni. Bene, per Immuni non c’è ancora nessun laboratorio. Questo pone molti dubbi sulla valutazione dell’app: come si fa a capire che il sistema sia trasparente se c’è solo parte del codice dell’app?
- Apple potrebbe non approvarla. Immuni chiama un server con puntamento a “get.immuni.gov.it/v1/keys/index” che di fatto al momento è irraggiungibile. Se l’app venisse inviata ora ad Apple per l’approvazione e la società nota che punta ad un server inesistente, non potrebbe fare a meno di non approvarla.
- L’app non richiede la registrazione, ma l’uso di codici casuali. Quindi al momento la privacy è garantita.
- L’informativa sulla privacy al momento contiene testo segnaposto e non reali dati legali.
Morale della favola: per adesso l’app condivisa su GitHub non è completa ed è solo una parte. Così com’è adesso non potrebbe funzionare e Apple non l’approverebbe neanche. Manca tutto il lato back-end e l’uso dei CocoaPods ci fanno dubitare che siano state realmente occupate 20 persone per tutto quel tempo.
Ulteriori considerazioni arriveranno quando l’app sarà operativa. Al momento è difficile pensare che l’app arriverà per la fine di questo mese.
Aggiornamento: oggi (29/05) è stato caricato anche la parte di codice di back-end. L’app dovrebbe essere quindi pronta. Trovate il codice su GitHub.
Aggiornamento/2: come racconta Max Uggeri su Infosec.news anche il codice di back-end reso disponibile ieri non funziona granchè. Alcuni endpoint non rispondono correttamente, tra l’altro c’è anche l’uso del protocollo HTTP invece del recente HTTPS. Probabilmente c’è da ultimare la preparazione dei server, ma la versione attuale continua a non funzionare correttamente.
Ma mica è un male usare librerie terze, ed è ovvio che i problemi che ostacolano il rilascio verranno risolti a tempo debito
Per ora si sa solo come si comporterà “Immuni” ma non non il server a cui l’app fa riferimento.