一种访问控制策略构建方法及其系统的制作方法

文档序号:7740432阅读:207来源:国知局

专利名称::一种访问控制策略构建方法及其系统的制作方法
技术领域
:本发明涉及一种安全模型的访问控制策略构建方法及其系统。
背景技术
:目前,国内外一些研究机构已开发设计了一些策略描述语言,传统的有ASL和PDL。ASL是基于逻辑的策略语言,具有较强的计算能力,允许推理,能够较好地解决安全策略的一致性检验和冲突消解问题,但是它们只针对某一种访问控制模型,而且由于使用谓词逻辑来进行策略描述,导致语言可读性差,不便于理解和编写。PDL是基于事件的策略语言。PDL的基本格式为event-conditions-action,含义是在满足conditions的前提条件下,event的发生会触发action的执行。主要应用于基于策略的网络管理,不支持安全系统领域的访问控制技术。新开发的策略语言有Seli皿x参考策略语言和Ponder等,虽然是针对于新要求提出的策略语言,存在一定的不足(l)Seli皿x开发的参考策略语言支持多种安全模型,如DTE和RBAC,但是语言缺乏结构性,对每个策略规则都需要明确声明和编写,导致其策略规则十分复杂、庞大,不便于用户的理解和使用;(2)Seli皿x虽然利用m4宏编译器编写外部接口试图简化策略的编写,但是由于m4宏编译器无法提供语义分析(如类型检查)的功能,降低了语言的健壮性,增大了策略冲突的概率;(3)Ponder是一种声明的、具有结构性的策略语言。它添加了面向对象的设计思想,支持策略类型的定义和实例化,一定程度上提高了代码的可读性和易用性。但是Ponder仅提供了对自主访问控制的支持,无法完整地描述其它安全模型如MAC和RBAC等。
发明内容本发明的目的是针对现有技术存在的不足,提供一种具有通用性和易用性的访问控制策略构建方法及其系统。为达到上述目的,本发明所采用的技术方案是提供一种访问控制策略的构建方法,其特征在于步骤包括(1)确定安全模型,包括安全属性、安全属性关系和安全规则;所述的安全属性,用于对系统对象的安全描述所述的安全属性关系,依据系统主体和系统客体在不同的安全模型中所具有的不同安全属性及安全属性间的关系,用于确定安全规则的限制条件;所述的安全规则包括授权规则和安全属性转移规则;所述的授权规则用于描述系统中主体在满足特定的限制条件下所允许或禁止拥有的权限,它包括肯定授权规则和否定授权规则,肯定授权规则用于确定主体允许拥有的权限,否定授权规则用于确定主体禁止拥有的权限;所述的安全属性转移规则用于描述安全模型中的权限转变规则,支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求,它包括系统主体的安全属性转移规则和系统客体的安全属性转移规则,系统主体的安全属性转移规则用于限制系统主体的权3限,系统客体的安全属性转移规则用于为新建客体赋予安全属性。(2)确定策略编译器语言的基本元素,包括数据类型、关系类型和规则类型;所述的数据类型包括基本数据类型和复合数据类型;数据类型包括整型int、字符串类型string和系统操作类型class,用于表示系统支持的操作;复合数据类型以struct关键字标识,支持整型int和字符串类型string两种基本数据类型的组合定义,不支持嵌套定义,用于描述安全属性以及操作系统的各种资源;所述的关系类型用于描述安全属性间的相互关系以及系统资源与安全属性间的映射关系,它包括关联类型associate,用于描述安全属性间的关联关系;偏序类型dominance,用于描述安全属性间的偏序关系;冲突类型conflict,用于描述安全属性间的冲突关系;赋予类型gencontext,用于描述系统资源与安全属性间的赋予关系;初始类型initcontext,用于描述系统初始进程的安全属性;所述的规则类型包括授权规则和安全属性转移规则;所述的授权规则包括肯定授权规则allow和否定授权规则deny;用于描述系统主体在满足特定的限制条件下所允许或禁止拥有的权限;所述的安全属性转移规则包括系统主体的安全属性转移规则和系统客体的安全属性转移规则,用于支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求。—种实现访问控制策略的系统,包括策略执行机构、策略数据库和策略模块,所述的策略模块包括策略源代码、策略编译器和目标代码,其特征在于所述的编译器包括语法分析模块,语义分析模块和后端代码产生模块;所述的语法分析模块用于进行词法分析和语法分析;所述的语义分析模块用于对策略代码进行类型检查,命名冲突以及策略冲突排查的语义分析,并根据策略模块中的策略元素实例化相应的数据结构,产生中间代码以及一个中间代码迭代器对象,以支持对中间代码的遍历访问操作;所述的后端代码生成器用于在中间代码迭代器的辅助作用下将中间代码转化为最终的目标代码。本发明提供了一种具有通用性和易用性的访问控制策略构建方法及其系统,用于安全操作系统中安全模型的设计与实现。与现有技术相比,所采用的访问控制策略构建方法能支持多种安全模型,便于安全策略的统一编写与管理;并支持代码重用,提高了语言的可读性,易于开发者理解使用。该方法在其编译器的支持下能生成不同格式的目标代码,譬如Seli皿x中使用的二进制格式的目标代码以及其它应用环境中使用的XML格式的目标代码,从而使得语言可适用于不同的操作系统应用环境。图1是本发明实施例提供的一种策略编译器的结构示意图;图2是本发明实施例提供的一种实现访问控制策略的系统结构示意图。具体实施例方式下面结合实施例和附图对本发明作进一步描述。实施例1本实施例在研究现有的访问控制技术以及安全模型,如BLP,DTE以及RBAC模型等的基础上,综合分析了这些模型的安全原理,提取它们共有的以及特有的安全特性,并对模型的实现进行抽象和总结,提炼通用性访问控制策略的设计需求。访问控制策略是安全模型的实现基础,是对抽象的安全模型的具体描述,是访问控制策略语言的实际描述对象。一般来说,访问控制策略主要有策略主体、策略客体和策略规则三个基本元素。这些元素对应到系统安全领域又可以划分为系统主体,系统客体以及安全规则三个基本概念。其中系统主体可以策略主体,也可以是策略客体,表示能主动执行操作的系统对象,如进程。系统客体一般是策略客体,表示可以被使用的系统资源,如文件、设备、网络端口等。安全规则定义了主体在满足特定的约束条件下对客体所具有的权限。每种安全模型都是由这三个基本元素组合实现的。根据以上对安全模型特性的分析,以及结合现有的安全策略语言的设计思想,本发明将安全模型提炼抽象为安全属性,安全属性间关系以及安全规则这三个基本概念,并以此作为访问控制策略语言的设计基础。针对上述安全模型中的三个基本概念,相应地,本发明在语言中分别设计了数据类型、关系类型,以及规则类型这三种基本元素来表达和描述。并且在语法设计阶段添加了结构化定义,并采用了面向对象的设计思想,提供了对对象、继承等设计概念的支持,提高语言的可读性和重用性,增强了语言的易用性。本实施例所提供的一种访问控制策略的构建方法,步骤包括(1)确定安全模型,包括安全属性、安全属性关系和安全规则。1)安全属性安全属性是安全模型中的主要特性之一。安全属性是对系统对象的安全描述。2)安全属性关系系统主体和系统客体在不同的安全模型中具有不同的安全属性,安全属性之间又具有多种关系,而安全规则通常就是依据安全属性间的关系来定义规则的限制条件。如BLP、BIBA模型根据主客体的安全等级来确定安全规则DTE模型根据主体的域属性和客体的型属性来确定安全规则RBAC模型根据主体的用户属性以及角色属性来确定安全规则等。3)安全规则安全规则也是安全模型的主要特性之一,是安全模型的主要组成元素。通过对多种安全模型以及现有安全策略语言的研究,我们将安全规则划分为两类a)授权规则主要描述系统中主体在满足特定的限制条件下所允许或禁止拥有的权限,权限所映射的就是系统操作。这是安全模型中最基本的安全规则。授权规则又可以分为肯定授权规则和否定授权规则。肯定授权规则定义了主体允许拥有的权限,而否定授权规则定义了主体禁止拥有的权限。b)安全属性转移规则主要描述了安全模型中的权限转变规则(譬如DTE的域转移规则和RBAC的角色转移规则等),以支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求。属性转移规则包含了系统主体的安全属性转移规则和系统客体的安全属性转移规则,前者用于限制系统主体的权限;后者用于为新建客体赋予安全属性。(2)确定编译器语言的基本元素,包括数据类型、关系类型和规则类型。1)数据类型基本数据类型包括整型int、字符串类型string以及系统操作类型class,用于表示系统支持的操作。复合数据类型以struct关键字标识,支持两种基本数据类型(整型和字符串类型)的组合定义,但不支持嵌套定义,可以用于描述安全属性以及各种系统资源,如文件、端口以及网络节点等。其语法格式为newtype—definition—structID{common_variable_declaration—list};common_variable_declaration_list—common_variable_declaration—listcommon_variable_declarationIcommon_variable_declaration;common—variable—declaration—common—typeID|common—typeID[NUM];common—type—int|string;2)关系类型a)关联类型associate,描述安全属性间的关联关系;b)偏序类型dominance,描述安全属性间的偏序关系;c)冲突类型conflict,描述安全属性间的冲突关系;d)赋予类型gencontext,描述系统资源与安全属性间的赋予关系;e)初始类型initcontext,描述系统初始进程的安全属性。这五种关系类型主要用于描述安全属性间的相互关系以及系统资源与安全属性间的映射关系,它们具有相似的定义语法和实例化语法relation_definition—relation_typeID(formal—parameters);relation—instance—instID(actual—parameters);relation—type—associateIdomainance|conflict|gencontext|initcontext;3)规则类型a)授权规则授权规则主要描述系统主体在满足特定的限制条件下所允许或禁止拥有的权限。授权规则又可以分为肯定授权规则(allow)和否定授权规则(deny)。语法格式为allow/deny_definition—allow/denypolicyType(formal—parameters){permissionpermission_expression[constrainconstrain_expression]};allow/deny—instance—instpolicyType(actual—parameters);policyType—ID;其中policyType用于声明类型名,allow/deny用于声明策略类型。每个授权策略的定义包括两部分-permission语法段禾Pconstrain语法段。其中permission语法段描述了授权策略所允许或拒绝的权限,它可以由一个或多个class类型对象的数据成员组成。其语法规范为permission_expression—{operation_expression};6operation_expression—operation_expressionoperation_expression_definitionIoperation_expression_definition;operation_expression_definition—operation_variable.operation_variable_member(parameters);operation_variable—ID;operation_variable—member—ID;其次,constrain语法段是可选的([]表示可选项),它用于定义限制安全规则的实施条件。constrain支持三种基本逻辑运算&&、||和!,以及6种常规判定算子〈、〉、〉=、〈=、==、!=,还有2种特殊算子@和〈〉前者表达了客体之间的包含关联关系,譬如文件对象被其父目录对象所包含;后者表达安全属性之间的冲突关系。constrain的语法规范为constrain_expression—(constrain_expr);constrain_expr—(constrain_expr)I!constrain_exprIconstrain_expr&&constrain_exprIconstrain—e邓r||constrain—e邓rIconstrain_expr_prim;constrain_expr_prim—cexpr—term<cexpr_termC6XPr_—term〉cexpr_termC6XPr_—term<=cexpr_termC6XPr_—term〉=cexpr_termC6XPr_—term==cexpr_term66XPr_—term!=cexpr_termC6XPr_—term@cexpr_termC6XPr_—term〈〉cexpr—term;cexpr_term—*constentrar_—iable^b)安全属性转移规则安全属性转移规则支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求。安全属性转移规则可以分为系统主体的安全属性转移规则和系统客体的安全属性转移规则,其语法格式为trans_definition—transpolicyType(formal_parameters){whenwhen_expressionreturnretum_expression[constrainconstrain_expression]};trans_instance—instpolicyType(actual—parameters);policyType—ID;除了规则类型trans和类型名policyType的声明之外,一个安全属性转移规则主要有三部分组成when语法段、return语法段以及constrain语法段。其中when语法段描述了此策略的激活时机。其语法格式和permission相似,但是其只包含class类型对象的一个数据成员。return语法段描述了执行此策略之后应该返回的新对象类型,以形参变量的形式表示。constrain语法段用于限制规则的实施条件。其语法格式与授权规则中的constrain—致。本实施例提供了实现支持上述技术方案的可重定向策略编译器。策略编译器的整体设计框架如图1所示。参见附图l,该编译器由三大模块组成语法分析模块,语义分析模块以及后端代码产生模块。其中语法分析模块主要负责词法分析、语法分析的工作;语义分析模块对策略代码进行类型检查,命名冲突以及策略冲突排查等语义分析,并根据策略模块中的策略元素实例化相应的数据结构,产生中间代码以及一个中间代码迭代器对象,以支持对中间代码的遍历访问操作。最后后端代码生成器在中间代码迭代器的辅助作用下将中间代码转化为最终的目标代码,而不同的代码生成器实现不同的转化接口函数,从而可以生成不同格式的目标代码。表1是该语言的描述示例表。参见表1,展现了该语言的一个具体描述示例,以DTE安全模型为例。DTE模型是细粒度的强制访问控制模型。它通过赋予文件不同的型(type)、赋予进程不同的域(domain)来进行访问控制,从一个域访问其他的域以及从一个域访问不同的型都要通过DTE安全策略的控制。DTE含有两种安全规则一种是授权规则,用于定义域与域以及域与型之间的访问控制;另一种安全属性转移规则,包括域转移和型转移,用于限制跨域操作,以满足最小特权、进程隔离以及保护系统文件的安全要求。通过上一阶段的分析。我们可以定义一个struct类型来统一描述DTE的域属性和型属性,并定义授权规则来以及安全属性转移规则来描述DTE的安全特性1.安全属性正如表1所示,dte—context复合类型统一描述了DTE的域属性和型属性,它的string成员value保存了属性的取值。示例代码定义了两种域属性内核线程域kernel_t和系统管理域sysadm_t;以及两种型属性系统管理程序sysadm_exec_t和系统日志文件sysadm_log_t。2.授权规则示例代码中的规则对象FilePerm(domian。,type。)表达了系统管理域对系统日志文件具有文件类别的所有权限(file.*表示文件类别的所有操作),体现了DTE模型中访问控制的安全特性。3.安全属性转移规则示例代码中的规则对象ProcessExec(domairvtype"domain。)表达了内核线程域在运行系统管理程序时会触发域转移规则,转换到系统管理域,从而限制了内核线程的权限;而对象FileCreate(domain。,type。,type。)表达了系统管理域在系统日志目录创建文件时,新建的文件将被赋予系统日志文件的安全属性,从而保护了系统文件的安全。这两个规则对象体现了DTE模型中属性转移的安全特性。4.初始域特性示例代码中的关系对象DTEINITCONTEXT(domain》确定了DTE的初始域类型为内核线程域,即系统启动进程的安全标签为kernel_t。从示例代码可以看出,本专利所设计的访问控制策略语言可以简易地描述DTE模型的所有安全特性,而且由于采用结构化以及面向对象的设计思想,策略代码具有良好的可读性和重用性,易于开发使用。图2是本实施例提供的一种实现访问控制策略的系统。参见附图2,该系统包括策略执行机构、策略数据库和策略模块;策略模块包括策略源代码、策略编译器和目标代码,系统的工作流程如下1.用本实施例所提供的访问控制策略构建方法,编写策略代码,并通过编译器的处理生成目标代码,并将目标代码载入安全服务器的策略数据库中,用于之后的安全判定查询。2.在安全服务器启动之后,系统开始正常运行,此时所有的系统操作都必须经过对象管理器又称策略执行机构的判定,具体流程是a)客户端(如应用程序)向对象管理器发出操作请求,紧接着,对象管理器将请求信息(包括操作主客体的安全属性以及操作的具体类型)发送给安全服务器。b)安全服务器根据客户端的请求信息,查询策略数据库中的相关安全规则,并根据安全规则返回相应的判定结果。c)对象管理器根据安全服务器中的判定结果来允许或禁止此次客户端发出的系统操作请求。表lDTE模型的描述示例<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>权利要求一种访问控制策略的构建方法,其特征在于步骤包括(1)确定安全模型,包括安全属性、安全属性关系和安全规则;所述的安全属性,用于对系统对象的安全描述;所述的安全属性关系,依据系统主体和系统客体在不同的安全模型中所具有的不同安全属性及安全属性间的关系,用于确定安全规则的限制条件;所述的安全规则包括授权规则和安全属性转移规则;所述的授权规则用于描述系统中主体在满足特定的限制条件下所允许或禁止拥有的权限,它包括肯定授权规则和否定授权规则,肯定授权规则用于确定主体允许拥有的权限,否定授权规则用于确定主体禁止拥有的权限;所述的安全属性转移规则用于描述安全模型中的权限转变规则,支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求,它包括系统主体的安全属性转移规则和系统客体的安全属性转移规则,系统主体的安全属性转移规则用于限制系统主体的权限,系统客体的安全属性转移规则用于为新建客体赋予安全属性。(2)确定策略编译器语言的基本元素,包括数据类型、关系类型和规则类型;所述的数据类型包括基本数据类型和复合数据类型;数据类型包括整型int、字符串类型string和系统操作类型class,用于表示系统支持的操作;复合数据类型以struct关键字标识,支持整型int和字符串类型string两种基本数据类型的组合定义,不支持嵌套定义,用于描述安全属性以及操作系统的各种资源;所述的关系类型用于描述安全属性间的相互关系以及系统资源与安全属性间的映射关系,它包括a)关联类型associate,用于描述安全属性间的关联关系;b)偏序类型dominance,用于描述安全属性间的偏序关系;c)冲突类型conflict,用于描述安全属性间的冲突关系;d)赋予类型gencontext,用于描述系统资源与安全属性间的赋予关系;e)初始类型initcontext,用于描述系统初始进程的安全属性;所述的规则类型包括授权规则和安全属性转移规则;所述的授权规则包括肯定授权规则allow和否定授权规则deny;用于描述系统主体在满足特定的限制条件下所允许或禁止拥有的权限;所述的安全属性转移规则包括系统主体的安全属性转移规则和系统客体的安全属性转移规则,用于支持细粒度的访问控制,满足最小特权以及进程隔离的安全要求。2.—种实现访问控制策略的系统,包括策略执行机构、策略数据库和策略模块,所述的策略模块包括策略源代码、策略编译器和目标代码,其特征在于所述的编译器包括语法分析模块,语义分析模块和后端代码产生模块;所述的语法分析模块用于进行词法分析和语法分析;所述的语义分析模块用于对策略代码进行类型检查,命名冲突以及策略冲突排查的语义分析,并根据策略模块中的策略元素实例化相应的数据结构,产生中间代码以及一个中间代码迭代器对象,以支持对中间代码的遍历访问操作;所述的后端代码生成器用于在中间代码迭代器的辅助作用下将中间代码转化为最终的目标代码。全文摘要本发明涉及一种应用于安全操作系统领域的访问控制策略构建方法及其系统,特别涉及一种实现该安全访问控制策略构建方法的策略编译器。本发明在分析和研究经典安全模型的基础上,提出了一种具有共性和特性的安全规则,构建通用性访问控制策略的方法,并以此作为该系统中策略编译器语言的设计目标,采用面向对象的设计思想,确定语言的词法、语法规范方法,提供了一种能够实现语法检查、语义分析等功能,并包含可重定向后端,适应于多种操作系统环境的策略编译器。本发明的显著优点是采用统一描述策略元素和安全规则的方法,以支持多种安全模型。文档编号H04L29/06GK101778109SQ201010022738公开日2010年7月14日申请日期2010年1月13日优先权日2010年1月13日发明者周学海,李星,李曦,杨峰,舒龙昊,许宏琪申请人:苏州国华科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1