C'è un modo per fare in modo che il browser rimuova immediatamente la password di accesso dalla sua memoria, come sembra fare Chrome su accounts.google.com?

22

Ho fatto alcuni test e ho scoperto che un dump di memoria di Chrome non contiene la password di gmail.com/Google dopo l'accesso a quel sito (l'accesso avviene su accounts.google.com).

(Il mio sistema è Windows 10 64bit Professional, Chrome 60).

Posso trovare le password di tutti gli altri siti che ho provato. Anche quando faccio lo stesso in Firefox, la password di gmail.com sarà memorizzata nel dump della memoria. Questo è un comportamento specifico di Chrome.

Ho provato un sacco di cose per impedire che la password venga memorizzata in un dump della memoria. Anche quando ho cancellato la password nel campo della password prima di inviare il modulo, la password originale (senza hash) sarà contenuta nel dump della memoria. Ho provato con autocomplete="off", ho provato a inviare la password attraverso un campo "nascosto" e un campo di testo invisibile. (In modo che il browser non tenti di memorizzare la password nel gestore password incorporato).

Ho anche, ovviamente, provato con la memorizzazione disattivata delle password, cancellato la cache, sperimentato con Cache-Control / Pragma / Expires -headers, e cosa no. E so che il sito Web di Gmail invia effettivamente la password non modificata / originale nella richiesta al server. Quindi non esiste alcun metodo sul lato client per crittografare / hash / offuscare la password.

Quindi la mia domanda è: qualunque cosa usi gmail.com (accounts.google.com) in modo che la password non sia contenuta in un dump della memoria, sarebbe possibile fare lo stesso per il mio sito web? O forse è una funzionalità specifica di gmail.com con hard-coding del browser Chrome?

Potrebbe essere una coincidenza, perché quel sito causa molta attività di lettura / scrittura sulla memoria, così che Garbage Collector pulisce più velocemente, o qualcosa del genere?

    
posta Martin Fürholz 23.09.2017 - 09:21
fonte

2 risposte

2

Da quello che posso immaginare hai solo due opzioni qui:

Opzione 1: funziona da Google

Inizia osservando da vicino il comportamento di Javascript / rete. Come qualcuno ha menzionato nei commenti, lavorare da un clone totale potrebbe dare buoni risultati. Tuttavia, personalmente, non vedrei l'ora di fare questo tipo di debugging.

Opzione 2: alcuni javascript che (potrebbero) aiutare

Tutto tranne l'invio della password nel POST. Per esempio qui ci sono tutte le soluzioni valide (non testate):

  • Prova a sostituire ogni carattere mentre viene digitato (ad esempio crittografando la chiave originale con un codice di flusso con una chiave specifica della sessione, quindi può essere recuperato dall'altra parte)
  • Prova semplicemente a catturare l'input della chiave e simularlo nella casella di testo (in questo modo niente viene memorizzato nella cache - dubito che i tasti vengano memorizzati nella cache: D)
  • Non è garantito che funzioni: ma prova a manipolare il contenuto di input subito prima della pubblicazione (ma tieni presente che qualcosa di semplice come un Ceaser Shift in realtà non funzionerà, perché un attaccante abbastanza furbo DOVRÀ semplicemente capovolgerlo)

Ho il strong sospetto che il secondo approccio nella lista sopra sia l'unica cosa che funzionerà (catturando input chiave), perché è probabile che gli input sulle caselle di testo siano ancora tenuti in memoria (non ho idea di come Google gestisca questo - ma ho una strong fiducia nella seconda opzione della lista).

Forse più tardi oggi / domani pubblicherò un esempio minimo con i test

    
risposta data 08.02.2018 - 03:56
fonte
-1

No, non è possibile. A meno che non si desideri creare il proprio browser e crittografare il dump del browser o creare un client di autenticazione del token agnostico del servizio.

    
risposta data 06.11.2017 - 03:35
fonte

Leggi altre domande sui tag