Nel campo della sicurezza informatica è raro imbattersi in una soluzione in grado di coniugare pienamente praticità e protezione. Eppure, le passkey si prefiggono proprio questo obiettivo ambendo a rivestire il ruolo di “password killer“. Una tecnologia, cioè, capace di sostituire le password, così odiate ma allo stesso tempo essenziali per difendere i propri dati e i flussi di lavoro.
Al contrario delle password tradizionali, le passkey non utilizzano un segreto condiviso tra utente e server. Invece, poggiano il loro funzionamento su una coppia di chiavi crittografiche, una pubblica e una privata. La chiave pubblica è trasmessa al server che gestisce l’account dell’utente; la chiave privata è invece conservata in un’area sicura presente nel dispositivo dell’utente.
Per superare la procedura di autenticazione, l’utente deve dimostrare di essere in possesso della chiave privata corrispondente alla chiave pubblica registrata online, ad esempio da un server remoto. Quando si effettua l’accesso, il meccanismo basato sulle passkey provvede a generare una challenge (“sfida”) utilizzando la chiave pubblica dell’utente. Solo chi possiede la chiave privata può rispondere correttamente alla sfida, dimostrando così la sua identità.
Come funzionano le password
Prima di addentrarci nei “pro” e “contro” delle passkey, ricordiamo brevemente come funziona l’autenticazione con la classica coppia username-password.
Abbiamo detto nell’introduzione che l’autenticazione tradizionale affonda le sue radici sulla condivisione di un segreto tra utente e server remoto. La password che l’utente usa per accedere ai servizi, è nota al server.
Le password non dovrebbero mai essere salvate in chiaro sui server remoti: nell’articolo dedicato a come conservano le password i siti Web, abbiamo visto che l’hashing (attraverso l’uso di un algoritmo sicuro), è una pratica irrinunciabile. L’hash di una password è una sua rappresentazione derivata: è facile calcolare l’hash di una password, ma deve risultare di fatto impossibile tornare alla password in chiaro a partire dal suo valore hash.
Quando si digita la password per accedere a un servizio, la password è dapprima sottoposta ad hashing in locale quindi il valore hash è inviato al server. Se questo valore corrisponde all’hash della password conservato sui server del fornitore del servizio, l’accesso è autorizzato.
In un mondo ideale, se un qualunque malintenzionato riuscisse a rubare gli hash delle password lato server, l’operazione dovrebbe essere di fatto infruttuosa perché il processo di hashing non è invertibile. In realtà, se l’utente si fosse servito di una password semplice, i criminali informatici potrebbero avere già precalcolato tutte le versioni “hashed” delle password più comuni. Imbattendosi in un hash noto, possono risalire immediatamente alla password usata. Ecco perché è bene seguire alcune regole fondamentali per creare password e utilizzarle in sicurezza.
I vantaggi del processo di autenticazione mediante passkey
L’approccio alla base del funzionamento delle passkey offre diversi vantaggi. Innanzitutto, semplifica il processo di autenticazione, in quanto le chiavi sono generate e gestite automaticamente, senza la necessità di ricordarle o digitarle (come avviene invece nel caso delle password).
Ogni passkey, inoltre, è legata a uno specifico sito/server: la coppia di chiavi non può essere quindi utilizzata su siti “fasulli”. Decade quindi l’efficacia degli attacchi phishing: i criminali informatici non possono più creare una copia di un sito Web famoso o di un servizio online con l’intento di rubare le credenziali di accesso altrui. Ciò semplicemente perché le passkey non funzionano con i siti che non sono quelli originali e autorizzati a gestire le credenziali di ciascun utente. La chiave pubblica, di per sé, non ha alcuna valenza per i criminali informatici.
Con le passkey, l’accesso a un sito Web o a un’app si riduce all’utilizzo della stessa modalità sfruttata per sbloccare lo smartphone, il tablet, il notebook o il sistema desktop. È ad esempio richiesto l’inserimento di un codice PIN oppure l’utilizzo del riconoscimento facciale, dell’impronta digitale o di una sequenza. Qui l’elenco dei dispositivi compatibili.
Le passkey funzionano intrinsecamente come autenticazione a due fattori (2FA). Quando si effettua un accesso mediante passkey, infatti, il meccanismo combina qualcosa che avete (il vostro dispositivo) con qualcosa che conoscete o possiedete (come un PIN, un’impronta digitale o il riconoscimento facciale). È proprio “il sale” della 2FA (Two Factor Authentication).
I principali svantaggi delle passkey
Presentate come vere e proprie sostitute delle password, le passkey pongono comunque diverse sfide.
Partiamo dal principio. Abbiamo detto che la chiave privata usata ai fini dell’autenticazione, è conservata in un’area sicura (vault) disponibile in ciascun device client. È tuttavia cosa assai comune, per gli utenti, servirsi di più dispositivi diversi. Autenticarsi correttamente usando dispositivi differenti può risultare complicato, se le chiavi private sono memorizzate in un unico dispositivo.
Attualmente, la soluzione prevalente prevede l’autenticazione tramite un dispositivo secondario utilizzando un codice QR, un collegamento con il telefono (Bluetooth, NFC o USB) e un server cloud (a sua volta chiamato in causa come parte del processo). Questa procedura, sebbene apparentemente semplice per l’utente, presuppone l’effettuazione di molteplici operazioni “dietro le quinte”.
Un altro tema cruciale è legato al recupero dell’account in caso di perdita del dispositivo contenente le chiavi private. Attualmente, molte piattaforme offrono opzioni di recupero basate su domande di sicurezza o invio di link per il reset della password. Tuttavia, ciò potrebbe compromettere la sicurezza delle stesse passkey, poiché si ricorre di nuovo alle password tradizionali. Questo documento approfondisce le strategie di recupero dell’account nel caso delle passkey.
Il problema della sincronizzazione delle chiavi
Una soluzione per affrontare il problema legato all’uso di più dispositivi differenti, potrebbe essere quello di generare più coppie di chiavi pubblica-privata, una per ciascun device. Ad esempio, per accedere al medesimo sito Web tramite passkey, si potrebbe creare una coppia di chiavi sullo smartphone, un’altra sul notebook e così via. Va detto, tuttavia, che se si perdesse un dispositivo o si subisse un furto, ogni coppia di chiavi dovrà essere ritirata (leggasi, annullata).
La sincronizzazione sicura e continua delle chiavi private tra dispositivi diversi rappresenta di per sé un problema importante. Sebbene alcuni fornitori di password manager stiano lavorando su soluzioni per gestire le passkey in modo intelligente, al momento non esiste un metodo universalmente accettato e interoperabile.
Apple, Google e Microsoft hanno tutte implementato il supporto iniziale per le passkey. Poiché, evidentemente, queste aziende non sono disposte a gestire le richieste di supporto degli utenti che perdono i loro dispositivi, hanno creato meccanismi per il backup e la sincronizzazione delle passkey tra i dispositivi. Al momento, però, si tratta di meccanismi proprietari: un computer basato su Windows e un iPhone, ad esempio, non potranno sincronizzare le chiavi personali degli utenti. A meno che l’utente non ricorra al metodo basato sull’utilizzo del codice QR, citato in precedenza.
Le passkey sono vulnerabili agli attacchi di session hijacking
Pur rappresentando un vero e proprio baluardo contro il phishing, le passkey restano comunque vulnerabili (così come accade con le modalità di autenticazione di tipo tradizionale) agli attacchi di session hijacking.
Dopo che un utente ha effettuato il login tramite passkey, un criminale informatico può ad esempio intercettare il cookie di sessione creato sul client e utilizzarlo per impersonare l’identità di un altro utente.
Anche nel contesto delle passkey, gli attacchi di session hijacking possono essere particolarmente pericolosi. Poiché le passkey sono associate a una specifica sessione, un attaccante potrebbe intercettare o manipolare tale sessione per ottenere accesso all’account dell’utente, senza la necessità di conoscere direttamente le chiavi private.
È bene adottare le passkey sin da subito?
Sebbene le passkey abbiano effettivamente il potenziale per rimpiazzare non soltanto le password tradizionali ma anche l’autenticazione a due fattori, per adesso suggeriamo ancora di muoversi con i proverbiali piedi di piombo.
Come sappiamo, per Google le passkey sono diventate meccanismo predefinito di autenticazione e tanti vendor si sono gettati a capofitto nel supporto di questo nuovo strumento. Da parte nostra, ci sentiamo di suggerire di adottare le passkey con cautela.
Sono infatti necessarie soluzioni che affrontino in modo efficace i nodi legati con la gestione multi-dispositivo e il recupero degli account. È inoltre essenziale che le soluzioni basate sulle passkey siano interoperabili sulle varie piattaforme, al fine di assicurarne un’adozione sicura su larga scala.
Nel frattempo, c’è una directory che raccoglie l’elenco dei siti Web compatibili con il sistema delle passkey. Il numero delle piattaforme compatibili crescerà indubbiamente nel prossimo futuro ma è necessaria una specifica aperta per gestire e risolvere i problemi residui che le passkey hanno lasciato sul tavolo.
Insomma, le passkey rappresentano un passo avanti enorme ma, diversamente da quello che riportano tante testate online, per sostituire davvero le password tradizionali passerà ancora del tempo.
Credit immagine in apertura: iStock.com – D3Damon