一种流式协议强化DSoD策略方法与流程

文档序号:17770730发布日期:2019-05-28 19:23阅读:223来源:国知局
一种流式协议强化DSoD策略方法与流程

本发明涉及网络空间安全领域,具体涉及一种流式协议强化dsod策略方法。



背景技术:

可信计算在整个信息安全领域有着重要地位。来自北欧的永恒之蓝病毒入侵欧洲各国,提醒着锁死文件对操作系统安全的重要影响。dsod策略模型作为一种普遍存在的策略机制,可以有效的同文件系统可信性相结合,以策略语言的形式保证文件系统的可用性和保密性。对构建高效的可信策略模型,以及在windows平台下部署我国的可信体系架构,进一步完善涉密机关的安全制度具有重要的理论和现实意义。



技术实现要素:

本发明提出了一种流式协议强化dsod策略方法,适用于高保密性的分布式可信计算环境下以提升系统的可操作性和通用性。

一种流式协议强化dsod策略方法,其特征在于,包括:

步骤s1、基于哈希值进行用户身份验证,若验证通过则进入步骤二,否则拒绝策略请求操作;

步骤s2、获取与各线程相对应的协调器的对称密钥;

步骤s3、根据所述对称密钥对策略中的属性进行评估,并返回决策结果。

优选的,所述步骤s1还包括:

s11、对哈希链进行初始化,应用层用户u向协调器c发送自己的idu,请求进行实体认证;

s12、协调器c根据所述idu,确定该用户记录,找到该用户u当前的随机数nu,如果nu为1,则重新进行协调器c和用户u之间的初始化,否则返回该随机数给u,并请求口令输入;

s13、所述应用层用户u对口令pw重复计算nu-1次,得到并在windows环境下各主机上安装客户端,获取需要度量的文件信息与系统环境信息,以属性的形式生成dsod策略集请求input,并将评估请求以及哈希值input发送给协调器c;

s14、协调器c接受应用层发送的请求后,对收到数据的前半部分再进行一次哈希运算,并检查所得到的结果是否与用户u的记录相匹配,如果收到的数据为则能通过检验,并确定对方必定是u,如果检测不通过,拒绝策略请求操作。

优选的,所述步骤s14还包括:

如果通过检验,还需更新保存的口令记录,用原随机数减1的新记录替换原记录

然后为input策略评估请求分配唯一标识符,等待稍后策略决策点w处理每条请求。

优选的,所述步骤s2还包括:

s22、协调器c向可信安全管理中心s以的形式发送安全认证请求m;

s23、可信安全管理中心s针对任务对系统的影响及相关风险进行评估,决定参与到此次策略处理中工作线程worker;

s24、决策点中的所述工作线程向s发送自己的随机数m;

s25、可信安全管理中心s决定各线程与c交互的对称密钥,并向决策点发送消息以使所述工作线程获得与他们通信的协调器c的对称密钥。

优选的,所述步骤s3还包括:

s31、协调器c收到s发送的消息,解密后获得了与所述各工作线程通信的对称密钥,然后将整个请求发送给策略决策点w,由w利用调度算法协调所述工作线程,使所述工作线程并发工作;

s32、策略决策点w向属性数据库ad发送检索属性的请求m2;

s33、属性数据库ad检索到相关属性,向策略决策点w返回属性值;

s34、策略决策点w评估请求中的策略,并向协调器c发送需要更新的属性,以及需要读取的属性,如果读取的属性没有在评估过程中被更新,把需要更新的属性进一步更新,以确保此次读取的属性是最新值,如果读取的属性在评估过程中已经更新,则将请求的优先级提高,让可信安全管理中心s分配那些任务队列短的worker,尽快处理该请求;

s35、向应用层返回最终决策结果。

本发明涉及一种流式协议强化dsod策略方法,所述方法将策略许可集合转换为属性集合,其中第一步是将策略描述中的许可p转换成属性集合a,从而将dsod策略请求转换成属性级别的请求,作为流式强化模型的标准输入,第二步是通过一个流式协议对整个属性请求进行判定,从而间接强化dsod策略集,通过本发明中的方法适用于高保密性的分布式可信计算环境下,从而提升系统的可操作性和通用性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明实施例一中一种可信策略模型的系统架构图;

