加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

一种分布式安全策略模型的研究及其实现

发布时间:2022-10-25 20:00:40 所属栏目:安全 来源:网络
导读: 一种分布式安全策略模型的研究及其实现
马薇薇
大连理工大学软件学院,辽宁大连(116023)
E-mail:maple_mww@126.com
摘要:在归纳现有安全策略模型、特别是针对分布式系统的安全策略模型

一种分布式安全策略模型的研究及其实现

马薇薇

大连理工大学软件学院,辽宁大连(116023)

E-mail:maple_mww@126.com

摘要:在归纳现有安全策略模型、特别是针对分布式系统的安全策略模型的基础上,建立了一种基于某种规则下可以安全交互的安全策略模型,并且详细讨论了它的基本概念及其典型应用。

关键词:安全策略,分布式系统,长城协议

中图分类号:TP309

1. 引言

策略就是使一组对象为协同完成某项任务或达到某个目标,而必须共同遵循的行为规范。OSI安全体系中将安全策略定义为安全服务应达到的各种准则[1]。在分布式系统中,安全策略问题不仅是要分别研究各个特定安全策略本身,另一个研究重点在于分布式系统中集成、实现、验证、维护安全策略的方法和技术。这些方法和技术并非针对任何特定的安全策略,而是策略无关的,或者说应追求最大限度的策略无关性。也就是说,在分布式系统中的安全策略问题主要是研究策略的智能化的集成机制问题。LGI模型源于Rutgers大学Minsky教授及其学派的工作,其全称是Law-Governed Interaction,即“协议制导的相互作用”。本文运用LGI模型研究分布式系统安全策略的问题,并给出了著名的长城(Chinese-Wall)协议的建模实例。

2. 目前分布式系统中安全策略的现状及不足

如果将计算机系统当做一种有限状态自动机,该自动机有一套完成状态改变的转换函数,则安全策略可以定义为是一种声明,它将系统的状态分成两个集合:已授权的,即安全的状态集合;未授权的,即不安全的状态集合。如果系统进入一个未授权状态,则称发生了一次安全破坏。计算机安全建立在保密性、完整性和可用性之上[1]。

安全策略可以单独地或混合地使用两种类型的访问控制。访问控制策略(Access Control Policies)隶属于系统安全策略,它迫使在计算机上系统和网络中自动地执行授权。授权(Authorization)是一个安全策略的基本组成部分。所谓授权是指赋予主体(用户、终端、程序等)对客体(数据、程序等)的支配权利,它决定用户能做什么,也决定代表一定用户身份的进程能做什么。访问控制模型是一种从访问控制的角度出发,描述安全系统、建立安全模型的方法。分为:自主访问控制模型(DAC),强制访问控制模型(MAC),基于角色的访问控制模型(RBAC)以及基于任务的访问控制模型(TBAC)和基于对象的访问控制模型(OBAC)等[1]。

当用户数量多、处理的信息数据量巨大时,用户权限的管理、维护任务将变得十分繁重,并将降低系统的安全性和可靠行。在分布式系统中,授权需要一个授权认证的过程,经常变更授权时,对于授权的效率也会有负面的影响。传统的安全策略及访问控制模型软件实现复杂,状态过多,不容易重用。本文讨论的LGI同样支持灵活的访问控制策略,克服了以往模型的缺点,可以用于实现现有大多数访问控制策略。

3. LGI模型

3.1 LGI 的定义[2]

LGI 是一种交互模型,它要求分布式异构系统中的对象在某种明确的规则下能够相互信任的交换信息。在规则L 下相互作用的对象的集合,称为L-group ,可以用4-元组(L ,A ,CS ,M )来定义:

L 是协议的集合,即一组显示表达的行为规范;

A 是参与对象的集合,每个对象有全局唯一的标识;

CS 是状态空间族{}|X CS x A ∈,即对每个对象x ,X CS 是x 的状态空间;

M 是一组消息的集合,基于规则L 交互的信息被称为L-message 。

3.2 LGI 协议实现的前提条件和运行环境

广义上讲,规则L是通过被称为控制器(controller )的可信任的对象实施的,控制器是对象间交换L-message 的中介[3]。每一个对象都有一个控制器C ,用来维护对象的控制状态变量集合CS 。所有的控制器位于成员对象和通信媒介之间,都执行同样的规则。控制器可以用来说明和执行任何合法规则,作为一个独立的进程,可以在网络任意节点替代任意机制。

要使L-group 中所有对象在一定规则L 下成功执行,必须有以下保证: ⑴ 每个对象要获得一个控制器;⑵ 所有controllers 必须基于相同的Law 。只有完成以上两步,对象之间才可以交换L-message [4]。

运行环境如图1所示。

图1 LGI 执行环境

3.3 LGI 的其他元素[2]

除以上4-元组模型中定义的元素外,LGI 模型还需要由以下特殊元素描述,这些也是使用LGI 来表达协议的最重要的元素。如表1示。

表1 LGI 的原子操作

状态空间上的原子操作(t 表示构成谓词公式一个项,如状态变量、一个命题表达式等)

将t 加入状态空间 - t 将t 从状态空间删除

作用在消息上的操作

forward(x, m, y) 对象x向对象y转发消息m,与下面的事件sent不同,

这里x并非m的始发者,而称为m的名义发送者。

deliver(x, m, y) 对象y向本地的接受进程提交消息m分布式系统安全,x是m的名义

发送者

事件

对象h向对象y发送消息m。

arrived(x, m, h) 对象x发出的消息m到达对象h。

3.4 LGI协议的完整定义

原始文献中,LGI的表达借用了Prolog的形式语法。Prolog是programming in LOGic 的缩写,是一种建立在逻辑学的理论基础之上的编程语言。

一个由LGI模型描述的协议的完整定义包括:(1)协议首部,由关键字Preamble开始,声明协议的名字、所接受的合法公钥、初始状态、与其它协议的隶属关系、变量别名等;(2)公理,即一组恒真命题和谓词公式,常省略;(3)事件响应规则,由关键字Rules开始,这是协议的最主要的成份。在LGI协议中,一个事件规则的Prolog语法形式是: :-

是带参数的事件表达式,是带参数的条件表达式,即一阶逻辑的谓词公式,其中符号“|”表示运算OR,逗号“,”表示运算AND,如条件表达式companyPermit@CS | belongsTo(C, Q), cliquePermit(Q)@CS 应理解做companyPermit@CS OR (belongsTo(C, Q) AND cliquePermit(Q)@CS )。经常出现的项x(u)@M表示将对象M 的名字为x的属性的当前值赋予变量u,M是消息变量、CS等。x(u)@CS就表示将名字为x的状态变量的当前值赋予变量u。belongsTo(C, Q)等是带参数的谓词。

是操作列表,最常见的形式是“,”隔开的形如do( f ) 的项,每项表示一个动作f,f作用于本地状态变量的集合CS。

以上响应规则的语义是:当事件于本地发生时,若真,则依序执行中的所有动作。空则表示恒真。

4. LGI实例:长城协议的实现

下面以最著名的长城(Chinese-Wall)协议进一步研究LGI是如何实现分布式协议的。

4.1 长城协议的描述

Chinese-Wall安全策略最早是由Brewer 和Nash根据现实的商业政策模型提出,它把所有单位的信息存储在3个级别,最低级别是单个的数据对象,对应上一层是相应的单位数据集合(company data 简称CD),最上层是根据利益冲突分类的COI 类(conflict of interest 简称COI),每个单位只能属于一个COI。初始时,一个用户可以访问任意COI 类的单位数据CD,不存在访问的强性限制。但是,一旦他做出初始选择后,则他再不能访问该COI 类的其他单位数据,即好似在CD 周围建立了“城墙”。设定图2中的COI 类i 是所有相互竞争

