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 中。

58766 次点击
所在节点    信息安全
294 条回复
totoro625
2022-08-14 16:19:28 +08:00
@felixcode #79 这样理解没啥问题,因为都习惯于浏览器保存密码了,想偷密码的人不至于分析你一堆文档里面保存的密码,直接简单快捷的偷取浏览器,偷不到就换下一个,放桌面上比保存在浏览器里面“更安全”
当然遇到一个执着的小偷,肯定会把你文档全部看一遍的

可以用这个项目一键弄出全部密码数据(给出的示例已经被杀毒软件识别了,但是代码开源,完全可以自行编译再绕过杀毒软件): https://github.com/moonD4rk/HackBrowserData/blob/master/README_ZH.md
cc666
2022-08-14 16:32:16 +08:00
楼上一群 chrome 孝子,笑死了,按照他们的逻辑,你把所有的密码记事本保存在桌面上就行了,以后厂商也不用做服务端加密了,被盗了就是你没保护好你的电脑。
Firefox 开启主密码后就不存在这个问题,Chrome 有没有,很久没用过了不知道,Edge 就算开启了,也可以直接读取,说白了就是没做好这个功能
JohnBull
2022-08-14 16:35:06 +08:00
这种写死 preshared key 的加密方案完全是自欺欺人。但是不借助硬件或者网络,确实也没什么好办法。我们产品的方案是通过 508a 芯片解决的。我个人的方式是在自建的云服务里面搭建密码管理
VincentYoung
2022-08-14 16:37:06 +08:00
@dlsflh #2 windows 好像不用
Zyhusesit
2022-08-14 16:38:52 +08:00
还有一种方式是把所有密码保存在一台不联网的设备上,不过缺点是自己取用的时候不够方便
shequ2046
2022-08-14 16:43:27 +08:00
@totoro625 哈哈,从它给我的回复可以看出来,我说他是半桶水都是高抬他了,他完全没办法理解我和你的回复。
halberd
2022-08-14 16:44:47 +08:00
基于用户的权限控制已经不适应流氓软件满天飞的新时代了…一些流氓软件不得不用,各种手动隔离措施一是门槛高,二是你也不知道有没有漏网的。
lizhenda
2022-08-14 16:56:50 +08:00
见识了
nbndco
2022-08-14 17:02:28 +08:00
LZ 骂的飞起,能给我个方案或者思路,除非 Chrome 决定使用 master password (专有安全硬件肯定不可能,对吧),不然如何才能够做到“脚本小子写个程序加个壳”不能够读取浏览器密码的么。

就算有 master password ,其实我也不是很确定 windows 上 keylogger 需不需要什么特殊权限,或者系统有什么安全的输入方式。

你要是说通过这些“增强”能够防止不会写 keylogger 或者不会解密加密文件的脚本小子所以更安全,那真的是典型的 security theater show 了
TDWPFk2IRMJPSRae
2022-08-14 17:07:06 +08:00
@lixinrui000 edge 和 chrome 像个两兄弟。但是好像只有 Microsoft Edge enterprise 是有加密的。

https://docs.microsoft.com/en-us/deployedge/microsoft-edge-enterprise-sync-faq
o00o
2022-08-14 17:10:29 +08:00
@BeautifulSoap 而且动用炸-药是可以被授-权合-法,但是严 a 刑 b 逼 c 供让特 e 朗 d 普说出 chrome 密钥(假象的 chrome 用于保障密码安全的东东)是绝对非 a-%法的
o00o
2022-08-14 17:11:30 +08:00
@o00o 发个回复太难了
juejinloop
2022-08-14 17:12:31 +08:00
@shequ2046 一上来就是抬杠怼人,而自己回复实质内容都没有。

“不懂装懂“,”半桶水“,”从头到尾都是谬误我就懒得提了”。然后来看看你又回复了什么?“只单纯说一下 gmail 的问题,gmail 是典型的就算你有账号密码也不可能登录的系统”

莫名其妙的,我帖子哪个地方说了 gmail 出了问题?我都写了 google 账号我有二验,没被 penetrate ,只是 chrome 密码管理存在本地的密码被偷了。你的回复文不对题,让我怎么回复?你还是回去找你语文老师重新教教你阅读理解吧。

