Migliorare la Sicurezza delle Password con le Innovazioni dell'Autocompletamento
Metodi innovativi per migliorare la sicurezza delle password durante i processi di completamento automatico.
― 7 leggere min
Indice
- Problemi Attuali con le Password
- Investigare Soluzioni di Sicurezza
- La Migliore Soluzione: Compilazione Automatica di Password False
- Testare la Soluzione
- Come Funziona l'Inserimento delle Password
- Rischi di Furto delle Password
- Tracker Web
- Script Malevoli
- Estensioni del Browser Dannose
- Il Ruolo dei Gestori di Password
- Idee di Design per una Compilazione Automatica di Password Sicura
- Design 1: Prove a Zero Conoscenza
- Design 2: Attributo di Modulo No-Script
- Design 3: Iniezione di Nonce Basata su JavaScript
- Design 4: Iniezione di Nonce Basata su API
- Design 5: Iniezione di Nonce Basata su Browser
- Implementare il Nostro Design Scelto
- Come Funziona
- Valutare la Nostra Soluzione
- Sovraccarico e Performance
- Affrontare Potenziali Preoccupazioni
- Attacchi di Negazione del Servizio
- Confusione degli Utenti
- Direzioni Future per la Ricerca
- Conclusione
- Fonte originale
- Link di riferimento
L'autenticazione basata su password è ovunque online, ma ha ancora molti problemi legati alla sicurezza e alla facilità d'uso. Gli utenti spesso faticano a gestire le loro password, portando a pratiche deboli come il riutilizzo delle stesse password su diversi siti. I Gestori di password possono aiutare gli utenti a memorizzare e creare password forti e uniche. Tuttavia, ci sono rischi su come queste password vengono utilizzate, specialmente quando vengono compilate automaticamente dal gestore.
Una delle principali preoccupazioni è che script dannosi che girano su pagine web o estensioni del browser possono rubare le password dopo che sono state compilate. Questo documento esamina come i gestori di password possono proteggere meglio le password senza che gli utenti debbano cambiare il loro comportamento.
Problemi Attuali con le Password
Nonostante i loro tanti problemi, le password sono ancora il modo principale per effettuare accesso a conti online. I gestori di password aiutano consentendo agli utenti di gestire le loro password, rendendo più facile creare password casuali e tenerne traccia. Tuttavia, studi recenti mostrano che gli utenti spesso non utilizzano funzioni importanti come la generazione di password e gli audit perché le trovano troppo complicate.
Questo solleva una domanda chiave: Cosa possono fare i gestori di password per aumentare la sicurezza delle password senza fare affidamento sugli utenti per cambiare le loro abitudini?
Investigare Soluzioni di Sicurezza
Per affrontare questo problema, esaminiamo come i gestori di password possono mantenere le password al sicuro dal furto durante il processo di compilazione automatica. Questo include la protezione contro i tracker web, gli script dannosi e le estensioni del browser malevole.
Abbiamo esplorato cinque possibili design per una maggiore sicurezza nell'inserimento delle password. Ogni design ha punti di forza e di debolezza diversi in termini di sicurezza e facilità di implementazione.
La Migliore Soluzione: Compilazione Automatica di Password False
Dopo la nostra analisi, abbiamo scoperto che il miglior approccio è che i gestori di password compilino prima una password falsa. Poi, quando un utente invia il modulo, il browser può sostituire rapidamente la password falsa con quella reale giusto prima di inviare la richiesta.
Questo metodo limita la possibilità che script dannosi o estensioni del browser accedano alla vera password perché non viene mai mostrata nel codice della pagina web. Abbiamo creato un prototipo utilizzando il browser Firefox per testare questo metodo.
Testare la Soluzione
Abbiamo effettuato test sui primi 1.000 siti web per vedere se la nostra soluzione funzionava contro script e estensioni dannose. Abbiamo scoperto che il nostro design ha fermato con successo il furto di password nel 97% di quei siti. Per quelli pochi che non hanno funzionato, il gestore di password potrebbe facilmente tornare al suo comportamento normale senza causare problemi agli utenti.
Come Funziona l'Inserimento delle Password
Per capire come proteggere l'inserimento delle password, vediamo i passi coinvolti:
- Un utente visita un sito web con un modulo di accesso.
- Inserisce la propria password o viene compilata automaticamente dal gestore di password.
- Quando il modulo viene inviato, il browser invia queste informazioni al sito web.
- Il server elabora la password in modo appropriato.
Possono verificarsi vari rischi durante questi passaggi, specialmente quando la password è esposta nel codice della pagina web o durante la trasmissione.
Rischi di Furto delle Password
Abbiamo identificato diversi modi in cui le password possono essere rubate:
Tracker Web
Questi sono script che monitorano gli utenti su diversi siti, spesso senza che ne siano consapevoli. Alcuni studi hanno trovato che circa il 2-3% dei siti popolari ha tracker che possono rubare password. Possono raccogliere qualsiasi informazione riescano a trovare, ma non sono tipicamente progettati per mirare specificamente alle password.
Script Malevoli
Script posizionati su un sito web possono rubare password dopo che sono state inserite. Una tattica comune si chiama cross-site scripting (XSS), dove un attaccante costringe il sito a eseguire il proprio codice. Esistono molti problemi noti su come avvengono questi attacchi, rendendo cruciale trovare difese migliori.
Estensioni del Browser Dannose
Le estensioni possono anche rubare password, sia iniettando script dannosi che leggendo le richieste di rete in uscita. In alcuni casi, estensioni dannose conosciute sono state trovate nei negozi ufficiali dei browser, portando a milioni di download.
Il Ruolo dei Gestori di Password
I gestori di password mirano a creare, memorizzare e compilare automaticamente le password in modo sicuro. Tuttavia, possono anche essere un punto di debolezza. Se non implementati con attenzione, possono consentire a script dannosi di accedere alle password che memorizzano.
La nostra ricerca ha esaminato come i gestori di password potrebbero essere modificati per prevenire il furto durante le compilazioni automatiche. Abbiamo anche valutato le loro attuali debolezze e proposto miglioramenti.
Idee di Design per una Compilazione Automatica di Password Sicura
Abbiamo elaborato cinque potenziali design per rendere la compilazione automatica delle password più sicura:
Design 1: Prove a Zero Conoscenza
In questo metodo, il gestore di password si autenticherebbe direttamente con i siti web senza rivelare la password reale. Tuttavia, ciò richiede cambiamenti dalla parte del sito, rendendo improbabile una diffusione su larga scala.
Design 2: Attributo di Modulo No-Script
Un nuovo attributo del modulo potrebbe essere aggiunto per impedire agli script di accedere a informazioni sensibili. Sebbene ciò possa aiutare a proteggere le password, non affronta tutte le minacce.
Nonce Basata su JavaScript
Design 3: Iniezione diQuesto design propone di utilizzare una password falsa (nonce) che viene sostituita con la vera password durante l'invio del modulo. Tuttavia, gli script dannosi potrebbero ancora interferire con questo processo.
Design 4: Iniezione di Nonce Basata su API
In questo caso, la sostituzione avviene nei processi interni del browser, offrendo una protezione migliore contro gli script malevoli. Questo design richiede cambiamenti al browser ma non ai siti web.
Design 5: Iniezione di Nonce Basata su Browser
Questo è il design più sicuro che abbiamo trovato. Coinvolge il browser nella gestione dell'iniezione di nonce, rendendo molto difficile per le estensioni dannose accedere alla vera password. Richiede modifiche al browser stesso ma potrebbe essere molto efficace senza alterare il funzionamento dei siti web.
Implementare il Nostro Design Scelto
Ci siamo concentrati sull'implementazione del Design 5 perché offre una forte sicurezza contro molti tipi di attacchi. Abbiamo modificato sia il browser Firefox che il gestore di password Bitwarden per supportare questo design.
Come Funziona
Quando un gestore di password compila automaticamente un nonce, il browser scansiona le richieste web in uscita. Se rileva il nonce, controlla se tutto è corretto e poi sostituisce il nonce con la vera password prima di inviare la richiesta su Internet.
Questo processo avviene senza esporre la vera password al codice della pagina web o agli script dannosi.
Valutare la Nostra Soluzione
La nostra implementazione è stata testata su diverse pagine di accesso per garantire che non interrompesse la funzionalità. Abbiamo scoperto che funzionava nel 97% dei siti testati, migliorando significativamente la sicurezza senza influenzare l'esperienza utente.
Sovraccarico e Performance
Abbiamo misurato le prestazioni del nostro browser modificato e abbiamo trovato che eventuali ritardi causati dai nostri miglioramenti sono stati minimi. I controlli di sicurezza aggiunti hanno avuto un piccolo effetto sulle prestazioni complessive, ma in generale gli utenti non avrebbero notato alcuna differenza.
Affrontare Potenziali Preoccupazioni
Sebbene il nostro design mostri grandi promesse, ci sono ancora alcune questioni da considerare:
Attacchi di Negazione del Servizio
Un attaccante potrebbe cambiare i nonce per interrompere il processo di accesso, ingannando gli utenti a inserire le proprie password manualmente.
Confusione degli Utenti
Se gli utenti vedono la password falsa compilata automaticamente, potrebbe causare confusione. Tuttavia, studi suggeriscono che la maggior parte degli utenti ignora la password compilata automaticamente.
Direzioni Future per la Ricerca
È necessaria ulteriore ricerca per trovare modi per rendere il processo di inserimento della password più sicuro e user-friendly. Esplorare come i gestori di password possono rilevare attacchi basati sull'uso di nonce è una potenziale direzione.
Conclusione
Questo lavoro offre un modo per migliorare la sicurezza dell'inserimento delle password tra i browser. Implementando un metodo di iniezione di nonce, possiamo ridurre significativamente i rischi di furto delle password, specialmente da script dannosi e estensioni. Anche se la nostra implementazione potrebbe non essere perfetta, fornisce una solida base per pratiche migliori in futuro.
Mentre spingiamo per un'adozione più ampia di questi metodi, l'obiettivo è creare un'esperienza online più sicura per tutti, rendendo la gestione delle password sia più facile che più sicura.
Titolo: Passwords Are Meant to Be Secret: A Practical Secure Password Entry Channel for Web Browsers
Estratto: Password-based authentication faces various security and usability issues. Password managers help alleviate some of these issues by enabling users to manage their passwords effectively. However, malicious client-side scripts and browser extensions can steal passwords after they have been autofilled by the manager into the web page. In this paper, we explore what role the password manager can take in preventing the theft of autofilled credentials without requiring a change to user behavior. To this end, we identify a threat model for password exfiltration and then use this threat model to explore the design space for secure password entry implemented using a password manager. We identify five potential designs that address this issue, each with varying security and deployability tradeoffs. Our analysis shows the design that best balances security and usability is for the manager to autofill a fake password and then rely on the browser to replace the fake password with the actual password immediately before the web request is handed over to the operating system to be transmitted over the network. This removes the ability for malicious client-side scripts or browser extensions to access and exfiltrate the real password. We implement our design in the Firefox browser and conduct experiments, which show that it successfully thwarts malicious scripts and extensions on 97\% of the Alexa top 1000 websites, while also maintaining the capability to revert to default behavior on the remaining websites, avoiding functionality regressions. Most importantly, this design is transparent to users, requiring no change to user behavior.
Autori: Anuj Gautam, Tarun Kumar Yadav, Kent Seamons, Scott Ruoti
Ultimo aggiornamento: 2024-02-08 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2402.06159
Fonte PDF: https://arxiv.org/pdf/2402.06159
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.