在Chrome浏览器中保存的密码有多安全?
12 月 3 日晚上,有网友在 Hacker News 提交了一个关于可以在 Chrome 浏览器“密码管理器”查看已保存密码的帖子,可能那位提交的网友之前不了解 Chrome 的这个特性及其背后的机制,导致这个贴子在 Hacker News 首页停留的时间还不短。之后国内网友在微博上发布相关消息后,同样引起不少讨论(链接1、链接2、链接3)。很多之前不了解 Chrome 保存密码机制的朋友惊呼 Chrome 坑爹。伯乐在线编译了 howtogeek 网站上的一篇文章,应当可以解除这些朋友的疑问。
关于 Google Chrome 浏览器也有一个常见问题,“为什么它没有一个主密码(master password)?” Google 支持论坛中有个非官方的回复,说了 Google 的立场:主密码提供了一种虚假的安全感,保护敏感数据的最可行保护方式是要取决于系统的整体安全性。
那用户在 Chrome 浏览器上保存的密码的安全性有多高呢?请见下文。
如何查看已保存的密码
Chrome 密码管理器的进入方式:右侧扳手图标→设置→显示高级设置→密码和表单→管理已保存的密码。或者直接在地址栏中复制粘贴:chrome://chrome/settings/passwords,然后回车进入。
如果你允许 Chrome 保存密码,看到这个界面应该没什么稀奇,或许你早已知道这个特性了。从昨晚微博转发来看,很多用户还是并不知道这个特性。
点击密码区域,显示一个“显示”按钮,再点击“显示”按钮,可看到密码。如果其他人可以无阻碍使用你的电脑,那他就可以拿到你的这些已保存的密码。
(本文配图中的用户名和密码为测试所用)
密码数据保存在哪里了?
已保存的密码数据存储在一个 SQLite 数据库中,位置是:
[系统盘]:\Documents and Settings\[用户名]\Local Settings\Application Data\Google\Chrome\User Data\Default\Login Data (这个路径是 Win XP 系统)
你可以用 SQLite Database Browser 打开这个文件(文件名就是“Login Data”),查看“logins”表格,该表就包含了被保存的密码。但你会看到“password_value” 域的值是不可读,因为值已加密。(PS:SQLite 数据库查看器的 SourceForge 下载链接)
加密后的数据的安全性如何?
为了执行加密(在 Windows 操作系统上),Chrome 使用了 Windows 提供的 API,该 API只允许用于加密密码的 Windows 用户账户去解密已加密的数据。所以基本上来说,你的主密码就是你的 Windows 账户密码。所以,只要你登录了用自己的账号 Windows,Chrome 就可以解密加密数据。
不过,因为你的 Windows 账户密码是一个常量,并不是只有 Chrome 才能读取“主密码”,其他外部工具也能获取加密数据,同样也可以解密加密数据。比如使用 NirSoft 的免费工具 ChromePass(NirSoft 官方下载),就可以看得你已保存的密码数据,并可以轻松导出为文本文件。
既然 ChromePass 可以读取加密的密码数据,那恶意软件也能读取的。当 ChromePass.exe 被上传至 VirusTotal 时,超过半数的反病毒(AV)引擎会标记这一行为是危险级别。不过在这个例子中,这个工具是安全的。不过有点囧,微软的 Security Essentials 并没有把这一行为标记为危险。
可以绕过保护机制么?
假设你的电脑被盗,小偷重设了 Windows 账号密码。如果他们随后尝试在 Chrome 中查看你的密码,或用 ChromePass 来查看,密码数据都是不可用。原因很简单,因为“主密码”并不匹配,所以解密失败。
此外,如果有人把那个 SQLite 数据库文件复制走了,并尝试在另外一台电脑上打开,ChromePass 也将显示空密码,原因同上。
结论
Chrome 浏览器中已保存密码的安全性,完全取决于用户本身。这里有些建议:
使用一个极高强度的 Windows 账号密码。必须记住,有不少工具可以解密 Windows 账号密码。如果有人获取了你的 Windows 账号密码,那他也就可以知道你在 Chrome 已保存的密码。
- 让你自己远离各种各样的恶意软件吧。如果工具可以轻易获取你已保存的密码,那恶意软件和那些伪安全软件同样可以做到。如果非得下载软件,请到软件官方网站去下载。
- 把密码保存至密码管理软件中(比如:KeePass)。当然了,如此一来,浏览器就不能帮你自动填充密码了。
- 使用可以整合到 Chrome 中的第三方工具(比如:LastPass),使用主密码来管理你的那些密码。推荐阅读:《用 LastPass 管理好你的密码》
- 用工具(比如:TrueCrypt)完全加密整个硬盘。
- 非私人电脑上,一定不能让浏览器保存密码。(原文没有,额外补充)
如果经常用浏览器保存登录用户名和密码,离开电脑时最好锁定屏幕。总之一句话,把家里(操作系统)的安全工作做好,家中物件的安全性也应当有保障了。
补充信息:如果允许 Firefox 浏览器保存站点密码,同样可以很方便查看。
Firefox 浏览器虽然采用了主密码机制,但默认并不开启。如果用户启用,以后 Firefox 每次读取已保存的敏感数据时,用户必须输入主密码。。用户必须记住自己设定的主密码,否则……