图2为本发明实施例三中一种流式协议强化dsod策略方法流程图。

具体实施方式

现结合附图,对本发明的较佳实施例作详细说明。

以下首先对本发明中涉及到的问题及概念进行说明。

dsod(dynamicseperationofduty)策略的定义基于以下三条需求:

一.dsod策略必须是可信计算顶层需求的策略模型。dsod策略规定一个任务的顶层需求,而不是面向过程的策略。通常,dsod策略需求的所有条件必须由一组用户完成,而不限制用户需要执行哪些步骤。所以,dsod策略更接近于某种可信计算体系下的泛型策略语言。

二.dsod是根据策略允许执行的限制来表达的。比如,动态互斥角色(dmer)约束常用作dsod的约束,它阻止用户在会话中同时激活互斥角色。

三.dsod策略必须在任务用户端捕获限制条件。一般来说,用户集合是系统中所有可能存在的用户集合,但在实际条件下,任何实体中的用户数量是有限的。这使得dsod策略更难以满足给定的访问控制状态。一些特定的方法可以加强dsod策略的执行,这也是dsod策略的重要前提。

ucon(usagecontrol)作为一种新的访问控制模型,涵盖了如强制访问控制、可自由支配的、基于角色的访问控制等传统访问控制模型。它在sod策略中应用广泛。ucon系统包括六个部分:主体及其属性,对象及其属性,通用权限,授权,义务和环境条件,其中授权,义务和条件是ucon控制决策的组成部分。授权是基于主体/客体属性推断的,而义务是主体或系统执行的操作,环境条件是windows系统环境中的限制,ucon最大特点在于决策的连续性与属性的可变性。决策连续性要求策略在主体使用前和运行阶段反复检查与执行,而属性可变性意味着一个或多个主体或客体的属性值可以作为访问控制的结果返回。

windows平台下dsod策略形式化描述如下:

dsod{{p1,p2...pm},u,k}每个pi是一个需要完成的任务,所有pi属于集合p,u是授权完成任务的用户集合,n是用户的个数,m,n,k是三个整数,2≤k≤min(m,n),min返回最小值。策略dsod{p,u,k}表示应该存在一组不小于k个来源于用户集合u的用户共同完成请求任务集合p中的任务,显然一个用户可以处理多个允许请求。

ucona的结构描述如下:

ucona作为ucon的一个子模型只考虑授权过程。权限的结果由主体,客体属性和windows系统环境属性共同决定的。我们定义ucon结构为包含4个元素的元组(c,p,u,a)c代表已授权的有限策略集,p是可能的许可集合,u是用户集合,a是属性集合。

通常,ucona以两种方式影响windows系统,第一种方式是通过已认证的策略集合c来认证一个许可,使u中的主体对客体拥有特别访问权。第二种方式是c的判断过程通过某些操作改变授权系统的状态,比如:更新属性值,创建一个新的客体等。这些操作可能使原有推断结果发生改变,并引发其他许可以及windows系统状态的变化。属性赋值用公式:u,a=v表示,表示域中属性名和值的对应关系,其中v∈dom(a)∪{null},dom(a)是a的属性域,对所有用户的赋值集合共同构成系统的状态。

ucona的状态描述ε如下:

我们定义ucona的状态ε是一组元素(o,θ)来表示,其中o表示一组客体,而θ表示映射关系o×a→dom(a)∪{null},此函数为每个主体或客体分配一个真实属性值或者空属性。ucona的状态ε=(o,θ)直接决定了主体的属性,进而影响请求的决定。a表示认证授权过程,att(s),att(o)表示对于主体和客体授权的推断,有助于最后做出决策。认证授权只使用att(s),att(o)和许可来决定是否允许或拒绝访问请求。我们使用allowed(u,p)来表示用户u被分配到许可p,正式表述:allowed(u,p)->prea(att(u),p)。

dsod策略的安全描述如下:

只要不是所有集合u中的u-1个用户同时拥有p中的许可,我们就认为对于dsod{p,u,k}策略的ucona状态ε是安全的,用safet(ε)来表示。形式化描述如下:

