萬聖節特惠不給糖,就修片!三檔同時降價,永久授權立省 $30截至 11 月 2 日 23:59(美西時間)

查看定價

本機不等於安全:保護 AI 助理與桌面應用程式之間的通道

本機 MCP 連線為何仍要防護:使用者專屬的具名管道、首個執行個體所有權、128 位元權杖、常數時間比對,以及失敗即關閉的設定流程。

重點速覽

  • AI 助理和桌面應用程式之間的本機連線,仍可能被同一台電腦上的其他使用者、遠端用戶端,或搶先佔用通道名稱的程式碰到。
  • 在 Windows 上,KwaFlux 的通道是一條只有你的帳戶能開啟、由 KwaFlux 搶先建立、並且拒絕遠端用戶端的具名管道。在 Mac 上,則是一個權限只開放給你帳戶的 socket。
  • 每個連線都從一組 128 位元的隨機權杖開始,以常數時間比對,而且不會寫進記錄檔。你可以在設定裡重設它。
  • 把權杖交給 MCP 伺服器的那個檔案,會以原子操作寫入,權限只開放給擁有者。如果無法設定這些權限,KwaFlux 就不會發布這個檔案。

AI 助理是透過你自己電腦上的一條通道和 KwaFlux 溝通的。這很容易讓人以為別人碰不到這條通道,但這並不是理所當然的。在 Windows 上,使用預設設定的具名管道,任何使用者都能讀取,也能從網路連上,而且誰先建立,名稱就歸誰。

KwaFlux 把這幾道門一一關上,本文會逐步說明做法。

本文會說明:本機通道被碰到的三種途徑、KwaFlux 針對每一種的防護、權杖如何安全地交給 MCP 伺服器,以及本機通道防不了什麼。

目錄

  1. 什麼是本機 IPC 通道?
  2. 「本機」出問題的三種途徑
  3. 第 1 層:誰能開啟管道
  4. 第 2 層:每個連線都要權杖
  5. 第 3 層:發布權杖而不外洩
  6. 第 4 層:約束用戶端的各項上限
  7. 這條通道防不了什麼
  8. 我們怎麼測試
  9. 常見問題

什麼是本機 IPC 通道?

本機 IPC(處理程序間通訊)通道,是讓同一台電腦上的兩個程式不經過網路堆疊就能交換訊息的連線。Windows 上的具名管道和 macOS 上的 Unix 網域 socket,都是常見的例子。

在 KwaFlux 的 MCP 架構裡,你的 AI 助理會為了檔案修復或轉檔這類工作啟動 KwaFlux MCP 伺服器,而這個伺服器就是透過這樣的通道連到正在執行的 KwaFlux 應用程式。控制平面那篇文章說明了這一層在整體架構中的位置。

「本機」出問題的三種途徑

風險實際情境為什麼重要
電腦上的其他帳戶家中共用的電腦、共用工作站,或有多位使用者的遠端桌面伺服器Microsoft 文件說明,具名管道的預設安全性描述元會「授予 Everyone 群組成員與匿名帳戶讀取權限」
遠端用戶端具名管道可以透過網路、以名稱開啟Microsoft 指出,接受遠端用戶端的管道,只會用它的安全性描述元來檢查這些用戶端
名稱搶佔另一個程式在 KwaFlux 啟動前,就用預期的名稱建立了管道MCP 伺服器會把它的請求和權杖,交給這個冒牌貨

這些都不需要什麼奇特的攻擊手法,問題全出在預設值上。

第 1 層:誰能開啟管道

KwaFlux 建立 Windows 管道時,用三項設定對付這三種風險:

  • 只開放給你帳戶的安全性描述元。 預設值會把完整控制權交給系統和系統管理員,並讓 Everyone 擁有讀取權限;KwaFlux 不用預設值,而是在管道的存取控制清單裡只列出目前的使用者。
  • 只允許首個執行個體。 KwaFlux 建立管道時使用 FILE_FLAG_FIRST_PIPE_INSTANCE。Microsoft 文件說明,使用這個旗標時,「首個執行個體會建立成功,但下一個執行個體的建立會因 ERROR_ACCESS_DENIED 而失敗」。如果這個名稱已經有人佔用,KwaFlux 會察覺,不會在不屬於自己的管道上提供服務。
  • 拒絕遠端用戶端。 管道使用 PIPE_REJECT_REMOTE_CLIENTS,Microsoft 的說明很簡單:「來自遠端用戶端的連線會自動遭到拒絕。」

