Visualizzazione post con etichetta autenticazione. Mostra tutti i post
Visualizzazione post con etichetta autenticazione. Mostra tutti i post

domenica 5 gennaio 2020

L'infelice vicenda della #PasswordDiStato

Pur sovrastata dalle notizie giustamente più importanti sulle tensioni internazionali, non è passata sotto silenzio (almeno tra gli addetti ai lavori), anzi ha suscitato un discreto putiferio, l'intervista radiofonica della ministro dell'innovazione in cui proponeva una "password di stato" per ogni cittadino, utile non solo per l'autenticazione verso i servizi online della Pubblica Amministrazione, ma anche per tutti gli altri. Putiferio che è stato seguito da due precisazioni via social della stessa ministro, e dalle prese di posizione più o meno autorevoli da parte della stampa e della politica.
Premetto che (spiegherò tra poco il perché) ho seguito poco il putiferio, le precisazioni e le prese di posizione; ma quel poco che ho sentito si annovera maggiormente nel calderone delle "poche idee ma ben confuse". E quindi non potevo esimermi dal dire la mia.

Conoscere la "proposta"
Per iniziare, consiglio l'ottimo riassunto della vicenda, che include anche i leciti dubbi che comunque ogni buon informatico deve porre, di Paolo Attivissimo.
Vale la pena anche questo breve articolo che la stessa ministro ha postato su Linkedin.

Cosa ho capito io
Personalmente, ho sentito per la prima volta parlare di questa vicenda con una segnalazione della (prima?) precisazione, per cui per me la questione si era già parzialmente sgonfiata. Per farla breve, a me è sembrato che la prima reazione all'intervista radiofonica abba indotto molti, sentendo l'espressione "password di stato", a pensare che si trattasse di un sistema di autenticazione unico, fornito dallo Stato, in cui la password viene impostata dallo Stato stesso e non è modificabile da noi. La posizione (dopo il chiarimento) della ministro fa riferimento invece al potenziamento dell'utilizzo della SPID anche verso servizi non necessariamente relativi ai pubblici servizi o alla pubblica amministrazione.

Glossario minimo
Prima di passare alle mie opinioni, bisogna capire di che stiamo parlando.

L'autenticazione, nel mondo informatico, è quel processo che verifica l'identità di un utente. Nella stragrande maggiornanza dei casi, ciò avviene attraverso l'inserimento di due  parametri: il nome utente (che non è segreto), che lo identifica; e la password (segreta) che lo conferma. Il sistema funziona solo e soltanto se l'utente è l'unico a conoscere la sua password. Per ovviare a tutti i problemi che questo sistema ha, sono stati implementati altri sistemi come l'autenticazione a 2 fattori (oltre alla password si richiede un ulteriore codice di verifica legato ad un oggetto posseduto, come lo smartphone) e la biometria (impronte digitali, riconoscimento facciale).

La SPID è un sistema di autenticazione che prevede una verifica preventiva dell'identità reale dell'utente e sia ad essa collegata a tutti i fini di legge, per cui ogni operazione effettuata tramite la SPID è riconducibile ad un preciso cittadino italiano (in realtà essendo un'implementazione italiana di una direttiva europea, la SPID è utilizzabile anch in tutti i paesi UE e gli equivalenti sono utilizzabili in Italia). Attualmente la SPID è gestita da 9 operatori privati per conto dello Stato, ed è gratuita (per i primi due anni). Molti servizi pubblici centrali la richiedono (INPS, Agenzia delle Entrate, etc) mentre molti servizi locali ancora no.

La mia opinione
  1.  È evidente che l'espressione "password di stato" sia stata infelicissima; ciò nonostante, ritengo che l'idea di una password imposta dallo Stato fosse così balzana che nemmeno i nostri più scriteriati amministratori della cosa pubblica potessero concepirla, e che essa sia frutto solo delle più becere propagande ideologiche e politiche che infestano i media italiani ed i social
  2. Chiarito che si parla della SPID, l'idea di un suo utilizzo per i servizi online più disparati pone una serie di problematiche ben descitte da Attivissimo nell'articolo precedentemente segnalato, per cui la ritengo poco praticabile
  3. Tuttavia, se l'alternativa alla SPID (sempre per i servizi online non pubblici) è quella di utilizzare sempre la stessa password, o peggio le credenziali di Facebook, Google, Twitter o Linkedin, allora siamo alla demenza più totale: meglio mille volte il nostro Stato, per quanto malandato (sotto tutti i punti di vista), piuttosto che privati colossi esteri bramosi di raccogliere e rivendere al miglior offerente tuttle le informazioni possibili su di noi
  4. Quanto appena detto vale esclusivamente se con "Stato" intendiamo le istituzioni al servizio del cittadino, e non organizzazioni private legate a doppio filo a questo o quel partito (per essere chiari: Casaleggio)
  5. Il paventato pericolo che dall'uso della SPID lo Stato raccolga informazioni su di noi che non avrebbe avuto altrimenti, è reale; ma non è nemmeno un automatismo, tecnicamente svincolare completamente il processo di autenticazione da ciò che avviene dopo è fattibile; ed il legame (questo sì, inevitabile) che rimane tra ciò che facciamo e la nostra identità può essere regolato correttamente secondo la normativa europea sui dati personali (da notare che il ministro stesso su Linkedin fa riferimento alla necessità di interpellare il Garante, come previsto dalla legge ma mai avvenuto in casi precedenti...)
  6. Fatto salvo tutto questo, il problema ultimo che nessuno sembra voler affrontare è che la maggioranza della popolazione italiana, semplicemente, non è in grado di capire ed utilizzare gli strumenti che gli vengono messi a disposizione; finché sarà così, a mio parere parlare di "innovazione" (soprattutto da parte di chi non ha le competenze per capire cosa significhi) è totalmente inutile.

lunedì 30 luglio 2018

Aiuto, non ci sono più siti sicuri!

Pochi giorni fa è stata rilasciata la versione del browser Chrome che implementa la già annunciata funzionalità di segnalazione per i siti che non usano HTTPS.
Sul web molti siti specializzati (un esempio) ne hanno parlato, ma omettendo le informazioni basilari, per aiutare a capire l'importanza di questa scelta: ci provo io.

HTTP e HTTPS
HTTP (HyperText Transfer Protocol) è il protocollo di comunicazione su cui si basa il web, ossia internet come è conosciuta da tutti: i siti "parlano" con i browser utilizzando HTTP come linguaggio. HTTP è bidirezionale, nel senso che permette di inviare dati anche dal browser al server: funzionalità che viene usata per inviare i nostri parametri al server in modo da ottenere una risposta personalizzata.
HTTPS è la versione sicura, cioè crittografata, di HTTP. Il che vuol dire che HTTP invia i dati, in entrambe le direzioni, in chiaro, quindi facilmente leggibili (credetemi, l'intercettazione delle comunicazioni è banale).

La Crittografia di HTTPS
La crittografia trasforma un dato comprensibile in uno incomprensibile, tramite complesse funzioni matematiche. Mentre le funzioni sono sempre le stesse, ciò che rende unica ogni trasformazione è l'utilizzo di un altro dato, detto chiave, unico. Con la chiave si effettua sia la cifratura che la decifratura, il che vuol dire che la chiave deve essere conosciuta sia dal mittente che dal ricevente una comunicazione, e da nessun altro, altrimenti chiunque è in grado di decifrare la comunicazione. Questa modalità è scomoda perché mittente e destinatario devono scambiarsi la chiave in modo sicuro, e soprattutto ogni coppia mittente-destinatario deve avere chiavi diverse.
Per fortuna esistono metodi di cifratura con 2 chiavi diverse (ma correlate l'una all'altra): una deve essere tenuta segreta e l'altra può essere liberamente divulgata, semplicemente perché la cifratura avviene con una chiave e la decifratura con l'altra. Ebbene, HTTPS usa questa modalità: il server ha la chiave privata, ed il browser ha la chiave pubblica, che si scarica prima di iniziare a comunicare.


Riservatezza
Il difetto della chiave pubblica è che è, appunto, uguale per tutti, per cui chiunque sarebbe in grado di decifrare le comunicazioni provenienti dal servizio: per renderla univoca, si aggiunge un codice di sessione (creato alla prima comunicazione tra il server ed ogni singolo browser); in questa maniera, HTTPS è in grado di scambiare dati mantenendo la riservatezza degli stessi.

Autenticazione
Il fatto che il servizio possegga una chiave unica, creata appositamente e tenuta segreta comporta una seconda caratteristica: la corrispondente chiave pubblica funziona solo e esclusivamente con quel servizio, per cui il browser è sicuro di comunicare proprio con quel servizio e con nessun altro: potrei quindi autenticare il servizio.
Purtroppo, poiché la chiave pubblica è fornita dal servizio stesso, a meno di non fidarsi ciecamente, non possiamo essere sicuri che il servizio sia effettivamente quello che dichiara di essere. Per cui la vera autenticazione di un servizio ha bisogno di un ulteriore passaggio: la chiave pubblica, prima di essere utilizzata, viene a sua volta autenticata (e firmata digitalmente) da una entità terza, che effettua dei controlli per verificare che il servizio (in realtà, il proprietario, azienda o persona che sia) sia realmente chi dichiara di essere.

Siti sicuri e non sicuri
Il browser è in grado di riconoscere la firma digitale della chiave pubblica: quindi, se riconosce la firma come valida, e la chiave pubblica funziona rispetto al servizio (e quindi alla sua chiave privata), si è certi che stia parlando proprio col servizio (sito) giusto, quindi sicuro. In tutti gli altri casi, è considerato non sicuro.
Quindi i fornitori di siti hanno tutti gli interessi a farsi considerare sicuri, per le ragioni suddette: per un discorso di reputazione possono voler essere riconosciuti con certezza (es. un giornale online); per un discorso di segretezza delle informazioni (es. tutti i casi in cui si usano password); per entrambe (es. banca online).

Altre considerazioni
Tutto a posto? Ovviamente no. Ecco alcune questioni a cui fare attenzione.
  • Un sito non sicuro può non essere un problema: dipende dalla criticità delle informazioni che tratta.
  • Le chiavi possono avere una scadenza: se non vengono rinnovate in tempo, il sito può improvvisamente essere considerato non sicuro, pur essendolo fino a poco prima. La comunicazione rimane cifrata, ma non si può più fare completo affidamento sull'identità del servizio.
  • I criminali informatici cercano continuamente metodi per ingannarci e farci considerare come sicuro un sito che non lo è. Un metodo divertente ed esemplificativo è questo. Inoltre, l'iconcina del lucchetto non è sufficiente perché banalmente falsificabile.
  • La segnalazione di sito sicuro può essere assolutamente valida anche per siti con nomi simili a quelli più famosi: quindi, sempre occhio al nome del servizio nella barra degli indirizzi! Se notate qualcosa di strano, verificate che il proprietario del sito sia chi vi aspettate, e non qualcun altro.
  • Tutti i metodi crittografici sono comunque vulnerabili al cosiddetto attacco a forza bruta, ossia cercare di trovare le chiavi semplicemente provando tutte le combinazioni possibili; per questo motivo la lunghezza della chiave è un fattore determinante (all'aumentare della lunghezza, il numero di tentativi aumenta in maniera esponenziale).
  • Una pagina web può essere composta di parti diverse, che possono provenire da siti differenti (questo post ne è un esempio); ognuna di queste parti può utilizzare HTTPS oppure HTTP semplice, per cui la sicurezza complessiva potrebbe essere compromessa. In realtà i browser segnalano anche questa situazione (in particolare, pagine miste HTTP e HTTPS sono viste con sospetto).

Quindi: bisogna (tanto per cambiare) usare la testa. Mai e poi mai accedere al proprio conto corrente online (è solo un esempio) senza l'indicazione di sito sicuro; negli altri casi, cliccando sull'indicazione, è possibile avere i dettagli della segnalazione, e sulla base di quella decidere se andare avanti o no; e comunque si può considerare la reputazione di un sito anche sulla base dell'utilizzo e della relativa manutenzione dei certificati necessari all'HTTPS.
Anche gli altri browser permettono di fare le stesse verifiche, semplicemente (al momento) non danno l'indicazione nella stessa maniera come ora ha introdotto Chrome. Quest'ultimo ha "solo" fatto la scelta di spingere l'adozione di HTTPS anche nei casi in cui finora non se ne era sentita la necessità.

sabato 25 novembre 2017

La biometria e la falsa sicurezza

Non so se avete saputo, visto che la notizia è passata sotto silenzio (😉), ma è in commercio da qualche settimana il nuovo iPhone; e tra le nuove funzionalità, c'è Face ID, cioè lo sblocco dello smartphone attraverso il riconoscimento facciale. In questo caso molto avanzato (viene utilizzata una mappatura tridimensionale), tuttavia circolano in rete, e non mi risultano siano state smentite, notizie secondo cui si è ottenuto uno sblocco "fraudolento" tramite una maschera di silicone (dal costo di 150$), oppure con un familiare, come un fratello ma anche un figlio.
Non è proprio la stessa cosa, però qualche giorno fa mi è capitato di "sbloccare" la ricerca di Google sullo smartphone di un collega con la mia voce (casualmente, non stavamo facendo un esperimento mirato).

Questo genere di funzionalità fanno parte del ben più ampio campo della biometria utilizzata come metodo di riconoscimento considerato sicuro. Non siamo forse abituati all'utilizzo delle impronte digitali, che sono ormai anche dentro il passaporto e regolarmente utilizzate nelle procedure di ingresso in stati come gli USA?

Anche nel mondo digitale, lo sappiamo benissimo, c'è il problema del riconoscimento sicuro, perché il furto di identità può avere impatti notevolissimi sulla vita del malcapitato, anche fuori dal mondo virtuale (basta pensare cosa accade se l'identità in questione è quella del conto corrente bancario). La sicurezza della propria identità è affidata primariamente all'odiatissima password, però è ormai chiaro che non basta più; e per questo sono arrivati l'autenticazione a due fattori, dove alla password vera e propria viene affiancato un secondo codice generato casualmente con validità brevissima, ed appunto la biometria.

Ma non è tutt'oro quello che luccica. Ai più la biometria può essere l'uovo di colombo: una volta identificata quale sia la caratteristica fisica più adatta, cioè meno soggetta a falsi positivi, il gioco è fatto. La questione è un po' più delicata per almeno due motivi.
Il primo è la privacy: se la caratteristica in questione è sotto gli occhi di tutti e facilmente accessibile, chiunque è in grado di carpircela e riutilizzarla al nostro posto. Per esempio, ritornando all'inizio del post, la nostra faccia compare in migliaia, se non milioni, di immagini di cui spesso non conosciamo nemmeno l'esistenza. Nel caso (più estremo) delle impronte digitali, utilizzate già da tempo sugli smartphone non solo più di fascia alta, mi ricollego ad una serie televisiva di spionaggio (ma sono sicuro non fosse un'idea originale) in cui viene tagliato il dito ad una persona per poterlo utilizzare su un lettore di impronte al posto suo. Quindi occhio: impostare il riconoscimento facciale per qualche servizio critico, e poi postare selfie a raffica sui social, espone al rischio di essere chiamati dal sottoscritto "demente" (oltre a quello di ritrovarsi il conto bancario prosciugato).
Il secondo motivo riguarda un aspetto molto più tecnico, ma da tenere presente: una qualsiasi caratteristica fisica, una volta acquisita, è codificata digitalmente come sequenza binaria per poter essere memorizzata e confrontata (magari in modi non banali) con le nuove acquisizioni della stessa caratteristica nel momento in cui vengono utilizzate per l'identificazione; il che rende quel dato memorizzato estremamente critico, sia in termini di riservatezza che di protezione. Per dirla chiaramente: se viene perso (cancellato), addio identificazione e quindi accesso al servizio; se viene carpito fraudolentemente da qualcuno, non è possibile modificarlo come una password!

In conclusione, è molto imprudente considerare la biometria LA soluzione del problema identificazione sicura; è sicuramente una possibilità, e non secondaria, all'interno di un sistema più complesso. Personalmente preferisco l'autenticazione a due fattori con password (che posso scegliere, modificare, e mantenere realmente segreta) e secondo codice che sia invece generato da un ente terzo, rinnovabile e fornitomi in modo assolutamente riservato (tipo token o certificati digitali).

lunedì 17 aprile 2017

Non ti sopporto più (ovvero: la password)

La navigazione su internet, o l'utilizzo di app, ormai sembra non poter fare a meno della famigerata password: quasi ovunque è richiesto registrarsi e quindi impostarne una. I risultati, ovviamente, sono questi:
http://mobile.hdblog.it/2017/01/16/123456-password-utilizzata-2016/
Ora, finché queste password sono utilizzate per servizi banali (per esempio, registrare le ricette preferite), passi... ma se sono utilizzate per la posta elettronica (privata: quella lavorativa non la prendo nemmeno in considerazione, altrimenti qualcuno rischia che lo sbrani) o per il conto corrente online, beh, allora tutto il male che può accadere è pienamente meritato!

Quindi, poiché sono un male necessario, cerchiamo di capire l'importanza delle password e come gestirle.

La password è uno dei due elementi fondamentali di ciò che comunemente vengono chiamate "credenziali"; l'altro è il nome utente (o username, più comunemente). Questa coppia fa sostanzialmente due lavori: con lo username avviene l'identificazione, cioè il riconoscimento univoco, in funzione di associazione univoca delle informazioni, della persona; con la password, avviene l'autenticazione, ossia si controlla la veridicità dell'identificazione. Questa verifica è necessaria perché lo username, in un certo senso, è un dato pubblico, quindi per riconoscere il legittimo proprietario bisogna che si utilizzi un dato privato, cioè conosciuto appunto solo da lui. Il senso della password è tutto qua: che sia un dato noto soltanto alla persona a cui appartiene. Nel momento in cui tale dato perde il suo carattere di segretezza, non ha più senso; e questo avviene in tutti i casi seguenti:
  • la rendiamo pubblica (o nota anche ad una sola altra persona)
  • ne utilizziamo una estremamente diffusa (come avviene appunto per le password della lista riportata nell'articolo sopra citato)
  • la scriviamo in un posto facilmente accessibile (il post-it sul monitor è un classico)
  • la scegliamo utilizzando informazioni pubblicamente note (come la data di nascita, propria o di qualche familiare, o il nome del gatto...)
Un altro comune errore è quello di lasciare al browser, al programma di posta, o alla app di turno, la registrazione delle password, in modo da evitare che venga richiesta ogni accesso. A parte che la registrazione può avvenire in modo non protetto (cioè cifrato, o se la cifratura viene utilizzata, senza che ne abbiamo noi il controllo)... così ci mettiamo alla mercé di chi dovesse avere l'accesso al nostro dispositivo o profilo, perché non dovrebbe nemmeno fare la fatica di cercare o indovinare le password. Ma il più grave errore che si può fare in tema di password, è pensare che a nessuno interessi soffiarcela. Come detto prima, con la password si autentica l'identità, quindi in realtà con la nostra password un malintenzionato impersona noi stessi, e può compiere qualsiasi atto a nostro nome (e dimostrare di aver subito il furto di identità non è cosa banale). Forse non tutti sanno che esistono vere e proprie aste di gruppi di credenziali valide di alcuni celebri servizi, segno evidente dell'interesse che ha questa "merce" (vedere, solo per fare un esempio, questa notizia)

Il problema alla base delle scellerate scelte della password sta tutto nella necessità di ricordarla. Ma è un falso problema: non è necessario ricordare a memoria tutte le password (in realtà, è il regolare utilizzo che, stimolando la nostra memoria, le fa ricordare, a prescindere dalla complessità e lunghezza). Io per primo, che credo di essere un bravo utilizzatore di buone password, non pretendo di ricordarle tutte, anzi! L'unico trucco necessario e sufficiente a gestire correttamente le password è scriverle, ma esclusivamente in un posto sicuro. Esistono molti programmi o app che fanno proprio questo: un piccolo database dedicato alle password, ovviamente cifrato. Il difetto è che per cifrare (e decifrare) il database, una password è necessaria: ma una sola. Questa sì che vale la pena dello sforzo di trovarne una sufficientemente complessa, veramente privata, e che non corriamo il rischio di dimenticare (se non in caso di amnesie gravi, ma in quel caso questo è un problema minore); anche perché la raccomandazione è quella di non scriverla, mai, da nessuna parte, e di non dirla veramente a nessuno! Se utilizziamo uno di questi "password manager", ed impariamo ad usarlo sempre, allora verrà facile anche passare ad una logica che fa fare il salto di qualità in termini di sicurezza: non scegliere più le password per far sì che siano in qualche modo mnemoniche, ma farle generare in modo casuale, e con lunghezze significative (dai 12 caratteri in su), e soprattutto cambiare regolarmente quelle più critiche.

Altro metodo di sicurezza che sta progressivamente diffondendosi è quello dell'autenticazione a due fattori (two-factor authentication): la fase di autenticazione si basa non solo sulla password, ma su un ulteriore codice che ha una validità limitata nel tempo, e quindi ogni accesso va nuovamente generato. Questo secondo codice può arrivarci con un metodo che abbiamo precedentemente validato (la nostra mail, il nostro cellulare), oppure con dispositivi appositi, chiamati token, che vengono rilasciati dal fornitore del servizio. Certamente è un ulteriore passaggio che ai più sembrerà un ulteriore fastidiosa perdita di tempo, ma a me sembra trascurabile davanti alla concreta possibilità di trovarsi il conto in banca svuotato.

In conclusione, dovremmo convincerci che dobbiammo riservare alle password la stessa attenzione che riserviamo alle chiavi di casa: esse rappresentano di fatto il modo di impedire agli estranei l'accesso al nostro piccolo "regno digitale".