当我通过 http 下载文件时校验和不匹配

信息安全 网络 md5
2021-09-08 04:56:30

只是为了测试,我做了以下事情:

通过远程服务器上的 wget 从 Wikipedia 下载一个页面并将文件命名为test.dat. 然后我执行了 md5sum。

我通过 HTTP 下载该文件并在我的家用计算机上检查它。校验和不匹配。

当我通过 SCP 下载相同的文件时,校验和匹配。

当我比较test.dattest.dat.original在差异查看器中时,我得到了这些差异。

当我通过 3G 下载文件时(不是使用我的手机,不是我的家庭 WiFi)没有这个问题。

知道可能是什么问题以及要寻找什么吗?

由 KoCMoHaBTa 编辑

其实我和哥达正在做测试。问题出在我的网络中,这里是问题的完整描述。

几天以来,我在所有设备上从 appstore 下载 iOS 应用程序时都遇到了问题 - 他们下载了但 iOS 不允许它们安装并给出错误。

然后我开始四处挖掘。简而言之,每次我从互联网下载文件时,它都会被更改。

我尝试过任何东西,应用程序,RAR 文件,ISO 文件。它们从不匹配提供的 MD5 和 SHA1 校验和。

我们进行的测试旨在了解发生了什么。这些变化实际上总是随机发生的——它们永远不会相同。

在深入了解我的发现之前,这是我的家庭网络配置:

1. I have a modem provided from my ISP - Cisco EPC3208
2. Then I have a D-Link router - Dir-810L, flashed with DD-WRT (the only build available for it)
3. I have 3 iOS devices and a Windows PC
4. I own the router from about 2-3 weeks and this problem started 3-4 days ago.
5. Before this router I had D-Link Dir-300, again flashed with DD-WRT - never had any problems with it.

所以挖得更多:

1. Modem -> Router -> Device (Wi-Fi or Lan) - the problem occurs
2. Modem -> Windows PC (LAN) - > the problem does not occurs
3. iOS Device (Tethering over Cable) -> Windows PC -> Router (LAN to WAN) -> iOS Device (Wi-Fi) - the problem does not occur
4. iOS Device (Tethering over Wi-Fi) -> any device - the problem does not occur

因此,此时看来,当路由器连接到调制解调器时,就会出现问题。所以我不确定我的 ISP 或我的路由器是否做错了什么。或者我的 ISP 做的不好,我的路由器不喜欢 :)

无论如何,我们正试图找出问题的根源。这是测试文件的链接 -测试文件 此存档包含当我直接连接到调制解调器和使用路由器时下载的相同文件。它还包含两种情况下的网络 WireShark 转储。

首先,当使用我的路由器时,WireShark 对我来说一切正常,但文件已被修改。

有趣的是,当我直接连接到调制解调器时,当您查看转储时 - 出现大量“重复”和“无序”数据包,但文件按预期交付。

对此有什么想法吗?

1个回答

看起来像是在路由器上处理乱序和/或重复数据包的问题,​​可能是处理大型传输时 DD-WRT 构建的问题。问题发生在使用wget但不是scp因为大多数经过身份验证的协议将在应用层处理出现的差异——scp通过包括完整性保护的 SSH 运行——而原始 HTTP 依赖于在表示层重建的传输的完整性。无论如何,我不认为这是一个信息安全问题。