在 macOS 上,應用程式監聽的是檔案權限為 0600 的 Unix 網域 socket,所以只有你的帳戶能開啟。

補充: MCP 規範的安全指引對本機伺服器也有同樣的建議:使用 stdio 傳輸,把存取權限制在 MCP 用戶端;如果伺服器使用其他傳輸方式,就要求授權權杖,或使用「存取受限」的 IPC。KwaFlux 兩者都做了。宿主透過 stdio 連到 MCP 伺服器,MCP 伺服器再透過帶權杖的受限通道連到應用程式。

第 2 層:每個連線都要權杖

權限決定誰能開啟通道。權杖則證明另一端的程式,正是 KwaFlux 設定好的那一個。

  • 產生。 KwaFlux 啟動時,會用作業系統的密碼學亂數產生器,產生一組 128 位元的權杖。
  • 交握。 每個連線都必須先送出一則帶有權杖的 hello 訊息。在交握成功之前,應用程式不會在這個連線上接受其他任何訊息。
  • 常數時間比對。 KwaFlux 逐位元組比對權杖,而且不論錯的是開頭還是結尾的位元組,花的時間都一樣,所以無法從回應時間看出猜測有多接近。
  • 不寫進記錄檔。 權杖不會出現在 KwaFlux 的記錄檔裡,也不會出現在設定中的活動清單裡。
  • 重設。 設定裡的 重設 Agent 存取權杖 會把它換成一組新的隨機權杖。現有的 Agent 連線會被中斷,已設定好的宿主下次呼叫時會以新權杖重新連線。如果你懷疑舊權杖被什麼程式讀走了,就用這個功能。

第 3 層:發布權杖而不外洩

MCP 伺服器需要權杖,而它是從 KwaFlux 啟動時寫入的一個小型控制檔取得的。這個檔案如果處理得不夠小心,就會是整條鏈中最弱的一環,所以我們對它格外謹慎。

控制檔發布的五個步驟:建立控制資料夾;把存取控制清單限制為只有目前使用者;檢查資料夾擁有者是否為目前使用者;把權杖寫進一個權限同樣受限的暫存檔;以原子操作用暫存檔取代控制檔。只要任何一個權限步驟失敗,KwaFlux 就會停止,不發布這個檔案
  1. 建立控制資料夾,位置在你的使用者設定檔目錄中。
  2. 限制為只有你的帳戶能存取。 資料夾的存取控制清單只列出目前的使用者,不從上層資料夾繼承較寬的權限。
  3. 檢查擁有者。 KwaFlux 會確認資料夾屬於目前的使用者,所以別人事先放好的資料夾不會被信任。
  4. 寫進暫存檔,權限同樣受限。
  5. 以原子操作取代控制檔,讓讀取的一方只會看到舊檔或新檔,不會看到寫到一半的檔案。

關鍵在於失敗時怎麼處理。舊版是先寫檔、之後才收緊權限,收緊失敗時也只記一筆警告。現在,如果 KwaFlux 無法設定權限,就根本不發布這個檔案。在問題解決之前,MCP 會無法運作,而這樣的取捨是對的:連線中斷看得見,權杖被讀走卻看不見。

第 4 層:約束用戶端的各項上限

即使是通過驗證的用戶端,也有各種上限,因為它背後的 AI 可能被它讀到的內容操縱:

上限數值
同時連線數8
單則訊息大小64 KiB
閒置連線5 分鐘後關閉
新任務每分鐘總共 10 個,每個連線 6 個
任務控制只限該連線的 Agent 提交的任務
總開關KwaFlux 裡的一項設定就能關閉所有 Agent 存取

這些上限是為了圍堵被搞混或遭到操縱的 AI 助理;路徑與隱私那篇文章和 SSRF 那篇文章會從其他角度探討這個問題。

這條通道防不了什麼

我們希望把邊界說清楚,因為誇大的安全宣稱,比什麼都不說更有害。

這條通道的防護,擋的是其他使用者帳戶、其他電腦,以及想搶先佔用管道名稱來冒充 KwaFlux 的程式。它擋不了已經以你的帳戶身分在執行的惡意程式。以你身分執行的程式,本來就能讀取你的檔案、瀏覽器資料,以及你能存取的其他一切;任何本機應用程式都沒辦法把自己和這類程式隔開。不讓這類軟體進到你的電腦,是作業系統和資安軟體的工作。

