【问题标题】:Safety of xz archive formatxz 存档格式的安全性
【发布时间】:2018-06-14 08:42:29
【问题描述】:

在寻找长期存储大量数据(主要来自数值计算)的好选择时,我开始使用 xz 存档格式 (tar.xz)。与更常见的tar.gz 相比(两者都具有合理的压缩选项),那里的默认 LZMA 压缩提供了明显更好的存档大小(对于我的数据类型)。

然而,关于长期使用xz 的安全性的第一次谷歌搜索,到达了有标题的following web-page(来自lzip 的开发者之一)

Xz 格式不适合长期存档

列出几个原因,包括:

  • xz 是一种容器格式,而不是简单的压缩数据,前面有必要的标头
  • xz格式碎片
  • 不合理的扩展性
  • 标头设计不佳,缺少字段长度保护
  • 4 字节对齐和到处使用填充
  • 无法将尾随数据添加到已创建的存档中
  • xz 错误检测存在多个问题
  • 没有数据恢复选项

虽然有些担忧似乎有些人为,但我想知道是否有任何可靠的理由不使用xz 作为长期存档的存档格式。

如果我选择xz作为文件格式,我应该注意什么? (我想,即使 30 年后,访问xz 程序本身也不应该成为问题)

几个注意事项:

  • 存储的数据是数值计算的结果,其中一些在不同的会议和期刊上发表。虽然存储结果并不一定意味着研究可重复性,但它是一个重要组成部分。
  • 虽然使用更标准的 tar.gz 甚至是普通的 zip 可能是更明显的选择,但能够将存档大小缩减约 30% 对我来说非常有吸引力。

【问题讨论】:

    标签: storage archive file-format reproducible-research xz


    【解决方案1】:

    如果您仔细阅读您链接的页面,您会发现如下内容: https://www.nongnu.org/lzip/xz_inadequate.html#misguided

    "xz 格式规范对填充的完整性比对有效载荷的完整性提出了更严格的要求。该规范不保证解压数据的完整性会得到验证,但它要求解压必须是发现损坏的填充字节后立即中止。”

    以下任何一种压缩格式是什么?

    • 使用填充。
    • 使用 CRC 保护填充。
    • 如果填充损坏,则中止。

    【讨论】:

    • 感谢您的回答。如果这是我最应该知道的原因,xz 是一种合理的格式;特别是如果结合适当的文件验证/修复工具,比如par2
    【解决方案2】:

    也许正确的问题是,“当存在设计合理的格式时,是否有充分的理由使用 xz 这样设计不佳的格式进行长期存档?”

    例如,IANA 时区数据库正在使用 gzip 和 lzip 分发他们的 tarball,这些压缩包会永久存档。 http://www.iana.org/time-zones

    【讨论】:

    • 我不完全相信它是否真的设计得很糟糕。
    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 2010-12-08
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多