是否有任何理由通过 HTTPS 验证下载校验和

Fir*_*cer 5 download https data-integrity tls

假设链接下载的页面和下载本身都通过 HTTPS 位于受信任的域上,是否有任何理由担心检查下载文件的哈希/校验和(尤其是可执行文件/安装程序,它们本身也不是由某些东西签名的)操作系统信任)?

据我了解,这样做的原因是为了捕获下载错误(尽管 TCP 应该这样做?)或感染文件的恶意攻击。

但是 HTTPS (TLS) 应该已经提供了对这些的全面保护,那么手动验证还有其他价值吗?

Ian*_*Ian 7

我不认为 HTTPS 会捕获其中任何一个。AFAIK HTTPS 不提供额外的保护以防止 TCP 损坏。

我不是安全专家,但我知道 TLS (HTTPS) 会做以下两件事:

  1. 验证您所连接的服务器实际上是他们所说的那个人。
    例如,如果您输入https://microsoft.com并且您的流量在您不知情的情况下被发送到https://badguys.comDNS 欺骗),您将收到证书错误。当然坏人可以创建一个伪造的证书https://badguys.com索赔https://microsoft.com,但它不会被有效签署的证书颁发机构
  2. 加密流量,使其无法被中间人攻击 (MITM)读取/更改。在这种情况下,有人可以看到您的所有网络流量。如果您没有使用 TLS,它们可以检测到GET请求并开始向您发送虚假数据,而不是来自 Web 服务器的真实数据。

回到下载的话题,许多站点将它们的大量下载分发到镜像。如果镜像被破坏,文件可以被替换为恶意版本。即使镜像使用 TLS,如果它被黑客入侵或错误地添加到镜像列表中,您也可能从 HTTPS 站点下载恶意版本。当然,如果发生这种情况,他们将更新镜像上的校验和。

这就是为什么你不应该根据来自镜像的校验和验证下载,只使用来自原始站点的校验和(根据这个问题)。