Come fa un browser Web a salvare le password?

6

In che modo i browser Web attuali (o client di posta mobile e qualsiasi software in generale) salvano le password degli utenti? Tutte le risposte sulla memorizzazione delle password dicono che dovremmo memorizzare solo gli hash, non la password stessa. Ma sto avendo difficoltà a cercare sul Web cercando di trovare le migliori tecniche per memorizzare le password quando sappiamo che ne avremo bisogno in seguito in testo normale - senza memorizzarle in testo normale, senza usare una crittografia debole (chiave conosciuta) e senza chiedere all'utente una password principale. Qualche idea?

    
posta marcus 25.03.2012 - 07:18
fonte

3 risposte

3

localmente è memorizzato come testo normale o crittografato.

quando crittografato, la chiave di decodifica può essere riparata per browser (codificata nel file eseguibile), per macchina (generata al momento dell'installazione e archiviata nella directory di installazione) o per utente (generata al primo utilizzo di Gestione password e archiviata in the %appdata% )

oppure possono essere combinati: la chiave a livello utente viene crittografata con la chiave a livello macchina in modo che quando il malware preleva il file in cui sono archiviate le password, viene memorizzato che è inutile senza i tasti a livello utente e macchina

Alcuni browser ti permettono anche di usare una password "principale" che è combinata con la chiave esistente per fornire più sicurezza

quando si utilizza un (buon) servizio di sincronizzazione le password non vengono mai memorizzate in testo normale sul server. Xmarks ad esempio utilizza una chiave separata per la normale password di sincronizzazione per crittografare le password e mai invia quella chiave al server (se si desidera vedere localmente le password memorizzate sul sito è decifrato)

    
risposta data 25.03.2012 - 14:08
fonte
10

Le password sono archiviate in testo normale, a meno che non venga utilizzata una password principale.

Quando le persone dicono che è necessario memorizzare solo hash di password, stanno parlando dello spazio lato server , non lato client.

lato server

Quando hai il tuo sito web quando gli utenti possono registrarsi / accedere con le loro password, non è necessario (e non devono mai) memorizzare le password stesse:

  • non è necessario memorizzare password semplici , poiché è sufficiente verificare che la password utilizzata durante l'accesso corrisponda alla password fornita dall'utente durante la registrazione. Puoi farlo con hash, dal momento che password diverse avrebbero hashes¹¹ diversi.

  • tu non devi memorizzare password semplici . Che cosa succede se il tuo sito web viene violato? Inoltre, molte persone riutilizzano più volte le stesse password, quindi praticamente concedi a qualsiasi hacker la possibilità di accedere agli account Facebook degli utenti, all'account di posta elettronica, ecc.

lato client

I browser sono diversi. Memorizzano le password sul computer client e devono avere una password originale, non un hash.

Ciò significa che quelle password sono memorizzate in testo normale nella maggior parte dei casi.

  • Per quanto riguarda la sicurezza, non importa troppo. Queste password sono memorizzate in una directory che appartiene all'account utente. Ciò significa che dipende dal sistema operativo (e dall'utente) per configurare correttamente le autorizzazioni ai file degli utenti e per limitare l'accesso al file che contiene le password all'utente stesso.

  • Saggia esperienza utente, questa è la cosa più semplice da fare. Un'altra possibilità è crittografare quelle password con una password principale, nel qual caso l'utente dovrebbe fornire la password principale ogni volta che apre il browser . Sono abbastanza sicuro che molti utenti non apprezzerebbero mai questo.

    Se la password principale è memorizzata da qualche parte, si pone lo stesso problema: se memorizzi la password principale in testo normale, qual è il punto? Se lo cripti, devi avere una password master-master.

Sync

Si noti che la maggior parte dei browser consente agli utenti di sincronizzare i propri dati su più macchine. La sincronizzazione utilizza un server remoto per memorizzare cookie, cronologia, segnalibri e password. Ad esempio, Chrome utilizza i server di Google per archiviare questi dati.

In questo caso, le password non vengono mai memorizzate in testo normale sui server di sincronizzazione , altrimenti sarebbe un problema di sicurezza. In Chrome, devi scegliere la password principale per la sincronizzazione (o utilizzare quella del tuo account Google). Questa password principale verrà utilizzata per crittografare le password (sempre) e altri dati come la cronologia oi segnalibri (facoltativo).

¹ Per semplicità, puoi immaginare che le diverse password non possano avere gli stessi hash. In teoria, questo è sbagliato, poiché potrebbero esistere collisioni. In pratica, se si utilizza un algoritmo di hash strong, come SHA-256, è possibile trascurare il rischio di collisione per un sito Web anche con milioni di utenti registrati. Le cose sono diverse se usi un algoritmo hash obsoleto e deprezzato, come MD5.

    
risposta data 25.03.2012 - 08:34
fonte
0

Questi programmi richiedono la password in chiaro (devono essere inviati quando richiesto). È quindi memorizzato come testo normale. Molti browser consentono di crittografare tutte le password memorizzate con una password principale (richiesta solo una volta).

    
risposta data 25.03.2012 - 07:44
fonte

Leggi altre domande sui tag