许多提供二进制文件的项目还提供这些二进制文件的哈希值(例如 SHA256),作为.ASC
文件枯萎,或直接在二进制文件附近的网页上。这不是为了防止网络引起的损坏,因为 TCP 协议确保了这一点。
鉴于二进制文件和哈希是从同一台服务器下载的(例如来自非常敏感的软件bitcoin-core
),这种技术可以防止哪些攻击场景?
如果攻击者设法篡改二进制文件,为什么他们不能以同样的方式更改校验和?攻击者执行 MITM 并在传输过程中篡改下载也是如此。
请注意,我不是在谈论公钥/私钥签名,这要安全得多,因为攻击者还需要获取签名者的私钥。我只是在谈论提供校验和/哈希以及下载的意义。这对于 . 来说甚至更奇怪bitcoin-core
,它既有机制也有受众使用私钥对文件进行签名。
我可以想象,托管在完全不同的系统上的一个单独的、秘密的监控机器人可以每分钟下载一次签名文件(考虑到它的体积很小)并检查它是否被篡改,但我还没有听说这样做过。