其中att表明u的属性,pre表明ucona的提前授权。所有来自用户集合u的用户覆盖完整的属性集合a

t代表了dsod的策略集,ucona的状态用ε表示,整个判断safet(ε)是否为真的过程叫做dsod的安全检查问题(check-dsod)。如果不是k-1个用户共同持有p中的所有许可,则不会有小于k的用户子集持有所有许可。

如果管理员想要指定一个dsod策略,他应该首先识别一个任务的影响,然后确定判断此任务合法需要通过p集合中的哪些许可条目,用户集合u的约束集,并确定可完成此任务的最小用户数量k。一个ucona的状态ε对于一组dsod策略集t来说是安全的,我们用safet(ε)表示,前提条件是状态ε对于每条dsod策略t∈t都是安全的。

在系统自我维护方面,check-dsod(安全检查问题)的是np完全问题(在某些特殊情况下可能需要指数级的时间复杂度)。

证明如下:考虑check-dsod的补集,例如:一个访问控制的状态ε和一个dsod策略t,决定safet(ε)是否不为真,也就是用来表示。我们首先来证明是一个np问题。如果一个访问控制的状态ε对于策略dsode=dsod{{p1,p2...pm},u,k}来说是不安全的,那么必须存在k-1个{u1...un}的用户共同拥有在策略中的m许可。证明上述策略正确可以在多项式的时间内完成,具体过程如下:计算n-1个用户权限许可的并集,并判断策略许可集合p(包含m个p)是否为这个并集的子集,计算safet(ε)是否为真,只需要计算每个用户集合u的许可权限并集,并和策略集合比对,时间依旧是多项式级别的,且和k有关(因为k表示u中用户集合的数量),因此是个np问题。

我们通过优化的集合覆盖问题来证明该问题是一个np难题。在集合覆盖问题中,输入一个有限集合s,e={s1,s2...sl}其中si是s的子集,有一个限定次数n。我们的目标是判定是否存在n个e中的集合,使得他们的并集为s。在运筹学中把这类问题看作是np完全问题。我们的优化过程如下,通过给定的s,e,n,我们构造如下的dsod策略,对于每个s中的元素,我们都创建一个许可,令s的大小为m,k=n+1,我们可以构造如下dsod策略集:dsod{s,{u1,u2...un},n+1}并且还要构造ucona的状态:对于e中每个s的子集si(-1<i<l+1),从用户集ui中创建一个用户使得他们满足si中的许可。结果当且仅当存在n个e中的元素的并集覆盖了整个s时safet(ε)不为真。

实施例一

本实施例公开了一种可信策略模型系统,所述系统在windows环境下执行,如图1所示,整个windows环境下的可信计算整体框架包含三个核心层:

最底层需建立可信平台控制模块tpcm,还有通用的硬件和固件,属于可信操作系统的底层支持。

中间层需在windows平台下建立可信资源收集模块,包含irp监视器,可信文件系统,以及应用软件。irp监视器负责收集文件操作,将操作的主体,客体,及操作的内容等信息,包括创建,删除,修改,复制,读写,运行等转换为属性集,发送给策略度量点。

最顶层需要建立可信资源策略模型,该级别包含策略度量点,负责接收来自监控层的属性判定请求,利用属性数据库中存储的信息,获得属性值,评估文件执行的可信性,判断完成后,将结果返回可信软件基。

本实施例中提出了一种可信策略模型系统,通过设置底层、中间层和最顶层三层结构,实现了策略许可集合到属性集合的高效转换,以及完成身份认证并逐步分析属性需求,从而确保了策略决策点和协调器之间的通信可信。

实施例二

前述已证明直接强化dsod策略是一个np完全问题,所以直接强化dsod是困难的,且需要较大成本,针对上述问题,本发明中采用流式强化模型来强化dsod策略,本实施例中首先对上述采用流式强化模型来强化dsod的方法进行可行性证明。

dsod属性的形式化描述及安全符号描述

用符号safea(ε)表示ucona的状态ε对于属性判定请求asod{{a1..am},{u1,u2...un},k}是安全的,该命题成立的前提条件为:

