Vanadium 50 said:
Please trust me when I assure you that if I ever seem certain and later turn out to have been wrong, it won't have been the first time such a confluence of events has occurred.
Let's go with an oversimplified example. Your password is abcdef. The algorithm to generate the real password is to add together the piece on disk, aaaddd with the piece in the cloud, 012012. You are telling me that after the authentication neither 012012 nor abcdef exists anywhere in memory and you are 100% sure of this?
I can't say what the interaction between 'the cloud' and the client is. If your login password is abcdef, and its encrypted hash is aaaddd, it is not clear to me what 'piece in the cloud' is ever added with aaaddd. What is stored on the site for which you have a login password is its server's own hash of some other clear text password, say abcxyz. That clear text password is not stored on your machine when your browser remembers a password for you.
If your browser, e.g. Chrome, remembers abcxyz as your password at site1.net for you, it uses the DPAPI to generate an encrypted version of it that is dependent on your Windows login. When you return to the site to log in again, and Chrome remembers abcxyz for you, it doesn't pull it in from clear text on your machine. It retrieves it in the form in which it had previously encrypted it using a key that is dependent on your Windows login password, and decrypts it by again calling the DPAPI.
Here's a link to an article describing the DPAPI:
https://docs.microsoft.com/en-us/pr...55(v=msdn.10)#windataprotection-dpapi_topic04
In my post, I used the words "clear text password" instead of your term "real password". Specifically, in response to your contention "Somewhere in memory your real password exists.", I responded, "Not after password validation is concluded."; i.e. the password that you just entered at the Windows login prompt is NOT stored for the life of the session, but is discarded at the completion of validation.
Subsequently, during the Windows session, when Chrome offers to remember a password for a site, having intercepted the clear text password, if authorized by the user to save the password, uses the hash of your Windows password to generate a key by which to encrypt, to a new hash, your password for the site, and stores that hash in its own local database on your PC, NOT on its servers.
If you disconnect your machine from the net, you can still clear saved passwords from Chrome. (I'm not referring here to authorizations to use your Google account credentials.), because the encrypted passwords are stored locally. All that has happened is that Chrome has encrypted a site password using indirectly a locally stored hash of your Windows login password, and has stored the hashed result locally on your machine. That password is not compromised if the integrity of your Windows login password is intact.
If you log off and power off your machine, a subsequent possessor who does not have your login password will find it encrypted, and will find any site passwords saved on the machine by Chrome to be also encrypted. All the data that is encrypted via the Windows DPAPI, or (on non-Windows machines) via the OSX or Linux keychain mechanism, is dependent on your login password.
That leads to the question, how difficult would it be to find your hashed login password by reading the HDD, and then transform it the same way the DPAPI would, and then use it to decrypt everything that was encrypted using DPAPI, i.e. all your site passwords?
The DPAPI article linked above says:
Because DPAPI requires a password to provide protection, the logical step is for DPAPI to use a user's logon password, which it does, in a way. DPAPI actually uses the user's logon credential. In a typical system, in which the user logs on with a password, the logon credential is simply a hash of the user's password.
From your post:
Laptop stolen? So were your passwords.
and from my response:
Only hashes are stored on the HDD.
If the login password hash can be recovered and used to decrypt the other hashes, then storing the hashes for the browser-saved site passwords instead of saving them in clear text offers only a veil of obfuscation against someone in physical possession of the device, rather than the strength of the encryption algorithm by which the hashes are generated -- no encryption algorithm can offer secrecy greater than the secrecy of its key.
So, on review, I can't say that I'm sure that someone who steals your PC can't use reasonably straightforward forensic techniques to recover all your site passwords that your browser remembers.