V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qinyui
V2EX  ›  程序员

bitwarden 备份的数据能直接解析出密码吗?

  •  
  •   qinyui ·
    shanghaobo · 2023-12-01 14:04:03 +08:00 · 3053 次点击
    这是一个创建于 392 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚部署了个 bitwarden 准备以后存密码,备份的话准备直接定期用脚本将/data 用 git 推送到 github 私有仓库

    这样有什么风险吗?如果私有仓库的 sqlite 数据库泄露被别人拿到能提取出存储的密码吗?


    顺便想问一下 bitwarden 谷歌浏览器插件有泄露密码的风险吗?比如电脑上的其他程序能否直接去读 bitwarden 插件数据? (因为换 bitwarden 就是觉得谷歌浏览器自带的密码管理不安全,存储位置和加密方式固定很容易被其他程序读取而泄露)

    26 条回复    2024-06-04 16:49:32 +08:00
    xausky
        1
    xausky  
       2023-12-01 14:09:06 +08:00
    都拿不到,需要主密码才能拿到,密码库超时时间不要设置从不超时就拿不到
    jackmod
        2
    jackmod  
       2023-12-01 14:15:40 +08:00
    数据不含密码规律,只由客户端解密。
    算法是开源的,理论上可以暴力破解,所以主密码要足够复杂。
    客户端解锁以后必然有风险,用于解密的数据都在内存里。

    题外话,搜索“古诗密码”帮助自己编制密码。
    stinkytofu
        3
    stinkytofu  
       2023-12-01 14:15:52 +08:00
    @xausky #1 数据肯定是无法解密, 但是浏览器插件这个我还是有顾虑, 如果频繁的锁定插件, 用起来太麻烦了, 如果插件在解锁期间, 安全性咋样, 会不会被别地插件读到明文密码?

    我现在是重度使用, 不仅仅存密码, 很多密钥,隐私都依赖私有部署的 bitwarden
    totoro625
        4
    totoro625  
       2023-12-01 14:16:04 +08:00
    我是用的 sqlite backup 的方法,防止备份的数据库不完整
    原贴: https://www.reddit.com/r/Bitwarden/comments/r2kw38/how_do_i_make_an_unencrypted_backup_of_the_sqlite/
    NnMmOo
        5
    NnMmOo  
       2023-12-01 14:27:15 +08:00
    楼上的几位用过 bitwarden 吗?备份的数据是以 json 格式明文存储的
    xausky
        6
    xausky  
       2023-12-01 14:27:19 +08:00
    @stinkytofu 如果是本地电脑已经被入侵那就陷入攻防战了,看攻击者有没有针对 bitwarden ,不行可以直接读内存,门槛肯定是比浏览器自带的高的,这个没有什么方法说完全能防住,还是要以预防本地电脑被入侵为主。
    krixaar
        7
    krixaar  
       2023-12-01 14:30:37 +08:00
    @NnMmOo #5 导出的时候有 json 、csv 和 json(Encrypted),那个加密的是真没法解开;自建的比如 vaultwarden 直接备份 sqlite 就行。
    xausky
        8
    xausky  
       2023-12-01 14:31:34 +08:00
    @NnMmOo OP 说的是部署的 bitwarden 服务器里面的 /data ,说的不是导出密码库功能。
    qinyui
        9
    qinyui  
    OP
       2023-12-01 14:40:07 +08:00
    @xausky @NnMmOo #8 对是自建的 bitwarden ,现在是准备直接在/data 目录下将所有 sqlite 等文件定期 push 到私有 git 仓库
    qinyui
        10
    qinyui  
    OP
       2023-12-01 14:42:42 +08:00
    @totoro625 直接备份/data 下的所有文件,在还原时会有问题吗?因为还想把其他目录下的文件一并备份的
    token10086
        11
    token10086  
       2023-12-01 14:46:31 +08:00
    安全的,看了它的公开算法是主密码反复迭代出来的,主密码在就都安全。万也是只备份 data ,nas->百度云
    helloet
        12
    helloet  
       2023-12-01 14:47:19 +08:00
    写个脚本定时对目录打包上传到 S3 ,我是上传到 cf 的 r2
    totoro625
        13
    totoro625  
       2023-12-01 14:55:39 +08:00
    @qinyui #10 单纯是多一步更加安心一点,理论上是没问题的
    就像备份数据的时候有的人是直接备份,有的人喜好停机备份
    iphoneXr
        14
    iphoneXr  
       2023-12-01 15:06:37 +08:00
    我的部署方式是 pve 启动的虚拟机 vm ,备份走的是 pve 自带的备份整个虚拟机方式。
    公有云的话类似有快照方式,这样就很容易统一备份,不需要去考虑单独某个程序服务的备份问题。
    xycost233
        15
    xycost233  
       2023-12-01 15:22:38 +08:00
    我是定时压缩 data 目录然后用 gpg 加密,然后备份到 NAS 和腾讯和阿里云的对象存储,恢复的时候直接解压挂载就能用
    libook
        16
    libook  
       2023-12-01 15:24:20 +08:00   ❤️ 2
    可以看看这个 https://bitwarden.com/help/security-faqs/#q-what-happens-if-bitwarden-gets-hacked
    这里面链接了 https://bitwarden.com/help/what-encryption-is-used/ 中提到:
    “Bitwarden always encrypts and/or hashes your data on your local device before anything is sent to cloud servers for storage. Bitwarden servers are only used for storing encrypted data.”
    大概意思是服务器(包括数据库)不存储你的明文密码和解密密钥,只存储加密后的数据。
    “Vault data can only be decrypted using the key derived from your master password. Bitwarden is a zero knowledge encryption solution, meaning you are the only party with access to your key and the ability to decrypt your vault data.”
    大概意思是解密的关键就是你的主密码,只要主密码不泄漏,数据就是安全的。

    所以可以说即便你用公开仓库存放 data (当然最好也别这么做),密码也不会泄漏。

    浏览器插件是不是安全同样可以在 security-faqs 里找到: https://bitwarden.com/help/security-faqs/#q-how-does-bitwarden-secure-browser-extensions
    “Extensions are safe to use if they are developed correctly. Due to the nature of how browser extensions work there is always a chance for a bug to arise. We take extreme care and caution when we are developing our extensions and add-ons, we keep our eyes and ears out for anything going on in the industry, and we conduct security audits to keep many eyes on everything.”

    大概意思是说在没有 bug 或漏洞的情况下,理论上是安全的,这个实现机制不会有安全方面的硬伤,加上他们的实时舆情监控以及快速响应处置,应该可以让 bitwarden 的插件持续可靠。

    这类专业的密码管理(浏览器内置的不算)大多只把解密的数据存在内存里,进程结束或会话过期数据就会被清除,所以一般低级的攻击不会造成密码泄露。

    但安全都是相对的,假如你的系统已经被攻成筛子了,完全被攻击者监控起来和随意访问内存数据了,密码该泄露还是会泄露。一切安全都是建立在你在可信的环境下,使用可信的操作系统、可信的浏览器的基础上的。
    JKOR
        17
    JKOR  
       2023-12-01 15:41:37 +08:00
    应该是没办法解密的,我是写了个脚本直接把数据文件夹加密压缩,然后每天定时上传到 Cloudflare 的 R2 ,这样可能更安全一点
    chapiom
        18
    chapiom  
       2023-12-01 15:50:45 +08:00
    自己搭的一直用 pin 码把主密码忘了,没密码导出都不行,重建又懒得一个个输
    oamzn
        19
    oamzn  
       2023-12-01 15:56:05 +08:00
    主密码是在哪儿查看的;
    dudewei
        20
    dudewei  
       2023-12-01 23:49:56 +08:00   ❤️ 1
    看到很多同志们扯了很多,说官方的安全模型怎么说怎么不会被破解,用了 PBKDF2 或者 Argon2id 慢哈希之类的。
    那么问题来了,你的主密码按官方的要求来的么?是 100%完全随机的么?是随机 20 个以上的字符么?是数字,大小写字母和字符的乱码组合么?如果不是,你凭什么说不会被破解?
    然而事实是什么?同样技术方案的 LastPass 还说他们去年被盗的数据不会被破解呢?结果呢?就最近 1-2 个月,已经出现了好几起被暴力破解出来用户的比特币或者以太坊私钥的事件了,被盗窃金额都是几百万美刀。随便来几个新闻:

    https://bgr.com/tech/last-years-lastpass-security-breach-was-linked-to-35-million-in-crypto-heists/

    https://www.reddit.com/r/Lastpass/comments/164m04m/25_million_in_crypto_stolen_from_lastpass_secure/

    永远不要低估黑客的攻击能力,永远不要高估软件系统的安全能力。

    个人觉得,你的主密码如果不是 20 个以上的完全随机的字符组合,不要说安全性,没有任何意义的。
    而普通脑子记忆 20 个以上完全随机的字符,感觉又是一个无底洞,感觉主密码就是一个大坑。
    SenLief
        21
    SenLief  
       2023-12-02 01:47:20 +08:00 via iPhone
    这玩意定期更换主密码就好了。
    wizardyhnr
        22
    wizardyhnr  
       2023-12-02 08:41:11 +08:00
    bitwarden 的攻击手段无非是入侵客户机,检测键盘或是攻击内存,或是入侵服务器拿到加密数据库,暴力破解,各位应该都不是高价值客户,除非你的主密码以前泄露过,顺手就破了。否则黑客 KPI 也很难达标吧。另外高价值文件应该用支持 GPG 的硬件非对称加密后离线保存的,用这种密码库属于用户自己使用不当。
    ihipop
        23
    ihipop  
       206 天前
    @libook 还是没有回答:如果临时解锁,数据是否能被读取的问题。我们已经知道未解锁的情况下是安全的,如果临时解锁呢?
    libook
        24
    libook  
       206 天前
    @ihipop #23 “这类专业的密码管理(浏览器内置的不算)大多只把解密的数据存在内存里”。
    现代主流操作系统通常都有内存保护机制,用户态的应用程序通常只能读取操作系统给自己分配的内存空间。
    ihipop
        25
    ihipop  
       205 天前
    @libook 外部程序确实是会受到操作系统的内存读取保护,主要是担心浏览器插件之间的互相读取,因为他们都运行在 chrome 进程中,各自也都可以调用 chrome 的 API 操作 chrome.
    libook
        26
    libook  
       205 天前
    @ihipop #25 现代浏览器都有沙盒机制的,chrome 的扩展都运行在各自的沙盒中,除非沙盒机制有漏洞,或者扩展的设计有问题通过其他方式主动共享了数据。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:20 · PVG 14:20 · LAX 22:20 · JFK 01:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.