验证 Microsoft ISO 未被篡改的安全方法

验证 Microsoft ISO 未被篡改的安全方法

我想确保我拥有的 Microsoft Windows 10 操作系统的 ISO(光盘映像)是正版的。我通常对任何文件执行此操作的方法是计算文件的哈希值,然后将结果与预期哈希值(通常由软件发布者提供)进行比较。

正确的资源会列出官方 ISO 名称以及该文件的正确哈希值。例如:

File: en-gb_windows_10_enterprise_2016_ltsb_n_x64_dvd_9058303.iso
SHA1: 0629BF04AA2A61E125EE6EDDF917DB471DCB8535

像这样,但它会直接来自 Microsoft 网站。我不希望为了查看正确的哈希而必须创建 Microsoft 帐户(例如,哈希显示在官方下载页面上,但您需要有一个帐户才能访问那里)。有什么线索吗?

附言:顺便说一句,如果它对任何人有帮助,我用的是微小的MD5 和 SHA 校验实用程序计算哈希值

答案1

直接从 Microsoft 下载 ISO 和哈希值

要使用 Windows 10 下载 Windows 10 ISO,您需要更改浏览器的用户代理。如果没有此步骤,Microsoft 将强制您下载媒体创建工具。


使用 Mozilla Firefox 浏览器更改用户代理:

  • 类型关于:配置在地址栏中,然后按 Enter。
  • 进入常规.用户代理.覆盖进入搜索偏好名称框。
  • 选择细绳并使用 + 按钮保存。
  • 使用非 Windows 浏览器的用户代理,例如WebKit/Blink作为设定值。
  • 更多用户代理可以在这里找到: https://udger.com/resources/ua-list
  • 其他浏览器的说明请参见HowToGeek
  • 关闭所有窗口并重新启动 Firefox,以使更改生效。

下载 ISO 并查看哈希


在 Powershell 中验证哈希(Windows 10)

  • 右键单击“开始”Windows 开始图标并选择Windows PowerShell
  • 导航到包含 iso 映像的文件夹。
    cd ~/Downloads
  • 检查哈希
    Get-FileHash Win10_2004_English_x64.iso | Format-List

答案2

理想情况下,您应该记下与 ISO 文件一起存储的哈希值,该文件是从您下载该文件的地方(可能是 Microsoft)保存的。这样,您就可以随时记住正确的值,然后重新计算文件的相应哈希值(MD5、SHA1 或 SHA256)并将其与您记录的原始哈希值进行比较。这样,您就不必担心 Microsoft 或您下载文件的任何其他方会终止提供此信息的服务,或者该公司本身会倒闭。

正如所指出的,微软在修订其 MSDN 程序时决定将此信息从公众视野中删除。但是,如果您愿意信任第三方提供商,Heidoc.net 上也随时提供相同的信息。它比您链接到的 yooneed.one 网站好得多,因为它不仅为您提供少量 Windows 10 映像的哈希值,还提供整个 MSDN 目录的哈希值。在撰写本文时,67253 个文件的元数据是可浏览和可搜索的(通过 SHA1 或 SHA256 哈希值或通过文本,即标题)。

为了方便以后阅读,这里是界面的屏幕截图。

海道克

在这里您将找到示例中使用的文件的元数据,以及它的简短描述。

Windows 10 Enterprise 2016 LTSB N (x64) - DVD(英语-英国)

这是我发现的最好的数据库。我不确定还有其他的,这是我所知道的唯一一个,坦率地说,它比微软提供的更好。在过去 3 年左右的时间里,我已经用过几十次了,事实证明它总是准确的。此外,没有广告,界面非常干净,易于使用。

答案3

自 2017 年 12 月起,此功能不再有效。

点击细节微软, 例如:Windows 10 企业版 2016 LTSB。您可能需要登录您的 Microsoft 帐户来查找,但您不需要成为 MSDN 订阅者。

Windows 10 企业版 2016 LTSB N MSDN 页面

答案4

根据 idlehands 的(更好的)答案进行编辑:

如果您运行的是 Windows,则无法做到这一点,因为 Microsoft 媒体创建工具在其创建的每个 ISO 中都嵌入了一些差异。在过去的 2 天内,我已经下载了 4 次 Windows 10 x64 ISO,每次下载都顺利完成,并且每次的 md5 总和都不同:

94413128e084237b291e8dcb6d66042a *Windows10-x64-A.iso
b4fe0950ce455035d4c69abcc57f6e22 *Windows10-x64-B.iso
0f97d05fc0dd407108c3dcf036b4a7b4 *Windows10-x64-C.iso
5787c173f8590cf48633ec20dc683131 *Windows10-x64-D.iso

WinMerge 显示版本间不同的文件是

sources/boot.wim
sources/install.esd
sources/ws.dat

仅检查 w.dat,我发现每个 ISO 都有不同的 InstanceID 值。这些可能对于密钥激活应该是保密的,所以我没有列出我将要使用的那个:

[in B:] InstanceId=f1a7e812-3f62-4457-9c7e-4f255d608e6c
[in C:] InstanceId=1e380011-8f50-49bd-9711-6c204f846e84
[in D:] InstanceId=f1a7e812-3f62-4457-9c7e-4f255d608e6c

相关内容