我有 3 个 USB 驱动器,其中的数据需要安全备份。
这 3 个 USB 记忆棒将被存储在不同的地方,而我不希望仅通过一个 USB 记忆棒恢复任何文件 - 我希望如此,我需要至少 3 个 USB 记忆棒中的 2 个才能获取原始数据,我该怎么做?
如果存储在那里的数据可以用密码加密的话就更好了。
答案1
一种选择是使用档案库或奇偶校验存档。
它表面上是一个文件重建和恢复程序,用于可靠性有问题的归档系统。假设有足够的奇偶校验数据,它可以恢复档案的缺失部分。
因此,您只需要一个主档案,然后可以使用奇偶校验信息重建另一个档案。结果满足您的条件。
- 档案 1 + 档案 2 = 已恢复数据
- 档案 1 + 奇偶校验 = 档案 2 已恢复 = 数据已恢复
- 档案 2 + 奇偶校验 = 档案 1 已恢复 = 数据已恢复
为了确保数据不可恢复,你可能需要对传入的数据进行额外的初始存档使用加密,将该档案分割成(比如说) 1MB 大小的块,然后将奇数块放入档案 1,将偶数块放入档案 2。(略带偏执的步骤)
然后,您需要将一半恢复密码写入档案 1 中的文本文件中,将另一半写入档案 2 中的文件中。这样,持有档案 1 的人在没有档案 2 的情况下无法解密他们的块,反之亦然。
此后,您将创建奇偶校验信息来创建第三个恢复棒。
使用 Parchive(第三根磁盘)可以重新创建第一根或第二根磁盘,将档案重新合并在一起,然后解密,最后提取数据。
如果我的想法正确,那么除非一个人持有三根棍子中的任意两根,否则数据将无法恢复。
如何真正实现整个过程的自动化留给读者去练习。
答案2
首先加密你的数据(使用随机生成的密码),然后制作 3 份相同的数据副本,然后使用一个程序来实现Shamir 的秘密分享方案是将加密密码拆分为“X 出 Y”个共享,并将每个共享复制到一个 USB 记忆棒。(将程序也复制到 USB 记忆棒。)
或者,使用常规密码再次加密每个共享。
Shamir 的方案只适用于加密密钥等少量数据,但据我所知,它是可证明安全的,并且一个合适的加密机制将处理实际数据。