# 開發支線：永久離線裝置的本機使用限制

支線代號：OFFLINE-01｜記錄日期：2026-09-22｜狀態：**需求已記錄；開發未啟動；全部實機案例未測。**

這是未來可能自主開發的小工具研究方向，不是目前已部署的功能，也不是公司核准上線的防盜保證。它獨立於 Google／Entra 的登入與密碼同步方案。

## 已確認的需求與 TASTE

| 項目 | 本支線的定義 |
|---|---|
| Task／任務 | 公司 Mac 交付前預先部署規則；假設失竊後永遠不再連網，本機在事先核定的期限到達後自行限制使用，IT 收回後可離線復原。 |
| Audience／受眾 | 規劃及維護的 IT／資安同仁、未來工具開發者；受管員工需要看懂原因與 IT 聯絡方式。 |
| Structure／結構 | 威脅情境 → 官方能力與缺口 → 候選設計 → 狀態流程 → 離線復原 → 驗收與啟動關卡。 |
| Tone／語氣 | 淺顯、精確，分開標示已確認需求、官方支持、設計建議、待實測能力；不把「干擾使用」說成「資料保密已保證」。 |
| Examples／範例 | 永久斷網、到期時已在桌面、長期關機再啟動、已知本機密碼、改時間／刪檔／停服務，以及 IT 離線復原。 |

使用者提出隱藏資料夾內的 `pari.123` 檔案作為時間標記，以及一週或兩週未更新後反覆鎖定的構想。**檔名、路徑、7／14 天及執行頻率都只是討論示例，尚未選定為正式參數。**核心需求是永久離線時也能運作，不是依賴檔案隱藏。

## 威脅情境與成功標準

- FileVault 保持開啟；對方知道仍有效的本機／FileVault 密碼。雲端 Google 密碼可能已變更，但本機尚未同步。
- 交付前可以完成部署與授權；失竊後的判斷、限制及 IT 復原都不能依賴網路、MDM 命令送達、Google 或其他雲端服務。
- 對方可能反覆登入、重開機、嘗試修改時間、刪除檔案或停止服務。一般使用者與管理員／root 權限必須分別測試，不能假設公司已完成降權。
- 使用者接受將反覆鎖定／登出作為研究中的使用阻礙手段；能否達成「到期後只有 IT 可解除」仍須驗證，不能以鎖螢幕畫面代替結果。
- 主要候選目標是作業系統內的持續使用限制。抵抗管理員、復原環境及其他磁碟存取途徑的能力尚未證實；不能直接聲稱提供 FileVault 解鎖前的封鎖或不可繞過的硬體鎖。

永久離線時，本機無法知道公司後來才標示的「已失竊」事件；它能依據的只有預先下發的規則與本機狀態。因此授權逾期不是失竊證明，合法長期離線員工也會受到相同規則影響。期限到達前已有的存取空間、到期前已被複製的資料，不能由後續限制追回。

## 原廠能力與工具研究結果

以下來源於 2026-09-22 查核，沒有公司裝置測試結果。

| 來源／候選 | 文件支持的內容 | 不足以確認的內容／本支線定位 |
|---|---|---|
| [Apple launchd](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html) | 官方封存的架構指南說明系統背景工作及定期啟動。 | 不代表定期工作能在 FileVault pre-boot 執行，也不提供抵抗 root 的保證；目標 macOS API 及背景服務生命週期需重新確認。 |
| [Jamf Pro Policy Payload Reference](https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Policy_Payload_Reference) | 查核版本 11.32.0：General 可使用 Make Available Offline，執行頻率限 Ongoing。 | 可研究交付前部署及離線執行；快取政策本身不提供完整防盜鎖。失竊後不得依賴下載新政策或呼叫 Jamf API。 |
| [Apple MDM 指令流程](https://developer.apple.com/documentation/devicemanagement/commands-and-queries) | 裝置收到通知後向管理服務取得指令，再執行及回報。 | 遠端 Lock Computer／DeviceLock 排除於永久離線解法之外；不能把遠端命令包在腳本內就稱為本機離線鎖。 |
| [Absolute Control](https://www.absolute.com/platform/absolute-control) | 原廠列出停止回報後以計時器觸發凍結的功能。 | 保留 Offline Freeze 商用候選；Mac／Apple silicon、FileVault、停服務、離線 IT 復原及持續封鎖的完整組合尚未驗收。不能引用 Windows／特定 OEM 的韌體能力推定 Mac 也有。 |
| [BlackSnufkin／DeadManSwitch](https://github.com/BlackSnufkin/DeadManSwitch) | 作者 README 描述 heartbeat 逾時、VeraCrypt 卸載與關機，宣稱跨平台。 | 社群原始碼研究候選，未在公司 Mac 編譯或執行；不是 Apple／Jamf 認證，也沒有證據證明可滿足本支線的 FileVault 與 IT 專屬解除要求。 |

現階段沒有任何上述候選被列為「已完整符合」。不因名稱含 offline、freeze 或 lock 就判定可用。

## 候選設計：交付前部署，之後完全本機執行

這一節是設計建議，不是已選定的實作。

1. **本機背景服務**：研究由 Jamf 在交付前安裝系統服務；服務在 OS 可執行時啟動，並處理週期檢查、喚醒及登入狀態變化。不能把它畫在 FileVault 解鎖之前。
2. **有期限的裝置授權**：研究使用包含裝置綁定、核發／到期資訊及政策版本的簽章文件。簽發私鑰留在 IT 受控環境，Mac 僅保有驗證公鑰。不把真實私鑰、授權檔或共用解鎖密碼放進專案。
3. **可信的期限判斷**：不只依檔案修改日期。簽章可驗證內容來源，但本身不能阻止回撥系統時間、還原舊狀態或替換檢查程式；跨關機的時間與防回復方案是首要可行性缺口。
4. **持續限制狀態**：到期後保存限制狀態，不能因重開機、重新登入、員工輸入舊密碼或刪除標記而重新得到完整期限。反覆鎖定／登出是候選執行方式，尚未選定支援 API，也未證明無可操作空檔。
5. **IT 離線復原**：研究綁定該裝置與本次復原請求的簽章授權，由 IT 工具產生，受管 Mac 在本機驗證。一次性使用、防重放、換機不可使用及復原介面可達性均要測試。

檔案可以存放於一般使用者不可寫入的位置，但隱藏名稱不是安全機制；取得管理員／root 權限後的能力需另外驗證。刪檔或狀態損毀不得被誤認為首次安裝而重設期限，應進入明確的待 IT 修復狀態；這不表示自動清除磁碟。

## 狀態與流程

| 階段 | 本機預期行為 | 狀態性質 |
|---|---|---|
| 交付前 | 安裝服務、驗證規則及復原流程，取得初始授權 | 前置部署；尚未實作 |
| 永久離線，授權有效 | 依本機證明允許使用及檢查 | 候選設計 |
| 接近期限 | 顯示到期日、原因及 IT 聯絡方式 | 提醒時間未選定 |
| 到期／驗證異常 | 進入限制或待 IT 修復狀態 | 具體限制方式待可行性驗證 |
| 再次登入／重開機 | 保留限制；服務可執行時重新檢查 | 不保證 FileVault 前阻擋 |
| IT 收回、全程離線 | 核對裝置，驗證本次復原授權，依程序解除 | 復原機制未實作 |

流程順序：**預先部署 → 永久離線 → 本機檢查 → 授權有效則繼續；到期則限制 → 重啟仍檢查 → IT 收回後離線復原。**

關機時程式不能執行；長期關機後只能在下一次可執行時判定期限。整段流程沒有遠端 Lock Computer、等待 APNs／Jamf 指令或雲端解鎖分支。IT 復原授權可由獨立受控工具準備，但失竊 Mac 本身不得需要網路。

## 不可混淆的防護界線

- 作業系統內鎖畫面／登出，不等於撤銷有效的 FileVault 憑證；也不代表其他磁碟存取途徑均已封鎖。
- launchd 啟動／KeepAlive 不等於防竄改或不可終止；程式簽章也不能單獨保證抵抗已取得管理權限的人。
- 簽章文件、系統權限與時間紀錄都只是候選設計的一部分，不能直接宣稱能防止系統回復或完整快照回復。
- 原本 Google 密碼同步不會因本支線而變成離線即時驗證；PSSO 的網路驗證政策也不能直接視為本支線的離線 IT 復原機制。
- 裝置永不回報時，後台最多記錄「推定期限已到」，不得記成「已確認成功鎖定」。本機證據由 IT 收回後讀取；不保存使用者檔案內容或密碼。
- 不將自動清除、隨機修改員工密碼、移除 FileVault 解鎖資格或破壞復原能力列入本次候選。

## 未來驗收範例：O01～O12 全部未測

這是將來 SDD 規格及 TDD／實機驗證的輸入，獨立於現有 T／P／E 共 52 項案例。模擬時間、文件簽章及狀態轉移可做自動化測試；FileVault、管理員繞過及復原必須用授權測試 Mac 驗證。

| 編號 | 情境 | 要驗證的結果 | 狀態 |
|---|---|---|---|
| O01 | 部署後封鎖全部網路，跨越候選期限 | 到期判斷與限制不依賴外部連線；以封包及本機事件確認 | 未測 |
| O02 | 到期時已登入桌面 | 實際限制一般操作，記錄生效延遲與仍可操作／複製資料的空檔 | 未測 |
| O03 | 關機超過期限，再離線冷開機 | 不重新核發完整期限；分別記錄 FileVault 與 OS 階段是否可進入 | 未測 |
| O04 | 反覆輸入有效本機密碼、登入與重啟 | 不能因一般登入而清除限制；記錄每次可用的空檔 | 未測 |
| O05 | 改系統日期或檔案時間 | 不因單純回撥日期而取得新的有效授權；說明時鐘異常處理 | 未測 |
| O06 | 刪除／替換授權或限制狀態 | 不當作首次安裝重設；無效簽章及其他裝置文件不能通過 | 未測 |
| O07 | 一般使用者停止服務／修改檔案 | 確認權限邊界與服務恢復行為，不只觀察 UI | 未測 |
| O08 | 管理員／root、復原途徑與舊狀態回復 | 明確列出可繞過的方法及影響；未解決前不能聲稱抵抗此權限 | 未測 |
| O09 | 睡眠跨越期限後喚醒 | 記錄何時檢查及何時生效，不能把睡眠中的計時假設當結果 | 未測 |
| O10 | IT 收回後，全程斷網復原 | 正確授權可恢復；員工密碼、錯誤裝置及重用授權不能解除 | 未測 |
| O11 | 合法長假／長期離線、狀態損毀 | 預先核准例外與 IT 修復程序可操作，且不產生未授權的自動解鎖 | 未測 |
| O12 | 裝置限制前後均未回報 | 管理記錄維持推定／未確認，不產生虛假的鎖定成功或資料保密保證 | 未測 |

## 開發啟動與停止關卡

本次只記錄支線，沒有建立正在實作的 Spectra change。未來確定投入時，依 **SDD＋TASTE** 先建立可行性提案，再決定實作範圍；不要直接從這份研究筆記部署腳本。

| 關卡 | 下一階段要交付什麼 | 繼續條件 |
|---|---|---|
| 範圍定義 | 目標 macOS／晶片、一般使用者與管理員威脅、可接受的限制程度、期限、例外、IT 復原責任 | 明確決定是一般使用阻礙，還是要抵抗磁碟／管理員存取 |
| 執行機制可行性 | 支援的本機限制方式、關機／喚醒行為、時間與狀態回復測試，以及完全離線 IT 復原 | 先證明限制與復原可以運作，再投入完整介面及管理整合 |
| SDD／TDD | 正式 proposal／design／spec／tasks，對應 O01～O12 與可自動化的測試 | 不把未證實假設寫成已存在能力；明列仍需實機驗收的項目 |
| 試點與維運 | 簽署與公證、安裝／升級／移除、復原演練、支援窗口及相容性證據 | 未解決的繞過須揭露；不誤稱整機資料已受保護 |

若目標要求抵抗已取得管理員及磁碟解鎖憑證的攻擊者，而本機執行機制無法提供所需邊界，應停止該實作方向並重新選型，不能以更多重複腳本或更隱密的路徑取代驗證。工期、人力、授權及預算尚未估算；本支線沒有採購或正式開發承諾。
