APP下载

基于属性加密的软件定义网络域间访问控制方法①

2020-05-14王树磊

高技术通讯 2020年4期
关键词:私钥访问控制密文

周 波 王树磊

(*南京信息职业技术学院电子信息学院 南京 210023) (**常州工学院民航飞行学院 常州 213032)

0 引 言

软件定义网络[1](software defined network,SDN)是一种区别于传统计算机网络的新型网络架构模式,自提出以来得到了学术界乃至工业界的广泛关注。SDN吸取了ForCES架构[2]的思想,将网络的控制层与数据层分离,该设计不仅有利于降低网络当中的硬件成本,还使得网络管理员能够方便地对来自不同厂商的设备进行集中化的调试和管理。相比传统计算机网络,SDN具备前者所没有的性能优势,但SDN的一系列安全问题[3]却成为了阻碍其进一步广泛应用的难题。其中最关键的问题之一就是,如何在远程控制环境下保证由SDN控制器掌控的用户和设备敏感信息不被攻击者窃取[4]。SDN的控制器负责管理流表,而流表包含敏感的控制信息,对于数据的转发起到了决定性的作用。然而当前的SDN架构允许应用程序接口轻易地调用流表而无需权限认证。更为严重的是相当一部分接口具备公开信息的权限。因此SDN控制器必须保证只有经过授权的设备才能获取以上的敏感信息。如今许多大型的SDN架构都采用了多控制器管理域间通信,控制器除了与数据转发设备进行交互,还要与各个控制器之间保证规则统一与信息同步。因此在SDN当中必须采用一种机制,该机制不仅能够保证SDN流表的安全性还必须对流表的访问权限进行灵活、细粒度的控制。

Ethane系统[5]作为SDN前身提供了集中化的网络安全管理方案。该系统利用规定的安全信道实现控制信息在控制器和交换机之间的传输,但其过于简单,无法满足在大规模部署时的安全需求。文献[6]根据OpenFlow规则说明书提出,控制器与数据转发设备间必须通过传输层安全协议(transport layer security protocol,TLS)实现双向认证,以避免非法用户伪装成控制器与交换机进行通信。然而并没有规定域间访问的控制方法,这使得大型SDN架构有可能面临未知的非法规则插入或规则修改操作。文献[7]提出了一种针对SDN控制器的访问控制系统。为实现不同SDN组件访问权限的配置,该系统首先将SDN的各个组件在逻辑上进行隔离,其次对不同组件的访问权限进行详细的描述,然后在用户试图对组件进行访问和控制时必须对用户进行身份认证。此外,该方案配置了一种用户访问冲突的解决机制,保证多个用户可以同时访问同一个组件。文献[8]提出了一种面向SDN控制层和应用层的访问控制方案,该方案对不同网络组件的可执行指令做出了不同程度的限制,使得在云计算环境下实现安全、快速地访问控制。Kamath等人[9]设计了一种SDN认证架构,该架构提供一种灵活的身份认证和访问控制方法,同时将所有未授权的设备隔离起来以保证网络资源的安全性。尽管在访问控制领域有大量的研究成果,但是SDN控制器始终面临的是一种动态变化的网络结构,这使得SDN控制器在执行访问控制操作时必须具备相当的灵活性、安全性以及高效率。这对现有的访问控制理论提出了严峻的挑战,然而现有的访问控制方法几乎无法满足这样的需求。

