从 https 网页下载时 - 下载是否也会使用 ssl?

信息安全 tls 网络 网页浏览器
2021-08-25 17:54:18

如果我单击使用 ssl 的页面上的下载链接,下载是否也会使用 ssl?

如果答案不是(或:有时是,有时不是) - 有什么办法可以强制它受到保护?

我之所以问这个问题是因为下载程序并在途中被篡改可能与网页或我的请求被篡改或拦截一样糟糕,甚至更糟。

3个回答

当您“从页面下载”时,这意味着您实际上是在关注一个链接。页面的 HTML 源代码中的某处是说明文件实际位置的链接。

如果链接显示,下载将使用 HTTPS;如果链接显示,它将使用 HTTP。使用 SSL 获得的页面本身是非常正交的:通过 SSL 获得的页面可能包含非 SSL 链接,反之亦然。如果该链接是“基本链接”,那么让您的鼠标光标“悬停”在该链接上可以让您的浏览器在状态栏的某处(通常在窗口底部)显示当您单击时它将实际使用的 URL;这样,您可以查看下载是否使用 SSL。

(如果 HTML 页面中的链接是相对的——它没有指定服务器名称或协议,并且指向同一服务器上的文件——那么将使用与用于获取 HTML 页面的协议相同的协议。但是,也可以指定“完整链接”,并将包括一个显式协议,该协议将分别是https://http://,用于 SSL 和非 SSL。)

编辑: “悬停”的一个例子:

Wireshark 下载页面

当我将鼠标移到“Windows 安装程序(64 位)”链接上时,浏览器会在底部显示下载链接。该 URL 以 开头https://,因此下载使用 SSL。

(此处的浏览器是 Linux 上的 Chromium;此类链接显示的详细信息取决于操作系统和浏览器。)


某些软件包可能会受益于额外的保护。例如,可以对 Windows 的安装程序包进行签名无论您如何获得文件,签名都为您提供了防止在传输中修改数据的有力保证。另一种传统方法是使用散列值:由 SSL 驱动的网站列出文件的散列值(使用一些散列函数,如 MD5);您可以重新计算您下载的内容的哈希值,看看它是否与网站上的值匹配(请参阅此页面以获取示例,以用于 Ubuntu 操作系统的安装 CD/DVD 的 ISO 映像为例)。

这些方法允许将传输方法与验证分离。这样,您可以从有效的媒体(例如一些点对点协议)中获取文件,并验证您是否获得了真实的东西。

如果链接是相对的,那么是的,它将使用 SSL。如果链接是绝对的,它将使用硬编码的值,可以是 http 或 https。

您不能强制它受到保护,因为某些站点不支持 SSL,因为它需要证书和额外的服务器设置。

并非总是如此,而且大多数时候您无能为力。

先说第一件事。你下载什么必须是安全的?如果是你家人的照片就好了。如果它是一个试用软件,那就忘了它,谁在乎呢。我在下面的评论之一中解释了我为什么这么说。

小型网站将文件与网站页面所在的服务器放在同一台服务器上,因此很可能是 https。可以肯定的是,将鼠标光标悬停在链接上方并查看状态栏。

大型网站正在使用多个内容分发网络,它可能是也可能不是 https。这实际上取决于他们对分销网络的服务水平。

最简单的确定方法是右键单击链接并复制链接。将其粘贴到您的地址栏上,如果 http 不存在,则在 http 后面添加 s。如果您收到错误,则说明下载服务器没有安装证书并且没有其他选项。