我正在研究如何设置一个自托管的NextCloud,并将其备份到外部存储(Dropbox,S3.)。我要这个备份被加密。
幸运的是,这是NextCloud本机支持的。我所要做的就是确保私钥也被备份,以防我需要恢复。
现在,我非常想将这些加密密钥存储在与存储加密备份相同的位置。
那当然会打败加密。除非私钥本身是用密码加密的,在这种情况下,我的备份是“密码加密”,这对我的用例来说已经足够了。
但我在NextCloud手册中找不到这个问题的确切答案。
NextCloud加密密钥密码受保护吗?
还有,我是不是遗漏了一些值得注意的东西?
发布于 2020-09-14 04:20:42
您的问题的回答在技术上是“是的”,但是对于备份的用例,有一些值得注意的建议需要考虑。
Nextcloud中有两种主要的服务器端加密方案。Nextcloud的最新版本默认使用“主钥匙”,它可以解密所有内容。
还有一种基于每个用户密钥的加密的替代实现,它适用于较早的设置,或手动禁用主密钥加密的人。
如果您看到这样的东西,它使用的是每个用户(旧的)样式:

一般来说,Nextcloud提供给可能的设置:
对于每个用户的加密方法(旧风格),密钥由Nextcloud用户的登录密码保护:
Nextcloud的服务器端加密生成一个强加密密钥,该密钥由用户的密码解锁。您的用户不需要跟踪额外的密码,只需像他们通常那样登录即可。它只加密文件的内容,而不加密文件名和目录结构。
对于主密钥实现(这是当前的默认情况,也很可能是您将要使用的),解密数据所需的绝对最小值是( 1)主密钥对,2)来自config.php的秘密。要遵循官方进程(即确保成功),您还需要在文件加密后转储数据库。您可以尝试在不使用禁用文件签名检查数据库的情况下破坏加密,但是您的里程会有所不同。
因此,您可以将密钥以纯文本形式与加密备份放在类似Dropbox这样的相对安全的地方。如果没有来自config.php的秘密,攻击者就不太可能解密这些数据。这也意味着你不能。如果您拥有密钥和config.php秘密,但数据库是加密的,则您将继续试图通过禁用签名检查来破坏加密。为了顺利恢复,您需要主键、config.php文件和最新的数据库快照,所有这些都安全地保存在其他地方。
此时,我认为保留密钥和备份的方便性被否定了。另一个烦恼是恢复过程。您仍然需要生成一个新的Nextcloud实例来解密数据。然后解密的数据将是Nextcloud实例的完整备份,Nextcloud实例本身需要导入/还原到Nextcloud实例。
使用另一种方法(如这种方法)可能会在完全丢失后需要从备份恢复的情况下使您的生活更轻松:
https://kevq.uk/how-to-backup-nextcloud/
有很多类似的例子,像这样的备份张贴在网上。要点是:
希望这能有所帮助!Nextcloud中的加密看起来很容易设置,但它肯定伴随着风险和权衡。使用Nextcloud加密技术丢失数据的故事并不缺乏论坛帖子和GitHub问题。
几年来,我一直使用Nextcloud作为“我不需要谷歌”的主要驱动程序。这是令人震惊的低维护,非常可靠,并奖励定制。我希望你试一试!
https://serverfault.com/questions/992088
复制相似问题