chrome 密码泄漏了, 才知道用 chrome 保存密码等于裸奔

2022-08-14 12:31:38 +08:00
 juejinloop

前几天电脑中毒了,虽然第一时间重装系统,但是隔天依然收到一大堆网站登录的 gamil 验证邮件,谷歌帐号也提示风险操作。密码管理一直用的 chrome 自带的,考虑是 chrome 保存的密码泄漏,于是连夜改了所有帐号密码,能二验的全部添加二验。然而第二天早上还是发现一台小鸡被人在 vps panel 里重装了 windows 系统,还好有数据备份,然后又改所有小鸡的 ssh 登陆密码。因为之前谷歌帐号开了二次验证,还好谷歌帐号没被登录。吃了这个惨痛的教训,我开始研究 chrome password manger 的安全问题,才发现 chrome 保存密码等于裸奔。

一篇解释如何获取 chrome 保存的密码的文章: https://ohyicong.medium.com/how-to-hack-chrome-password-with-python-1bedc167be3d

如果用 chrome 自带的密码管理保存密码,任何一个运行在你电脑上的程序,不需要管理员权限,都能解密并读取本地保存的密码。因为 chrome 的密码保存在本地加密的 sqlite 中,同时加解密密钥也明文保存在本地文件里,任何程序都能读取。

加密 sqlite 文件路径: C:\Users<PC Name>\AppData\Local\Google\Chrome\User Data\Default\Login Data

解密密钥文件路径 C:\Users<PC Name>\AppData\Local\Google\Chrome\User Data\Local State

额外说明一点是解密需要用到 win32 提供的 API CryptUnprotectData 函数,这个函数保证解密是和加密在同一台电脑(用户)进行的,所以如果直接复制硬盘的浏览器数据到其他电脑上是解密不了的,但是只要你的 Windows 登录了,任何程序只要想都可以解密 chrome 的密码然后上传。

现在考虑转 bitwarden 中。

48428 次点击
所在节点    信息安全
287 条回复
Chaidu
2022-08-14 13:09:05 +08:00
@juejinloop #19 因为 Chrome 保存密码比 1Password 、Bitwarden 之类的密码管理器更安全,只是很多不懂的人以为 Chrome 保存密码不安全
lqcc
2022-08-14 13:10:26 +08:00
好几年没用过 windows 了~ mac 和 linux 有类似的安全问题吗?
juejinloop
2022-08-14 13:11:31 +08:00
@Biggoldfish 攻击面不同,严重程度也不一样,读取内存和读取本地固定不变路径的文件难度能一样吗?
juejinloop
2022-08-14 13:13:08 +08:00
@Chaidu 确实“不懂”,要不你解释下呗。
cloudsigma2022
2022-08-14 13:14:16 +08:00
请问,如何在自动填充密码和安全性之间取得平衡?
nbndco
2022-08-14 13:15:45 +08:00
@juejinloop 这大概就是安全的错觉吧。

从安全性的角度来说,不论 Chrome 做什么都是没有任何意义的。Chrome 的代码本身是开源的,密码储存逻辑必然是公开的,有心人不需要花太大精力研究就可以搞明白。只要 Chrome 的密码管理可以离线运作,那所有解密密码的信息必然全部存在本地。

如果软件没有恶意(我不能理解一个想要读你的密码的程序为什么你觉得不是病毒),那怎么做都没差。如果软件有恶意,那 Chrome 不论做什么这个软件都可以轻松根据 Chrome 的源码破解。
ltkun
2022-08-14 13:16:28 +08:00
所以很多基于 chrome 的浏览器都加了密码验证才能读取保存的密码 弃用 chrome 才是王道哈 ff 也可以
ltkun
2022-08-14 13:18:07 +08:00
@nbndco 开源的那部分叫 chromium chrome 是谷歌加了药的浏览器 不是一个玩意
nbndco
2022-08-14 13:19:19 +08:00
@ltkun 只是加了 Google 同步的部分,其他逻辑都一样的。Google 也不可能给 Chrome 做的比 chromium 更安全。
yehoshua
2022-08-14 13:20:24 +08:00
有一次装了火狐,然后导入 chrome 数据,火狐就把整个 chrome 的密码同步过来了。我当时的心情是崩溃的,就换 Bitwarden 了。
neptuno
2022-08-14 13:20:50 +08:00
确实很不安全,相当于存在一个记事本里面
x199ian
2022-08-14 13:22:42 +08:00
@mcone emmm 密码管理软件不用保证密码存储的安全,这合理吗?不可能保证绝对的安全,但 chrome 这一戳就破,也有问题吧。
felixcode
2022-08-14 13:23:20 +08:00
不懂装懂的人真多
比如 bitwarden ,也是开源,真要了解怎么做到安全的,去看看它的 security whitepaper 吧。
如果非要说防不住内存 dump 之类的就用了也没意义,那什么安全防护都别做了,什么都没意义。
MengiNo
2022-08-14 13:30:09 +08:00
macOS Chrome 的密码应该最终是落在 keychain 里,不知道 keychain 这种与安全硬件配合的东西,针对这种中毒啥的有没有一些预案措施。
konakona
2022-08-14 13:30:44 +08:00
我认为,大家应该重视的是:正应为 google chrome 的这种明文保存到加密 sqlite 里的行为全网公知。那么很多木马、网马想尽办法进入到被害者电脑后会最优先去获取 google chrome 的密码!这是一个攻击意愿清晰明确的行为。

我现在意识到这一点后,也不打算用 Google chrome 保存重要的密码了。

不知道 Safari 的保存密码怎么样?
docx
2022-08-14 13:31:31 +08:00
虽然这设计是有点“简单”,但我还是觉得问题的关键错了。
在任何不安全的环境下解密,发生泄露都是顺理成章的事。换成其它工具,病毒依然有办法做到,看上去更加隐蔽。
shequ2046
2022-08-14 13:39:46 +08:00
哈哈,典型的不懂装懂半桶水,从头到尾都是谬误我就懒得提了,只单纯说一下 gmail 的问题,
gmail 是典型的就算你有账号密码也不可能登录的系统,
黑客也不是楼主这种半桶水所以也不会去偷账号密码,
它们偷的是 cookies 。
juejinloop
2022-08-14 13:40:50 +08:00
@shequ2046 你这评论,我都不知道怎么回复你
dingwen07
2022-08-14 13:48:14 +08:00
用了 Windows 数据保护 API 来进行加密的,但这个 API 不会限制进行加密和解密的应用程序,所以本地恶意应用可以直接解密。macOS 的 Keychain 会用代码签名进行保护。

用密码管理器确实会好一点,至少加密密钥只会存储在内存里,不过要读的话也还是可以的,ReadProcessMemory 了解一下。
0o0O0o0O0o
2022-08-14 13:50:32 +08:00
> 你能保证你电脑上运行的所有程序都是有过代码审查的吗?

很简单,不被我信任的程序不应该在我的电脑上运行,隔离方案也不是没有。

我很喜欢 bitwarden 不会在内存中长期留存明文,但我绝对不会有“依靠客户端的这些特性来拖慢攻击者的脚步”的幻想。

我觉得中过恶意软件了,优先级应该是想办法怎么不再中招,或者想想怎么把敏感数据从这类容易中招的设备彻底撤离。

没有绝对安全,不过考虑问题的优先级还是可以有的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX