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
羽毛球分组比赛记分
小程序二维码

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

小夜