[论文解读] PML: An Interpreter-Based Access Control Policy Language for Web Services
本文提出PML,一种基于解释器的访问控制策略语言及执行机制(PML-EM),实现了面向Web服务的模型无关与实现无关的访问控制。通过利用Lua的解释器内嵌执行机制,PML-EM实现了跨语言兼容性与沙箱安全,当使用Lua JIT时,每请求的策略执行开销低于5.9 μs,展示了在Intel的RMD和VMware的Dispatch等真实系统中的高性能与实际可用性。
Access control is an important component for web services such as a cloud. Current clouds tend to design the access control mechanism together with the policy language on their own. It leads to two issues: (i) a cloud user has to learn different policy languages to use multiple clouds, and (ii) a cloud service provider has to customize an authorization mechanism based on its business requirement, which brings high development cost. In this work, a new access control policy language called PERM modeling language (PML) is proposed to express various access control models such as access control list (ACL), role-based access control (RBAC) and attribute-based access control (ABAC), etc. PML's enforcement mechanism is designed in an interpreter-on-interpreter manner, which not only secures the authorization code with sandboxing, but also extends PML to all programming languages that support Lua. PML is already adopted by real-world projects such as Intel's RMD, VMware's Dispatch, Orange's Gobis and so on, which proves PML's usability. The performance evaluation on OpenStack, CloudStack and Amazon Web Services (AWS) shows PML's enforcement overhead per request is under 5.9us.
研究动机与目标
- 解决云访问控制策略语言缺乏标准化的问题,避免用户需学习多种语言,且云服务提供商无需为每个平台重新实现授权逻辑。
- 通过在不同编程语言间复用单一策略执行机制,降低云服务提供商的开发与维护成本。
- 实现跨云策略可移植性,使用户可在不重写策略的情况下在不同平台间迁移。
- 提供安全的沙箱执行机制,隔离策略执行与宿主系统。
- 在OpenStack、CloudStack和AWS等真实系统中,通过基准测试验证所提方案的实际可行性与高性能表现。
提出的方法
- 设计PML作为高层级策略语言,通过与具体策略规则分离的抽象授权逻辑,支持表达ACL、RBAC和ABAC模型。
- 采用解释器内嵌(IoI)架构实现PML-EM,即PML解释器运行于Lua解释器内部,以确保沙箱安全与可移植性。
- 利用Lua轻量级、可嵌入的运行时环境,使PML-EM可被用于支持Lua嵌入的Python、Java、C++等各类系统。
- 使用Lua即时编译(JIT)技术优化性能,将PML匹配逻辑与解释器逻辑编译为机器码,实现低延迟执行。
- 在真实平台(包括OpenStack(Python)、CloudStack(Java)和AWS IAM(C++/Java))上评估PML-EM,测量在真实工作负载下的策略执行延迟。
- 与原生执行机制及非JIT版本对比,以隔离解释器层与JIT优化对性能的影响。
实验结果
研究问题
- RQ1单一策略语言是否能在不牺牲表达能力或性能的前提下,表达ACL、RBAC和ABAC等多样化的访问控制模型?
- RQ2如何实现跨不同云平台与编程语言的策略执行机制,使其既与模型无关,也与实现无关?
- RQ3在生产级云系统中,采用解释器内嵌方式执行策略的性能开销如何?
- RQ4使用Lua JIT是否能显著降低解释器层带来的性能损耗?
- RQ5在真实云平台中,PML-EM与原生执行机制相比,在延迟与可扩展性方面表现如何?
主要发现
- 使用Lua JIT时,PML-EM每请求的策略执行开销低于5.9 μs,适用于低延迟云工作负载。
- 解释器内嵌(IoI)机制使PML-EM可在任意支持Lua嵌入的语言实现的系统上运行,实现与实现语言无关。
- 启用Lua JIT后,PML-EM的性能即使在增加抽象层的情况下仍具竞争力,部分基准测试中开销仅为原机制的0.32倍。
- PML-EM的设计成功将授权逻辑与策略规则解耦,实现跨不同访问控制模型与平台的复用。
- PML已被实际部署于Intel的RMD、VMware的Dispatch以及Orange的Gobis系统中,验证了其实际可用性与鲁棒性。
- 性能评估表明,即使存在解释器层,总延迟仍低于典型互联网往返时间(30–100ms)的0.2%,对用户体验影响可忽略。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。