i}是某一银行机构的数据集合,则当用户访问过该机构的的银行机构的利益冲突类,其中{

1

信息后,他就不能访问其他银行机构的信息,例如{2m i i L },在图2中被阴影斜线包围。设定COI 类j 代表相互竞争的石油机构的利益冲突类,如果该用户还没有访问过该类信息他就可以对此类任一机构信息进行自由访问,但只要该用户访问了机构{1j }的信息,图2中的阴线将扩展到{2m j j L }。所以,这种自由选择在一类COI 中只存在一次,其后的访问便受限制[5]。

同样根据Bell-Lapadula 模型,可以类似的定义Chinese-Wall 的策略读写模型[6]。模型的客体(O)指用户按照规则访问的数据对象,而主体(S)指代表用户行为的任何程序。主体和客体的关系规则如下:

(1) Brew-Nash 读访问规则。主体s S ∈只可在下列条件下读取o O ∈:

● o 和s 以前读取的客体在同一个单位的数据集合内(即o 在“墙内”) ,或者

● o 属于s 以前没有读取任何数据信息的COI 类(即o 在“墙外)。

(2) Brew-Nash 写访问规则。主体s S ∈只可在下列条件下写入o O ∈:

● s 能够写入按照Brew-Nash 读访问规则访问的数据,并且

● 在其他COI 类上不存在该主体可以读取的客体。

图2 Chinese-Wall 安全策略

Brew-Nash 读访问规则表现出Chinese-Wall 策略的动态特性。Brew-Nash 写访问规则可以防止特洛伊木马的破坏。

4.2 长城协议的LGI 实现

考虑一组上市公司,它们被划分为一些集团,每个公司仅属于一个集团,同一集团中的各公司之间的利益是冲突的。用户,即金融分析家,可以查询任何公司的财务信息,但受以下协议的约束:

★一旦一位用户访问了某家公司的财务信息,他/她将不能访问该公司所属集团中的任何其它公司的财务信息。

根据协议的陈述,每个用户当前能被允许访问那些公司将依赖于他/她以前访问过哪些公司。如果所有财务信息存储于一个数据库服务器,该协议机制可以实现于数据库端,数据库端的访问控制的依据就是每个用户对该数据库的访问历史,这时传统的实现是可行的(不考虑用户访问的历史信息量会随时间积累越来越大)。如果同一集团中各家公司的财务信息并非集中存储于一个数据库服务器,而是分散于多个服务器,如各家公司自身的服务器,传统的实现方法将是不可行的,这是因为为了精确实现协议规范,任何一个服务器对任何一个访问请求的处理都要求所有服务器协同参与,以提供该用户以前的精确的访问历史。这在性能上导致极低效率,并且当有任何一家公司的数据存储位置发生变化时其它服务器都必须重新配置以保证通讯,这些都破坏了分布式系统的可扩展性和自治性,而这种

破坏已在实践中反复证明是不可取。

采用LGI模型时,执行机制有如下特点:a.发送和接收的L-message都遵守规则CW,称之为CW-message;b.接收消息遵守的是规则CW,则发送时也同样要遵守CW。比如,查询服务器只接收CW-message,那么任何需要得到该服务器提供服务的对象都必须发送CW-message。相反,如果用户提出的查询请求是CW-message,服务器必须接收这样的消息并将查询结果以这样的消息形式返回。

现在给出CW协议的LGI实现[7],如图3所示。

图3 长城协议

这里LGI 对象是用户和所有财务信息服务器。 规则中,最重要的是R5,它作用于用户对象上,保证了CW 规范。从客户/服务器观点看,这是在“客户端”实现了访问控制,对此需要注意的是:LGI 的观点,并不刻意区分“客户”与“服务器”,而强调接受同一协议控制而导致的对象行为的一致性。

4.3 实现过程

1.L-group 的配置[2]

创建一个新的L-group 是由一个规则服务器S 开始的,它负责维护:L ⑴-group 的规则L ;⑵列出初始成员,和他们的初始状态变量集;⑶给新成员赋予初始状态变量集,从而获得生命周期。

图4中:(a) 对象x 向可控制器服务器(controller-server )申请一个controller x C ;(b) x 向S 提出请求加入L-group ,并在x C 上加载L 和x CS ;(c) x 可以与其他遵守同样规则的对象y 交互。

图4 L-group 的配置

一旦x 加入到L-group 中,它就可以用L-message 和其他成员交换信息,它的名字和地址由S 提供。信息交换是controller 完成,S 不参与其中。完成这样的信息交换,对象需要Moses 提供的接口。L-group 成员不需要知道规则细节,只需要知道规则某些部分以达到有效操作的目的。

2.Moses 中间件

目前LGI 是由Moses 中间件实现的(Moses 取自圣经中律法的颁布者摩西)。Moses 是一个java 包,包含java 文档、java 类、配置文件和库等,提供了controller 和其他工具的实现。Moses 中间件有以下组件构成:

— controller :每个进程都可以拥有一个controller ,由控制器服务器创建。

— 对象和controller 之间的接口:Moses 提供了两类接口,一个是程序-控制器接口,允许

程序和LGI 控制器之间的交互;另一个是用户图形-控制器接口,使用户通过web 浏览器操作。

— 规则服务器:这是一个HTTP 服务器,用来发布和释放规则。

— 规则测试:是一个离线工具,用来测试用prolog 或java 书写的规则。

— 安全工具:这个工具集合提供私钥、公钥以及证书的处理。

— 控制器服务器:创建新的控制器和维护已经存在控制器。

3.实现的具体过程如下:

查询服务器在提供资源查询服务之前要拥有由资源服务器信任的CA 颁发的公钥证书。

本协议认可的合法签名以admin持有的pubkey验证。

(1) admin发布合法的查询服务器,并将其记录于状态变量集合(CS)中。本文合法服务器为Q集团下的C公司。

(2) 用户U向合法的查询服务器提出资源访问请求,其消息格式为CW-message。

(3) 查询服务器收到CW-message后,把用户U请求查询公司C的信息记录于CS,即在本地状态变量空间中添加requested(C,U)。

(4) 查询服务器向U发出响应之前,要确认用户U确实发出对C的查询请求。

(5) 若用户U的状态变量集合中没有blocked (Q),则接收关于C的信息,并提交到应用程序。同时在状态变量集合中添加blocked (Q)和permitted (C)。

(6) 若用户U的状态变量集合中含有blocked (Q),同时含有permitted (C),则接收关于C 的信息,并提交到应用程序。

(7) 若用户U的状态变量集合中含有blocked(Q),而没有permitted(C),则拒绝接收C 的信息。

5. 结束语

在日新月异的网络世界里,分布式系统的应用越来越广泛。在分布式系统中,对象间的协作仅发生在互相信任的基础之上。LGI模型是利用一个规则作用于整个对象组的方法,实现了这样的信任机制。LGI避免了早先分布式系统中实现方法的不足,如软件实现复杂,状态太多,不容易重用等。可以认为几乎所有具体的策略可用LGI 的机制实现规范化,然后部署和执行,用LGI 来实现其他一些安全协议的模型将是下一步的研究方向。

参考文献

[1] Matt Bishop著. 计算机安全学——安全的艺术与科学[M]. 王立斌等译. 北京:电子工业出版社,2005.

[2] N.H.Misnsky , V.Ungureanu. Law-governed Interaction: a Coordination and Control Mechanism for

Heterogeneous Distributed Systems[J]. TOSEM, ACM Trans. Software Engineering and Methodology, July 2000, 9(3):273-305.

[3] Xuhui Ao, Naftaly H.Minsky. On the role of roles: from role-based to role-sensitive access control [A].

SA TMAT’04[C]. Yorktown Heights, New York, USA. June 2-4 2004.

[4] Xuhui Ao, Naftaly H.Minsky. Law-governed Internet Communities[A]. Conf. Coordination Models and

Languanges[C]. Limassol, Cyprus. Sept.2000, LNCS 1906, 133-147.

[5] 秦超,陈钟.Chinese Wall策略及其在多级安全环境中的扩展[J].北京大学学报, 2002.5,第38卷,第3期.

[6] D.Brewer , M.Nash. The Chinese Wall Security Policy[A]. Proc. IEEE Symp. Security and Privacy[C]. IEEE

Computer Society, May 1-2, 1989 . pp. 206-214.

[7] Naftaly H. Minsky. A Decentralized Treatment of a Highly Distributed Chinese-Wall Policy [EB/OL].

~minsky/pubs.html, 2007.5.

.A Research on Distributed Security Policy Model and Its

Implementation

Ma Weiwei

Software College,Dalian University of Technology,Dalian,Liaoning (116023)

Abstract

Existing security strategy models are summarized. Particularly based on the distributed systems security strategy model, a rule-based interactive security policy model is established, and detailed discussions of its basic concept and its typical application.

Keywords:security policy,distributed system,Chinese-Wall policy

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!