为什么 vaultwarden 要在 data 中存储私钥?

25 天前
 nyxsonsleep

我的理解是公钥进行加密,私钥进行解密。

在服务端不是应该用公钥进行加密吗?

cat rsa_key.pem
-----BEGIN RSA PRIVATE KEY-----

还是说 vaultwarden 是用私钥加密,公钥解密吗?

那公钥在哪呢?是用户密码本身?

1384 次点击
所在节点    问与答
8 条回复
COW
25 天前
客户端持有公钥,用于加密;私钥放在 vaultwarden ,外部无法获取保证安全;加密后的数据放在密钥库。这没什么毛病啊?
nyxsonsleep
25 天前
@COW 我的理解是保证密码安全,服务器端即使被攻击也无法被破解。因为服务端在公网需要启动服务,安全性不如在私网的客户端,如果是手机端,那基本就是普通人最安全的设备了。
所以应该在服务器端进行加密,客户端进行解密。
假设在上述条件下,即使中木马,那么只有中毒之后的部分密码明文泄露。

安装服务端解密的思路,加密数据和私钥在一起,被攻击等于密码全泄露。
nyxsonsleep
25 天前
@nyxsonsleep 安装服务端解密的思路->按照服务端解密的思路
COW
25 天前
@nyxsonsleep 不是的,用户登录密码和用户的加密数据,加密逻辑不一样的,你的数据应该是用派生出来的对称密钥加密的,具体实现比较复杂,不是一个 rsa 这么简单。有一点可以确定的是 vaultwarden 只会存加密后的数据,对称密钥在客户端。
fuzzsh
25 天前
……
bitwarden 用 AES 加密数据,vaultwarden 作为第三方兼容工程也应用 AES 加密,这个 RSA 明显是其它用途,而且是没密码的 private key ,有密码的 private key 不是这样开头的标签
没整过 vaultwarden ,建议查阅文档获得帮助
xinhaih
25 天前
可以看 vaultwarden 的介绍
https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault#the-rsa_key-files
是用于签署当前登录用户的 JWT (身份验证令牌)。删除它们只会使每个用户登出,迫使他们重新登录,同时也会使通过邮件发送的任何未使用的邀请令牌失效
关于 bitwarden 的安全性可以看
https://bitwarden.com/help/bitwarden-security-white-paper/
其中就说明了密码库是在客户端由主密码通过一定算法进行加密后上传到服务器,同步的时候从服务器下载到客户端进行解密,服务端只能得到并存储加密后的数据,不参与加解密过程
processzzp
25 天前
上面已经解释的很清楚了,以后记得先问是不是,再问为什么
nyxsonsleep
23 天前
@processzzp 人家给的答案好。你就纯属戏瘾犯了。

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

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

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

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

© 2021 V2EX