bitwarden 的数据在 Windows 内存中是明文吗?

3 月 31 日
 zictos
bitwarden Windows 桌面版本的数据在内存中是不是明文?
其他程序能直接获取到各种密码吗?
那主密码会直接明文保存在内存吗?

如果关闭 uac 和各种安全软件防护,并且直接使用内置管理员账户 Administrator 进行登录,这样是不是任何程序都能直接读取 bitwarden 的内存并获取到各种明文密码?
5225 次点击
所在节点    Windows
33 条回复
shakaraka
4 月 1 日
就像别人说的,无论你系统做得再好,只要我拿到机房钥匙。一切都白瞎
MYDB
4 月 1 日
涉及到钱的记纸上,其他论坛 游戏 社交 软件类等账号,没多少利用价值
ryd994
4 月 1 日
别钻牛角尖。当你用密码的那一刻就注定是无法解决这个问题的。因为密码必须要在当前系统里处理,而你又假定了当前系统不可信,那你再怎么加密内存都是徒劳。

TPM/智能卡,不依赖当前系统的 CPU/内存处理。TPM 可以独立执行加解密和签名。密钥从不离开 TPM 。TPM 全称 Trusted Platform Module ,它就是一个可信的环境。

另外,内存加密技术是有的。Intel 和 AMD 都有内存加密技术。内存只在 CPU 解密。可以防跨进读取和硬件读内存攻击。然而,密码管理器的短板不在其本身的内存加密,因为密码原文始终要传递给浏览器。浏览器显然不能让它访问加密的内存。
charles0
4 月 1 日
@NewYear “可以隐藏方式打开窗口,并且能正常运作和用 API 模拟鼠标键盘”,是这样,但是对于密码管理器的 GUI 并不适用,因为有安全桌面( Secure Desktop )这个东西,你没办法简单地自动化操作安全桌面上的 GUI (比如,KeePass 密码输入、UAC 弹窗)
charles0
4 月 1 日
@NewYear 现代 Windows 上,即使提权到 SYSTEM 或者 BYOVD ,也读取不到一部分内存中敏感数据,包括 LSA 中的凭据、VBS Enclave 中的数据等等,这是通过虚拟机边界保证的
(前提:启用 VBS+HVCI+CredentialGuard )
fgwmlhdkkkw
4 月 1 日
就算在内存里面的是密文,那只是把获取一个指针变成获取多个指针呀。反编译或者看汇编。道高一尺,魔高一丈。没完没了。
Rehtt
4 月 1 日
@BeautifulSoap 好奇解密密码是在打开密码详情的时候解密还是在解锁密码库后就解密了。假如我只需要使用 A 密码,这个时候内存被抓包了,那么没有点开的 B 密码会不会泄漏
ff521
4 月 1 日
lz 有个地方说的很对,就是你的系统是否处于安全状态是一个未知数
ff521
4 月 1 日
@ff521 就像这次的 npm axios 包投毒事件,如果不是官方公告,你能确定自己可以第一时间发现吗
alex177027
4 月 1 日
错误的方法:直接发邮件给 bitwarden 询问
正确的方法:发到 v 站让大家辩一辩
likelylee
4 月 1 日
加密数据如果你需要使用,可以有几种不同的方案:可以考虑同态加密,数据始终是密文形式存在;可以考虑 tpm 或者 tee 等安全环境,数据在操作系统侧保持密文,只在安全环境中进行解密和计算;最后就是常见用法,数据在磁盘等持久化保存场景下加密,但是使用过程需要读取到内存中解密,有操作系统负责明文数据的声明周期,比如进程隔离、用完的删除或者垃圾回收之类。
但是,在第三种场景下,只要内存中出现明文,那么一定是可以获取到的,最多只是用什么手段或者需要什么条件而已,比如你说了关 uac ,开管理员访问。
所以:
1. 如果你想证明 windows 是垃圾,那么在等同前提下,mac 或者 linux 开 root ,所有操作系统都是垃圾
2. 如果你想证明 bitwarden 是垃圾,那么 keepass 等也一样需要在内存中出现明文,攻击方一样可以通过内存 dump 的方式拿到,只是 dump 的时间点选好就行
3. 如果你要推广其他密码管理软件,只要不是在 tee 中运算或者直接调用 tpm 运算,那么都同 2
4. 如果你只是想在这一对前提条件下证明你是对的,那么你是对的
5. 如果你真的是想来学习的,那么请考虑至少从基本的安全原理入手,上边很多人都在说,安全防护不是一个单点的要求,是一个很多层或者遵循木桶原理的一个东西。甚至于有些时候需要对环境进行假设抽象才可以继续分析,否则的话直接上大记忆恢复术,什么防护都干不过啊...
kingfire
4 月 1 日
可以使用 yubikey 等硬件密钥
ndd200
4 月 1 日
楼主说了那么多,感觉没有抓住问题的关键。
其实按他想象的使用场景,都已经放弃抵抗了,当输入主密码去解锁的时候,后台程序能获取主密码,其他的数据加不加密没有任何意义,整个库都能拉下来解密。

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

https://v2ex.ih06.com/t/1202491

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

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

© 2021 V2EX