PCAL:用于携带证明授权系统的语言支持
1. 引言
在现代的访问控制场景中,携带证明授权(PCA)技术允许通过将证明负担转移给用户,自动执行复杂的访问控制策略。然而,管理这些证明对于用户来说是一项艰巨的任务。为了解决这个问题,我们开发了一种类似Bash的语言PCAL,它能够自动、正确且高效地使用PCA接口。
PCA系统要求用户为每个操作请求提供一个或多个证明,以表明策略允许该操作。这大大增加了用户的负担,即使使用定理证明器,用户仍需确保生成足够的证明,并尽量减少运行时的证明构建成本。
PCAL通过扩展Bash脚本语言,添加了一些PCA特定的注释。PCAL编译器会将带有这些注释的程序转换为普通的Bash脚本,以在支持PCA的系统中执行。编译器基于这些注释执行以下任务:
1. 检查证明期望 :编译器检查程序员对证明的期望是否足以确保脚本中每个shell命令的成功执行。为此,它需要通过配置文件了解执行每个shell命令所需的权限。
2. 静态证明构建 :编译器使用定理证明器和访问控制策略信息,尝试静态构建与程序员注释对应的证明。如果静态构建失败,编译器会生成代码,在运行时通过命令行调用定理证明器来构建证明。
3. 传递证明 :编译器添加代码,将为每个shell命令生成的适当证明传递给PCA接口。
使用PCAL相比简单的方法有至少两个优势:
1. 确保证明完整性 :由于编译器进行了静态检查和动态代码生成,生成的脚本至少会尝试构建所有必要的访问证明。因此,脚本失败的原因只能是用户
超级会员免费看
订阅专栏 解锁全文
138

被折叠的 条评论
为什么被折叠?



