OpenClaw学习总结_IV_认证与安全_3:Authorization与Policies详解

IV. 认证与安全 - 3. Authorization 与 Policies

📍 课程位置

阶段 :IV. 认证与安全
课序 :第 3 课
前置知识 :IV-2. Authentication
后续课程:IV-4. Multi-Account Patterns


🎯 本课核心问题(你不懂我就这样教你)

前两课解决了"我有没有钥匙(Authentication)"。

这一课解决的是:

  1. 就算我有钥匙,我能进哪些门?能干哪些事?
  2. 谁能给我的 Agent 发消息?谁能用 DM?谁能在群里触发?
  3. 工具(exec/browser/files/message)到底允许到什么程度?
  4. 怎么防 prompt injection?怎么做最小权限?

一句话:

Authorization & Policies = 用规则把系统"收口",决定谁能触发你、触发后能做什么。


🧠 心智模型:Authentication 是"身份",Authorization 是"权限"

类比:

  • Authentication:你是谁/你有没有门禁卡
  • Authorization:你能进哪几层楼/能不能进机房

OpenClaw 的授权大体分成三层:

  1. 入口权限(谁能来找你):dmPolicy / groupPolicy / allowlist / pairing
  2. 会话隔离(谁的上下文跟谁隔离):dmScope / sessions
  3. 执行权限(能用哪些工具):tools policy / sandbox

✅ 验收标准

  • 能正确选择 dmPolicy(pairing/allowlist/open/disabled)
  • 能正确设置 dmScope 防止串话
  • 能设置工具最小权限(messaging-only vs full)
  • 能理解 prompt injection 的主要风险面

1) 入口权限:DM / 群聊的访问控制

DM(私聊)

推荐优先级:

  1. pairing(默认推荐)
  2. allowlist(只给自己/少数人)
  3. open(强烈不推荐)
  4. disabled

群聊

建议默认:

  • requireMention(@ 才响应)
  • 或 group allowlist

目标:

  • 降低误触发
  • 降低成本
  • 降低注入风险

2) 会话隔离:dmScope(防止多用户串话)

如果你面对多个用户:

json5 复制代码
{ session: { dmScope: "per-channel-peer" } }

这样每个"渠道+对话对象"都有独立会话。

你可以把它理解成:

每个人一个独立聊天窗口,互不继承上下文。


3) 执行权限:Tools Policy(最小权限原则)

这是授权体系最关键的一环。

为什么?

prompt injection 的破坏力取决于:

  • Agent 能不能调用危险工具(exec / filesystem write / browser)

如果你的 Agent 只有 message 工具:

  • 被注入也只能"说话",破坏面非常小

建议的策略

  • home/对外 agent:messaging + web_fetch(最小)
  • work/开发 agent:允许 exec/git/browser,但配 sandbox

4) Prompt Injection:你要防的不是"模型被说服",而是"工具被滥用"

关键原则:

  1. 外部输入永远不可信(群聊、webhook、陌生人 DM)
  2. 不要让外部输入直接决定:
    • 执行命令
    • 读取文件
    • 上传数据
  3. 需要人工确认的行为:
    • 删除/移动文件
    • 发布/发送到外部

你可以把安全做成"闸门":

  • 入口闸门(pairing/allowlist)
  • 会话闸门(dmScope)
  • 工具闸门(tools policy)
  • 隔离闸门(sandbox)

🧪 推荐的安全基线(可直接抄)

json5 复制代码
{
  session: { dmScope: "per-channel-peer" },
  tools: { profile: "messaging" },
  agents: {
    defaults: {
      sandbox: { mode: "non-main", scope: "agent", workspaceAccess: "ro" }
    }
  },
  channels: {
    whatsapp: { dmPolicy: "pairing" },
    telegram: { dmPolicy: "pairing" }
  }
}

⚠️ 常见陷阱

陷阱 表现 根因 解决
dmPolicy=open 陌生人都能来 入口没收口 pairing/allowlist
dmScope 太粗 串话/泄露 多用户共用会话 per-channel-peer
tools 太全 被注入就能执行危险操作 最小权限没做 限制 tools + sandbox
群聊乱回 误触发 没 mention gating requireMention

📝 学习心得

Authorization 这章的本质是"收口"。

我现在的结论是:

  • 入口控制(谁能说话)只是第一步
  • 真正决定风险的是"能不能用危险工具"

把系统当成"要上线的服务"去设计:

  • 最小权限
  • 分层闸门
  • 可回滚

你就不会被 prompt injection 拿捏。


✅ 本课总结(记住 5 句话)

  1. Authentication 是"有没有钥匙",Authorization 是"能干什么"。
  2. DM 推荐 pairing/allowlist,open 风险极大。
  3. 多用户必须 per-channel-peer,防串话。
  4. Prompt injection 的风险核心在工具滥用。
  5. 安全要分层:入口 + 会话 + 工具 + 沙箱。

🔗 相关资源

相关推荐
小雨笙笙33 分钟前
机器学习:线性回归学习
学习·机器学习·线性回归
微财经观圈34 分钟前
酒店配送机器人如何选型:普渡和优地从安全到场景的全面对比
大数据·安全·机器人
HugoStudio_SWAN35 分钟前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法
是隼人1 小时前
buuctf-pwn [HarekazeCTF2019]baby_rop2(64位ret2libc)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
马立杰1 小时前
IE241210_路由安全技术(三层安全)
网络·安全
马立杰2 小时前
IE241211_路由安全技术(三层安全)
网络·安全·智能路由器
迪康Defender2 小时前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全
迪康Defender2 小时前
迪康端点安全一体化管理系统文档安全:构建企业文档资产全链路防护体系
运维·网络·安全·web安全·终端安全管理
aprilaaaaa2 小时前
(TC397 学习笔记)二、ICU和TIM的时钟计算
笔记·学习·fpga开发
山东科恩光电3 小时前
科恩隐卫-KZS-01系统实现注塑生产的安全与高效兼顾
安全