Verification
將下載文件的 sha256 與在同一網站上發布的程式碼進行比較有什麼意義?
一些網站發布 sha256 來檢查下載文件的真實性。
我想這是為了防止中間人攻擊——我的文件在下載過程中沒有被改變。
是什麼阻止了中間人更改網路流量並修復我看到的與惡意下載文件匹配的雜湊碼?
這些站點通常不提供 SSL,因此擷取和修復 HTTP 流量很容易,只需與我的 ISP 或某些骨幹路由器一起工作。
甚至有些網站允許通過不安全的 HTTP 上傳文件而不使用 SSL 來計算 sha256 - 不是很荒謬嗎?
我不僅必須相信這個網站不適用於政府,我還必須通過不使用 SSL 連接來信任我的 ISP。
沒有。它主要只對檢查數據完整性有用,而不是檢測惡意修改(除非你認識一個值得信賴的人簽署了雜湊)。SSL 也有同樣的問題,因為公鑰當然也可以更改。
這個問題有多種解決方案,儘管沒有一個是完美的。
- 信任某個中央機構來決定誰值得信任,誰不值得信任(即證書頒發機構)。這種方法已多次被證明是危險的,例如參見DigiNotar 。
- 建構信任網路,PGP(以及後來的 GPG)實現的方法。
- 用專線和路由(軍事方法)繞過正常網路,或等待量子加密可用。