補充: 第 3 層的強化措施和權杖重設功能會先在 Windows 上推出。Mac 版已經使用只開放給擁有者的 socket 和權杖交握;其餘項目在 Mac 上推出後,我們會更新本文。

有一項變更已排進我們之後的計畫:一種雙方都能證明自己身分、但祕密本身不必經過通道的交握方式。我們暫時擱置它,因為它要同時修改兩端的協定,交握一旦出錯,所有人的 MCP 都會停擺;而且它能帶來的好處,大部分已經由首個執行個體所有權,以及伺服器確認應用程式仍在執行的檢查涵蓋了。

我們怎麼測試

控制平面的請求處理由 341 項斷言涵蓋。另有一套端對端測試,會啟動真正的控制平面和真正的 MCP 處理程序,執行 12 組安全案例,包括本文說明的通道和路徑檢查。兩者都是 KwaFlux 自動化測試的一部分,所以只要有變更削弱了其中任何一條規則,就會出現失敗的測試。

結語

「只在本機監聽」是本機通道安全的起點,不是終點。限制誰能開啟它、確認名稱歸你所有、驗證每一個連線、謹慎發布祕密(做不到就乾脆不發布),並且坦白說明哪些不在防護範圍內。KwaFlux 就是這樣處理你的 AI 助理和應用程式之間的連線。

用心打造的本機 MCP 伺服器

KwaFlux 透過一條只有你的帳戶能開啟的通道,連接 Codex、Claude、Cursor 和其他 MCP 應用程式。AI 處理在你自己的 GPU 上執行,媒體檔案不會為了處理而上傳。可在 Windows 10(64 位元,1809 或更新版本)、Windows 11,以及搭載 Apple Silicon 的 macOS 12 或更新版本上執行。匯入檔案和瀏覽應用程式都不需要帳號。僅在匯出、轉換、檔案修復和從連結下載檔案時需要登入並購買付費方案。

下載 KwaFlux · 查看方案

用你自己的素材試試效果

下載 KwaFlux,付費前先用自己的素材免費預覽效果——無需註冊,在你的 GPU 上處理,處理不需要上傳媒體檔案。 影片預覽可選 1、3或5 秒;防抖預覽可選 5、15或30 秒。

常見問題

Windows 的具名管道安全嗎?

要看建立的方式。使用預設安全性描述元建立的管道,會讓 Everyone 擁有讀取權限,也會接受遠端用戶端。如果明確設定存取控制清單,並使用 PIPE_REJECT_REMOTE_CLIENTS 和 FILE_FLAG_FIRST_PIPE_INSTANCE,就只限你的帳戶在那台電腦上使用。

具名管道可以透過網路存取嗎?

可以,預設就是如此。Windows 允許用戶端以名稱開啟另一台電腦上的管道,而接受遠端用戶端的管道,只會用它的安全性描述元來檢查這些用戶端。建立管道時傳入 PIPE_REJECT_REMOTE_CLIENTS,就會拒絕它們。

什麼是具名管道搶佔(named pipe squatting)?

就是某個程式搶在另一個應用程式啟動之前,用那個應用程式預期的名稱建立管道,讓用戶端連到冒牌貨。用 FILE_FLAG_FIRST_PIPE_INSTANCE 建立管道,真正的伺服器就會發現名稱已被佔用。

為什麼要用常數時間比對權杖?

因為一般的比對碰到錯誤的位元組就會停下,所以猜對越多位元組的猜測,花的時間會稍微長一點。測量這個差異,就可能一個位元組一個位元組地把祕密洩漏出去。常數時間比對不論對錯,花的時間都一樣。

用本機 MCP 伺服器,資料就不會被其他程式碰到嗎?

部分是如此。設計良好的本機伺服器,能擋住其他帳戶、其他電腦和冒牌程式,但擋不了已經以你的身分在執行的惡意程式,因為它能讀取你能讀取的一切。請見本機應用程式能保護什麼、不能保護什麼。

參考資料

  1. Microsoft Learn, "CreateNamedPipeA function" (FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_REJECT_REMOTE_CLIENTS, default security descriptor) (2026-10-25 查閱)
  2. Microsoft Learn, "Named Pipe Security and Access Rights" (2026-10-25 查閱)
  3. Model Context Protocol, security guidance for implementers (2026-07-28; Local MCP Server Compromise) (2026-07-28 查閱)
  • 教學
  • MCP 協定

KwaFlux 作者兼編輯。文章經 KwaFlux 編輯部審閱,依據產品研究紀錄與公開發布的規格。