如果属性集合a中的每条属性请求都是安全的,则我们就认为ucona的状态ε对于集合a是安全的,写作safea(ε)。给定ucona的状态ε,以及一个属性集合a的请求asod,则判定safea(ε)是否为真的过程就是asod的安全检查问题check-asod。

check-asod(安全检查问题)的是np完全问题(在某些特殊情况下可能需要指数级的时间复杂度)。

证明:只要证明每个asod请求的属性集合都对应到许可集合上,那么就可以证明asod和dsod的对应关系。

我们在表1中描述了策略集合e转换属性a的算法。

表1属性集合a转换算法

由于要求dsod策略是强制性的,所以可以保证每个属性有且只能有一个许可与它关联,比如在算法步骤5,假设学校网络安全管理中心的场景,每个属性集合包含有身份,角色,对文件读写执行的分配。可以得出形如:属性集合{{student,administrator}{7,5,5}}持有许可p1,属性集合{{principal,clerk}{7,6,2}}持有许可p2,当执行到算法步骤6时,假设p3关联了多个属性集合,分别是{{student|maintenance,staff|networkadministrator}{5,5,5}},可合并成四组属性集合:{{student,staff}{5,5,5}}{{maintenance,staff}{5,5,5}}{{maintenance,networkadministrator}{5,5,5}}{{student,networkadministrator}{5,5,5}},而如果每条许可pi关联了ki个属性,则可以根据算法步骤8计算出所有属性集合a。

实施例三

针对直接强化dsod困难的技术问题,本实施例基于实施例一中的可信策略模型系统提出了一种流式协议强化dsod策略方法,所述方法的第一步是将策略描述中的许可p转换成属性集合a,这样就可以将dsod策略请求转换成属性级别的请求,作为流式强化模型的标准输入,第二步是通过一个流式协议对整个属性请求进行判定,从而间接强化dsod策略集。

本实施例中的方法应用于下述场景下:可信策略中心要向云环境下的不同用户pc端(windows操作系统)发放策略结果,由于整个任务是基于dsod策略集的,策略请求之前要核实pc端的身份,使用了基于哈希链的技术进行印证,分析整个请求的过程必然包含请求文件中的部分信息,可信策略中心s认为这些信息是敏感信息,所以必然会进行安全认证。协议需要满足两个约束条件:

约束条件一.workera和workerb必须属于不同的用户。

约束条件二.第三步接受请求和第十六步发送请求必须是由同一协调器完成。

协调器c事先对所有用户进行初始化,发送给所有用户一个口令pwi,i∈[1,n],n为用户数量,随后保存每个用户的初始口令记录(idi,ni,hashni(pwi)),i∈[1,n],其中idi表示该用户的身份,ni为较大的随机数(例如3000),hash()为哈希函数,次方定义为哈希函数使用的次数,即每个用户只需要记住自己的口令pwi,i∈[1,n]。当每次用户登录时,协调器都会更新自己保存的该用户的口令记录。

所述流式协议强化dsod策略方法的流程如图2所示,总共分十六步:

一.哈希链的初始化,应用层用户u(客户端pc)向协调器c发送自己的idu,请求进行实体认证。

二.协调器c根据身份信息,确定该用户记录,找到该用户u当前的随机数nu。如果nu为1,需要重新进行协调器c和用户u之间的初始化,否则返回该随机数给u,并请求口令输入。

三.u对口令pw重复计算nu-1次,得到由于采用哈希函数,即使n比较大时计算仍能有效完成。然后在windows环境下各主机上安装客户端,获取到需要度量的文件信息与系统环境信息,以属性的形式生成dsod策略集请求input,并将评估请求发送外加哈希值input发送给协调器c。

四.协调器c接受应用层发送的请求后,对收到的数据(前半部分)再做一次哈希运算,并检查所得到的结果是否与用户u的记录相匹配,如果收到的数据为则能通过检验,并确定对方必定是u。如果通过检验,还需更新保存的口令记录,用原随机数减一的新记录替换原记录然后为input策略评估请求分配唯一标识符,等待稍后策略决策点w处理每条请求。如果检测不通过,拒绝策略请求操作。

