Oggi siamo tutti Luciano, ma anche Bruno, Luca, Stefano, Alessandro, Marzia o Giovanni. No, non è un flash mob, sono tanti dei nomi che il sito dell’INPS sta letteralmente sputtanando, con tanto di anagrafica, ai quattro venti.
Oltre all’interessamento del garante della privacy e a un po’ di gente che probabilmente si farà la villetta al mare a spese dell’INPS per questa piccola magagna, non dimenticando che in Italia certe violazioni della privacy vanno nel penale, è anche interessante sapere il perché sia accaduto.
Partiamo da un semplice concetto: cache. No, non è vostra nonna che prova a leggere la ricetta della torta in inglese, specie perché si legge alla francese, è in sostanza un meccanismo per alleggerire i server, che ovviamente in questo momento all’INPS sono oberati.
La logica alla base è semplice: poniamo che mille persone vogliano accedere allo stesso dato che viene generato dinamicamente (ad esempio una ricetta da un database di ricette o una definizione di un dizionario). Il database non è senziente, se gli chiedi mille volte la definizione di “incompetente” ti darà mille volte la definizione, precisa e identica.
Ma fare una richiesta a database ha un costo computazionale non da poco e su milioni di richieste, beh, pesa. Una cache funziona con un principio semplice simile a una fotocopiatrice: salva per un tot le richieste in formato statico (diciamo testo) e chi fa la medesima richiesta ottiene direttamente il testo senza doverlo far rielaborare al server.
In questa immagine qualcuno aveva precedentemente cercato “pera” e “banana” salvandoli nella cache. Gli altri quattro che fanno la medesima richiesta non vanno a pesare sul server ma solo sulla cache, solo chi cerca “gatto” viene rimandato al server. Quindi abbiamo risposto a sette persone con sole tre richieste. Bello, eh?
Per fare un paragone è come un servizio che fornisce la traduzione di pagine: la prima volta la batti a macchina, ma poi la fotocopi così al secondo che ti chiede la traduzione dai una copia della traduzione già fatta.
Ma tutto ciò, per esempio, non può funzionare con un atto di matrimonio da portare in ambasciata, no? In fin dei conti tale atto ha dei dati personali che variano da persona a persona. Ma è esattamente ciò che ha fatto il sito dell’INPS!
In sostanza i sistemisti dell’INPS, nella speranza di alleggerire il carico dei server, hanno attivato una fotocopiatrice (cache) ma l’hanno impostata in modo indiscriminato su “fotocopia tutto”.
Quando il signor Peppino è stato il primo ad accedere, ad esempio, all’area dell’anagrafica una fotocopiatrice ha salvato i suoi dati. Esistono chiaramente più fotocopiatrici (altrimenti la cache si obererebbe allo stesso ritmo del server) e questa è la ragione per cui vediamo dati differenti anche da dispositivo a dispositivo. Quando poi accediamo noi la cache dice tutta allegra “oh, ho già la pagina, non devo chiederla al server!” e ce la manda. Solo che non è la nostra anagrafica ma quella di una persona a caso.
Il medesimo errore venne fatto dalla nota piattaforma di videogiochi Steam a Natale pochi anni fa. Se sapete l’inglese vi consiglio questo video di Tom Scott in cui spiega la situazione e che può aiutare a capire la situazione.
Nel caso dell’INPS, tuttavia, l’attivazione della cache mostra pura e semplice disperazione (non ditelo a quelli che volevano la scuola online di stato): se un sito di videogiochi ha ottime ragioni per avere una cache – se una persona mette una recensione a un gioco e una persona la vede dopo mezz’ora non muore nessuno e riduci i carichi – un sito come quello dell’INPS che si basa praticamente tutto sui dati personali dovrebbe essere molto, molto cauto e, se proprio necessita di una cache per il contenuto statico (che io avrei fatto come puro e semplice HTML che è molto, molto più leggero da gestire e puoi comunque generare con un backend, mentre sono abbastanza sicuro che gran parte del sito INPS sia generata in Java o, in alcune sezioni, in ASP), dovrebbe averne una permanente da attivare in caso e testata in modo pedante.
Ma non giene farei nemmeno una colpa ai sistemisti. Le risorse mica le decidono loro, magari devono lavorare su degli Olivetti del 2012 e, ahinoi, spesso la sicurezza è ampiamente sottovalutata negli Istituti Tecnici che formano molti sistemisti in uno dei settori dove ancora il diploma dà un lavoro decente, studiata poco e in modo scarsamente interconnesso tra materie (che nell’ultimo anno sono 3, spesso insegnate da docenti diversi). Non posso escludere che, vista la figuraccia (e forse anche qualche protesta) che avrebbe portato un crollo totale del sito sia stato, come dire, richiesto dall’alto di fare tutto il possibile per impedirlo e che la scarsa cultura della sicurezza abbia fatto il resto.
Non voglio fare quello che difende a tutti i costi la propria categoria professionale, nemmeno sono un sistemista e da studente nel campo della sicurezza la cosa mi ha fatto parecchio arrabbiare: qualche testa dovrà cadere visto che esistono persone espressamente deputate alla tutela dei dati personali degli utenti e dovrebbero esistere anche persone che studiano proprio come gestire queste situazioni di picco senza far gaffe.
Tuttavia un approccio più prudente dell’INPS avrebbe sicuramente giovato: parlare di click day e di priorità alle prime richieste ha fatto arrivare molte persone a fare la richiesta il prima possibile e, siccome erano già lì, sveglie dal mattino presto, anche quando hanno annunciato che non ci sarebbe stato l’ordine cronologico sono restate in linea “tanto per”.
Una comunicazione corretta fin da subito sull’assenza di un ordine cronologico avrebbe alleggerito i server dell’INPS, molto probabilmente. E, in caso di timori ulteriori, un’altra possibile via sarebbe stata annunciare lo scaglionamento per cognome, come alle poste: ogni lettera avrebbe avuto il suo giorno d’inizio presentazione, annunciato in TV e su Internet. Sarebbe sicuramente costato meno delle multe, dei risarcimenti e del danno d’immagine.