属性加密[10](attribute-based encryption,ABE)是近些年来提出的一种功能加密算法,它能够从密码学原理上填补以上的空白。ABE为数据加解密操作赋予了一套访问策略以及具备一定描述性的属性集合。只要属性集合与访问策略的相似度超过事先设定的阈值,那么解密者就可以成功解密。具体来说目前有2种主要的ABE算法。一种是基于密钥策略的ABE算法[11](key policy ABE,KP-ABE),它将访问策略嵌入到密钥当中,而属性集合则嵌入到密文当中,最早提出的ABE算法正是这种KP-ABE;一种是基于密文策略的ABE算法[12](ciphertext policy ABE,CP-ABE ),它将访问策略嵌入到密文当中,而属性集合则嵌入到密钥当中。由于CP-ABE算法允许加密者自由制定访问策略,而密钥当中嵌入的属性集合又能够表征不同解密者的身份,因而CP-ABE更适合构建一种安全又灵活的云存储访问控制算法。文献[13]提出了一种基于多属性权威的ABE算法,每个属性权威拥有各自的主密钥,这使得单个属性权威不再担负过重的计算任务。文献[14]提出了一种基于双向安全计算产生主密钥的机制,同时设计了一种高效的撤销方法,在提高计算效率的同时也丰富了ABE的功能。文献[15]采用零知识证明使2个属性权威互动产生主密钥,从而有效防止密钥托管问题的产生,同时支持密钥追责防止用户将自己的私钥交由他人使用。文献[16]提出了一种CP-ABE的属性直接撤销方法保证了用户更新的灵活性,同时使得其密文、私钥和公钥的长度都有所优化。文献[17]提出了一种不需要进行配对运算的ABE算法,但是由于使用阈值门作为访问策略,因此算法整体显得不够灵活。文献[18]提出了一种分布式的CP-ABE密钥管理协议,同时利用外包解密使得终端用户无需进行任何配对计算就可以进行解密,但是算法整体的计算负载仍然较大。

ABE算法在大型访问控制系统上的应用潜力已被相关领域学者所认可,但是其复杂的计算将造成系统运算负载急剧上升,现有的ABE算法还远不能达到在SDN中实际部署的水平。尤其在大型SDN环境下,来自各类厂商的设备性能不同,如果性能稍有限制,就不能保证SDN访问控制的灵活性、即时性和安全性。文献[19]提出了在SDN环境中应用属性加密算法并提出了一种基于等级CP-ABE的SDN访问控制方案,使得SDN控制器能够灵活管理SDN的用户、设备和流表数据。文献[20]提出基于代理群的ABE算法,把复杂计算全部交给可信的代理节点群处理。虽然降低了ABE算法的计算门槛,但是系统整体的安全性不再单纯依赖于ABE算法的安全性,而在某种程度上几乎依赖于代理节点的可信等级。此外,代理节点群的存在使得加解密过程中产生了额外的通信开销。

本文结合SDN实际环境在现有的CP-ABE方案基础上对算法的安全性、计算效率进行了改进。提出了一种抗密钥暴露的密文策略属性快速加密算法(anti-key-exposure ciphertext policy attribute-based fast encryption,AKE-CP-ABFE),首先利用预计算技术(pre-computation technique,PCT)将必要的元素计算出来并存储起来,加密者在进行加密时无需进行任何复杂的指数运算或双线性映射,提高了属性加密的计算效率。同时基于拓展图技术(expander Graph technique,EGT)减少了预计算产生的元素数量,进一步降低了预计算产生的存储开销。除此之外,本文将用户或者设备的MAC地址嵌入到私钥当中,如果私钥当中的地址信息与设备本身不符,则无法完整解密。这保证了即使将私钥有意或者无意地暴露给其他非法用户或者设备,他们也无法获取此私钥获取敏感信息。理论分析证明AKE-CP-ABFE具备良好的安全性。基于该算法构建了一种针对多控制器设置的SDN域间信息访问控制系统模型,该模型降低了开源API造成的用户或者网络设备敏感信息泄露的风险。仿真实验表明,该系统能够在部署多控制器的大型SDN环境下以较高的计算效率保证敏感信息域间分享的安全性和灵活性。

1 预备知识

1.1 单调访问策略

设{P1,P2,…,Pn}是由若干元素组成的集合,访问策略A是集合{P1,P2,…,Pn}的非空子集,即A∈2{P1, P2,…, Pn}Ø。若对于任意2个集合B和C,当满足B∈A并且B⊆C时,使得C∈A,那么称A是单调访问策略。

若满足S∈A,则集合S是关于访问策略A的合法集合,反之,则称S为非法集合。

1.2 访问树

