核心用法
Confidant 是一个面向 AI 代理的安全凭证交接工具,解决"如何在不暴露于聊天上下文的前提下获取用户敏感信息"这一关键安全问题。其工作流程遵循严格的人机协作模式:代理运行脚本生成安全 URL → 在聊天中发送 URL 给用户 → 用户浏览器中填写并提交秘密 → 脚本自动接收并保存到本地文件(权限 600)→ 服务器端立即销毁副本。
主要脚本 request-secret.sh 支持多种使用模式:
--service <name>:自动保存到~/.config/<name>/api_key--save <path>:指定自定义保存路径--env <varname>:同时设置环境变量--tunnel:为远程用户自动启动 localtunnel 公网隧道--json:机器可读的 JSON 输出
显著优点
1. 零聊天暴露:秘密全程不经过对话上下文,杜绝日志、历史记录、截图等泄露渠道
2. 端到端加密:传输过程受 TLS 保护,服务器端不持久存储(接收即删除)
3. 无缝隧道支持:自动检测或启动 ngrok/localtunnel,无需公网 IP 或防火墙配置
4. 权限最小化:保存文件默认 600 权限,符合安全基线
5. 人机界限清晰:强制代理不得自行访问 URL、不得轮询检查,必须由真实用户完成提交
潜在局限与风险
1. 依赖外部隧道服务:localtunnel 为第三方开源服务,虽无需账户但存在服务可用性风险;ngrok 需注册且免费层有速率限制
2. 本地服务器攻击面:3000 端口监听期间,同一网络内的其他实体可能探测到服务(虽请求 ID 随机且 24h 过期)
3. 无客户端身份验证:URL 本身即为唯一凭证,若被中间人截获链接,理论上可抢先提交(建议结合短有效期使用)
4. Node/npm 依赖链:需安装 npm 包 @aiconnect/confidant,存在供应链攻击潜在风险
5. 进程残留风险:脚本虽会复用现有服务器,但异常退出时可能留下孤儿进程
适合人群
- 需要频繁配置 API 密钥的 AI 代理工作流(如 OpenAI、SerpAPI、数据库连接字符串等)
- 远程/多用户协作场景,代理与用户不在同一机器或网络
- 对聊天记录合规性有严格要求的企业环境(防止敏感信息进入审计日志)
常规风险
- 钓鱼 URL 风险:恶意代理可能伪造类似链接诱导用户提交秘密至错误端点,需用户验证域名
- 浏览器环境安全:用户端可能存在键盘记录器、恶意浏览器扩展等,超出本工具防护范围
- 文件系统权限误配:若 umask 设置异常或手动修改权限,可能导致其他用户可读