2024年9月22日 星期日

安全開機: 用戶棄權, 微軟集權, 世界變得更不安全

安全開機 (secure boot) 是什麼? 微軟的這篇簡概觀介很值得讀。 安全開機要確認的是 「作業系統載入之前, 只有獲得授權的程式碼可以執行」。 但是它說的是 誰的 授權? 微軟沒告訴你的是: 安全開機真實的目的是 叫使用者棄權、 讓微軟可以集權。 最近的資安事件也證實了: 「安全開機」 對於用戶的安全並沒有幫助, 只是助長了微軟的集權, 甚至因為權力過度集中而傷害了電腦生態系整體的安全。

首先, 絕大多數個人電腦與筆記電腦用戶根本不需要安全開機。 作業系統載入之前只有 UEFI (或者, 在較舊的電腦上稱為 BIOS) 的程式碼會執行。 這是燒在主機板裡的韌體。 請問你的哪一台電腦曾經自己手動更新過韌體呢? 絕大多數人從來不曾這麼玩過? 既然韌體是硬體原廠提供的, 上面的韌體當然是獲得硬體廠商自己授權的程式碼。 不要去動它, 就永遠不會有事, 幹嘛要有安全開機機制? 微軟沒有告訴你的是: 「只有獲得授權的程式碼可以執行」 的意思是: 韌體必須獲得微軟的授權。 (但是韌體限制太多, 所以 UEFI 有一部分的程式碼其實是放在硬碟上。) 微軟希望未來有一天可以直接或間接從遠端強迫所有人韌體升級, 就像現在它可以 強迫所有人作業系統升級 一樣, 這才是安全開機存在的最重要理由。

如果微軟高層來小格留言, 一定會抗議: 微軟不是唯一可以授權的機構, 而且安全開機裡面的 MOK (Machine Owner Key) 機制讓你 - 電腦擁有者 - 也可以決定要授權給那些韌體執行。 不是啊, 身為電腦擁有者, 在進入作業系統之前, 我只授權允許硬體原廠以及我信任的虛擬機 hypervisor 執行, 只要有傳統的各層防護機制, 最多加一個 「禁止寫入 UEFI」 的開關就夠了, 幹嘛需要繞遠路走複雜的 secure boot 呢? 而且請告訴我, 你認識的所有親朋好友裡面有幾個人曾經安裝過自己的 MOK 呢? 至於微軟之外的授權機構, 根本沒有多少硬體廠商會認可他們的簽章, 所以取得了他們的授權幾乎跟取得我對你的電腦的口頭祝福一樣沒有實質用處啊!

小眾如 linux 用戶的人口都遠多於聽過 MOK 的人口。 我們 linux 使用者不喜歡被任何人強迫升級; 但如果你真的想要啟用安全開機機制 (例如 因為某些週邊裝置一定要透過 windows 設定) 那就必須允許微軟在你的脖子上套上韁繩。 Ubuntu 升級到 21.04 的過程當中遇到一些技術問題, 最終必須 等待微軟認證授權一小段開機程式碼 這些使用安全開機的 linux 用戶才能繼續玩下去。 自由軟體作業系統要靠微軟點頭才可以 「安全開機」, 請告訴我這是什麼道理?

安全開機確實幫微軟鞏固了壟斷的地位, 成功地讓 linux 的開機程式也落入了微軟的控制範圍; 但它對於表面上的目標 - 提升電腦安全 - 卻並沒有明顯的幫助。 資訊安全攻防高手 Alex Matrosov 在 The Untold Story of the BlackLotus UEFI Bootkit 一文當中指出: 現代的 Windows 開機管理員越來越複雜, 同時也就擴大了可能被攻擊的面向。 Matrosov 的公司 binarly 在一年當中就發表了 228 個系統的安全漏洞, 其中多數牽涉安全開機。 去年五月 binarly 又發現: 有一對保護安全開機的金鑰, 早在 2022 年就已經被公開在網頁上。 今年七月 binarly 揭露 「PKfail」 安全開機漏洞: 五大硬體公司總共有200多款機器 (英文報導) 都因為採用這一對或其他已曝光的零安全金鑰來 "保護" 名存實亡的安全開機。 這有一部分的原因是硬體大廠的疏失: 上游廠商 AMI 明明已經告知這是測試用的金鑰, 但下游硬體廠商卻不經意地把它拿來當成自己公司的金鑰, 就像是許多家建築公司在蓋大樓的時候, 幫每一戶家住都配同一把鎖頭一樣。 這篇, 還有上面 "grubs no good" 那篇文章也都指出: 理論上, 安全開機裡面有一個 「dbx 撤銷清單」 可以防堵作廢金鑰被誤用, 但在實際上, 因為 (對個人用戶而言) 技術門檻過高及微軟的市場考量, 根本沒有即時發揮效用。 也就是說, 在過去兩年 (包含微軟已知情的至少一年) 以及接下來的不知道多少年當中, 有許多自以為受到 「安全開機」 保護的電腦用戶們其實一直開心地在網路上裸奔。 資安專家評論: 安全開機掛的保證, 完全被魚雷貫穿了。

自由軟體基金會早在 2011 年就看出來: 微軟在推的 「安全開機」 其實應該要稱為 「限制開機」 restricted boot 因為它真實的效果是縮限了用戶的自主權。 「說服用戶: 棄權比較安全」 這是微軟長期以來一直使用的招術, 以 "安全開機" 來說, 實際上的效果就是 沒收用戶的開機自主權這個討論串 Broken by Design 的文章 有更多關於安全開機的解說。 就連 linux foundation 想要取得微軟的簽章, 都 困難重重

消費者對於電子產品的所有權正逐漸在消失。 你以為付錢買了一部電子產品, 你就擁有了它。 但其實只要是經常連網的裝置, 例如 智慧電視智慧門鈴, 它的最高控制權很可能仍在硬體製造商或是國際軟體/雲端大廠的手裡。 沒有 root/越獄 的手機跟平板早就已經是如此; 電動車 無人機 的用戶也比較容易因為安全考量而被說服放棄財產自主權。 個人電腦及筆電, 是電子產品財產自主權的最後防線。 TPM2 跟名不符實的 "安全開機" 正在誤導大眾、 削弱大眾對於財產的自主權意識; 權力的集中正在讓電腦生態系變得更脆弱、 更不安全。 有自主權意識的電腦用戶可以做的, 也許就是讓自己多接觸 linux 與其他自由軟體、 保持警覺, 未來面臨重大的權限縮限事件時, 也許還有機會可以比其他人多一個替代方案吧。

1 則留言:

  1. 老師好,近幾年有些原本態度比較開放的 Android 裝置製造商也開始讓消費者沒辦法解鎖 Bootloader,看到覺得蠻無奈的,花錢買了裝置,實際上卻沒有掌控權。

    GitHub 有一個 repo 是在寫相關的裝置製造商:https://github.com/melontini/bootloader-unlock-wall-of-shame

    不過近幾年即便原廠提供解鎖方式,平時使用裝置依然常常受阻(或甚至只是在系統設定開啟 ADB)就得面臨各種 App 「為了你好、為了你安全」的限制,直接不給用或功能受限,但偏偏有些金融相關 App 在這個年代又不得不用。

    回覆刪除

請見 留言審核及授權政策