你以為的 macOS 隱私權設定,其實不是真的:讀《Why you can’t trust Privacy & Security》

本篇文章更新時間:2026/04/11
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


macOS 隱私權設定其實不可靠?深入解析一場讓人意外的 TCC 真相

編輯前言:這篇來自《Why you can’t trust Privacy & Security》的文章,點破了 macOS 上一個多年來被理所當然接受的迷思:系統顯示的資料夾權限,不等於應用程式真正受到的限制。

核心觀點 (Key Takeaways)

  • macOS「隱私權與安全性」中的 Files & Folders 權限顯示可能不反映實際狀態
  • 只要使用者透過 Open/Save Panel 表達「意圖」,TCC 就可能給予持久性存取權限,即使介面上顯示已被關閉。
  • 唯一能真正收回權限的方法是使用 tccutil reset All [appID] 並重新開機。

深入解析

這篇文章透過作者自製的測試工具 Insent,清楚展示了 macOS 中 TCC(Transparency, Consent, and Control)系統在處理權限時的矛盾。看似嚴密的設計,其實存在一個「介面顯示 ≠ 實際權限」的斷層。

1. 權限的取得方式不同,結果也不同

Insent 的兩個功能揭露了關鍵差異:

  • Open by consent:直接存取 Documents 時,系統會彈出 TCC 同意提示。
  • Open from folder:透過 Open/Save Panel 由使用者選取資料夾,TCC 視為「使用者意圖」,直接放行而不需任何額外確認。

這裡的關鍵是:

使用者在 Open/Save Panel 中選取資料夾,被視為足夠的授權行為

也就是說,只要你曾經從一個受保護的資料夾中「開啟」某個檔案,TCC 就會放寬 sandbox 限制,讓該 app 對該資料夾擁有完全存取。

2. 最驚人之處:權限會永久有效

作者證實:

  • 即使在「隱私權與安全性」設定中手動關閉存取權限,Insent 仍然能完整讀取 Documents
  • TCC 記錄中顯示該 app 的權限已經移除,但 sandbox 行為卻不會跟著更新。

某段操作流程尤其關鍵:

  1. 使用者先同意一次存取。
  2. 手動撤銷權限。
  3. 再透過 Open/Save Panel 表達「意圖」。

結果是:

介面顯示拒絕,但 app 已永久取得該資料夾的存取能力

這是一個典型的「設定畫面讓你以為權限被關閉,實際上並沒有」的案例。

3. 為什麼會這樣?

文章指出問題出在 sandbox 與 TCC 的整合方式。

  • TCC 控制「是否允許存取」。
  • sandbox 控制「是否攔截檔案系統操作」。

然而:

  • 一旦使用者透過 Open Panel 表達意圖,sandbox 不再攔截相關資料夾
  • TCC 的介面並不會顯示 sandbox 的實際狀態。

簡單說:

sandbox 的解除比 TCC 的顯示更優先

筆者心得與啟發

這篇文章讓我重新思考一件事:我們對 macOS 安全模型的信任,很多時候是建立在「介面看起來很安全」的幻覺上,而不是實際邏輯。

我認為最值得警惕的是:

  • 使用者只需一次在 Open/Save Panel 裡選到某個受保護資料夾,該 app 就可能取得長期、持久的權限。
  • 介面顯示的權限狀態甚至可能是錯的。

從實際應用面來看,我會建議:

  • 不要讓任何不熟悉或不信任的 app 呼叫 Open/Save Panel 開啟受保護的資料夾
  • 若懷疑 app 權限異常,務必使用 tccutil reset 並重新開機
  • 對 Files & Folders 列表保持懷疑,它不一定反映真實權限狀態。

這篇文章最後提到,這個機制或許不是惡意設計,但無意間造成了非常微妙的「權限陷阱」。對於以為自己鎖死文稿、桌面或下載資料夾的人來說,這確實是一個需要警覺的現象。


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon