编程安全与静态分析中的追踪分区技术
显式安全策略编程
在编程领域,信息安全至关重要。像基于 Java 的 Jif 编程语言,就拥有用于信息安全的类型系统。信息流动策略的一个吸引人之处在于它与非干扰这一语义安全条件相关联。非干扰大致意味着,当高安全级别的输入改变时,系统的低安全级别行为不会改变。这个条件可以在编程语言的操作语义中表达,从而有可能证明安全类型系统对系统行为的约束。
许多对安全尤为重要的计算系统是分布式系统,服务于多个主体。以网络购物服务为例,它服务的客户不完全信任该服务,而销售产品的公司也不信任客户或彼此。因此,客户购物时使用的计算资源分布在客户计算机、网络服务提供商和卖家计算机上。这些主体都有各自的安全需求,整个系统必须满足这些需求,主体才会参与。
为了实施此类系统的信息安全,需要了解每个主体的需求。去中心化标签模型是一种信息流动策略语言,引入了主体拥有的信息流动策略概念。例如,在保密性方面,策略 p1 : p2 表示主体 p1 拥有该策略,并信任主体 p2 读取相应信息。更一般地说,p1 信任 p2 代表其执行相关安全属性。这种结构可以为多个主体表达一组策略,同时跟踪每个策略的所有者(以及可以放宽策略的人)。
假设实现两人玩的海战游戏,玩家 A 希望能读取自己的棋盘,但不想让 B 读取,所以保密性标签是 {A : A}。在完整性方面,两个主体都希望确保棋盘根据游戏规则更新,所以完整性标签有两个拥有的策略:{A : A ∧ B, B : A ∧ B},其中 A ∧ B 是一个联合主体,表示 A 和 B 都必须信任对 A 棋盘的更新。
安全的分布式系统通过多种机制实现安全,包括代码和数据分区、复制、加密、数字签名、访问控制和能力
超级会员免费看
订阅专栏 解锁全文

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



