一种高效的移动云服务环境下隐私保护认证协议

2019-01-31 02:49彭代渊梁宏斌
西南交通大学学报 2019年1期
关键词:服务提供者口令攻击者

熊 玲 ,彭代渊 ,彭 图 ,梁宏斌

(1. 西南交通大学信息科学与技术学院,四川 成都 611756;2. 北京理工大学软件学院,北京 100081;3. 西南交通大学交通运输与物流学院,四川 成都 611756;4. 西南交通大学综合交通运输智能化国家地方联合工程实验室,四川 成都 611756)

近年来,随着无线通信技术飞速发展,手机、笔记本、iPad等移动终端设备已经成为人们生活中必不可少的部分[1-2]. 移动云服务(mobile cloud computing,MCC)融合了云计算服务、移动通信设备和传统互联网技术,因此能够便捷灵活地实现传统云服务在移动互联网中的扩展和应用,为用户提供了更加自由、方便和灵活的服务,移动云服务引起了业界的又一次产业变革[3]. 然而,移动云服务运行在无线网络这种开放的环境下,攻击者更加容易发起各种攻击[4],为了防止恶意的攻击者访问服务,互相认证是移动云服务环境下最基本的安全需求,同时由于用户的身份信息会暴露用户的位置、习惯等,移动云服务环境下的隐私保护越来越受人们关注,因此,设计适用于移动云服务环境下具有隐私保护的认证协议迫在眉睫[5-6].

移动用户通过移动终端访问多个不同的云服务,按照传统的单服务器认证方式[7-10],用户登录不同的移动云服务提供者时需要输入多个不同的用户名和口令,多个口令使得用户难以记忆且容易造成混淆,为了方便,用户通常选择相同的口令,这种方式存在安全隐患,同时,每个云服务提供者需要创建一个用户的数据库,增加管理负担,造成资源浪费.单点登录(single sign-on,SSO)机制[11-15]有效地解决了该问题,用户只需登录一次就可以访问多个服务提供者,而不需要重复输入多次用户名和口令[11].SSO给我们生活带来了极大的方便,但是目前多数的 SSO,比如 Passport[12],OpenID[13]和 SAML[14]等,每次认证都需要一个可信的第三方参与,当用户数量增多时,可能会造成可信第三方的通信瓶颈[5-6],其次,由于每次认证都需要与可信第三方通信,可信第三方能够知道用户的行踪,从而泄露了用户隐私[15].除此之外,当前大多SSO认证方案需要通过SSL(secure sockets layer)或者 TLS (transport layer security)建立通信连接,然而,SSL或者TLS计算和通信代价都非常高,并不适用资源有限的移动云服务环境.

为了解决上述问题,2015年Tsai和Lo[5]基于多服务器认证机制设计了一个适用于移动云服务环境的协议,该协议声称能够满足隐私保护和互相认证,且只需用户注册一次,便可访问多个服务提供者,每次认证过程不需要可信第三方参与,并且协议没有使用计算复杂度高的SSL或TLS协议. Tsai和Lo的方案[5]发表后,引起了众多学者研究和分析[6,16-19],首先,Jiang等[6]指出该方案存在严重的安全缺陷,不能提供互相认证,同时存在一些设计缺陷,包括生物特征错误使用,错误口令指纹登录,没有用户撤销功能. 随后出现了一系列攻击和改进方案[16-19]. He等[16]于2016年提出基于身份的签名技术改进的方案,该方案能够提供各种安全功能,并能抗击各种现有攻击. 然而,分析发现,由于该方案在登录前没有验证口令是否正确,因此不能抵抗由于输错口令而引起的错误口令登录攻击,同时,该方案存在一些小得设计缺陷,包括没有考虑用户撤销和重注册,没有考虑口令修改. 文献[17]在文献[5]的基础上增加密钥确认完成互相认证,但增加了计算代价,此外,文献[17]的3个认证因子分别为:智能卡、口令Wi、生物特征fi,智能卡中存储了验证表 Vi= h(Di||Wi||Hb(fi)),其中:Di为身份标志;Hb( )为哈希函数. 显然,若智能卡和生物特征丢失,攻击者可以成功猜测用户的口令,从而不能达到真正的三因子安全. 并且该方案也没有考虑用户撤销和重注册功能. 文献[18]采用签密技术实现互相认证,该方案具有可证明安全性,然而与文献[17]一样,文献[18]同样不能提供三因子安全,并且文献[18]在移动端使用了两次映射到域上的hash运算,使得计算效率明显降低. 文献[19]设计了一个匿名认证协议,但该方案使用条件非常苛刻,要求用户必须合法守信,否则恶意用户可以假冒任何服务器和其他用户. 因为移动端存储 < (DS1,PK1),(DS2,PK2), · · ·, ( DSi,PKi), · · ·> ,PKi为用户和服务提供者共享的秘密值,方案主要通过PKi进行认证和协商,然而用户的移动设备中存储所有服务提供者的PKi,恶意的用户可以任意假冒服务提供者和其他用户.

综上所述,本文设计一种适用于移动云服务环境高效的具有隐私保护的认证协议. 主要贡献如下:

(1) 抗错误口令登录和修改攻击和多因子安全是密码协议中非常重要的两个安全属性,然而很少有协议同时满足两个安全属性,如上述协议[5,16-19]中均不能同时满足这两个安全属性,本文利用Wang等[20-23]提出的fuzzy verifier方法,设计能同时满足抗错误口令攻击和多因子安全的方案.

(2) 上述移动云服务环境的协议[5,16-18]在移动终端均使用计算复杂度高的映射到域上的hash运算,且文献[18]使用两次. 然而通过分析发现用普通的hash函数得到的比特序列对秘密值的比特序列进行消息掩盖保护能达到同样的安全效果. 因此,本文未使用映射到域上的hash函数,计算效率明显提高.

(3) 本文设计一种新的适用于移动云服务环境的隐私保护认证方案,可证明安全技术证明新方案是安全的. 此外,新方案解决了现有改进方案中的安全问题,安全对比表明新方案具有更高的安全功能,计算效率对比表明,与近期方案[5,16-18]相比新方案的计算效率显著提高.

1 预备知识

1.1 安全模型

基于文献[5,16]建立适合本文方案的安全模型.该安全模型定义为攻击者A和挑战者ζ的游戏,假定用户Ui和服务器Sj之间有概率多项式时间攻击者 A,Ui∈U,Sj∈S,i,j = 1,2, · · ·, U 为用户集合,S为移动云服务提供者集合,ΠU,s为用户预言机,用于会话s中与移动云服务提供者交互,ΠS,s为移动云服务提供者预言机,用于会话s中与用户交互的预言机. 攻击者A可以进行下列询问:

hi(mi):该询问模拟 hash函数,A 发起询问,ζ生成随机数hi∈,并将其返回给A.

Register(D):该询问模拟A作为一个合法的用户向智能卡生成中心(smart card generated center,SGC)申请注册,A发送身份标识D,ζ返回移动存储设备中的秘密信息.

Send(C,s,C′,M):该询问模拟攻击者 A的主动攻击,A假冒参与方C′发送消息M给另一个参与方C的预言机ΠC,s,预言机按照协议的规定执行协议,并将结果返回给攻击者A. 如P′ 和M为空,则表示用户发起一个新的会话.

Reveal(s):该询问模拟已知会话攻击,返回会话s中用户和移动云服务提供者之间的会话密钥.

Corrupt(Di,Wi):该询问模拟口令 Wi丢失攻击,返回用户Di的口令.

Corrupt(Di,Mi):该询问模拟移动设备 Mi丢失攻击,返回移动设备中存储的秘密参数.

Corrupt(Sj):该询问模拟恶意服务提供者攻击.

Test(Ui,Sj,s):该询问模拟会话密钥的语义安全性,如果测试会话没有计算出会话密钥,则输出“⊥”,终止该询问,否则,随机选择一个比特b∈{0,1},抛掷一枚硬币,若硬币正面朝上,b = 0,返回真实的会话密钥;否则,b = 1,从密钥空间中选择一个随机数,将其返回. 攻击者需要输出0或1作为结果. 注意:攻击者A只能进行一次询问.

匹配会话和安全认证密钥交换协议定义如下:

定义 1匹配会话:如果会话实例 ΠU,s和 ΠS,s′为接受状态,且 s′ = s,pidU= S,pidS= U,则称 ΠU,s和ΠS,s′为匹配会话,其中 pidU和 pidS表示参与协议另一交互方的身份标识.

定义2安全的认证协议:如果下面的安全属性成立,则本文协议为安全的认证协议:

(1) ΠU,s和 ΠS,s为匹配会话;

(2) ΠU,s接受 A 为 ΠS,s发生的概率是可忽略的;

(3) ΠS,s接受 A 为 ΠU,s发生的概率是可忽略的;

(4) 如果会话是新鲜的,且 ΠU,s和 ΠS,s是匹配会话,它们有共同的会话密钥,且会话密钥和随机数是不可区分的;

(5) 当A获取移动设备,并得到移动设备中的秘密参数,则A成功猜测口令的概率是可忽略的.

注意 ΠU,s和 ΠS,s互相接受,且没有进行 Reveal询问,则称为新鲜会话.

1.2 安全需求

移动云服务应用于公开的无线网络环境,这使得移动云服务环境具有更高的安全需求. 除了文献[16]指出安全需求之外,移动云服务环境的认证协议还应满足如下的安全需求:

(1) 防止错误口令登录或修改攻击:用户登录阶段应能有效地检测口令的正确性,防止无效的登录引起额外的通信和计算代价. 同时修改口令时应验证旧口令的正确性,因为错误的口令修改会破坏移动设备的秘密参数,使用户无法再登录[24].

(2) 友好的用户口令修改策略:用户能自由修改口令,修改时不需要远程服务提供者参与[9,20-24].

(3) 双因子安全:双因子安全为泄露用户两个认证因子中任何一个不会影响协议的安全性[20-24]. 本文协议两个认证因子为口令和移动设备,若口令或移动设备丢失(假设攻击者得到移动设备,能够获取移动设备中的秘密参数)不会影响认证方案的安全.

(4) 有效的用户撤销和重注册机制:实际使用中,会有移动设备丢失或被盗的情况,所以应考虑用户撤销策略,确保用户发现移动设备丢失时,向SGC发起撤销申请,SGC处理后原来移动设备中的秘密参数值不可以再用来访问服务. 另外,若恶意的攻击者知道用户的身份标识,并利用该标识向SGC申请注册,SGC按照协议的规定给注册者发送秘密参数,则恶意的攻击者可以假冒用户. 因此,移动云服务环境中应考虑相同用户身份重注册机制[6,25-26].

2 本文方案

2.1 初始化阶段

(1) SGC选择两个阶为q的群G1和G2,以及双线性对 e:G1× G1→G2,g = e(P,P)其中 P 为G1的生成元.

(2) SGC 生成随机数 sk∈Z∗q,计算 Pk=sk·P,sk作为系统主密钥,Pk作为公开密钥.

(3) SGC选择5个安全的hash函数,分别为h0,h1,h3,h4:{0,1}*→Zq,h2:{0,1}*→{ 0 ,1,···,1 023 },其中l为G1域中元素的长度.

(4) SGC 保存主密钥 sk,并公开参数{q,G1,G2,e,h0,h1,h2,h3,h4,P,Pk,g}.

2.2 注册阶段

当用户Ui想访问移动云服务提供者Sj的时候,Ui和Sj必须向SGC申请注册,Ui注册过程如图1所示.

图1 用户注册阶段Fig.1 User registration phase

具体流程如下:

(1) Ui生成随机数 bi,选择身份标识 Di和口令Wi,计算 Ci= h0(Di||Wi||bi),将身份标识 Di和 Ci通过安全信道发送给SGC.

(2) SGC首先验证Di是否存在用户信息表中,若存在,SGC拒绝注册申请,否则,SGC利用sk计算

式中:T为Ui的使用期限.

然后SGC更新用户信息表,将{Di,T}存入用户信息表中,将Fi、V和T通过安全信道发送给Ui.

(3) Ui收到 Fi、V 和 T 后,将其和 bi存储于移动设备中.

移动云服务提供者Sj注册过程如下:

(1) 将Sj身份标识Dj通过安全信道发送给SGC.

(2) SGC首先验证Dj是否在云服务提供者信息表中,若存在,SGC拒绝注册申请,否则,SGC利用主密钥sk计算,将{Dj}存入云服务提供者信息表中,将Kj通过安全信道发送给Sj.

(3) Sj收到Ki后,将其存储于安全的存储区.

2.3 认证阶段

用户访问移动云服务提供者,互相认证密钥协商过程如图2所示,具体流程如下:

图2 用户认证阶段Fig.2 User authentication phase.

(1) Ui输入 Di和口令 Wi,计算 Ci= h0(Di||Wi||bi),Ki= Fi⊕Ci,V′ = h2(h3(Ki||Ci)),验证 V′ 和 V 是否相等,若不相等,则拒绝认证登录,否则,计算Ki=Fi⊕Ci,向 Sj发送登录请求.

(2) Sj生成随机数 y∈,计算 Y = gy,将其发送给Ui.

(3) Ui生成随机数 x∈,计算 X = gx,Kij=h3(Y||X||Yx),R1= xPk+ h1(Dj)xP,ω = h4(Di||Dj||Y||X||Kij||R1),Ei= (x + ω)Ki,CT= (Di||T||Ei)⊕h0(Kij),然后将{R1,CT}发送给Sj.

(4) Sj收到{R1,CT}后,计算 X = e(R1,Kj),Kij=h3(Y||X||Xy),Di||T||Ei= CT⊕h0(Kij),ω = h3(Di||Dj||Y||X||Kij||R1),然后,Sj验证等式 e(Ei,h1(Di)P + Pk) =Xgω是否成立,若不成立,则拒绝登录请求,否则Sj计算 V1= h4(Dj||Di||Y||Kij||R1||X),并将其发送给 Ui.

(5) Ui计算 V′1= h4(Dj||Di||Y||Kij||R1||X),验证其与收到的V1是否相等. 若不相等则终止会话,否则Ui确认Sj是合法的移动云服务提供者.

2.4 口令修改阶段

用户Ui更换的口令的具体步骤如下:

步骤 1Ui输入 Di和 Wi到移动设备,移动设备计算计算 Ci= h0(Di||Wi||bi),Ki=Fi⊕Ci,V′ =h2(h3(Ki||Ci)),验证 V′和 V 是否相等,若不相等,则说明身份标识或口令验证失败,移动设备拒绝口令修改需求.

步骤2用户输入新口令,智能卡计算=h0(Di||||bi), V∗= h2(h3(Ki||)),= Fi⊕Ci⊕.

步骤3最后,用户用和V更新智能卡中的Fi和V.

2.5 用户撤销阶段

当用户发现移动设备丢失,向SGC申请撤销,SGC验证用户身份后,立即通报所有的服务提供者.原来旧的身份标识将列入黑名单.

3 安全性分析

3.1 可证明安全

假定安全模型定义为一个攻击者A和挑战者ζ的游戏,首先给出两个数学困难问题[5,16,27].

定义 3 k-CAA (collusion attack algorithm with k-traitors)问题:给定 k 个 e1,e2,···,ek∈ Z∗q以及 k +2 个 P,计算

·P e0∉ {e1,e2,···,ek} 是不可行的,其中 ,并且sk是中未知的元素.

定义 4 k-mBIDH (modified bilinear inverse diffie-hellman with k value)问题:定 k 个e1,e2,···,ek∈

引理1安全的用户认证:如果hash函数(h0,h1,h3,h4)是理想的随机函数且 ΠS,s是接受状态,则在本文方案中没有一个多项式攻击者能够以不可忽略的概率成功假冒用户.

证明 假设攻击者A能够以不可忽略的概率ϵ成功地假冒用户完成认证,则一定有一个挑战者ζ能够以不可忽略的概率解决k-CAA问题.

给定 k-CAA 问题{( e1,e2,···,ek∈q),P,sk·P,挑战者 ζ的任务是计算. ζ发送系统参数{q,G1,G2,e,h0,h1,h2,h3,h4,P,PK,g}给 A. 假定挑战者的身份标识为D0. 则ζ可以与A进行如下询问:

(1) h1(Di):h1(Di)询问维护一个列表 Lh1,该列表初始化为空. ζ验证Di是否在 Lh1中. 如果在,ζ返回它对应的值 hi给 A. 否则,如果 Di= D0,将h1(D0||T)← e0,否则将 h1(Di||T)← ei. 则,ζ将元组(Di,hi)存储于表 Lh1中,并将 hi返回给 A.

(2) hi(mi):hi(mi),i = 0,3,4 维护一个列表 Lhi,该列表初始化为空. ζ验证mi是否在 Lhi中.如果在,ζ返回它对应的值hi给A. 否则,ζ生成一个随机数hi,将元组(mi,hi)存储于表 Lhi中,并将 hi返回给 A.

(3) Register(Di):在该询问中,ζ维护一个列表LR,该列表初始化为空. 当 A询问 Di时,ζ验证Di是否存在表 LR中. 如果存在,ζ返回 Di给 A. 否则,ζ操作如下:

① 如果 Di= D0,ζ记 h1(Di||T)=e0, Ki=⊥ ,将元组(Di,e0)和(Di,Ki)分别存储于 Lh1和 LR中. ζ将Di返回给A.

② 如果 Di≠ D0, ζ 记 h1(Di||T)=ei,将元组(Di||T,ei)和(Di,Ki)分别存储于 Lh1和 LR中.ζ将Di返回给A.

(4) Send(Ui,s,Sj,M):当该询问发起时,ζ首先验证Sj和M是否为空. 如果是,ζ根据协议的规定发起登录申请. 否则ζ验证Ui= D0是否相等,如果不相等,ζ根据协议的规定返回{R1,CT}给A,否则,ζ终止游戏.

(5) Send(Sj,s,Ui,M):ζ根据协议的规定将执行后的结果返回给A.

(6) Reveal(s):ζ返回会话 s的 Kij给 A.

(7) Corrupt(Di,Wi):ζ返回身份标识为 Di的用户口令Wi给A.

(8) Corrupt(Di,Mi):ζ返回(Fi,Vi,T)给 A.

(9) Corrupt(Sj):ζ返回 Sj的状态给 A.

基于以上询问,如果A能成功地伪造消息{R1,CT},则A能够成功地假冒用户完成认证. 则根据伪造引理[16,27],A通过选择另一个随机预言机h1伪造另一个合法的消息{R1,C′T},从而得到新的 ω′和 E′i,则可得到下面两个等式:

由式(1)和式(2)可得:

由式(3)可得:

由式(4)可得, ( ω -ω′)-1(Ei-) 就是 k-CAA问题的解.下面给出 ζ 得到k-CAA问题的概率,为了方便理解,定义了以下4个事件:

B1:ζ知道A攻击自己的事件,假设在k+1次会话中A至少攻击一次,ζ不知道A攻击的是谁,直到Send询问终止.因此该事件发生的概率为P(B1) =,其中,qs表示Send询问的次数.

B2:A成功地假冒挑战者的事件.

B3:h1(D0||T)从 Lh1表正确地获取.

B4:h4(Di||Dj||Y||X||Kij||R1)从表 Lh4中正确获取.

可以得到:

其中: qh1和 qh4分别为h1询问和h4询问的访问次数.

因此, ζ 获到k-CAA问题的概率如下:

显然,ζ得到k-CAA问题的概率是不可忽略的,因为ϵ是不可忽略的. 这是矛盾的假设. 综上所述,不存在概率多项式时间攻击者能够以不可忽略的概率假冒一个合法的用户.

引理 2安全移动云服务提供者认证:如果hash 函数(h0,h1,h3,h4)是理想的随机函数且 ΠU,s是接受状态,则本文方案中没有一个多项式攻击者能够以不可忽略的概率成功假冒移动云服务器提供者.

证明假设攻击者A能够以不可忽略的概率ϵ成功地假冒移动云服务提供者完成认证,则一定有一个挑战者 ζ 能够以不可忽略的概率解决k-mBIDH问题.

给 定 k-mBIDH问 题{( e1,e2,···,ek∈),P,挑战者ζ的任务是计算 e (P,P)y/(sk+e0). ζ发送系统参数{q,G1,G2,e,h0,h1,h2,h3,h4,P,Pk,g}给 A. 假定挑战者的身份标识为D0. 则ζ可以与A进行hi(i =0,1,3,4)询问,Register询问、Reveal询问以及Corrupt询问,这些询问和引理1证明中的询问相似,其他询问如下:

(1) Send(Ui,s,Sj,M):ζ根据协议的规定将执行后的结果返回给A.

(2) Send(Sj,s,Ui,M):ζ验证 Sj= D0是否成立,如果不成立,ζ根据协议的规定将执行后的结果返回给A;否则,ζ终止游戏.

基于以上假设,如果A能够成功的伪造V1,则A能够成功地仿冒服务提供者完成认证. 有下面两种情况可以成功伪造V1.

Case 1A不知道X的值能够正确地猜测V1.这种情况发生的概率等于hash函数发生碰撞的概率,概率为,其中l为hash函数h4的输出长度.

Case 2A通过h4询问获得X. 这意味着X是k-mBIDH问题的解.下面给出 ζ 得到k-mBIDH问题的概率,与引理1相同,为了方便理解,定义了以下4个事件:

B1:ζ知道A在攻击自己的事件.

B2:A成功地假冒挑战者的事件.

B3:h3(Y||X||Xy)从 Lh3表正确地获取.

B4:h4(Dj||Di||Y||Kij||R1||X)从表 Lh4中正确获取.

可以得到:

其中:qh3为h3询问的访问次数.

因此,ζ获到k-mBIDH问题的概率如式(6).

由于ϵ是不可忽略的,ζ得到k-mBIDH问题的概率是不可忽略的. 显然这是矛盾的假设. 综上所述,不存有概率多项式时间攻击者能够以不可忽略的概率假冒一个合法的移动云服务提供者.

引理 3安全的密钥协商:如果hash函数(h0,h1,h3,h4)是理想的随机函数,且 ΠU,s和 ΠS,s是接受状态,则在本文方案中没有一个多项式攻击者能够以不可忽略的概率成功区分会话密钥Kij和随机数.

证明攻击者 A 可以发起 hi(i = 0,1,3,4)询问、Register询问、Send询问、Corrupt询问和 Test询问,ζ随机选择一个 b ∈{0,1} . 如果b = 1,ζ返回会话密钥Kij给A,否则,ζ返回一个随机数给A. 根据引理1和引理2证明,如果A能够成功地区分Kij和一个随机数,则A必然能够解决k-CAA问题或kmBIDH问题. 显然这是矛盾的假设. 所以,不存有概率多项式时间攻击者能够以不可忽略的概率成功地区分会话密钥Kij和随机数.

定理 1如果 hash 函数(h0,h1,h3,h4)是理想的随机函数,k-CAA问题和k-mBIDH问题是困难的,且 ΠU,s和 ΠS,s是接受状态,则本文方案是安全的.

证明根据引理1可知,如果k-CAA问题是困难的,则不存在概率多项式时间攻击者能够成功假冒用户完成认证. 根据引理2可知,如果k-mBIDH问题是困难的,则不存在概率多项式时间攻击者能够成功假冒服务提供者完成认证. 根据引理3可知,如果k-CAA问题和k-mBIDH问题是困难的,则不存在多项式攻击者能够以不可忽略的概率成功区分会话密钥Kij和随机数. 除此之外,如果攻击者发起Corrupt(Di, Mi)询问,则攻击者可以获取移动设备中的秘密参数(Fi,Vi,T),此时攻击者能够成功猜测口令的概率为1 024/|DPW| ,其中,|DPW|为口令空间[18-21],显然这是可以忽略的. 综上所述定义2成立,所以定理1成立.

3.2 安全需求分析

(1) 互相认证

根据引理1和引理2可知,不存在概率多项式时间攻击者能够成功假冒用户或者服务提供者完成认证. 因此,如果用户和移动云服务提供者均为接受状态,则与其通信的参与者确实是他所宣称的身份.

(2) 用户匿名和不可追踪

本文协议中,用协议的会话密钥保护用户的身份标识Di,根据引理3可知,不存在概率多项式时间攻击者能够成功地区分会话密钥和随机数,除了通信双方,任何第三方无法获取会话密钥,因此,任何第三方无法获取用户的Di,从而保证了用户的隐私安全. 此外,协商的会话密钥为Kij= h3(Y||X||Yx),而X = gx和Y = gy是新鲜的,因此每次会话产生的Kij是独立的,所以攻击者无法追踪用户.

(3) 双因子安全

双因子安全是指用户的两个认证因子中有一个因子泄露了,不会对协议造成安全威胁. 本文协议中,用户的两个因子分别为口令和移动设备,当口令丢失时,没有移动设备攻击者无法从公开的信道上传输的消息中恢复Ki,从而无法完成认证和密钥协商. 另一方面,当用户的移动设备丢失时,假设此时用户能够获取移动设备中的秘密参数(Fi,Vi,T)、Fi= Ki⊕Ci、V = h2(h3(Ki||Ci))、Ci= h0(Di||Wi||bi),此时攻击者仍然无法成功猜测口令,因为存在|DPW|/1 024个候选口令满足等式,因此本文协议可以提供双因子安全.

(4) 用户撤销和重注册

当用户的移动设备丢失或被盗时,用户需要向SGC申请重新注册,并报备设备已经丢失,之前的身份标识和秘密参数值已经不能再使用,当用户申请撤销后,用户重新申请注册时需要使用一个新的身份标识,将原来的身份标识划入黑名单,并广播给系统中的每个移动云服务提供者. 同时,本文协议在注册时,SGC 产生秘密值 Ki= 1/(sk+ h1(Di||T))P 时增加期限T,在期限T内Ki有效,过期需要重新注册,所以用户若是不知道自己的移动设备丢失,在期限T过后,攻击者无法使用移动设备.

(5) 错误口令登录修改攻击

本文协议中,移动设备中存储了验证信息V =h2(h3(Ki||Ci))和 Ci= h0(Di||Wi||bi),每次用户登录和修改口令,都需要验证输入的口令是否正确,如果输入错误的口令,则移动设备拒绝登录或修改口令,因此本文协议可以抗错误口令登录、修改引起的拒绝服务攻击.

3.3 安全功能对比

表1将本文方案与最近相关方案[5,16-18]进行安全功能对比,结果表明本文方案可抗上述所有攻击.

表1 安全功能对比结果Tab.1 Comparison of security functionality

4 计算性能分析

由于本方案和He等[16]方案所使用的密码算法一致,则继续沿用He等方案中算法操作的运行时间,移动端使用的设备参数情况为:Samsung Galaxy S5,四核2.45 GHz处理器,2 GB内存,操作系统为Google Andriod 4.4.2. 服务器端使用的设备参数情况为:Dell计算机,型号:I5-4460S,2.90 GHz处理器,4 GB内存,操作系统为Window 8. He等方案相关操作的运行时间如表2所示.

表2 相关操作运行时间Tab.2 Running time of related operations ms

表 2中:Tbp为双线性对的执行时间;Tsm为G1域中点乘的操作时间;Tmtp为hash函数H的操作时间;Tpa为G1域中点加的操作时间;Texp为G2域中指数的操作时间;Tmul为G2域中乘法的操作时间;Th为一般的hash函数操作时间.

表2表明映射到域上的hash函数H的运行时间最长. 本文方案使用一般的hash函数h0替代H,掩盖保护时将Ki转换成二进制比特序列,登录时,将二进制比特序列转换成G1域上的大整数即可.具体实现过程为:注册时移动设备存储的值为Fi=BigIntToBit(Ki)⊕h0(Di||Wi||bi),登录时计算 Ki= BitTo-BigInt(Fi⊕h0(Di||Wi||bi)). 其中 BigIntToBit( )为大整数转换为比特序列的函数,BitToBigInt( )为比特序列转换为大整数的函数,这两个函数的计算代价非常小,几乎可以忽略不计,因此本文方案有效地改进了计算效率.

表3将本文方案与最近相关方案[5,16-18]进行计算性能对比,对比结果表明本文方案的实现速度最高.

表3 计算性能对比Tab.3 Comparison of computation cost ms

5 结束语

随着无线通信技术的发展,移动设备成为生活中必不可少的部分,移动云服务已经成为非常受欢迎的网络服务,认证和隐私保护是访问移动云服务的最基本的安全需求. 本文在He等改进方案的基础上设计了一个高效的适用于移动云服务环境的隐私保护认证协议. 安全性分析结果表明,本文设计的方案能够提供各种安全需求并能抗现有的各种攻击,性能分析结果表明,本文协议具有更高效的计算性能和通信性能. 在以后的工作中,我们将致力于更加高效的、更加实用化的移动云服务环境隐私保护认证协议研究.

猜你喜欢
服务提供者口令攻击者
网络服务提供者的侵权责任研究
网络服务提供者的侵权责任研究
论网络服务提供者连带责任的理论困境
高矮胖瘦
口 令
正面迎接批判
正面迎接批判
好玩的“反口令”游戏
论网络服务提供者的侵权责任
有限次重复博弈下的网络攻击行为研究