Nextcloud+对象储存=裸奔?

vps网友提供 09-09 讨论归档 4

描述

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

本文由 vps网友提供,转载请注明出处

本文链接: https://www.vpsvsvps.com/discuss/a/1676472082583523328.html

标签:
2i2Re2PLMaDnghL

@eason1874 原本的讨论没有说这是 bug,只是认为需要重新考虑 keys 的存放位置。

@tz1006 把这个安全性讨论说成漏洞未免有点耸人听闻。
现在不是安全性设施遭到破坏,而是一个以安全为主要卖点的产品允许且易于产生不安全实践。
说起来这个问题上,市面上的 2FA 应用能打死一半没错杀还有漏网之鱼(提供同步、备份功能)。类似的还有把 pgp 密钥拷来拷去,把 ssh 密钥拷来拷去,把 2FA 放在密码管理器里,ssh agent forward

msg7086
09-10

> 密钥和加密的文件都储存在同一个地方,加密形同虚设!

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

形同虚设,但没有完全形同虚设?

eason1874
09-09

看了眼文档。

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

你测试下设置为 External Storage,如果这个模式 S3 里只有文件而没有密钥,就说明 It's Not a Bug, It's a Feature.