能力系统Skill capability-system

能力系统是一种安全技能,基于不可伪造的能力令牌实现细粒度访问控制和最小权限原则。它适用于操作系统安全、沙箱构建、分布式系统等,提升系统安全性。关键词:能力安全、访问控制、最小权限、操作系统安全、沙箱、分布式安全。

零信任架构 0 次安装 2 次浏览 更新于 3/13/2026

name: capability-system description: “实现基于能力的安全以进行细粒度访问控制和最小权限。” version: “1.0.0” tags: [安全, 能力, 访问控制, oopsla] difficulty: 中级 languages: [rust, capability-calculus, python] dependencies: [type-checker-generator, linear-type-implementer]

能力系统

基于能力的安全使用不可伪造的令牌(能力)来表示权限。不是检查“你是谁”(ACLs),而是检查“你持有什麼”(能力),实现细粒度的最小权限。

何时使用此技能

  • 构建安全操作系统
  • 实现沙箱
  • 设计最小权限系统
  • 分布式对象系统
  • 安全浏览器(seL4, Capsicum)

此技能的作用

  1. 能力令牌: 对资源的不可伪造引用
  2. 权限委托: 在主体之间转移能力
  3. 衰减: 减少能力权限
  4. 撤销: 撤销委托的能力
  5. 限制: 限制能力传播

关键概念

概念 描述
能力 授予权限的不可伪造令牌
衰减 减少能力权限
委托 将能力转移给另一个主体
撤销 使能力及其后代无效
限制 限制能力传播
方面 对象的特定接口

提示

  • 使用不可伪造的令牌(加密或内存安全引用)
  • 实现适当的衰减
  • 仔细考虑撤销(可能无法跟踪)
  • 使用对象能力进行细粒度控制
  • 记录能力使用以进行审计

常见用例

  • 安全操作系统(seL4, Fuchsia)
  • 浏览器沙箱
  • 分布式对象系统
  • 云访问控制
  • IoT设备安全

相关技能

  • information-flow-analyzer - 跟踪信息流
  • linear-type-implementer - 线性能力
  • sandbox-builder - 使用能力进行沙箱化
  • ownership-type-system - 所有权和能力

规范参考

参考 重要性
Levy “基于能力的计算机系统” 经典文本
Miller “能力神话被打破” 澄清误解
Shapiro 等人 “EROS:一个能力系统” 实用系统

权衡与限制

方法权衡

方法 优点 缺点
纯能力 可组合,无环境权限 需要语言支持
混合(ACL + 能力) 实用 复杂
加密能力 分布式 性能

何时不使用此技能

  • 简单的访问控制需求
  • 当ACLs足够时
  • 性能关键路径(加密开销)

限制

  • 撤销复杂
  • 限制困难
  • 丢失能力难以恢复

评估标准

高质量实现应具有:

标准 要寻找的
不可伪造性 能力不能被伪造
衰减 权限可以减少
委托 能力可以共享
撤销 能力可以被撤销

质量指标

: 不可伪造,支持衰减和撤销 ⚠️ 警告: 可能伪造,无撤销 ❌ : 无安全保证

研究工具与成果

能力系统:

系统 要学习的
EROS 能力操作系统
CapROS 现代能力操作系统
Fuchsia 基于能力的

研究前沿

1. 分布式能力

  • 目标: 跨信任边界的能力
  • 方法: 加密能力

实现陷阱

陷阱 实际后果 解决方案
伪造 安全漏洞 加密密封