按照我的观察,网上那种开口就是贬低别人然后一击脱离,而自己一点实际内容都没有输出的人,不是 troll 就是 moron ,多少都带点啥,就懒得和你浪费时间了 lol
lonely701
2022-08-14 17:33:29 +08:00
最好的密码管理就是自己的脑子。我从来不用密码自动填充,因为只有经常输入才能记住,如果密码忘了就用邮箱重置。
还有一个终极建议就是重要的东西都不放在互联网上,账号密码可以设置的极其简单,因为反正也没有重要的东西。
jim9606
2022-08-14 17:40:40 +08:00
我觉得理想的无密码验证方式应该是基于 Windows Platform Crypto Provider 的(这个 CSP 依赖 TPM ),将原来的解密密钥用 TPM 保护,解密时由系统进行用户认证和解密( Windows Hello 或 Windows 登录密码)。如果你用过 Windows 的客户端证书存储并启用强密钥保护,效果跟上面这个有个八成像。

Edge 启用设备密码加密后流程跟预期是一样的,可惜它实际实现依然是骗人的。
disk
2022-08-14 18:01:41 +08:00
很常见的,就是基于用户的加密,windows 上很多软件都用到了这种方式。如果要求更高的安全性,可能会附加用户输入主密码或者 windows hello 之类的二次验证方式。说是裸奔就搞笑了,如果不做二次验证的话,用户运行的程序权限等同用户,如果你觉得这种权限管理不好的话,那应该是 windows 背锅。
nguoidiqua
2022-08-14 18:04:06 +08:00
任何自动填充保存密码的手段都是不安全的,因为它总要帮你解密然后把密码填上去,最后这一步反正可以轻松获取到你的密码。

自己输入密码解密看起来好像安全些,但输入这个解密密码也是可以被记录的,电脑不安全的情况下什么手段都不安全…

所以首先不要用这些工具记录重要密码,我自己只用自动填充保存那些不值得盗的密码,盗了都懒得改密码的那种。第二,保证电脑安全。
PaPaBoom
2022-08-14 18:14:42 +08:00
@Chaidu #21 确实不懂,为什么 Chrome 保存密码会比 1Password 、Bitwarden 之类的密码管理器更安全,希望你不吝赐教
nyxsonsleep
2022-08-14 18:17:34 +08:00
chrome 都不用你进行对存储信息的二次加密。那么就肯定是明文。这么简单的事情还用想吗? message+key=cipher 。没有 key 哪来 cipher 。
如果默认不需要用户输入对存储信息的加密,那么这个加密肯定是个可逆的序列化或者加盐操作。逆向 dump 一下相关代码立刻就出来了。事实上,就算是个对称加密,没有输入 key 就等于有默认 key ,也可以 dump 出来。

依靠 chrome 自身实现安全不现实,除非用户把密码信息同步到云端。(经典隐私换 xx
你要想实现本地化的密码安全,首先最好是保证本地设备安全,如果不能保证,至少要保证远端设备安全。然后部署安全服务。
在手机上提供一个确信口令,从而让本机与云端沟通获取权限,拿帐号密码信息。(其实就是手机令牌
即使本机有病毒也只泄漏个别密码。保证本机的安全性才能省略掉手机令牌。
lcy630409
2022-08-14 18:18:10 +08:00
没啥用
楼主这个问题 是自相矛盾的
任何程序 特别是这种开源程序,所有的加解密方式 包括存放路径 所有人都看的到,然后保存密码这种功能最终都必须得到明文密码输入网页里去,只要你电脑被入侵 有病毒来了 你就防不住

最重要的是防止别人进来 而不是别人进来 你再控制别人干啥

上面说 360 这些软件 不经过你同意去读你的密码 , 这是不可能存在的 你使用 360 就是因为别人的商业信誉 ,别人有读密码的行为 就会破坏商业信誉 你就不会去安装使用他的软件了 就和病毒没区别了

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

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

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

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

© 2021 V2EX