令Γ是一个树形的访问策略。Γ中每一个节点由一个阈值门表示,阈值门由该节点的子节点个数及一个阈值组成。设任意节点x的子节点个数为numx,阈值为kx,那么0≤kx≤numx。当kx=1时该阈值门表示的是一个“或”门,而当kx=numx时表示的是一个“与”门。对于Γ当中的叶节点,其表示的是一个属性,此类节点的阈值是1。为便于展开讨论,定义以下函数:

(1)parent(x):返回节点x的父节点;

(2)att(x):返回叶节点x所代表的属性;

(3)index(x):返回节点x的索引号,访问树Γ为每一个节点设置了唯一的索引号。

对于一个属性集合S和访问树Γ,若S满足Γ则表示为Γ(S)=1。通过如下的迭代方法来判断S是否满足Γ:假设R是访问树Γ的根节点,Γx是关于节点x的子树。如果x是非叶节点,设其任意的子节点为z并首先计算Γz(S)。当且仅当kx个子节点的返回值为1才使得Γx(S)=1成立。若x是叶节点,当且仅当att(x)∈S才使得Γx(S)=1成立。

1.3 双线性映射

设G1和G2是2个阶为大素数p的循环群,G是G1的一个生成元,映射e:G1×G1→G2是关于G1和G2的双线性映射,当且仅当e满足以下性质:

(1)双线性:对于任意的u,v∈G1以及a,b∈Zp,都有e(ua,vb)=e(u,v)ab;

(2)非退化性:存在生成元G,使得e(G,G)≠1,其中1是G2的单位元;

(3)可计算性:对于任意的u,v∈G1,存在多项式时间算法能够有效计算出e(u,v)的值。

1.4 预计算

由于即时的双线性映射会消耗相当多的计算资源,这直接成为了ABE算法在效率上难以提高的瓶颈。虽然也有学者提出了去双线性化的思想,但是去双线性化后的安全性始终无法与原有的ABE算法相提并论。双线性映射预计算的基本思想是将一系列双线性映射预先计算并存储起来,因此在ABE算法上采用预计算方法能够在运算负载、存储负载以及算法安全性上达到更好的平衡,从而使得ABE算法更适用于构建SDN域间信息访问控制系统。

预计算的基本思想是,首先产生一个椭圆曲线上的生成元P,其次提前计算好n个元组(ri,riP)。在此基础上,每一个新的元组都由k个已有的元组共同产生,即:

r=∑1≤i≤krimodp

rP=∑1≤i≤kriPmodp

也就是说,通过k-1次模加操作来代替相对复杂的椭圆曲线点乘操作。为了进一步提高计算效率,本文采用了一种基于拓展图的预计算方法来降低参数k的值。

1.5 判定双线性Diffie-Hellman困难假设

本方法的安全性建立在判定双线性Diffie-Hellman困难假设(decisional bilinear Diffie-Hellman assumption, DBDH)上。

设G1是一个根据安全参数生成的阶为素数p的群。产生3个秘密的随机数a,b,c∈Zp。若敌手已知一组参数{P,aP,bP,cP},那么该敌手难以区分e(P,P)abc与e(G,G)z。若存在一个敌手A在获得参数{P,aP,bP,cP,Y}后,输出1表示Y=e(P,P)abc,反之输出0表示Y=e(P,P)z。敌手A能够以优势ε解决DBDH问题,当且仅当:

2 AKE-CP-ABFE模型

2.1 模型内交互角色

AKE-CP-ABFE模型涉及以下4类交互角色。

(1)属性权威:是一个可信的权威机构,负责所有属性的认证以及公钥私钥的发布。

(2)SDN控制器:负责收集、存储和管理SDN流表、路由以及数据量等重要信息,其中包含各类用户或者设备的敏感信息。本方案针对大型SDN采用多控制设置,将SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器。每个SDN控制器管理各自域内的重要信息,同时负责与其他域的SDN控制器交互。

(3)加密者:是数据的初始拥有者(可以是用户,也可以是产生数据的SDN设备),能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略。

(4)解密者:是试图获取SDN控制器内信息的用户或者设备,其身份用一个属性集合来表示。解密者拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文。

2.2 算法框架