五.由于请求协议要保证可信性,协调器c必须向可信安全管理中心s发送安全认证请求m,包含c以的形式发送,保证整个请求交互过程是安全的。

六.可信安全管理中心s评估了任务对系统的影响,及相关风险后,决定哪些worker参与到此次策略处理中,我们假定需要workera和workerb共同完成评估工作,向策略决策点的a,b发送消息m,req通知他们。

七.决策点中的a,b工作线程向s发送自己的随机数

八.可信安全管理中心s决定各线程与c交互的对称密钥,并向策略决策点发如下消息:

这样线程a,b可以获得与他们通信的协调器c的对称密钥。

九.可信安全管理中心s将要参与决策的worker条目以及对称密钥清单反馈给协调器c消息格式:

十.协调器c收到s发送的消息,解密后获得了与各线程通信的对称密钥kac,kbc,然后将整个请求发送给策略决策点w,由w利用调度算法协调a,b,使他们并发工作,

十一.策略决策点w为了评估策略中的属性,向属性数据库ad发送检索属性的请求m2。

十二.属性数据库ad检索到相关属性,向策略决策点w返回属性值。

十三.策略决策点w评估请求中的策略,并向协调器c发送需要更新的属性,以及需要读取的属性。

十四.如果读取的属性没有在评估过程中被更新,把需要更新的属性进一步更新,并且可以确保此次读取的属性是最新值。

十五.如果读取的属性在评估过程中已经更新,则将请求的优先级提高,让可信安全管理中心s分配那些任务队列短的worker,尽快处理该请求。

十六.向应用层返回最终决策结果。

由于整个协议的前四步使用了哈希链的思想,可以保证应用层用户u发送给协调器c的值只能使用一次,而且哈希函数是单向的,所以在线窃听者不会从中获得有效信息。同理,即使窃听者获得了协调器c保存的口令表,也无法得到每个用户的具体口令pw。

本实施例中的基于流式dsod策略强化方法不但考虑了安全需求,还把效率等实际因素考虑进去,避免了直接强化dsod策略时会遇到的困难性,适用于各种高级安全策略的交互,并且同时可提升系统的可操作性和通用性。

实施例四

本实施例中对实施例三中的一种流式协议强化dsod策略方法进行安全性证明:

1)协议的形式化描述

m1:c-->s

m2:s-->wm,req(a,b为s下的两个worker)

m3:w-->s

m4:s-->w

m5:s-->c

2)协议证明的初始化假设

这里我们假设秘钥的有效性,s的可信性以及随机数的新鲜性:

a1:a|≡kasa2:b|≡kbsa3:c|≡kcsa4:s|≡kas

a5:s|≡kbsa6:s|≡kcsa7:s|≡kaca8:s|≡kbc

a7:a8:a9:

a10:a11:

a12:a|≡#(na)a13:b|≡#(nb)a14:c|≡#(nc)a15:a|≡#(kac)

a16:c|≡#(kac)a12:b|≡#(kbc)a13:c|≡#(kbc)

3)协议目标的形式化描述

g1:a|≡kacg2:b|≡kbcg3:c|≡kbcg4:c|≡kac

4)协议的逻辑推理及验证

由m5可知,又由初始化假设a3,应用消息规则r1可得:

再由初始化假设a14,c|≡#(nb),c|≡#(na)以及应用随机数验证规则r4,可得

c|≡s|≡(nc,kac,na),c|≡s|≡(nc,kbc,nb)(2)

应用信仰规则r7,式(2)可得:c|≡s|≡kac,c|≡s|≡kbc(3)

由初始化假设a9,以及式(3),应用仲裁规则r5,可得:c|≡kac,c|≡kbc(4)

同理,由m4可知,根据初始化假设,依次使用应用消息意义规则r1,随机数验证规则r4,信仰规则r7,应用仲裁规则r5,可得:a|≡kac,b|≡kbc

本实施例用ban逻辑证明了加强dsod策略的流式协议是一个安全协议,因此通过实施例三中的安全认证方法,可以确定协调器和策略决策点双方的身份,避免被篡改决策的结果,实现决策点w与协调器c之间的可信通信。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和终端,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在不发生矛盾的情况下,上述几个实施例中的技术方案可以相互组合和替换。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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