L’abbiamo scritto più volte: conservare le proprie credenziali di accesso nel password manager del browser non è affatto sicuro. È vero, infatti, che il browser permette di impostare una master password a protezione di dati talmente sensibili (Chrome, ad esempio, chiede di confermare la password dell’account utente in uso o chiede il PIN associato all’account Windows) ma come abbiamo più volte ricordato è molto semplice per un processo malevolo in esecuzione sul sistema appropriarsi di tutte le credenziali memorizzate nel password manager del browser.
Basta provare WebBrowserPassView di Nirsoft per rendersi conto di quanto sia semplice estrarre le password memorizzate nei vari browser web: Password dimenticata, come trovare quella di Windows, Gmail e di altri servizi.
Di recente, con il rilascio di febbraio 2020 di Chrome 80, Google ha modificato l’approccio utilizzato dal suo browser per la gestione dell’archivio delle credenziali.
Fino a ieri, infatti, Chrome si appoggiava alla DPAPI integrata nel sistema operativo Microsoft, una libreria che viene offerta fin dai tempi di Windows 2000 e che permette di attivare operazioni di crittografia simmetrica.
A partire da Chrome 80, il browser di Google si basa ancora sull’utilizzo della libreria DPAPI ma ha aggiunto un nuovo livello di protezione: nomi utente e password vengono infatti dapprima crittografati con lo standard AES quindi la chiave viene cifrata usando la funzione CryptProtectData
di DPAPI. L’inversione del processo e l’ottenimento della chiave AES-256 viene effettuata con la funzione CryptUnprotectData
.
I tecnici di Google hanno spiegato di aver assunto questa misura per mettere al tappeto i componenti malevoli progettati per rubare le credenziali di accesso altrui: “con Chrome 80 abbiamo apportato modifiche che ci permetteranno di isolare lo stack di rete del browser all’interno del processo di sandboxing. Come parte integrante di queste modifiche abbiamo cambiato l’algoritmo per la gestione delle password e dei cookie cifrati e abbiamo modificato i meccanismi di memorizzazione interrompendo il funzionamento degli attuali tool usati dai malware writer“.
Il fatto è che a distanza di soli 4 giorni dalla pubblicazione della nuova versione stabile di Chrome, i malware write di erano già attrezzati e il codice utile a superare la misura di protezione adottata da Google veniva venduto online per appena 90 dollari.
Un’ulteriore conferma è arrivata proprio da Nir Sofer (Nirsoft) che ha aggiornato la sua utilità Chromepass, eccellente per estrarre le credenziali dal password manager di Chrome per poi reimportarle, ad esempio, su un nuovo sistema previa reinstallazione del browser: Come esportare e importare password Chrome.
È lo stesso sviluppatore a soffermarsi su alcuni dettagli tecnici: “aggiunto il supporto per la nuova crittografia delle password di Chromium/Chrome a partire dalla versione 80. Tenere presente che il file Local State
(si trova nella cartella %localappdata%\Google\Chrome\User Data
, aggiungiamo noi) è necessario per decifrare le password di Chrome 80 e versioni successive. Nella maggior parte dei casi, ChromePass troverà automaticamente il vostro file Local State
ma se dovesse riuscire a trovarlo per un qualunque motivo, basterà utilizzare la finestra “Advanced options” per specificarlo“.
A suo tempo i tecnici di Google avevano pure fatto presente che se il browser mostra la password celata da pallini o asterischi: non è un problema (basta modificare la tipologia di una tag HTML per conoscere la password in chiaro).
Oltre al suggerimento di valutare eventualmente l’utilizzo di password manager sicuri separati dal browser ed evitare che i propri sistemi siano in qualche modo presi di mira da componenti malware, è sempre più importante attivare la crittografia del sistema con Bitlocker: BitLocker, come proteggere i dati su hard disk e SSD e chiedere una password all’avvio. In questo modo ci si potrà efficacemente proteggere da coloro che possono fisicamente mettere mano sui nostri sistemi, soprattutto quelli che si portano con sé in viaggio.