xz 归档格式的安全性
Safety of xz archive format
在寻找存储大量数据(主要来自数值计算)的好选择时long-term,我想到了使用 xz
存档格式 (tar.xz
)。与更常见的tar.gz
(均具有合理的压缩选项)相比,那里的默认 LZMA 压缩提供了更好的存档大小(对于我的数据类型)。
但是,第一个 google 搜索 xz
的 long-term 用法的安全性,得出 following web-page(来自 lzip
) 有标题
Xz format inadequate for long-term archiving
列出几个原因,包括:
xz
是一种容器格式,而不是简单的 压缩数据,前面有必要的 header
xz
格式碎片
- 不合理的扩展性
- 糟糕的header设计和缺乏字段长度保护
- 4 字节对齐和到处使用填充
- 无法将尾随数据添加到已创建的存档中
xz
错误检测的多个问题
- 没有数据恢复选项
虽然有些担忧似乎有点人为,但我想知道是否有 任何可靠的理由 不使用 xz
作为 [=67] 的存档格式=]归档。
如果我选择xz
作为文件格式,我应该注意什么?
(我想,即使在 30 年后,访问 xz
程序本身也不成问题)
一些注意事项:
- 存储的数据是数值计算的结果,其中一些数据发表在不同的会议和期刊上。虽然存储结果并不一定意味着 研究可重复性 ,但它是一个重要组成部分。
- 虽然使用更标准的
tar.gz
甚至普通的 zip
可能是一个更明显的选择,但能够减少大约 30% 的存档大小对我来说非常有吸引力。
也许正确的问题是,"is there any solid justification for using such a poorly designed format as xz for long-term archiving when properly designed formats exist?"
例如,IANA 时区数据库正在使用 gzip 和 lzip 分发他们的 tarball,这些 tarball 是永久存档的。
http://www.iana.org/time-zones
如果您仔细阅读链接的页面,您会发现如下内容:
https://www.nongnu.org/lzip/xz_inadequate.html#misguided
"the xz format specification sets more strict requirements for the integrity of the padding than for the integrity of the payload. The specification does not guarantee that the integrity of the decompressed data will be verified, but it mandates that the decompression must be aborted as soon as a damaged padding byte is found."
以下任何一种压缩格式?
- 使用填充。
- 使用 CRC 保护填充。
- 如果填充损坏则中止。
在寻找存储大量数据(主要来自数值计算)的好选择时long-term,我想到了使用 xz
存档格式 (tar.xz
)。与更常见的tar.gz
(均具有合理的压缩选项)相比,那里的默认 LZMA 压缩提供了更好的存档大小(对于我的数据类型)。
但是,第一个 google 搜索 xz
的 long-term 用法的安全性,得出 following web-page(来自 lzip
) 有标题
Xz format inadequate for long-term archiving
列出几个原因,包括:
xz
是一种容器格式,而不是简单的 压缩数据,前面有必要的 headerxz
格式碎片- 不合理的扩展性
- 糟糕的header设计和缺乏字段长度保护
- 4 字节对齐和到处使用填充
- 无法将尾随数据添加到已创建的存档中
xz
错误检测的多个问题- 没有数据恢复选项
虽然有些担忧似乎有点人为,但我想知道是否有 任何可靠的理由 不使用 xz
作为 [=67] 的存档格式=]归档。
如果我选择xz
作为文件格式,我应该注意什么?
(我想,即使在 30 年后,访问 xz
程序本身也不成问题)
一些注意事项:
- 存储的数据是数值计算的结果,其中一些数据发表在不同的会议和期刊上。虽然存储结果并不一定意味着 研究可重复性 ,但它是一个重要组成部分。
- 虽然使用更标准的
tar.gz
甚至普通的zip
可能是一个更明显的选择,但能够减少大约 30% 的存档大小对我来说非常有吸引力。
也许正确的问题是,"is there any solid justification for using such a poorly designed format as xz for long-term archiving when properly designed formats exist?"
例如,IANA 时区数据库正在使用 gzip 和 lzip 分发他们的 tarball,这些 tarball 是永久存档的。 http://www.iana.org/time-zones
如果您仔细阅读链接的页面,您会发现如下内容: https://www.nongnu.org/lzip/xz_inadequate.html#misguided
"the xz format specification sets more strict requirements for the integrity of the padding than for the integrity of the payload. The specification does not guarantee that the integrity of the decompressed data will be verified, but it mandates that the decompression must be aborted as soon as a damaged padding byte is found."
以下任何一种压缩格式?
- 使用填充。
- 使用 CRC 保护填充。
- 如果填充损坏则中止。