为什么无法验证文件自创建以来是否已被修改?

信息安全 密码学 正直 文件系统
2021-09-05 13:48:23

据我了解,无法验证文件自创建以来是否已被修改。具体来说,我想知道是否有可能验证一张照片自拍摄以来是否被修改过。但是,根据“如何检测照片的元数据是否已更改? ”的问题,它不是:

遗憾的是,无法证明图像(或与此相关的任何文件)的起源时间。可以(如果作者愿意)通过从第三方时间戳服务器(第三方证明文件在签名时存在)签署文件来证明文件在给定时间之前存在但是这些信息并不是自动可能的,而且很容易被剥夺。

我也是一名 IT 安全人员,如果用户控制使用我知道的当前技术创建文件的系统,则没有可能的安全方法来证明任何文件的创建日期。最好的选择是具有锁定时钟的设备,该设备将具有用户不应该访问的隐藏密钥存储,并基于此创建签名,这样他们就无法伪造自己的签名,但由于密钥必须仍然存在于设备中,但仍然有可能有人破解,因为所有必要的信息都掌握在他们手中,即使很难获得。

我觉得这个解释有点类似于为什么 DRM 不起作用(你不能给一个人锁和钥匙),但我仍然不清楚解释。我也认为这与TLS/SSL 的工作方式不同。在上述情况下,您信任来源为您提供文件,而没有任何有关文件更改次数的信息。

4个回答

考虑到您拒绝的内容,我认为您将需要更多的哲学答案而不是技术答案。

文件只是位的离散集合。相关性和意义被人类覆盖在这些位上,但最终,它只是位。在某个未知的先前状态中,如何确定您拥有的位是否处于相同的序列中?答案:以一种可以信任的方式保存该状态以用作比较手段。

这就是 TLS/SSL 使用 3rd 方 CA 来验证证书的原因,以及数字签名文件很有用的原因。它们提供了一种值得信赖的方式来比较状态。它并不完美,但如果正确执行,它会非常有效。

想象一下,你在一个荒岛上,我递给你一份美国宪法的打印件,声称它是一模一样的副本(没有改变任何文字)。没有什么可比较的,你没有办法验证,对吧?

正如@schroeder 所说,数字文件(及其元数据)只是位的集合。您如何确定您面前的位是否与第一次写入时的顺序相同?好吧,您需要一些文档的“基线”版本来进行比较。有许多加密工具可以提供此基线:散列MAC数字签名,最后时间戳服务器实际上可能最接近您的要求。

可信时间戳是安全地跟踪文档的创建和修改时间的过程

但最终,除非文件的原始副本在创建时提交给某种形式的加密,否则您将处于荒岛场景中,没有可比较的基准。

因为您试图证明是否定的:即文件在时间 X 之前不存在,并且在时间 X 之后文件没有更改。

除了可用的物理介质不存在之外,没有什么可以阻止在任何特定时间段之前、之后或期间以特定方式对文件的位进行排序。这包括文件“内容”和任何相关的元数据。

所以,没有人能证明你(或者你认识的人,如果你太年轻)没有在 1996 年在全新的 Mac 上手工组装最后一部复仇者联盟电影。是在 1996 年创建的,我们不能根据构成文件的位的排列和它的元数据来排除它——仅仅因为你可以伪造它并不意味着你做了。OTOH,您伪造文件的能力并不能证明您没有伪造文件。

如果您想赢得版权诉讼,您将需要其他东西来证明您没有伪造它 - 其他人会发誓在 1996 年看过它,您可以证明它的副本来自 1996 年,并且您没有后续访问权限。

最后,请注意,无论哪种方式,您都不是在谈论数学证明意义上的证明,它不存在也不可能存在。你可以说这极不可能,你可以说没有证据表明它发生了,但你不能证明它不可能发生。

值得指出的是,几乎所有照片在拍摄期间或拍摄后都会发生变化作为一个有趣的(嗯,不是很有趣)轶事,在扫描文档时可能会以一种完全不明显的方式出现同样的情况

几乎所有照片(除了保存 RAW 数据时,即在专业摄影之外,非常不寻常)都经历了相当复杂的操作,包括卷积滤镜和调整曲线(可能还有其他事情,例如将多个捕获合并为一个,可能具有不同的曝光、运动补偿等)。

此外,绝大多数照片(不是“几乎所有”,但实际上是大多数)都是用 JPEG 压缩的,这在技术上和实际上是一种变化(技术上是一种不同的表示形式,实际上是因为解压缩的信号不是 100% 相同的)。大约 10 到 12 年前,这里曾讨论过 JPEG 是否可作为法律证据(由于不是原始照片)。我实际上从未了解过那次讨论的结果......

除此之外,元数据(包括时间和位置数据)与图像数据一起保存,有时会在照片拍摄并保存到磁盘后 30-60 秒内添加(例如在松下 TZ 级相机上GPS 传感器相当慢,这种情况几乎经常发生)。

话虽如此,通常可以显示已编辑的照片已被编辑这是因为编辑过程通常在高放大率(分辨率和强度)下并不完美,并且您通常可以显示与正常压缩伪影不匹配的伪影,或者与附近位置相比的梯度差异。

但是,这证明是积极的,而证明照片未被篡改将证明消极,这在绝对确定的情况下是不可能的(缺乏证据并不是不存在的证据)。

数字证书会有所帮助,但仅与证书和签名者的信任一样好。毕竟,您可以很好地使用受信任的证书并签署一张完全虚假的照片。
连同您的证词(或其他有声望的证词),这通常就足够了,但当然不是,也永远不可能 100% 确定。