前几天电脑中毒了,虽然第一时间重装系统,但是隔天依然收到一大堆网站登录的 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 中。
201
Unclev21x 2022-08-15 14:39:07 +08:00
刚看了下 bitwarden ,个人版的 premium 年费是 10 刀,似乎也不贵啊。自建的话,还要搞个 VPS ,域名。
|
202
krixaar 2022-08-15 14:44:48 +08:00
@Unclev21x #200 就接着用啊,有 2FA 的网站基本上不用管,重要密码用 Bitwarden 之类的第三方管理器,不重要用浏览器填就行了,打个比方 V2EX 的密码泄露了能咋样,只要你不是一个密码用所有网站上,不会少块肉的。
|
203
anytk 2022-08-15 14:45:35 +08:00
Firefox + 主密码是不是没啥严重问题?
|
204
liveoppo 2022-08-15 14:49:18 +08:00
很早以前我就知道 chrome 的密码不加密,也看过 chrome 开发人员讲解为何这样设计,不过我并不赞同他们的说法。
重要的密码可以考虑保存在 Firefox 浏览器里,因为其有一个 master key ,在 chrome 上只保存不重要的密码。我的 gmail 密码都是不给 chrome 保存的。 另外我的 Windows 系统 尽量仅从大厂官网下载安装程序,任何中小厂的程序都安装在虚拟机的 win 系统里面。 |
207
cnit 2022-08-15 15:43:42 +08:00 1
利用 cloudflare 的 worker 加 KV 自己写个密码管理器不就好了 ,0 成本的东西。
https://github.com/bestK/anynote/blob/main/index.js |
212
Unclev21x 2022-08-15 17:39:15 +08:00
@magic3584 #209 VPS 我有之前薅的 oracle 免费的,不知道可以用不。主要是域名,我在 NameSilo 上买的,首年便宜,续费死贵。
|
213
lslqtz 2022-08-15 17:45:48 +08:00 10
这也太坑了。。
有些人逻辑感觉像二极管,非黑即白的,安全是一件提高攻防难度的事,不是说一个条件不满足就直接摆烂的存在。 |
214
zddwj 2022-08-15 18:20:45 +08:00
意思是随便一个恶意软件不需要提权就能访问 windows 用户磁盘上的大部分文件吗?这也太坑了吧
|
215
CameforFirefox 2022-08-15 18:33:46 +08:00
edge 也有同样的问题吗?我主要用 firefox ,但是也用 edge 存了一些密码。虽然中厉害毒的概率不大,但是谁又能保证某个小工具不会被被黑呢?
|
216
FrankHB 2022-08-15 19:04:12 +08:00 1
@nbndco 这是错的。除了 Chrome 和 Chromium 不保证是一回事以外,如 OP 所说,扫描进程内存比文件系统困难(即便是已登录的用户,也有明确的权限壁垒),所以就算都是“本地”,也是两回事。
而且 Chrome 做得到如强制 2FA 策略一样允许有需要的用户配置强制非单机的管理程序授权,即便这个不那么现实但并非技术上不可行。 @docx 这也是错的。安全风险跟攻击成本相关,无视这个就是耍流氓,至少跟只关心算法可解性无视复杂度来选型一样臭流氓。 更遑论现代信息安全的基石——现代密码学的对最多数用户可见的靠山就是“密钥长度”。你把关键正好搞反了。 @shequ2046 撞库侠表示热烈欢迎这样的韭菜思想。 @0o0O0o0O0o 不简单,隔离是有代价的。不说习惯和操作成本这种个人问题,比如买不同的机器可以增加隔离性,那么买新机器的钱你出?怎么排优先级? 正因为我有严格执行隔离策略(至少能做到担保如果存在到处传的相关小视频那肯定是伪造的),所以才会比大多数用户清楚这种代价。 这里的矛盾就是用户不方便做但是某些厂商能较低代价解决的路径不加防护。就算厂商没义务做,用户活该咯? |
217
xiangyuecn 2022-08-15 19:14:54 +08:00 8
只要能读到文件,就能解密数据,就算 Chrome 没有运行🐶🐶。跟密码管理器要人肉填密码解密能一样吗🐶🐶🐶
典型的就是存在安全问题的,并且不告知,搞不明白为什么 200 多楼里有这么多人理解水平小学生都不如 |
218
icepeak00 2022-08-15 22:36:17 +08:00
一年前偶然登录 win 后查看密码,然后导出密码,发现账密全都被导出成一个明文 txt 文件😥,吓的直接把保存的密码全删了,花了两天时间手动录入到了 keepass xc ,使用体验良好
|
219
yovenny1989 2022-08-15 23:07:17 +08:00
我两个蓝鸟小号发了一堆 nft 广告 也是最近的事情,试试 bitwarden 吧
|
220
dreamflyman 2022-08-15 23:46:17 +08:00
新装个火狐,然后导入 chrome 数据,火狐就把整个 chrome 的密码同步过来了...所以,弃用谷歌浏览器保存密码,用第三方密码管理器吧,如 Bitwarden ,safeincloud ,开源免费,效果杠杠的
|
221
dreamflyman 2022-08-16 00:11:27 +08:00
@Sh3r1ock 先去谷歌浏览器 “导入导出” 那里,导出 csv 格式的明文密码,就可以导入到 Bitwarden ,safeincloud 这样的密码管理器了
|
222
linzh 2022-08-16 00:21:08 +08:00
chrome 的锅是没有弄一个主密码的选项供用户选择开启
剩下的东西全都是 windows 的 /历史遗留问题的锅 |
223
flynaj 2022-08-16 01:44:36 +08:00 via Android
重要密码不要自动保存,自动填充。无论什么软件这开这两个功能都可以轻松拿到密码。
|
224
voidless 2022-08-16 02:49:17 +08:00
心疼楼主和那些艾斯比理论
|
225
iwdmb 2022-08-16 07:25:57 +08:00
推荐 Enpass
终身买断$29.99 macOS/Linux/Windows/Android/iOS 全平台客户端 |
226
iwdmb 2022-08-16 07:26:50 +08:00
|
227
wangxiaoaer 2022-08-16 08:33:47 +08:00
@dlsflh 照楼主说的,这个要求密码是防君子不防小人。
|
228
wangxiaoaer 2022-08-16 08:35:04 +08:00
@mcone 这是什么逻辑,本地解密也可以要求用户参与的啊。chrome 现在所谓的加密跟裸奔有何区别?
|
229
wangxiaoaer 2022-08-16 08:41:33 +08:00
@dcsuibian 你要是安全人员的话我们都要自求多福了。按照你的理论,类似郑州 721 大雨这种灾害想办法防止他发生,至于发生后的应急预案了不要做了,费劲九牛二虎之力能减轻的损失也十分轻微,所以一旦发生灾害后就听天由命吧。
|
230
windyboy 2022-08-16 08:53:11 +08:00
1password
|
231
mcone 2022-08-16 09:05:16 +08:00
@wangxiaoaer chrome 密码本来就是裸奔啊……很多年了
|
232
xingyuc 2022-08-16 09:42:36 +08:00
从 18 、19 年开始发现了一款能提取 chrome 密码的命令行工具,我就再也不敢存自己密码了。
现在想想,各种取证、黑产、病毒不是盯着 chrome 的资料么,连 qq 微信都要读一读 |
233
Unclev21x 2022-08-16 10:41:56 +08:00
那么问题来了,应该选择哪款开源的密码管理软件?至少应该支持 iOS ,Windows OS 间的同步。
|
235
kkk123 2022-08-16 10:58:16 +08:00
vaultwarden, 兼容 bitwarden api/客户端的开源 rust 实现。
|
236
devswork 2022-08-16 11:26:42 +08:00
@microxiaoxiao 怎么不可行了,我用他写的 py 跑了一下,确实能够读取所有的保存过的 username 和 password 输出到 csv
|
237
dcsuibian 2022-08-16 12:25:28 +08:00
@wangxiaoaer 这俩一样吗?计算机安全 防范的性价比 >> 止损的性价比
而这种自然灾害性价比没有那么大差距,甚至把精力花在止损的性价比更高啊。 |
239
studyingss 2022-08-16 13:31:04 +08:00 1
@nguoidiqua
chrome 本地保存密码 = 一个普通程序,任何时间,只需要读取两个文件,就能得到所有密码。 你说的“总要帮你填上去,这步无论如何都会泄露” = 1.需要用户输入主密码解锁,并执行自动填写操作 2.准确读取到内存 or 记录键盘(比起读取两个文件有更高的概率被杀软识别出来) 3.就算以上两个条件都达成,也只能取得病毒运行期间填写过的密码 这个差别很小吗? |
240
Huelse 2022-08-16 15:59:52 +08:00
@Unclev21x #238 可千万别,之前就有 v2er 问起过,忘了主密码就得自己去暴力尝试了 https://bitwarden.com/help/what-encryption-is-used/
|
241
gosick 2022-08-16 16:02:03 +08:00
好奇 edge 会不会有这种问题
|
242
lilyblx 2022-08-16 16:06:01 +08:00 1
没看评论之前没想过能这么拉血压...
@dcsuibian 病毒相当于攻破了人体免疫屏障那个例子,只要人不在无菌室里待一辈子,就一定会感染病毒,比如感冒。而一旦感染了,平时锻炼的效果就能马上就能体现出来。一个经常锻炼的人受到的影响一定是比一个整天待在空调房不运动的人要少的多的。 没有百分百安全的系统,不管是不加掩饰的病毒,还是包装精美的商业软件,一旦进入系统开始窃取信息等恶意行为,不做任何加密保护的明文密码和用加密软件保护的密码,其获取难度和获取数量都是有极大差距的。 就算恶意软件能做到读键盘录入读内存,泄密的程度也不过几条;而不加密的明文数据则是直接一步到位完全泄露干净。 只要适度锻炼就能比空调房亚健康人群更能抵抗偶发的病毒攻击,只要适度做好加密防范措施就比完全不加密的裸奔人损失更少。 这些的前提都是在同样环境下的,你的意思就是哪怕加密了环境恶劣一样会泄露所以干脆不加密,这跟之前新冠鼓吹不戴口罩怎么那么像... 计算机安全 防范的性价比 >> 止损的性价比这条,你要是安全人员那就真就完蛋了,记得测试工程师笑话吗?既然都永远不知道用户会在多么离谱的环境下使用了,那又谈何让用户把控保证运行时系统的安全呢? 比如前面 @totoro625 回答 @felixcode 说的,哪怕密码存记事本,只要密码不放在 chrome 里都一定程度更安全,可能病毒进来为了减少可疑行为只扫两个 chrome 固定目录,这种情况下放第三方密码管理不就幸免于难了? |
243
Hsueh 2022-08-16 16:10:10 +08:00
现在关键的东西两步验证吧.
|
244
libook 2022-08-16 16:14:07 +08:00
如果没有保密计算的环境,那么物理隔离就是最后的防线,即绝大多数安全策略在被突破了物理隔离之后基本都会失效,所以也不能说 Chrome 的密码管理就等于裸奔,安全都是相对的。
但我个人不喜欢使用浏览器、操作系统自带的密码管理,因为这些东西所涉及到的使用场景范围是远大于密码管理本身的场景范围的,将密码管理的场景范围绑定在浏览器、操作系统的所有使用场景范围上,未免范围过大,一定会存在一些浏览器、操作系统的使用场景我并不希望使用密码管理功能。 |
245
Unclev21x 2022-08-16 16:20:12 +08:00
@Huelse #240 thx 。决定选择 bitwarden 了。准备用 Oracle 的羊毛 vps 搭建,先去注册个域名。话说域名现在咋这么贵呢,都快 30 个字母了,还要好几刀。😂
|
246
lenmore 2022-08-16 16:22:14 +08:00 2
谢谢楼主的提醒,已全部迁移到 KeePassXC+浏览器插件
也用 HackBrowserData 工具测试了,的确可以导出 Chrome/Edge/Firefox 的密码 Firefox 加了主密码后这个工具导不出了, Edge 的主密码是摆设 |
247
dcsuibian 2022-08-16 16:33:26 +08:00
@lilyblx Chrome 已经做到极限了么?还要怎么做?还能怎么做?
它要帮你填密码,那肯定自己得先知道密码啊,没给你直接明文存已经算好了。 你说的提升安全性的方法,不都有便利性的损失么?而安全性提升也就那么一丢丢。 在我看来 Chrome 是裸奔的话,这种方式也就是穿上鞋罢了。 |
248
ClosureEleven 2022-08-16 16:51:51 +08:00
感谢提醒,看了一圈评论选择迁移到 bitwarden 了。虽说存的密码其实没有太多重要的,有必要的网站也都已经设置了 2FA ,只不过平时没想过 chrome 这方面的安全性
|
249
plasmetoz 2022-08-16 18:27:35 +08:00
看了一下,fedora 下 chrome 的密码存在 gnome keyring 的默认目录里面,用户登录默认解锁,和 windows 差不多。要是能设置为独立的目录和密码并按需解锁就好了。把默认目录锁上 HackBrowserData 就读不了了。
|
250
byzod 2022-08-17 00:34:48 +08:00
听说 firefox 的主密码是 sha1 加密……和裸奔也没什么区别
|
251
ql562482472 2022-08-17 10:08:30 +08:00
看完了 已迁移 bitwarden
|
252
llsquaer 2022-08-17 11:09:53 +08:00
也是写 python 的时候发现的这个脚本..直接读取出保存的密码...后来想想还是要用其他密码管理工具才行
|
253
Sampwood 2022-08-17 11:24:47 +08:00
那么问题来了,对于 chrome 来说,有什么办法能解决这个问题吗?即使加了 master pwd ,感觉也一样吧,pwd 不也得存下来吗[旺柴]
|
254
bug123 2022-08-17 11:37:34 +08:00
一直只用 Safari 去同步密码
|
255
mmdsun 2022-08-17 19:18:10 +08:00 via iPhone
@weak tx 软件右键用标准账户运行就好或者扔沙箱跑。
Win 管理员账户密码默认是关闭的,标准账户才有密码。 要 admin 开启密码,策略组,用户帐户控制: 以管理员批准模式运行所有管理员,启用。 |
256
mmdsun 2022-08-17 19:42:34 +08:00 via iPhone
@paradoxs Windows UWP 应用的数据其他软件就读取不了。可以你可以用 Windows defender 自定义受保护文件夹
另外楼主考虑的方向不对,多虑了。建议看 Edge 浏览器关于这个问题的阐述。 @VincentYoung https://docs.microsoft.com/zh-cn/deployedge/microsoft-edge-security-password-manager-security https://docs.microsoft.com/zh-cn/deployedge/microsoft-edge-security-password-manager-security |
257
beijiaoff 2022-08-18 13:46:21 +08:00
刚刚看了 AK 电玩科技被盗号的介绍视频,那个是窃取 session cookie 实现的。我好奇的是,谷歌的 session cookie 在盗取后在其他网络环境下,居然能完成修改密码等复杂安全操作。
|
258
clrss 2022-08-20 19:32:36 +08:00
路过问一下 Safari + macOS Keychain ,会有 OP 所述问题吗?
|
260
ArmstrongPater 2022-08-21 13:43:30 +08:00
目前我的解决方案是:docker 部署 Vaultwarden 在我的软路由上,除非黑客攻破了我的 OpenWrt (讲真有可能,因为我 ddns 转发到公网且开放了一个端口)。难搞哦
|
261
shmilypeter 2022-08-21 13:46:03 +08:00
已经删除了全部 chrome 以及 iCloud 钥匙串的密码,彻底转投 1password
|
262
byte10 2022-08-21 14:46:18 +08:00
@juejinloop 那么火狐 会不会有这样的问题?
|
265
ylqhust 2022-08-31 18:36:57 +08:00
@dcsuibian 你同意你的说法。我觉得你可以把家里的门给拆了,毕竟拿钥匙开门也挺麻烦的,有便利性的损失,并且安全性的提升也就一丢丢,反正土匪想要进去总有办法。你说对吧?
|
271
SekiBetu 2022-09-07 00:25:20 +08:00
@ysc3839 这个是正规读取方式,但是你的数据库文件和密钥都在本地了,我干嘛要通过你规定的方式访问呢,我直接拿密钥解密数据库访问你的密码不就好了
|
272
SekiBetu 2022-09-13 11:18:23 +08:00
Chrome 正在开发基于应用的密码加密
https://www.v2ex.com/t/879487 |
273
ssse1 2022-09-13 13:30:45 +08:00
感觉楼主可以做个 Chrome fork ,然后广告施压 Google ,就叫"Attackers can steal the entirety of your passwords with just two lines of code" (:doge)。
我也是换 Firefox 的时候感受到了震惊。其实 Chrome 在 Linux 上面好像也是会装的,会调 KDE Wallet 什么的。 说真的确实感觉没有.txt 安全。。。 破防了。 |
274
liuky 2022-09-13 16:44:45 +08:00
我都是用 keepass, 存储密码, 并且里面也不会直接存储密码, 一般是存 小明家狗狗 + 小红生日 + 加符号, 别人看到我存储的密码也解密出是啥
|
275
lijiangang886 2022-09-15 07:33:52 +08:00
楼上一味强调不放病毒进来的诸位,就问你们电脑上一个国产软件都没有呗? QQ ?微信?钉钉?
|
276
qiseniguang 2022-10-19 03:00:39 +08:00
卧槽。看了一下楼主发的链接。。
chrome 真的是明文保存密码的啊。。。。。 |
277
user100saysth 2022-11-07 10:55:52 +08:00
@weak 我刚试了下,mac 恢复模式下可以重置任意用户的密码。。。。。。。。
|
280
sl450282169 2022-12-27 10:49:42 +08:00 1
https://support.google.com/accounts/answer/11350823
google 已经支持设备端加密后存储密码,但是需要手动开启这个功能。 |
281
DeltaC 2023-02-01 14:18:24 +08:00
使用 HackBrowserData 测试
在 windows 上,确实不需要密码,目前靠火绒自定义规则续命。 在 arch kde 上,解出来都是乱码,暂时安全。 |
282
Fueldebu 2023-02-25 11:30:31 +08:00
@sl450282169 没用,开了端到端。edeg 照样能直接导入 chrome 密码,它传输端到端,到本地了就半明文公开放置,根本防不住
|
283
jsomin 2023-03-01 23:16:01 +08:00
楼主你最终怎么解决的?我电脑所有邮箱和国外社交账号都被盗了。在考虑要不要重装,备份太麻烦了
|
284
Slurp 2023-03-14 19:05:05 +08:00
@Biggoldfish 我们 Windows 是这样的,一个程序读别人的内存都没有检查,一个管理员权限走天下。
|
285
GrayXu 2023-03-26 02:25:54 +08:00
@sl450282169 似乎这个功能只是保证 end2end 加密,但这个帖子讨论的问题是本地的 sqlite 加密可以被无感解密读取,两者没关系。
|
286
GrayXu 2023-03-26 02:44:32 +08:00
@jsomin 看到 ltt 的事情,想起这茬,HackBrowserData 确实密码+cookie 全部能一锅端了。就算换 bitwarden 之类的能解决密码问题,cookie 还是不能保证安全。感觉现在合理的方案就是用火绒保护下目录了。
|
287
nigerunndayo 325 天前
下面说“物理隔绝没做好不能怪软件”的人都是压根没弄明白你的意思的。
Windows 和 Linux 不知道,但是 macOS 可以用这个插件将密码保存到自带的 keychain 中。 https://chromewebstore.google.com/detail/icloud-%E5%AF%86%E7%A0%81/pejdijmoenmkgeppbflobdenhhabjlaj |
288
dilidilid 5 天前
@dcsuibian
“Chrome 已经做到极限了么?还要怎么做?还能怎么做? 它要帮你填密码,那肯定自己得先知道密码啊,没给你直接明文存已经算好了。” 这有啥难做的,每次启动让你填一次密码,然后载入到内存里面,ssh-agent 不就是这个原理吗?你觉得攻击者获取两个无保护的明文密码库和内存里藏的 master passphrase 难度是一样的? |
290
dilidilid 5 天前 via iPhone
@dcsuibian 谷歌作为一家服务几十亿人的商业公司,最起码应该在首次使用时提供一个选项,允许用户选择无密码和输入密码。每次冷启动输入一次密码的代价对绝大部分用户来说都是非常小甚至可以忽略不计的便利性损失,单就这个特性来说,谷歌的这种做法比苹果还要傲慢
|
291
dcsuibian 4 天前
@dilidilid 所以我说在同等便利性上已经做到最好是没错的。当然你说的能给用户更多的选择也没错。
但我想强调的是,当出了这种事故,第一个应该是认识到自己安全意识不足,而不是责怪他人。举个例子,如果我使用了 Chrome 来保存密码,我的电脑中了病毒导致 Chrome 中的密码被盗,我就会首先反思自己。因为我知道安全性和便利性是有平衡的,我知道我在得到一定的便利性时损失了怎样的安全性。而有的人就不知道。 这里面的重点在于,谷歌如何做好这个工具只是他的社会责任,而有没有安全意识是关系到你的切身利益。 |
292
dilidilid 4 天前 via iPhone
@dcsuibian 我再重复一遍,谷歌是一家面向几十亿“普通用户”的商业公司,chrome 是一个面向“普通用户”的日用软件,不是一个面向技术爱好者、发烧友、程序员、科技从业者的专业软件,chrome 的这个安全性显然在基线之下,理应受到批评。“普通用户”在由于 chrome 的不安全设计受到损失之后也有权力批判谷歌的技术设计缺陷,这跟反思自己为什么会中病毒并不矛盾。
至于我个人,我不用 chrome 存任何密码,因为它的安全性设计太过离谱。但对于大量普通用户他们只会觉得 Google 这么大的公司搞出来的东西安全性应该和 Apple keychain 相当,至少也跟 1P 和 bitwarden 差不多,但显然 Google 并没有做到这一点 |
293
hsqujy 4 天前
2024 年了,这个问题还存在吗?
|