AKE-CP-ABFE算法包括初始化算法、私钥生成算法、预计算算法、快速加密算法和解密算法共5个主要算法,算法框架如下:

(1)初始化算法:由属性权威执行。算法输入一个安全参数k,输出公钥PK和主密钥MSK,其中公钥PK向全网公开,而主密钥MSK由属性权威秘密保存。

(2)私钥生成算法:由属性权威执行。解密者发起密钥生成请求时输入其唯一的MAC地址AMAC、属性集合S、公钥PK以及主密钥MSK,最终输出与其MAC地址以及属性集合相对应的私钥SK。

(3)预计算算法:由属性权威执行。算法由2个子算法组成,分别是预处理子算法以及元组生成算法。预处理子算法输入公钥PK,输出两组列表L和L′。元组生成算法输入一个访问树Γ,输出与访问树Γ相对应的元组Tuple1和Tuple2。

(4)快速加密算法:由加密者执行,算法首先输入一个访问树Γ、公钥PK以及消息明文M,然后通过调用预处理算法输出与访问树Γ对应的密文CT,最后将密文CT上传至域内的SDN控制器。

(5)解密算法:由解密者执行,输入其MAC地址AMAC、密文CT以及私钥SK,当解密者的属性集合满足访问策略,同时其MAC地址与隐藏在私钥SK当中的MAC地址信息相吻合时,才会输出消息明文M,否则退出执行。

基于以上算法本文构建了面向多控制器SDN的域间访问控制系统模型。该模型在2个SDN域之间进行信息分享的工作流程如图1所示,系统启动时属性权威执行初始化算法生成公钥PK和主密钥MSK。与此同时,属性权威执行预计算算法生成一系列参数并存储在列表L和L′当中用于后续的快速加密。当由解密者请求生成私钥时,属性权威执行密钥生成算法产生与其属性集合S以及其MAC地址AMAC相关的私钥SK。对于加密者产生的流表等各类信息,加密者制定相应的访问树Γ并通过快速加密算法生成密文CT并将密文CT上传给当前SDN域的控制器。对于不同域的解密者,当其发出解密请求时,当前SDN域控制器首先将密文CT发送给另一个SDN域控制器,然后将密文CT转发给解密者。如果此时解密者的属性集合S满足密文当中的访问树Γ,而且解密者本身的MAC地址AMAC与私钥SK当中嵌入的MAC地址信息吻合,那么解密者才能获取该信息的访问权限。反之则无法获取任何有用的信息。

图1 基于AKE-CP-ABFE的SDN域间访问控制系统模型

3 AKE-CP-ABFE算法流程

为方便算法构建,首先假设G1和G2是阶为大素数p的双线性群,P是G1的一个生成元,e:G1×G1→G2是群G1到群G2的双线性映射。取一个安全参数k,这个参数决定了大素数p的比特位数。然后定义拉格朗日函数Δi,S(x),使得集合S当中的任意一个元素i都有:

此外定义2个哈希函数H1:{0,1}*→G1和H2:{0,1}48→Zp。其中H1将任意一串二进制数组映射为群G1中的元素,H1将48 bit的MAC地址映射为Zp上的元素。

3.1 初始化算法

初始化算法首先输入全局的属性集合Ω={att1,att2,att3,…,attn}以及一个安全参数k,根据参数k生成2个阶为p的双线性群G1和G2,其次选择G1的一个生成元P以及一个双线性映射e:G1×G1→G2。然后定义2个哈希函数H1:{0,1}*→G1和H2:{0,1}48→Zp,并选择2个随机数α,β∈Zp。最后生成如下公钥:

