最新消息:图 床

APT 為什麼不使用 HTTPS 協議?

COOL IAM 381浏览 0评论

原文:Why does APT not use HTTPS?
作者:Chris Lamb
譯者:Nanako@知道創宇404實驗室

(這篇文章代表了一段時間前,特別是在CVE-2019-3462之前的情形。它並不代表我的個人意見,也不代表Debian / Ubuntu。)

tl;dr

https用於防止入侵者竊聽到您與您訪問的網站之間的通信,以及避免在您不知情的情況下修改數據。

然而,通過APT命令獲取的文件往往都有自己的簽名以通過系統的檢查。

您的計算機根據一組已存儲的可信密鑰檢查這些簽名。如果缺少有效簽名或者密鑰不可信[1],則APT會拒絕下載該文件。這樣可以確保您安裝的軟件來自您的授權,並且未被修改或替換。

如果下載服務器的磁盤上軟件包發生了惡意篡改,https是無法檢測出來的。因此也沒有必要“安全的”傳輸一個受損的軟件包。

隱私

https通常不會為獲取數據包提供重要的私密性。由於竊聽者通常可以看到您正在通信連接的主機,如果您正與發布鏡像的網絡進行連接,則很明顯您在進行下載更新。

此外,即使通信是經過加密的,也不難根據傳輸大小確定要下載的文件[2]。因此,https只適用於從那些提供類似的,或大小相同的包的服務器上進行下載。

其實更應該關注的問題並不是加密,而是確保您正在安裝的文件未被修改過。

過度信任CA

有超過400個“證書頒發機構”可以為任何域頒發證書,其中很多證書機構沒有有效的安全記錄,還有一些明確被政府控制[3]。

這意味着https對於發布鏡像網絡上的攻擊目標提供了微乎其微的保護,甚至沒有任何保護。您可以限制APT可以接收的有效證書集合,但這容易產生錯誤,對現有的公鑰方案來說某些額外的麻煩是不值得的。

為什麼不提供HTTPS呢?

您所用的發行版可以使用現有方案對文件進行加密簽名,另外還可以通過https為文件提供“深度防禦”。

然而,通過SSL提供一個巨大的全球鏡像網絡不僅是一項複雜的工程任務(需要私鑰的安全交換和存儲)。如上所述,它意味着會對最終用戶的安全性和隱私級別產生誤導性。

切換到https還意味着您無法利用本地代理服務器來加快訪問速度,而且還將禁止多種類型的P2P 鏡像,其中文件存儲在不受您分發控制的服務器上。這將對遠程區域的用戶產生不同程度的影響。

重放攻擊

簡單簽名機制存在的問題是,它不能保證您看到的是最新版本的存檔。

這可能會導致重放攻擊,攻擊者將存檔替換為較早的未經修改的版本,阻止APT注意到那些會被利用的安全更新。

為了解決這個問題,APT存檔包含一個時間戳,在此時間戳之後的所有文件都被認作是舊文件[4]。

更多信息

SecureAPT wiki頁面上可以找到更多技術細節。

腳註

  1. 顯示發布:無法驗證以下籤名,因為公鑰不可用。

  2. 如果通過(假設)apt-transport-tor使用Tor,甚至有可能出現這種情況。

  3. 例如,請參閱在StackOverflow上的我應該信任哪些受信任的root證書頒發機構

  4. 請參閱Debian Wiki上DebianRepository頁面的Date,Valid-Until部分。


转载请注明:IAMCOOL » APT 為什麼不使用 HTTPS 協議?

4 1 vote
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x