一种多要素访问控制机制描述及解析方法与流程

文档序号:12718820阅读:221来源:国知局
一种多要素访问控制机制描述及解析方法与流程

本发明属于访问控制及授权管理领域,特别是一种多要素访问控制机制描述及解析方法。



背景技术:

访问控制技术起初用于数据共享系统的资源管理和权限描述,它通过对用户访问资源的活动进行有效监控,满足合法用户在合法时间内获得系统有效访问权限的需求,同时防止未授权用户对系统资源的非法访问。访问控制技术研究目前可以划分为基于策略描述的访问控制与基于密码算法的访问控制。其中,基于策略的访问控制技术基于主体的角色、时空、属性等,描述其对客体的访问策略,约束主体的访问行为;基于密码算法的访问控制技术则将加解密技术引入了访问控制与权限管理的应用场景中,产生了一系列具有代表性的模型与机制。

针对不同的应用场景出现的众多访问控制机制无论是策略类还是密码算法类,均以多要素为发展目标,角色已经不在是唯一的访问控制要素,时态、环境、多级安全级别、客体生命周期、密码参数等均需要在访问控制和授权过程中考虑。各种访问控制机制的出现在性能、安全性等方面进行了多方面的改进,但是访问控制设计者多为理论研究或数学领域工作者,其描述的机制、协议、甚至算法仅仅能够从数学理论方面进行分析和证明,在理论层面保证其安全性;通过理论分析来对性能进行评估。

但是通常情况下,访问控制机制设计与理论研究者对计算机编程语言及相关程序设计相对比较陌生,往往出现编程实现困难、程序设计漏洞,从而影响访问控制机制的性能测试和安全性分析,不能够表示自己的设计初衷;而计算机编程工作者一般对访问控制机制设计中所包含的数学理论和描述较为陌生,编程实现的过程中容易出现应为理解的偏差导致的实现与设计脱节的问题。上述原因是目前多要素访问控制机制设计与测试面临的主要困境。因此如何设计一种既能够适用于访问控制理论研究人员描述,又能够与计算机编程语言无缝对接的多要素访问控制描述语言及其解析方法显得至关重要。



技术实现要素:

本发明的目的在于提供一种多要素访问控制机制描述及解析方法。

实现本发明目的的技术方案为:一种多要素访问控制机制描述及解析方法,包括以下步骤:

第一步,定义多要素访问控制机制描述语言,用于用户针对其访问控制主客体、访问控制策略进行类数学语言的描述;

第二步,根据访问控制机制描述语言对用户设计的访问控制机制进行描述,生成描述源文件;

第三步,对描述源文件进行语言解析,生成算法描述中间代码;

第四步,依据用户的目标代码需求,选择计算机编程语言对应的代码底层库,生成目标代码。

与现有技术相比,本发明的显著优点为:

(1)本发明的多要素访问控制机制描述及解析方法既能够适用于访问控制理论研究人员描述,又能够与计算机编程语言无缝对接;

对于访问控制理论研究人员,通过类数学语言进行描述,既可实现机制的性能测评,又无需关注计算机的实现细节;

对于计算机专业人员,可以获取多要素访问控制机制的准确实现代码,保证了代码的安全性。

附图说明

图1为本发明多要素访问控制机制描述及解析方法的流程示意图。

图2为多要素访问控制机制描述流程示意图。

图3为多要素访问控制机制描述主体定义流程示意图。

图4为多要素访问控制机制描述客体定义流程示意图。

图5为多要素访问控制机制描述策略函数定义流程示意图。

图6为多要素访问控制机制描述语言解析流程示意图。

具体实施方式

结合图1,本发明的一种多要素访问控制机制描述及解析方法,包括以下步骤:

第一步,定义多要素访问控制机制描述语言,用于用户针对其访问控制主客体、访问控制策略进行类数学语言的描述;

第二步,根据访问控制机制描述语言对用户设计的访问控制机制进行描述,生成描述源文件;

第三步,对描述源文件进行语言解析,生成算法描述中间代码;

第四步,依据用户的目标代码需求,选择计算机编程语言对应的代码底层库,生成目标代码。

进一步的,第一步中定义多要素访问控制机制描述语言包括关键字定义、机制总体定义、变量定义、主体定义、客体定义和策略函数定义;

关键字定义包括def、var、subject、time、env、mls、object、lifecycle、crypt、permissions、operations、policies关键字,分别用于表示机制总体、变量、主体、主体时态、主体环境、多级安全级别、客体、客体生命周期、密码参数、权限、操作类型以及策略授权函数定义;

机制总体定义以关键字\def为起始,以/def为终止,格式定义为“\def subject object policies/def”,描述说明主体subject在访问客体object对应的策略policy;

例如,描述主体s1对客体o1访问的策略p1,定义形式为:

\def s1o1p1/def

变量定义以关键字\var为起始,以/var为终止,格式定义为“\var变量名称变量内容/var”,变量的内容描述遵循规则(‘a’-‘z’|‘A’-‘Z’|‘0’-‘9’)+,即包含字母a-z的大小写以及数字的任意组合;

例如:\var subject s1/var

主体定义以关键字\subject为起始,以/subject为终止,格式定义为“\subject主体ID,角色,time:时态,env:环境,mls:多级安全属性,操作类型,权限/subject”;

主体ID以变量var进行定义;

角色的描述通过变量关键字进行定义和描述;

时态定义以关键字time:为起始,格式定义为“time:(<timestate>)”或“time:(startfrom:<timestate>end at:<timestate>)”;<timestate>为时间点表示包含日期、小时、分钟、秒,采用年-月-日:时:分:秒的格式;

例如:在时刻2017年11月1日上午7:00:00,描述为time:2017-11-1:7:00:00,时间的描述以24小时为周期。

环境定义以关键字env:为起始,包含物理位置、网络地址、硬件信息和软件信息的描述,其中物理位置、硬件信息和软件信息采用变量var的格式描述形式,网络地址采用标准的IPv4和IPv6格式;

硬件信息可以为MAC地址或者具体硬件环境的名称,软件可以包含操作系统、信息系统的名称;例如:env:room1 192.168.0.1HP-PC-1003Linux2.4.16表示在room1中以192.168.0.1的IP地址,使用名称为HP-PC-1003的计算机,需要在Linux2.4.16的软件环境下进行访问。

多级安全属性定义以关键字“mls:”为起始,格式为“mls:安全等级信息”,安全等级信息为自然数的形式;

例如:mls:1,表示安全等级为1。

操作类型以关键字“operations:”为起始,格式“operations:操作”,其中操作描述为var的描述形式,分为“读、写、执行”;

权限定义以关键字“permissions:为起始”,格式“permissions:权限描述”,其中权限描述为var的描述形式,通过“,”分开;

例如:permissions:p1,p2;表示权限p1,p2对应策略描述中的策略ID。

客体定义以关键字\object为起始,以/object为终止,格式定义为:“\object客体ID,生命周期,多级安全属性,密码参数/object”;

客体ID以变量var进行定义;

生命周期定义以关键字“lifecycle:”起始,格式为“lifecycle:生命周期阶段ID(startfrom:<timestate>endat:<timestate>)”,其中<timestate>为时间点表示包含日期、小时、分钟、秒,采用年-月-日:时:分:秒的格式。

多级安全属性定义以关键字“mls:”为起始,格式为“mls:安全等级信息”,安全等级信息为自然数的形式;

密码参数以关键字“crypt:”为起始,格式为“crypt:算法类型密钥”,其中算法类型和密钥为变量方式定义;

策略定义以关键字“\policies”为起始,“/policies”为截止,格式为“\policies策略描述1,策略描述2,策略描述3,…,策略描述N/policies”;

策略描述采用格式为“策略ID:具体描述”,策略ID采用变量形式定义,具体描述为授权、转授权、撤销。

例如:策略p1表示授权Grant,p2表示撤销Revoke,表示为:

\policies p1,p2

p1:Grant

p2:Revoke

/policies

进一步的,第二步中用户根据访问控制机制描述语言对其设计的访问控制机制进行描述,生成描述源文件的具体过程为:

首先,使用关键字def定义机制总体,描述该机制包含的主体、客体和策略的对应关系;

其次,使用关键字var描述机制中包含的变量,涉及到主体ID、客体ID、主体操作类型、权限以及其他中间变量的描述和定义;

然后,以subject关键字和object关键字描述主体和客体及其对应的访问控制要素;主体的访问控制要素包括角色、时态、环境和多级安全属性,客体的访问控制要素包括生命周期、多级安全属性和密码参数;

最后,使用关键字policies进行策略授权函数描述。

进一步的,第三步对描述源文件进行语言解析包含对描述文件中的多要素访问控制机制描述语言进行词法分析、语法分析和语义解析。

进一步的,第四步中代码底层库包含底层函数库和密码实现函数库。

下面结合具体实施例对本发明作进一步说明。

实施例

图1描述了多要素访问控制机制描述及解析的流程示意图。本实施例的一种多要素访问控制描述及解析方法,包括以下步骤:

第一步,定义多要素访问控制机制描述语言,用于访问控制机制设计用户针对其访问控制主客体、访问控制策略进行类数学语言的描述;

该访问控制机制描述语言针对用户的,不能为计算机直接识别和运行,其描述的算法可以被解析成计算机可识别运行的目标代码。

第二步,用户根据访问控制机制描述语言对其设计的访问控制机制进行描述,生成描述源文件,用户进行具体描述时,依据图2所示流程。

此处描述主体s1对客体o1访问控制策略,定义主体s1、客体o1、对应策略p1;其中主体s1具有角色为teacher,安全级别1,在时间2017年1月11日,8:00:00开始到2017年1月12日,16:00:00,在教室IV,以网络地址:192.168.0.12,使用HP-PC,软件环境Win操作系统,权限p1对应读的操作类型。客体o1安全级别1,处于生命周期创建期间creation,密码算法为AES,密钥1E2F3C67。策略p1授权结论为Grant(授权)。进一步来讲,即主体s1以teacher角色、安全级别1,时间2017年1月11日,8:00:00开始到2017年1月12日,16:00:00,在教室IV,以网络地址:192.168.0.12,使用HP-PC,软件环境Win操作系统下可以对处于生命周期创建期间creation,密码算法为AES,密钥1E2F3C67的客体o1进行读操作。

上述实例的描述步骤:

1)描述机制总体定义,机制总体定义以关键字\def为起始,以/def为终止,格式定义为\def subject object policies/def,描述说明主体subject在访问客体object对应的策略policy。

2)定义机制相关变量,以关键字\var为起始,以/var为终止,格式定义为\var变量名称变量内容/var。

3)定义主体及其要素,以关键字\subject为起始,以/subject为终止,格式定义为:\subject主体ID,角色,time:时态,env:环境,mls:多级安全属性,操作类型,权限/subject。

具体步骤如图3所示:

(1)描述主体ID

(2)描述主体角色

(3)描述时态属性

(4)描述环境属性

(5)描述多级安全属性

(6)描述操作类型

(7)描述权限

上述描述遵循多要素访问控制机制描述语言的具体描述规则。

4)客体定义以关键字\object为起始,以/object为终止,格式定义为:

\object客体ID,生命周期,多级安全属性,密码参数/object

具体步骤如图4所示:

(1)描述客体ID

(2)描述生命周期

(3)描述多级安全属性

(4)描述密码参数

上述描述遵循多要素访问控制机制描述语言的具体描述规则。

5)策略定义以关键字\policies为起始,/policies为终止。格式为\policies策略描述1,策略描述2,策略描述3,策略描述N/policies;

具体步骤图5所示:

(1)描述策略ID

(2)描述策略

进行上述描述后,用户将产生算法类数学的描述文件,定义为AccessControl.des文件。文件内容如下:

\def s1o1p1/def

\var

subject s1,

object o1,

policies p1

/var

\subject

s1,

teacher,

time:(startfrom:2017-1-11:8:00:00endat:2017-1-12:16:00:00),

env:roomIV 192.168.0.12HP-PC Win,

mls:1,

operations:read,

permissions:p1

/subject

\object

o1,

lifecycle:creation(startfrom:2017-1-11:7:00:00endat:2017-1-23:19:00:00),

mls:1,

crypt:AES 1E2F3C67

/object

\policiesp1

p1:Grant

/policies

上述机制描述语言中涉及的部分简单的逻辑语句,如下:

if……then……(else)……表示条件判定,具体形式为“if条件描述then……”或者“if条件描述then……else……”,其中else语句为可选,then与else后分别对应相关的执行语句。条件的描述使用运算符“==”和“!=”表示等于和不等于。

上述定义和描述仅限于本实施例,具体主客体要素、操作类型、授权描述可依据用户的需求进行扩展。

第三步,对描述文件AccessControl.des进行解析,产生中间代码。如图6所示,具体流程如下:

(1)对多要素访问控制机制描述文件进行词法分析,主要工作包含:

1)预处理,去除无效的空格、制表符、换行这些无效字符;

2)识别关键字,为其指定相应的属性值,并将相应的TOKEN码,为语法分析程序准备;

3)识别字符串、数字、字符这些常量,保存该数,并将对应的TOKEN码,为语法分析程序准备;

(2)对多要素访问控制机制描述文件进行语法分析,根据前述类数学描述语言的语法规则,把词法分析的结果分解为各个语法单元,并语法错误的检查与识别。

语法分析主要依托的是词法分析中产生的TOKEN码表,识别各类语法成分,分别包含关键字、变量、主体、客体、要素、策略函数,并进行关键字单词撰写错误、括号不匹配错误的识别。

(3)对多要素访问控制机制描述文件进行语义分析,进行描述语言具体语义含义的识别和分析,并进行静态语义检查,例如:指定变量是否定义、类型是否匹配、访问控制主客体、要素描述以及策略授权函数是否没描述完整、齐全,为代码生成阶段搜集相关的语义信息。

经过语义分析将构造如下表格信息:

1)全局变量、常量信息表;

2)策略授权函数信息表;

3)策略授权函数声明信息表;

(4)产生中间代码

此时生成的中间代码已经类似于用户指定的计算机编程语言对应的代码,但是具体子函数的实施还未进行处理。

第四步:依据用户的目标代码需求,选择对应计算机编程语言对应的代码底层库,生成目标代码。

该步骤依托于中间代码中的子函数调用信息表,在现有的代理底层支持库中进行选择,调用不同的子函数实现程序及相关代码,并产生对应的头文件函数生成列表。

将第三步产生的中间代码与第四步中产生的子函数代码与头文件信息进行整合,生成输出文件AccessControl.cpp和AccessControl.h文件,此处以C语言为例,若用户选择其他编程语言,则后缀名与文件格式会发生相应的变化。

本发明中的描述语言及方法可以依据用户的具体要求进行描述追加,通过解析程序的更新最终实现描述与解析方法的用户定制化和适应化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1