前言¶
DeepSeek Harness(DSH)會把提示詞、工具返回和附件原樣發給模型提供方。對必須把內部文檔、代碼或客戶資料交給雲端模型的團隊來說,安全評審裏常會卡在一個問題:敏感數據會不會離開本機?單靠「讓模型記得調用脫敏工具」並不可靠,一旦忘記調用就失效。
下面介紹的 dsh-redact-gateway 在傳輸邊界攔截每一次模型請求:出站前把身份證號、手機號、銀行卡、郵箱、地址、姓名、密鑰等替換爲編號佔位符,模型側只看到脫敏副本;回包再還原,會話裏你讀的仍是原文。維護者爲 luokexiaoguo,在 DSH 社區目錄中歸類爲 admin-security。插件以當前 DSH 進程權限運行,安裝前請自行審閱 GitHub 倉庫 源碼與 MIT 許可證。
這是什麼¶
dsh-redact-gateway 是面向 DSH 的出站脫敏網關(Egress redaction gateway):在請求離開本機前檢測並替換敏感內容,對響應做流式或塊級還原,並在本機保留加密映射表與可校驗的審計日誌。攔截點在 llm/stream 瀑布流,而非某個可選工具,因此主對話、子智能體、會話標題、壓縮等路徑上的模型調用都會經過它。
社區目錄頁:skillhub.cn/plugins/luokexiaoguo/dsh-redact-gateway。該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件即其中一類安全類擴展。
工作原理簡述¶
會話日誌保留原文(用戶側閱讀對象)。經 deriveMessages() 凍結請求後,在 llm/stream 攔截鏈路上完成檢測、替換與審計,脫敏後的副本發往模型提供方;返回流再經 rehydration 把佔位符換回原文,助手消息仍以原文提交。
與此相關的三條性質(摘自上游說明):
- 模型側難以繞過:攔截在傳輸層,不是「可選工具」。
- 用戶側無丟失:佔位符只存在於出站副本,還原不依賴猜測或改寫歷史。
- 可審計:每次替換寫入一條記錄(類別、規則、佔位符、部分掩碼、指紋、哈希鏈),篡改或刪行會破壞
verify。
佔位符默認可讀形狀爲 [EMAIL_1](單括號、大寫類別、遞增序號)。還原對多種變體較寬容;模型自行「發明」的佔位符不會瞎猜還原,原樣透傳並計入統計。
法律表述上,這是去標識化(pseudonymisation)而非匿名化:映射可逆且保存在本機,在 PIPL 語境下仍屬個人信息範疇,不能當作免除個人數據義務的萬能方案。
能檢測什麼¶
| 類別 | 佔位符示例 | 說明要點 |
|---|---|---|
secret |
[SECRET_1] |
廠商前綴、熵、關鍵詞鄰近;內置 UUID 等 allowlist 降誤報 |
idcard |
[IDCARD_1] |
GB 11643 校驗等 |
bankcard |
[BANKCARD_1] |
Luhn + 常見 IIN |
phone |
[PHONE_1] |
號段與邊界 |
email |
[EMAIL_1] |
正則與結構檢查 |
address |
[ADDR_1] |
省市區 + 路門牌等 |
name |
[NAME_1] |
姓氏表 + 上下文(默認 nameStrict) |
org |
[ORG_1] |
統一社會信用代碼 + 名稱後綴等 |
custom |
[TERM_1] |
自定義詞典,最長匹配 |
優先級(重疊時):secret > custom > idcard > bankcard > phone > email > org > address > name。自定義詞典 dictionary 對內部項目名、客戶名單等通常比純啓發式更穩;也可通過 redact_dictionary 讓智能體維護詞條。
工作區策略¶
按會話工作目錄最長前綴匹配,子目錄可在豁免樹內重新強制脫敏:
workspaces:
- path: 'D:/work/public-docs'
policy: bypass
- path: 'D:/work/public-docs/payroll'
policy: enforce
dictionary: ['salary bands', 'comp review 2026']
- path: 'D:/work/legacy-crm'
policy: audit
policy 取值:enforce(默認,替換並記錄)、audit(只記不替)、bypass(完全跳過,連審計也不寫)。
安裝與啓用¶
推薦從 npm 已發佈包安裝(dsh-redact-gateway,當前資料中版本 1.0.0)。官方示例命令如下,請按你環境中的 plugin_manager 用法執行,勿憑插件名自行拼接未出現在文檔中的 CLI:
# 已發佈包(推薦)— https://www.npmjs.com/package/dsh-redact-gateway
# plugin_manager action=install_bundle target=dsh-redact-gateway
# 目錄安裝(開發 / 內部分發)
# npm install
# plugin_manager action=install_bundle target=<包目錄的絕對路徑>
運行環境要求(來自 package.json):Node >=20,DSH >=0.2.2-rc.1 <0.4.0-0。
安裝後打開 Settings → Egress redaction gateway 查看狀態、切換模式、按類別開關、導出審計 CSV。插件配置落在 profile 的 cordis.patch.yml 對應段落;設置頁改動會先作用於運行中進程,再寫回配置(寫回會重啓插件,屬預期行爲)。
驗收:發一條含測試數據(例如虛構手機號)的消息,確認設置頁計數器增加;若始終爲 0,說明攔截未生效,應先排查再用於生產。
典型配置¶
全局配置節選(字段名以 README 爲準):
- id: redact-gateway
name: dsh-redact-gateway
config:
mode: enforce # enforce | audit | off
onError: block # block | pass
categories:
name: false
address: true
dictionary: []
allowlist:
values:
- 'example.com'
- '13800000000'
patterns:
- '@example\.(com|org)$'
minCustomLength: 2
nameStrict: true
promptHint: true
streamRehydrate: true
vaultTtlHours: 168
workspaces: []
dir: '' # 默認 <DSH_HOME>/redact-gateway
audit:
retentionDays: 90
mask: true
dedupe: true
dir: ''
數據落盤目錄(默認 <DSH_HOME>/redact-gateway/)包括:master.key、fingerprint.key、按會話的加密 vault、審計鏈路等;密鑰文件權限爲 0600。
適用場景與注意¶
適合誰:必須把含 PII、密鑰或內部命名的內容交給雲端大模型、又希望在出站邊界強制脫敏的小團隊;需要可導出、可校驗審計跡線的內控或合規溝通場景。
要注意什麼:
- 插件與 DSH 同進程權限,能讀寫的範圍取決於你如何配置工作區與
dir;安裝前審閱源碼與SECURITY.md。 - 這是傳輸層去標識化,不能替代訪問控制、數據分類、合同與告知等同等義務。
name、address、org等啓發式有誤報可能,可用allowlist、categories與dictionary調優; rollout 階段可對工作區設audit先觀察。- 社區目錄星標等元數據會變動;以倉庫 README 與 npm 包爲準。
結尾¶
若你的痛點是「數據會不會原樣出網」而不是「模型會不會記得脫敏」,dsh-redact-gateway 把策略釘在 llm/stream 上:出站掩碼、入站還原、本地加密映射與審計鏈一併收口。進一步瞭解請訪問 社區目錄頁 與 GitHub:luokexiaoguo/dsh-redact-gateway。