PK={p,P,e,Ω,e(P,P)α,

同时保存如下的主密钥:

MSK={αP,β}

3.2 私钥生成算法

SK={S,D=((α+rH2(AMAC))/β)P,

3.3 预计算算法

预计算算法由2个子算法组成,分别为预处理算法和元组生成算法。为方便算法描述,本文定义了一些变量,变量定义说明如表1所示。

表1 变量定义说明

预处理算法预处理算法的执行流程如下。

(1)生成n个随机数r1,r2,…,rn∈Zp;

(2)对于∀i∈[1,n],计算e(P,P)αri、riP以及{∀attj∈Ω:riH1(attj)};

(3)生成一张空列表L,对于∀i∈[1,n]将{e(P,P)αri,riP, {∀attj∈Ω:riH1(attj)}}添加到列表L当中;

(4)计算ne=c(ε)loG2(p)并生成ne个随机数d1,…,dne∈Zp;

(5)对于∀i∈[1,ne],计算e(P,P)αdi、diP以及{∀attj∈Ω:diH1(attj)};

(6)生成一张空列表L′,对于∀i∈[1,ne]将{e(P,P)αdi,diP, {∀attj∈Ω:diH1(attj)}}添加到列表L′当中;

(7)随机选择di,初始化参数t=di、T1=e(P,P)αdi、T2=diP以及{∀attj∈Ω:T3, j=diH1(attj)}。

元组生成算法元组生成算法输入一个访问树Γ,输出与访问树Γ相关的2个元组。该算法由A1和A22个算法组成,算法执行流程如下。

对于访问树Γ的根节点,执行A1算法。

(1)在列表L′当中随机选择一组元素{e(P,P)αdi,diP, {∀attj∈Ω:diH1(attj)}};

(2)重新赋值T1=T1e(P,P)αdi、T2=T2+diP以及∀attj∈UR:T3, j=T3, j+diH1(attj);

(3)随机提取一个集合S⊂[1,n]使得|S|=k;

(4)从列表L当中随机地抽取一组元素{e(P,P)αri,riP, {∀attj∈Ω:riH1(attj)}};

(5)声明并初始化变量e(P,P)αs=T1∏i∈Se(P,P)αri,如果e(P,P)αs是群G2的单位元则立即返回步骤(1)重新计算;

(6)声明并初始化变量sP=T2+∑i∈SriP以及∀attj∈UR:sH1(attj)=T3, j+∑i∈SriH1(attj),最终返回元组:

Tuple1=(e(P,P)αs,sP,{∀attj∈UR:sH1(attj)})。 对于访问树中的任意节点x,执行A2算法。

(1)声明并初始化常量d=kx-2;

(2)从列表L′中随机选择一组元素{e(P,P)αdi,diP, {∀attj∈Ω:diH1(attj)}};

(3)重新赋值变量T2=T2+diP以及∀attj∈Ux:T3, j=T3, j+diH1(attj);

(4) 随机提取一个集合Sd⊂[1,n]使得|Sd|=k;

(5)从列表L中随机选择一组元素{e(P,P)αri,riP,{∀attj∈Ω:riH1(attj)}};

(6)声明并初始化变量cdP=T2+∑i∈SdriP,若cdP是群G1中的单位元则立即返回步骤(1)重新计算;

(7)从列表L′当中随机选择一组元素{e(P,P)αdi,diP, {∀attj∈Ω:diH1(attj)}};

(8)对于∀u∈[0,d-1]重新赋值变量T2=T2+diP;

(9)对于∀u∈[0,d]重新赋值变量∀attj∈Ux:T3, j=T3, j+diH1(attj);

(10) 随机选择一个集合Su⊂[1,n]使得|Su|=k;

(11)在列表L当中随机选择一组元素{e(P,P)αri,riP, {∀attj∈Ω:riH1(attj)}};

(12)对于∀u∈[0,d-1]声明并赋值变量cuP=T2+∑i∈SuriP;

(13)对于∀u∈[0,d]声明并赋值变量∀attj∈Ux:cuH(attj)=T3, j+∑i∈SuriH1(attj),返回元组:

Tuple2={∀i∈[0,d]:Dx,i=ciP,

3.4 快速加密算法

为了生成明文M与访问树Γ相对应的密文,快速加密算法需要对访问树Γ当中任意一个节点x产生一个次数为kx-1的随机多项式。为了减小加密的计算负担,利用预计算算法来生成每个节点的随机多项式。根据访问树Γ的结构,这种方法采用一种自上而下的迭代方式。

对于访问树的根节点R,快速加密算法调用A1算法获取元组:

(e(P,P)αs,sP, {∀attj∈UR:sH1(attj)})

如果kR-1≠0,则继续调用A2算法获取元组:

{∀i∈[0,kR-2]:DR,i=ciP,

利用获取的以上2个元组,同时声明并初始化常量dR=kR-2,然后定义一个次数为dR的多项式:

r(X)=∑0≤i≤dRciXi

随后,关于根节点R的完整多项式为

qR(X)=r(X)·X+s

对于∀l∈SR, ∀j∈UR计算:

qR(index(l))P=∑0≤i≤dRindex(l)i+1DR,i+sP

+sH1(attj)

对于访问树Γ当中的任意节点x,调用A2算法获取元组:

{∀i∈[0,kx-2]:Dx,i=ciP,

声明并初始化常量dx=kx-2,利用上式中的系数ci定义一个次数为dx的多项式:

r(X)=∑0≤i≤dxciXi

然后生成关于节点x的完整多项式:

qx(X)=r(X)·X+qparent(x)(index(x))

对于∀l∈Sx, ∀j∈Ux计算:

qx(index(l))P=∑0≤i≤dxindex(l)i+1Dx,i

+qparent(x)(index(x))P

+qparent(x)(index(x))H1(attj)

因此对于任意的叶节点x,快速加密算法通过迭代得到了qx(0)P和qx(0)H1(att(x))。最终生成如下的密文。

3.5 解密算法

如果x是叶节点,则令atti=att(x)并进行如下的判断与计算。

(1)若atti∈S则计算并输出以下结果

=e(P,P)rqx(0)

(2)若atti∉S则输出以下结果表示放弃该节点的计算

DecryptNode(CT,SK,x)=⊥

如果x是非叶节点,那么对于其任意子节点z调用函数DecryptNode并记其返回结果为Fz。然后进行如下的判断与计算。

(1)判断是否存在关于节点x的包含kx子节点的集合Sx,使得∀z∈Sx:Fz≠⊥成立。若不存在,那么输出⊥表示放弃该节点的计算。

(2)若存在集合Sx,计算并输出以下结果:

=e(G,G)rqx(0)

到目前为止,本文定义了函数DecyrptNode,现在进一步定义解密算法。算法首先从访问树Γ的叶节点开始调用函数DecyrptNode。如果属性集合S满足访问树,那么就可以通过层层迭代获取隐藏在根节点R当中的秘密,记作:

A=DecryptNode(CT,SK,R)=e(P,P)rqR(0)

=e(P,P)rs

随后通过如下计算就可以得到明文:

=M

反之,如果属性集合S不能满足访问树Γ,那么将无法在多项式时间内恢复出根节点R当中的秘密。与此同时,如果当前的MAC地址信息与私钥SK当中的MAC地址信息不吻合,即使恢复出根节点R当中的秘密也无法通过进一步的计算得到消息明文。以上两步中只要任何一步不满足条件,都将导致解密算法退出执行。

4 安全证明与性能分析

4.1 安全证明

本小节给出AKE-CP-ABFE的安全证明。通过规约至DBDH困难假设,证明了AKE-CP-ABFE具备密文的不可区分性。首先给出如下定理。

定理(不可区分性)给定2段长度相同的明文,如果DBDH问题是难解的,那么一定不存在多项式时间内的敌手能够以不可忽略的优势辨别出AKE-CP-ABFE的密文来自于哪段明文。

证明为证明以上定理本文设计了一个挑战游戏,该游戏涉及敌手A、模拟器B以及挑战者C 3个角色。

首先,游戏进入初始化阶段,该阶段的流程如下:

(1)敌手A向模拟器B发送一个挑战访问树Γ*;

(2)挑战者C产生3个秘密随机数a,b,c∈Zp和一个双线性群G1,然后选择该群上的一个生成元P,最后将P、P1=aP、P2=bP、P3=cP和Z发送给模拟器B;

(3)模拟器B产生一个随机数β∈Zp、一个双线性群G2、一个双线性映射e:G1×G1→G2、一个全局属性集合Ω={att1,att2,att3,…,attn}以及一个随机预言机 和H:{0,1}*→G1。最后,模拟器B把如下的公钥发送给敌手A。

其次,游戏进入询问阶段,在该阶段敌手A向模拟器B进行有限次数的参数询问,参数询问包括私钥询问和加密询问。

私钥询问的流程如下:

(1)敌手A向模拟器B发送一个属性集合S;

(2)模拟器B产生2个随机数R1,R2∈Zp,然后对于属性集合S当中的任意属性attj产生一个对应的秘密随机数rj∈Zp,最终返回私钥:

SK={S,D=R1P,∀attj∈S:Dj

(3)模拟器B将元组{S,R1,R2}添加到一个列表L1当中。

加密询问的流程如下:

(1)敌手A向模拟器B选择一个消息明文M以及一个访问树Γ;

(2)模拟器B选择一个秘密数s∈ZP,然后按照真实的PB-CP-ABFE调用快速加密算法和预计算算法,输入公钥PK、访问树Γ以及消息明文M并最终产生密文:

再次,游戏进入挑战阶段,该阶段的流程如下:

(1)敌手A向模拟器B提交2个长度相同的消息M1和M2;

(2)模拟器B选择一个秘密数s∈Zp以及一个随机的比特θ∈{0,1}并返回如下的挑战密文给敌手A:

然后,游戏再次进入询问阶段。在本阶段,敌手A继续向模拟器B发送有限次数的私钥询问或加密询问。在敌手A发送询问的过程中始终存在如下的限制:

(1)所有在私钥询问包含的属性集合S必须满足Γ(S)≠1;

(2)不能将元组(Γ*,M1)或(Γ*,M2)作为加密询问的输入。

最后,游戏进入最终猜测阶段,该阶段的流程如下:

(1)敌手A输出θ′∈{0,1}作为对θ值的猜测;

(2)模拟器B判断θ′值,如果θ′=θ那么敌手A赢得挑战游戏,同时模拟器B输出1表示其认为挑战者C产生的DBDH难题答案为Z=e(P,P)abc;

(3)如果θ′≠θ那么敌手A输掉挑战游戏,同时模拟器B输出0表示其认为DBDH难题答案为Z=e(P,P)z。

当Z=e(P,P)abc,模拟器产生的挑战密文CT*与真实的AKE-CP-ABFE密文服从相同的分布。假设敌手A在真实的AKE-CP-ABFE算法中区分密文来自于哪段消息明文的优势为ε′,那么模拟器B输出1的概率为

Pr[B(P,P1,P2,P3,Z=e(G,G)abc)=1]

=Pr[θ=1|Z=e(P,P)abc]

·Pr[Z=e(P,P)abc]

当Z=e(P,P)z,敌手A获取的挑战密文CT*是完全随机分布的,所以敌手A实际上只能随机地输出θ′值。于是模拟器B输出1的概率是

Pr[B(P,P1,P2,P3,Z=e(G,G)z)=1]

=Pr[θ=1|Z=e(P,P)z]

·Pr[Z=e(P,P)z]

于是模拟器B成功解出挑战者C提出的DBDH难题的优势满足:

因此可以断定,如果DBDH难题假设成立,即不存在多项式时间算法能够以不可忽略的优势ε解决DBDH问题,那么也一定不存在多项式时间敌手A能够以不可忽略的优势ε′区分出密文来自于哪一段消息明文。

4.2 性能分析

本文针对几种典型的SDN访问控制系统的功能进行了分析比较,比较结果如表2所示。

表2 SDN访问控制方案功能比较

在文献[7]的方案里,为了将SDN的各个组件在逻辑上进行隔离,事先对不同组件的访问权限进行了详细的描述。文献[8]则是对不同网络组件的可执行指令做出了不同程度的约束,从而实现安全快速的访问控制。以上2种方案不仅对SDN控制器当中的流表、路由等信息进行加密,还不支持访问策略的灵活制定,因此在不同程度上限制了访问控制方案的安全性和可扩展性。文献[19]基于等级CP-ABE设计了一种SDN访问控制方案,使得SDN控制器能够灵活管理SDN的用户、设备和流表数据。相比文献[7]和文献[8]的方案,该方案在安全性和可扩展性上有所提升,同时支持细粒度的访问策略。但是考虑到等级CP-ABE庞大的计算量,并不能很好地兼顾整个方案的计算效率。在本文设计的基于AKE-CP-ABFE的SDN域间信息访问控制系统,在现有的ABE算法优势基础上利用预计算技术实现了快速加密。除此之外,即使SDN用户或者设备暴露了私钥,其他非法用户也无法通过该私钥获取任何有用的消息明文,可以有效防止私钥暴露产生的信息泄露风险。因此在访问控制的功能上,本文提出的方案具有显著的优势。

为进一步验证基于AKE-CP-ABFE的SDN跨间访问控制模型的性能,进行了一系列加解密仿真实验。本系统的仿真硬件为Intel (R)Core(TM) i7-5600U@2.6 GHz,内存为8 G,系统为Cent OS 6.7, 使用代码库为JPBC 1.2.1,实验基于256位的椭圆曲线,曲线阶为120 bit的大素数。实验分别基于文献[12]、文献[18]以及AKE-CP-ABFE构建了SDN域间访问控制模型,并在不同的属性数量条件下记录了20次加解密所需的平均时间。

基于以上3种算法构建的SDN域间访问控制模型在不同属性数量情况下的平均加密时间如图2所示。可以看出,基于文献[18]算法的方案的加密时间要高于基于文献[12]算法的方案,这是因为文献[18]的方案构建了一种重加密机制,使得方案在执行解密的过程中可以将庞大的解密计算部分外包给第三方,同时方便解密者更新属性集合。而在相同属性数量条件下,基于AKE-CP-ABFE的SDN访问控制方案的平均解密时间约为基于文献[12]方案的50%,即只需要一般的算力就可以完成相同的加密计算。因此本文提出的模型具备较高的加密效率。

图2 平均加密时间对比

图3展示了基于3种方案构建的SDN域间访问控制模型在不同属性数量情况下的平均解密时间。可以看出在不同属性数量情况下,文献[18]的方案所需的解密时间都是最多的,而且随着属性数量增加,与文献[12]方案以及AKE-CP-ABFE方案的解密时间差越大。这是因为属性越多,额外关于重加密以及属性更新的计算操作就越复杂。而基于AKE-CP-ABFE算法构建的SDN访问控制模型在解密时间上与文献[12]方案相当,但在解密过程中需要进行MAC地址验证所以要多消耗平均9 ms的计算时间,总体来说几乎不产生过多的计算量。因此本文提出的方案在解密过程中仍能保持较好的计算效率。

图3 平均解密时间对比

5 结 论

随着计算机网络规模的扩大,网络管理的难度与日俱增,大型复杂网络呈现爆发式增长。SDN作为一种控制与数据分离的新型网络架构,为大型网络提供了全新的集中化管理与配置方法。与此同时如何提供安全的信息保护以及灵活的访问控制机制以保证用户及设备的隐私,正成为部署SDN尤其是多控制器设置下的大型SDN的关键问题。本文提出了一种抗密钥暴露快速属性加密算法,利用预计算技术使得加密者在进行加密时无需进行任何复杂运算,提高了加密效率。同时基于拓展图技术进一步降低了预计算的存储开销。除此之外,将用户或者设备的MAC地址嵌入到私钥当中,即使将私钥有意或者无意地暴露给其他非法用户或者设备也不会泄露任何敏感信息。理论分析和仿真实验表明,基于该算法构建的SDN域间信息访问控制系统模型,降低了开源API造成的用户或者网络设备敏感信息泄露的风险,同时能以较高的计算效率保证敏感信息域间分享的安全性和灵活性。如何在属性动态变化的环境中保证SDN访问控制的有效性将是下一步的研究方向。

猜你喜欢

私钥访问控制密文
清扫机器人避障系统区块链私钥分片存储方法
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
基于改进ECC 算法的网络信息私钥变换优化方法
一种基于虚拟私钥的OpenSSL与CSP交互方案
ONVIF的全新主张:一致性及最访问控制的Profile A
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
动态自适应访问控制模型