V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
tz1006
V2EX  ›  云计算

Nextcloud+对象储存=裸奔?

  •  
  •   tz1006 · 89 天前 · 3035 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述

    Nextcloud 在用 S3 之类的 Object Storage 作为 PrimaryStorage 时(config.php 中设置),疑似有重大安全漏洞。 用来储存密钥的 files_encryption 文件夹上传到了 OSS 里,即 files_encryption 不在服务器本地。密钥和加密的文件都储存在同一个地方,加密形同虚设!

    此事 2019 年在 github 就开始被讨论,但是讨论的人并不多,最终也没有得到解决。希望大家明白世界上没有绝对的安全。

    验证

    1. 在安装 Nextcloud 的时候,如果设置了 PrimaryStorage,那么服务器上不会有 files_encryption 文件夹,反之则有。我用 docker 安装多次验证。
    2. 我查看了 Nextcloud 的数据库(我的是 Postgres )中的 oc_filecache 表,发现路径 files_encryption/下的文件都在 OCC 上。(storage=2)
    3. 找到了 oc_filecache 表中密钥文件所对应的 OSS 文件 key, 并从 OSS 直接下载了对应文件,找到了密钥。
    4. 不知道如何解密所以没有解密,所以没有最终还原文件。

    Nextcloud 官方说法

    Server Side Encryption provides protection for data on external storage as the files are encrypted before they are sent to storage and the keys never leave the Nextcloud server.

    文字游戏还是描述的挺精准的


    欢迎大家在此贴下面讨论有关 Nextcloud 的安全性问题,更安全的私人网盘我想另外开贴讨论。

    参考

    https://nextcloud.com/blog/encryption-in-nextcloud/
    https://github.com/nextcloud/server/issues/17561
    https://github.com/nextcloud/server/issues/22077#issuecomment-671080056

    4 条回复    2021-09-10 14:51:21 +08:00
    JensenQian
        1
    JensenQian  
       89 天前
    eason1874
        2
    eason1874  
       89 天前
    看了眼文档。

    可以把 S3 设置为 Primary Storage 或者 External Storage,当你设置为 Primary Storage 就代表着你完全信任这个 S3,所以密钥也放过去,如果你设置为 External Storage 则只用于存储加密后的数据,密钥不会离开服务器。

    你测试下设置为 External Storage,如果这个模式 S3 里只有文件而没有密钥,就说明 It's Not a Bug, It's a Feature.
    msg7086
        3
    msg7086  
       89 天前
    > 密钥和加密的文件都储存在同一个地方,加密形同虚设!

    > 不知道如何解密所以没有解密,所以没有最终还原文件。

    形同虚设,但没有完全形同虚设?
    2i2Re2PLMaDnghL
        4
    2i2Re2PLMaDnghL  
       89 天前
    @eason1874 原本的讨论没有说这是 bug,只是认为需要重新考虑 keys 的存放位置。

    @tz1006 把这个安全性讨论说成漏洞未免有点耸人听闻。
    现在不是安全性设施遭到破坏,而是一个以安全为主要卖点的产品允许且易于产生不安全实践。
    说起来这个问题上,市面上的 2FA 应用能打死一半没错杀还有漏网之鱼(提供同步、备份功能)。类似的还有把 pgp 密钥拷来拷去,把 ssh 密钥拷来拷去,把 2FA 放在密码管理器里,ssh agent forward
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3867 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:26 · PVG 15:26 · LAX 23:26 · JFK 02:26
    ♥ Do have faith in what you're doing.