dsh-auth-lock:DeepSeek Harness Host 端密碼認證插件

前言

DeepSeek Harness(DSH)支持基於插件的 Web 部署。默認情況下,Web 服務器的入口可能缺乏主機端的安全策略。如果服務暴露在公網,未受保護的 API、SSE 和 WebSocket 接口可能面臨直接訪問的風險。在 WebServer 層面增加一個統一的認證策略,是提升 Web 部署安全性的基礎步驟。

插件介紹

dsh-auth-lock 是一個 DSH Host 端插件,由開發者 imchenmin 維護。它的核心功能是在 DSH Web 部署中提供密碼認證能力,覆蓋 DSH API、SSE、WebSocket 以及第三方插件註冊的所有服務器路由。

核心功能

該插件主要包含以下安全與會話管理能力:

  1. 安全存儲與驗證
    使用 Node.js 的 scrypt 算法進行密碼派生,參數爲 N=32768, r=8, p=1,配合 128 位隨機鹽。密碼驗證採用恆定時間比較,確保防時序攻擊。密碼明文永遠不會被存儲。

  2. 會話管理
    生成 256 位隨機會話令牌,Host 內存中僅保留對應的 SHA-256 密鑰。使用 HttpOnly、SameSite=Strict 的 Cookie,並在 TLS 連接下自動啓用 Secure 標誌。會話默認擁有 10 分鐘空閒超時(可配置 1 至 1440 分鐘)和 24 小時的絕對生命週期。

  3. 訪問控制
    默認僅允許本地迴環地址進行首次設置,防止新實例被遠程接管。對遠程地址實施 15 分鐘窗口內 8 次密碼失敗嘗試的限制。同時進行同源 Origin 檢查並限制 16 KiB 的請求體大小。

  4. 通用性
    不依賴移動、遠程控制或配對等其他業務插件,僅依賴 DSH WebServer 的 webserver/request 和 webserver/upgrade 水流。認證策略作用於 WebServer 層,自動應用於所有註冊的路由。

安裝與啓用

插件對 Node.js 版本有要求:^22.19.0 || >=24.0.0。

安裝命令如下:

dsh plugin --profile web add github:imchenmin/dsh-auth-lock

安裝後,檢查 DSH 配置(--dump-config),確認 cordis.patch.yml 中包含 id: auth-lock。如果頁面報告 DSH 版本不兼容,插件將保持非活動狀態,建議卸載。

典型用法

  1. 首次設置
    在運行 DSH 的本地瀏覽器訪問 http://127.0.0.1:<port>,系統會引導創建一個 4-16 字符的密碼或數字 PIN。

  2. 登錄與訪問
    後續訪問時,輸入密碼即可通過認證。登錄成功後頁面會自動刷新或返回原頁面,以便 API、SSE 和 WebSocket 客戶端重新建立連接。

  3. 修改密碼
    進入 DSH 設置面板,找到“Access Lock”部分。依次輸入當前密碼、新密碼、確認新密碼,保存後系統會撤銷舊會話並生成新的認證密鑰。

  4. 重置密碼
    如果忘記密碼,需在運行 DSH 的主機上重置。停止 dsh web 後執行:

    dsh plugin --profile web exec dsh-auth-lock-reset -- --yes
重啓 DSH 後,系統將恢復首次設置狀態。

注意事項

  1. DSH 版本兼容性
    該插件依賴 DSH 的特定 WebServer 水流。在舊版本的 DSH 構建上,插件會保持非活動狀態,且頁面日誌會明確提示並推薦卸載。

  2. 不可逆性
    密碼驗證器是不可逆的,因此無法恢復原始密碼。一旦遺忘,必須通過上述命令重置。

  3. 環境依賴
    插件運行於 DSH 進程的 Host 權限下。安裝前建議檢查源碼與許可證。

  4. 生態變動
    DeepSeek Harness 正處於快速演變中,可能會引入破壞擴展點兼容性的變更。長期部署建議鎖定 Git Commit 或使用明確發佈的版本。

總結

dsh-auth-lock 爲 DSH Web 部署提供了一個輕量級但標準化的認證層。它通過密碼、會話管理和嚴格的訪問控制,填補了 Host 端的安全空白,適合需要提升 Web 服務安全性的場景。

  • 插件目錄:https://www.skillhub.cn/plugins/imchenmin/dsh-auth-lock
  • 源碼地址:https://github.com/imchenmin/dsh-auth-lock
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