SQRL o Secure-QR-Login ovvero il cambio di paradigma sulle credenziali d’accesso

In un precedente articolo avevo considerato le croci e le delizie di internet soprattutto in merito al sempre crescente numero di login necessari per impersonare le nostre molteplici identità personali che ormai ogni sito ci rende disponibili, o dovrei scrivere, ci costringe a gestire..

Il problema dei numerosi login è molto sentito, le varie credenziali (solitamente userID e password), la domanda segreta e la risposta correlata a quella domanda.. insomma quel miscuglio di ingredienti che volenti e nolenti avevamo imparato a digerire (alcuni di malavoglia) per poter interagire con il cyberspace sono una spina nel fianco di molti internauti. Le iniziative riguardo alla gestione delle credenziali sono numerose, come le federated identities dei noti social network come , LinkedIn, Google+, Yahoo!, Twitter, Facebook etc.. utili per alcuni che sono avvezzi a fidarsi della rete ed a condividere utenze (e spesso anche password) anche tra siti differenti, ma un po’ indigeste a chi scrive, che invece si fida molto meno e che non ritiene affatto salutare condividere identità né tantomeno password né dati reali sulla propria identità (men che meno foto) in siti che non siano della Pubblica Amministrazione e che quindi svolgano quel ruolo istituzionale e per i quali l’identità reale è necessaria per fornire servizi indirizzati al cittadino.

Ebbene siamo vicini ad una rivoluzione. Senza dubbio questa innovazione, ideata da Steve Gibson della omonima Gibson research, appare davvero interessante. Se non conoscevate Steve Gibson, questi è noto per essere l’autore dell’ormai mitico software scritto in assembler SpinRite: se avete un hard disk difettoso ma non rotto SpinRite è il software che fa per voi: 95 $$ tutti davvero ben spesi. 

Qual’è l’innovazione? potremo dimenticarci di tutti quegli ingredienti testé citati? Non proprio, però, posto che a mio avviso il fantastico KeePass rimarrà lì pronto ad aiutarci a districarci nei meandri delle nostre centinaia di login, parole chiave, codici, disclaimer etc, sempre più facilmente vedremo l’adozione di questo nuovo (al 10/Ott/2013) sistema denominato SQRL (da giovedì 31-10-2013 l’acronimo significa Secure Quick Reliable Login invece che Secure Quick Response Login) che presto troverà il suo posto tra le RFC di internet come sistema di login sicuro.

L’idea in breve è quella di utilizzare un sistema a chiavi asimmetriche dove la chiave privata verrà utilizzata per cifrare insieme al nome del dominio del sito presso il quale ci accingiamo a fare login, un MasterID, un nonce, ovvero un numero casuale di opportuna lunghezza generato ad uso di quell’unica login.

Vediamolo insieme seguendo i medesimi passi indicati da Steve Gibbson, supponendo di avere uno smartphone che ci aiuti a leggere i QR (Quick Response) code tipo:  ed a fare qualche calcolo:

  1. Il QR code viene presentato nella nostra pagina web vicino alla finestra di login. Tale QR code contiene al suo interno l’indirizzo del servizio di autenticazione predisposto per il sito che ci accingiamo a visitare. All’indirizzo verrà aggiunto un nonce. Tale numero consentirà di mostrare sempre un differente QR code per ogni login.
  2. L’app del nostro smartphone calcola l’hash del nome dominio dl sito insieme alla chiave utente detta anche master key (*) al fine di produrre una specifica coppia di chiavi appositamente generata per questo sito.
  3. L’app dello smartphone cifra quindi il dominio del sito contenuta nel QR code con la chiave privata appena generata. Grazie al nonce questa login sarà sempre diversa.
  4. Di nuovo la nostra app si preoccuperà mediante una post con protocollo https verso l’indirizzo indicato nel QR code di inviare la chiave pubblica e la firma (ovvero cifra l’indirizzo internet del sito completo di nonce) mediante la chiave privata correlata alla pubblica anzidetta.
  5. Il server di autenticazione dopo aver ricevuto il post restituisce un codice di ritorno standard del protocollo http: “200 OK“. A questo punto una notifica che la sequenza di login è stata inviata, recepita, e correttamente verificata, viene fornita all’utente.
  6. Il server di autenticazione ha quindi tutto quel che serve per identificare la nostra identità che è stata miscelata con il nome dominio del server stesso e pertanto sarà differente e non commparabile con la nostra medesima identità (o ID unico) di un altro sito con differente dominio.

 

Qui sotto lo schema che lo stesso Steve Gibbson ha disegnato sulla pagina ove ha descritto le specifiche del protocollo:

 

  SQRL Public Key Generation and Authentication

 

(*) Una chiave utente sarà una sorta di ID unico nostro una chiave o masterkey da utilizzare per tutti i siti, insomma una nostra identità digitale.

 Senza entrare in ulteriori livelli di dettaglio del sistema, questo non adotta niente di nuovo. Le tecnologie utilizzate sono tutte note da decenni. Il QR code (QR sta per Quick Response) è di origini giapponesi ed è nato nel 1960! Le chiavi pubbliche e private sono tecnologie crittografiche risalenti agli anni 70 ideate dal trio di matematici Rivest, Shamir e Adleman. L’innovazione sta “semplicemente” nella corretta sequenza e combinazione degli elementi sopra indicati, ove tra l’altro il QR-Code non è poi necessario, ma solo un modo per semplificare la vita ed accelerare il login.

I vantaggi di questa soluzione sono numerosi: la medesima chiave utente (masterID) potrà essere utilzzata su n siti (con n grande a piacere) lasciandola identica e ciò nonostante il fatto che quel che forniremo come login sarà una sequenza di bit sempre diversa, grazie al hmac della URL del sito + nonse(server) + cifratura mediante chiave privata dei dati precedenti  + nonse(client).

Grazie Steve Gibbson!

L.R.