APT 不使用 HTTPS 的說明

居然有個獨立的網站在說明:「Why does APT not use HTTPS?」。主要是 HTTPS 沒有增加太多保護,但會使得維護的複雜度變高很多。

首先是被竄改的問題,APT 本身就有簽名機制 (參考「SecureApt」),即使 mirror site 被打下來也無法成功竄改內容,反而比起單純的 HTTPS 保護還好。

而對於隱私問題,由於內容是可以公開取得的,這代表可以看封包的大小與流動順序猜測是哪些 package 被下載 (也就是類似「利用 Side-channel 資訊判斷被 HTTPS 保護的 Netflix 影片資訊」這篇提到的方法),加上 APT 這邊還多了時間性的資訊 最近被更新的軟體被下載的機率比較高),所以隱私的保護上其實有限。

而針對攻擊者刻意提供舊版的問題 (某種形式的 replay attack),APT 降低風險的解法是把時間簽進去,當用戶端發現太久沒更新時,就當作過期失效而提出警告。

就以上來看,把所有的 APT 伺服器都加上 HTTPS 的工程太浩大,而得到的效益太小。所以願意提供 HTTPS 的站台就提供,但主要的保護還是從本來的 SecureApt 機制上提供。

4 thoughts on “APT 不使用 HTTPS 的說明”

  1. Chen-Yu Tsai says:

    還有一個問題是各個國家的 official mirror 都是 http://ftp.CC.debian.org
    但是官方不太可能幫所有 mirror 發憑證,而且這個 DN 還是會動態變動的。

  2. liang guo says:

    https 的流量无法被缓存,会耗费更多的带宽

  3. Ray Lin says:

    發憑證不是問題, 那是 letsencrypt 的問題
    緩存可以棄 proxy 改用 CDN 解決, 應該也是目前的趨勢
    不過這標題感覺應該是 apt不"強制"使用https 才對

Leave a Reply

Your email address will not be published. Required fields are marked *