I don't know how the RemoteDesktopManager does it, but I assume it would be the same as how it stores it in a .RDP file.
CryptProtectData which (with the settings they used for RDP) only allows the string to be decrpyted on the same machine as the one that encrypted it due to the fact that it uses the unique ID of the the windows install as part of the encryption processes (the CRYPTPROTECT_LOCAL_MACHINE flag). So yes a attacker could decrypt your password, but they could only do it on the machine that stored the password, they can not do a "offline" attack.
Note this is all for .RDP
files. I have no way of knowing if Remote Desktop Manager does the same thing.
Short answer: No*
Passwords stored on your local machine can be decrypted by Chrome, as long as your OS user account is logged in. And then you can view those in plain text. At first this seems horrible, but how did you think auto-fill worked? When that password field gets filled in, Chrome must insert the real password into the HTML form element - or else the page wouldn't work right, and you could not submit the form. And if the connection to the website is not over HTTPS, the plain text is then sent over the internet. In other words, if chrome can't get the plain text passwords, then they are totally useless. A one way hash is no good, because we need to use them.
Now the passwords are in fact encrypted, the only way to get them back to plain text is to have the decryption key. That key is your Google password, or a secondary key you can set up. When you sign into Chrome and sync the Google servers will transmit the encrypted passwords, settings, bookmarks, auto-fill, etc, to your local machine. Here Chrome will decrypt the information and be able to use it.
On Google's end all that info is stored in its encrpyted state, and they do not have the key to decrypt it. Your account password is checked against a hash to log in to Google, and even if you let chrome remember it, that encrypted version is hidden in the same bundle as the other passwords, impossible to access. So an employee could probably grab a dump of the encrypted data, but it wouldn't do them any good, since they would have no way to use it.*
So no, Google employees can not** access your passwords, since they are encrypted on their servers.
* However, do not forget that any system that can be accessed by an authorized user can be accessed by an unauthorized user. Some systems are easier to break than other, but none are fail-proof. . . That being said, I think I will trust Google and the millions they spend on security systems, over any other password storage solution. And heck, I'm a wimpy nerd, it would be easier to beat the passwords out of me than break Google's encryption.
** I am also assuming that there isn't a person who just happens to work for Google gaining access to your local machine. In that case you are screwed, but employment at Google isn't actually a factor any more. Moral: Hit Win + L before leaving machine.
Best Answer
You seem to be curious specifically about the key used to encrypt the passwords in Chrome.
The answer is:
And then the encrypted password is stored in the SQLite database file:
You can use something like SQLite Database Browser or SQLite Maestro to view it. Here's a snippet from my
Login Data
file:You'll notice the password is an encrypted blob of data. The approximate algorithm to encrypt a new password is:
And Chrome saves that blob to its SQLite database.
But to answer your question: Where does the encryption key come from?
The Technical Details
Of course i left out the technical details. Chrome does not encrypt your passwords itself. Chrome does not have a master key used to encrypt anything. Chrome does not do the encryption. Windows does.
There is a Windows function,
CryptProtectData
, which is used to encrypt any arbitrary data you like. The details of calling it is less important. But if i invent a pseudo-language that somewhat can be decipherable as any programming languge, Chrome calls:So the password:
correct battery horse staple
01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA
You'll notice that i never needed to supply a password. That is because Windows takes care of all of that. In the end:
So the only way for someone to know your password is if they know your password.