首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密安全备份

加密安全备份
EN

Stack Overflow用户
提问于 2010-11-23 11:02:13
回答 4查看 526关注 0票数 1

到目前为止,我一直在使用rsync从我的计算机备份到外部驱动器。备份数据由数万个小文件和数百个大文件组成(Maildir电子邮件消息和我最喜欢的连续剧的剧集)。这样做的问题是,如果我的备份磁盘的一个扇区出现故障,可能会有一条消息被损坏,我发现这是无法容忍的。

我已经想出了一个替代方案,它的工作原理如下。有三棵树:由我想要备份的数据组成的文件树,包含文件树在给定时刻的副本的备份树,以及包含文件散列和备份树的元数据散列的散列树。还保留了整个散列树的散列。在备份之前,将检查哈希树的哈希。此处的故障会使整个备份数据失效。检查成功后,将散列树形状与备份树形状进行比较,并验证元数据散列,以确保备份树是元数据和形状一致的。如果不是,可以列出个别罪魁祸首。之后,执行rsync备份遍历。每当rsync更新文件时,都会计算其新的散列和元数据散列,并将其插入散列树中。只要rsync删除了一个文件,该文件就会从哈希树中删除。最后,计算并存储散列树的散列。

此过程非常有用,因为哈希是为正确的数据计算的,这意味着即使文件树中的文件在插入哈希树后损坏,这种不一致也不会使备份(或将来的备份)无效。然而,最重要的属性是,如果攻击者随心所欲地损坏备份介质,除非攻击者破坏了散列算法,否则只有在正确的情况下,位于那里的信息才会被信任。此外,可以增量地验证发送到备份或从备份恢复的数据。

我的问题是,有没有一个合理的后备方案?我的搜索告诉我,唯一可用的备份方案要么执行完整备份,要么执行差异备份(例如,基于tar),或者无法提供加密正确性保证(rsync)。

如果没有这样的实现,也许我会写一个,但我不想重复发明轮子。

EN

回答 4

Stack Overflow用户

发布于 2010-11-23 11:08:23

您正在谈论的内容听起来很像Git。我认为它可以很好地完成你所描述的事情。只需将“备份”过程实现为git commit即可。然后,您可以使用git checkout恢复到任何以前的版本。

它的存储效率非常高,传输内容的速度也非常快,这可能会为您节省大量的备份时间。作为额外的好处,它是免费的,可移植的,并且已经调试过了!

票数 2
EN

Stack Overflow用户

发布于 2010-11-23 11:10:34

这听起来与Mercurial存储系统的工作原理几乎完全相同。“rsync命令”将使用Mercurial push实现,这是非常有效的网络。

票数 0
EN

Stack Overflow用户

发布于 2010-11-23 15:00:27

如果我必须解决这个问题,我会使用RAID阵列(以防止损坏)驱动器,它使用内置的AES加密,然后使用我习惯的任何备份方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4252374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档