一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式云计算架构中物联网设备的认证和密钥协商协议方法与流程

2021-12-07 22:03:00 来源:中国专利 TAG:


1.本发明涉及信息安全技术领域,尤其涉及一种用于分布式云计算架构中多个物联网设备之间的高效认证和密钥协商协议设计方法。


背景技术:

2.近年来,物联网(iot)设备,如传感器设备、rfid标签、执行器和智能终端,越来越多地应用于日常生活中,为人们提供便利的生活。在智慧城市建设过程中,物联网设备的主要功能在异构无线环境中互联互通,设备可以持续监控和分析来自城市中各种应用数据,以实现智慧城市智能决策过程的实时自动化。然而,众所周知,物联网设备资源受限,而智慧城市中的数据量巨大,一般会随着数据和设备呈指数级增长,因此,需要一个标准平台集中处理大量异构的数据和设备。为了处理由各种物联网设备生成的如此庞大的数据库存储库,云计算是一种有效的解决方案。目前,云提供商提供了多种类型的云服务,例如软件即服务云(saas)(例如ibm lotuslive)、平台即服务(paas)(例如google appengine)和基础设施即服务(iaas)(例如亚马逊网络服务)。
3.但是,随着物联网和云计算在智慧城市的广泛应用,可能会遇到各种安全和隐私挑战,其中最基本的问题是各个应用设备之间的相互认证,例如参与用户、物联网设备、分布式服务器、数据控制中心等。在图1中,我们简单给出了一个场景:假设一个云计算服务商已经搭建了一个覆盖整个智慧城市的分布式私有云环境,在智慧城市运营过程中,有许多物联网设备需要把实时产生的应用数据上传到距离它最近的私有云服务中,而各个分布式私有云服务经过初步的计算,再把数据汇聚到云服务中心,即数据控制中心,经过云服务中心的高速计算和智能调度,实现各个设备的之间实时通信感知,以提供高质量的服务。该场景中主要涉及三个主要实体:云计算提供商,即数据控制中心,单个分布式私有云服务器和每个支持物联网的设备终端。而在这个过程中,分布式私有云服务器中一般存储来自物联网设备的隐私信息,只有合法用户才能访问敏感信息,这就需要实现两个实体间的相互认证。同样的,还有分布式私有服务器与数据控制中心之间,都需要实现之间的相互认证。此外,在各个设备之间实现相互认证后,由于相互的通信数据大多通过开放的互联网来传递,为了保证数据的机密性,还需要在三个实体实现相互认证后,生成一个共享秘钥,用来加密接下来的通信流量。
4.最近,已经提出了许多与物联网和分布式云计算集成的身份验证协议,用于大规模物联网网络的安全访问控制。2018年,amin等人(文献1“r.amin,n.kumar,g.p.biswas,r.iqbal,and v.chang,a light weight authentication protocol for iot

enabled devices in distributed cloud computing environment,future generation computer systems,vol.78,pp.01”)提出了一种分布式云计算环境中物联网设备的认证协议,指出xue等人和chuang等人分别提出的两种认证协议中的许多安全漏洞。然而,kang等人(文献2:kang b,han y,qian k,et al.analysis and improvement on an authentication protocol for iot

enabled devices in distributed cloud computing environment
[j].mathematical problems in engineering,2020,2020(2):1

6)发现amin等人协议容易受到伪造攻击,并改进了协议。但是,通过研究大量的认证协议,发明人进一步发现了对kang等人的协议的离线密码猜测攻击,即恶意用户可以轻松获取主控服务器的主密钥,主密钥是整个系统的关键参数,可能造成整个系统的所有信息被泄露。
[0005]
另外,由于这些协议是为物联网设备之间通信设计的,而众所周知,此类设备是基于嵌入式开发的,一般计算资源和存储资源都很有限,而在实际使用过程中,通信的实时性要求很高,数据运行效率要快,如果采用主流的加密算法,都很难满足需要。因此,设计这些协议在保证通信的机密性的同时,也需要考虑协议实现的计算复杂度。


技术实现要素:

[0006]
为了满足智慧城市中基于物联网的分布式云架构下各应用设备之间的相互认证和加密通信,本发明提供一种用于分布式云计算架构中物联网设备的高效认证和密钥协商协议设计方法。
[0007]
本发明提供一种分布式云计算架构中物联网设备的认证和密钥协商协议方法,包括注册阶段、登录阶段以及认证和密钥协商阶段,所述认证和密钥协商阶段包括:
[0008]
第一次握手过程:用户u
i
通过其物联网设备向云服务器s
m
发送登录消息,云服务器s
m
接收到用户u
i
的登录消息后,计算其自身的身份验证条件,并将其自身的身份验证条件和用户u
i
的登录消息发送至控制服务器cs;
[0009]
第二次握手过程:控制服务器cs接收到来自云服务器s
m
的消息后,验证用户u
i
和云服务器s
m
的合法性,若二者合法,则分别为用户u
i
和云服务器s
m
生成其自身的身份验证条件,并将生成的两种身份验证条件发送至云服务器s
m

[0010]
第三次握手过程:云服务器s
m
从接收到的两种身份验证条件中选择与其自身相关的身份验证条件来验证控制服务器cs,并将另一种身份验证条件发送至用户u
i
的物联网设备;
[0011]
第四次握手过程:用户u
i
的物联网设备根据接收到的身份验证条件验证控制服务器cs的合法性,若控制服务器cs通过验证,用户u
i
、云服务器s
m
和控制服务器cs最终协商得到一个共享密钥sk=h(n
m
||n
cs
||n
i
);其中,n
m
表示第一次握手过程中由云服务器s
m
所生成的一个128位的随机数,n
cs
表示第二次握手过程中由控制服务器cs所生成的一个128位的随机数,n
i
表示用户u
i
在登录上云服务器s
m
后所生成的一个至少128位的随机数;
[0012]
其中,在上述的四次握手过程中,只要用户u
i
、云服务器s
m
和控制服务器cs中的任何一方未能通过身份验证,则会话结束。
[0013]
进一步地,所述第一次握手过程中,云服务器s
m
接收到用户u
i
的登录消息后,还包括:
[0014]
云服务器s
m
检查条件ts
m

ts
i
<

t是否成立,若成立,云服务器s
m
计算其自身的身份验证条件,具体包括:云服务器s
m
生成一个128位的随机数n
m
并计算k
i
=h(n
m
||bs
m
||pid
i
||g
i
||ts
m
);
[0015]
对应地,所述云服务器s
m
将其自身的身份验证条件和用户u
i
的登录消息发送至控制服务器cs具体为:云服务器s
m
将<j
i
,k
i
,psid
m
,g
i
,f
i
,z
i
,pid
i
,ts
i
,ts
m
>发送到控制服务器cs;
[0016]
其中,<g
i
,f
i
,z
i
,pid
i
,ts
i
>表示用户u
i
的登录消息,<j
i
,k
i
,psid
m
,ts
m
>表示云服务器s
m
的身份验证条件,ts
m
表示云服务器s
m
的当前时间戳,ts
i
表示用户u
i
的物联网设备的当前时间戳,

t表示设定的时间阈值,bs
m
表示云服务器s
m
与控制服务器cs之间的对称密钥,pid
i
表示用户u
i
的伪身份标识,psid
m
表示云服务器s
m
的伪身份标识,b
m
、j
i
、k
i
、g
i
、f
i
和z
i
均表示中间运算结果,h(
·
)表示哈希函数,||表示拼接操作。
[0017]
进一步地,所述第二次握手过程中,控制服务器cs接收到来自云服务器s
m
的消息后,还包括:控制服务器cs检查条件ts
cs

ts
m
<

t是否成立,若成立,则验证用户u
i
和云服务器s
m
的合法性;
[0018]
对应地,所述验证用户u
i
和云服务器s
m
的合法性,若二者合法,则分别为用户u
i
和云服务器s
m
生成其自身的身份验证条件,并将生成的两种身份验证条件发送至云服务器s
m
,具体包括:
[0019]
步骤a1:控制服务器cs计算
[0020]
d
i
=h(pid
i
||x)
[0021][0022][0023][0024]
步骤a2:控制服务器cs检查条件是否成立,若成立,则控制服务器cs验证用户u
i
合法;
[0025]
步骤a3:控制服务器cs计算
[0026]
bs
m
=h(psid
m
||sid
m
||y)
[0027][0028]
步骤a4:控制服务器cs检查条件是否成立,若成立,则控制服务器cs验证云服务器s
m
合法;
[0029]
步骤a5:控制服务器cs生成一个128位的随机数n
cs
并计算
[0030][0031][0032]
sk
cs
=h(n
i
||n
m
||n
cs
)
[0033][0034][0035]
步骤a6:通过公共信道将<p
cs
,q
cs
,r
cs
,v
cs
>发送至云服务器s
m

[0036]
其中,ts
cs
表示控制服务器cs的当前时间戳,x表示仅为控制服务器cs所知用于验证用户u
i
的密钥,id
i
表示用户u
i
的真实身份标识,sid
m
表示云服务器s
m
的真实身份标识,sk
cs
表示控制服务器cs端生成的共享密钥,r
cs
和v
cs
表示控制服务器cs为云服务器s
m
生成的身份验证条件,p
cs
和q
cs
表示控制服务器cs为用户u
i
生成的身份验证条件,d
i
表示物联网设备和控制服务器cs之间的对称密钥,和分别表示用于验证用户u
i
和云服务器s
m
的合法
性且数据传输完整性的参数,表示异或运算。
[0037]
进一步地,所述第三次握手过程具体包括:
[0038]
首先,云服务器s
m
计算
[0039]
w
m
=h(bs
m
||n
m
)
[0040][0041][0042]
然后,云服务器s
m
检查条件是否成立,若成立,云服务器s
m
验证控制服务器cs通过,并将<p
cs
,q
cs
>发送至用户u
i
的物联网设备;
[0043]
其中,sk
m
表示云服务器s
m
端生成的共享密钥,w
m
表示中间运算结果,表示用于验证控制服务器cs的身份真实性的参数;
[0044]
进一步地,所述第四次握手过程具体包括:
[0045]
首先,用户u
i
的物联网设备计算
[0046]
l
i
=h(n
i
||d
i
||f
i
)
[0047][0048]
sk
i
=h(n
m
||n
cs
||n
i
)
[0049][0050]
然后,用户u
i
的物联网设备检查条件是否成立,若成立,用户u
i
确认控制服务器cs是真实的;
[0051]
其中,l
i
表示中间运算结果,sk
i
表示用户u
i
的物联网设备端生成的共享密钥,分别表示用于验证控制服务器cs的身份真实性的参数。
[0052]
进一步地,所述注册阶段,分为云服务器注册阶段和用户注册阶段;其中:所述云服务器注册阶段,具体包括:
[0053]
云服务器s
m
将注册消息<sid
m
,d>发送到控制服务器cs;其中,sid
m
表示云服务器s
m
的真实身份标识,d是随机数;
[0054]
控制服务器cs在接收到来自云服务器s
m
的注册消息后,计算psid
m
=h(sid
m
||d),bs
m
=h(psid
m
||sid
m
||y),并通过安全通道将<bs
m
>发回云服务器s
m
;其中,psid
m
表示云服务器s
m
的伪身份标识,y表示仅为控制服务器cs所知用于验证云服务器s
m
的密钥,bs
m
表示云服务器s
m
与控制服务器cs之间的对称密钥,h(
·
)表示哈希函数;
[0055]
云服务器s
m
将秘密参数<bs
m
,d>存储到内存中。
[0056]
进一步地,所述用户注册阶段,具体包括:
[0057]
用户u
i
选择所需的真实身份标识id
i
和密码p
i
进入其物联网设备;
[0058]
物联网设备收集用户u
i
的生物特征b
i
,并生成一个随机数b来计算pid
i
=h(id
i
||b),和其中,pid
i
表示用户u
i
的伪身份标识,a
i
和ω
i
均表示中间运算结果,表示异或运算;
[0059]
物联网设备将注册消息<id
i
,pid
i
,a
i
>通过安全通道发送至控制服务器cs;
[0060]
控制服务器cs在接收到来自物联网设备的注册消息后,验证id
i
的真实性,若id
i

非法的,控制服务器cs将拒绝用户u
i
的注册;否则,控制服务器cs计算c
i
=h(pid
i
||a
i
),d
i
=h(pid
i
||x)和其中,x表示仅为控制服务器cs所知用于验证用户u
i
的密钥,d
i
表示物联网设备和控制服务器cs之间的对称密钥,c
i
和e
i
均表示中间运算结果;
[0061]
控制服务器cs将数据<c
i
,e
i
,h(
·
)>写入智能卡,并通过专用通信将其传递给用户u
i

[0062]
用户u
i
获得智能卡后,将其插入物联网设备,并再次向物联网设备输入id
i
和p
i
,以便通过物联网设备向智能卡写入ω
i
,智能卡记录信息<c
i

i
,e
i
,h(
·
)>。
[0063]
进一步地,所述登录阶段,具体包括:
[0064]
当用户u
i
想要从云服务器s
m
获取信息,用户u
i
将智能卡插入物联网设备,并提供p
i*
和其中,p
i*
和分别表示用户u
i
实际输入的身份标识、密码和生物特征;
[0065]
物联网设备计算和检查条件是否成立,若成立,则用户u
i
是真实的,否则,拒绝用户u
i
的登录;
[0066]
若用户u
i
是真实的,物联网设备生成一个至少128位的随机数n
i
,并计算
[0067][0068]
pid
i
=h(id
i
||b)
[0069][0070]
g
i
=h(pid
i
||sid
m
||n
i
||ts
i
||d
i
)
[0071][0072][0073]
其中,ts
i
是物联网设备的当前时间戳,sid
m
是云服务器s
m
的真实身份标识,g
i
、f
i
和z
i
均表示中间运算结果;
[0074]
物联网设备通过公共信道将<g
i
,f
i
,z
i
,pid
i
,ts
i
>传输到云服务器s
m

[0075]
进一步地,还包括:密码更改阶段,具体包括:
[0076]
用户u
i
将智能卡插入物联网设备,然后提供p
i*
和其中,p
i*
和分别表示用户u
i
实际输入的身份标识、密码和生物特征;
[0077]
物联网设备计算和检查条件是否成立,若成立,提示用户u
i
输入新密码p
inew
,并生成一个随机数否则,拒绝用户u
i
的密码更改;
[0078]
接着,物联网设备计算
[0079][0080][0081][0082][0083][0084]
[0085]
物联网设备将智能卡中的原始记录值<c
i

i
,e
i
>替换为
[0086]
进一步地,还包括:身份更改阶段,具体包括:用户u
i
通过安全通道重新注册到控制服务器cs。
[0087]
本发明的有益效果:
[0088]
1、本发明方案是轻量级的协议认证,更适用于计算和存储有限的物联网终端设备。考虑到智慧城市构建过程中,接入云服务器的物联网终端计算资源和存储能力有限,而实时性要求高的特征,本发明方案设计过程中只使用异或运算和哈希运算,充分提高执行效率,满足该环境的需要;
[0089]
2、本方案充分考虑通信的机密性。一方面,采用匿名身份的登陆方式,充分保护用户的身份信息;另一方面,在用户登陆认证过程中,也协商一个共享密钥,用于加密后续的通信数据,抵抗中间人获取通信信息;
[0090]
3、抵抗离线密码猜测攻击。本发明方案在设计时充分考虑三个参与主体之间的身份认证,以抵抗恶意攻击者通过冒充身份攻击后,进而进行离线密码猜测攻击。例如,在云服务器注册阶段,通过计算psid
m
=h(sid
m
||d)和bs
m
=h(psid
m
||sid
m
||y),确保云服务器的身份sid
m
绑定到控制服务器的私钥y,从而恶意攻击者若采取冒充身份攻击,则必须获得控制服务器的私钥y,这是不可能的。而且,由于d是云服务器随机产生的,能够大大增加攻击者进行离线口令猜测攻击的成本。
附图说明
[0091]
图1为本发明实施例提供的智慧城市中基于物联网的分布式云架构示意图;
[0092]
图2为本发明实施例提供的一种分布式云计算架构中物联网设备的认证和密钥协商协议方法的流程图;
[0093]
图3为本发明实施例提供的一种分布式云计算架构中物联网设备的认证和密钥协商协议方法中前三个阶段的流程图;
[0094]
图4为本发明实施例提供的分布式云计算架构中物联网设备的认证和密钥协商协议方法的部分hlpsl仿真代码;
[0095]
图5为本发明实施例提供的spdl中控制服务器cs角色的代码描述;
[0096]
图6为本发明实施例提供的avispa工具在四个后端分析下的仿真结果;
[0097]
图7为本发明实施例提供的scyther工具的模拟结果。
具体实施方式
[0098]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0099]
为了满足智慧城市中基于物联网的分布式云架构下各应用设备之间的相互认证和加密通信,本发明基于轻量级动态匿名身份,设计了一种使用智能卡的安全认证和密钥协商方案,该方案被证明是高效和安全的。当前场景涉及3个主要实体:控制服务器cs、云服
务器s
m
和每个支持物联网的物联网设备;其中物联联网设备属于用户u
i

[0100]
本发明实施例提供的分布式云计算架构中物联网设备的认证和密钥协商协议方法分为5个阶段:(1)注册阶段,(2)登录阶段,(3)认证和密钥协商阶段,(4)密码更改阶段,(5)身份更新阶段。其中,第(3)阶段是本发明方法的核心所在。需要说明的是,后两个阶段可以根据应用场景的需要选择是否进行增删。
[0101]
作为一种可实施方式,如图2所示,本发明实施例中的认证和密钥协商阶段包括以下步骤:
[0102]
第一次握手过程:用户u
i
通过其物联网设备向云服务器s
m
发送登录消息,云服务器s
m
接收到用户u
i
的登录消息后,计算其自身的身份验证条件,并将其自身的身份验证条件和用户u
i
的登录消息发送至控制服务器cs;
[0103]
具体地,云服务器s
m
接收到用户u
i
的登录消息后,还包括:云服务器s
m
检查条件ts
m

ts
i
<

t是否成立,若成立,云服务器s
m
计算其自身的身份验证条件,具体包括:云服务器s
m
生成一个128位的随机数n
m
并计算k
i
=h(n
m
||bs
m
||pid
i
||g
i
||ts
m
);
[0104]
对应地,所述云服务器s
m
将其自身的身份验证条件和用户u
i
的登录消息发送至控制服务器cs具体为:云服务器s
m
将<j
i
,k
i
,psid
m
,g
i
,f
i
,z
i
,pid
i
,ts
i
,ts
m
>发送到控制服务器cs;
[0105]
其中,<g
i
,f
i
,z
i
,pid
i
,ts
i
>表示用户u
i
的登录消息,<j
i
,k
i
,psid
m
,ts
m
>表示云服务器s
m
的身份验证条件,ts
m
表示云服务器s
m
的当前时间戳,ts
i
表示用户u
i
的物联网设备的当前时间戳,

t表示设定的时间阈值,bs
m
表示云服务器s
m
与控制服务器cs之间的对称密钥,pid
i
表示用户u
i
的伪身份标识,psid
m
表示云服务器s
m
的伪身份标识,b
m
、j
i
、k
i
、g
i
、f
i
和z
i
均表示中间运算结果,h(
·
)表示哈希函数,||表示拼接操作。
[0106]
第二次握手过程:控制服务器cs接收到来自云服务器s
m
的消息后,验证用户u
i
和云服务器s
m
的合法性,若二者合法,则分别为用户u
i
和云服务器s
m
生成其自身的身份验证条件,并将生成的两种身份验证条件发送至云服务器s
m

[0107]
具体地,所述第二次握手过程中,控制服务器cs接收到来自云服务器s
m
的消息后,还包括:控制服务器cs检查条件ts
cs

ts
m
<

t是否成立,若成立,则验证用户u
i
和云服务器s
m
的合法性;
[0108]
对应地,所述验证用户u
i
和云服务器s
m
的合法性,若二者合法,则分别为用户u
i
和云服务器s
m
生成其自身的身份验证条件,并将生成的两种身份验证条件发送至云服务器s
m
,具体包括:
[0109]
步骤a1:控制服务器cs得到消息<j
i
,k
i
,psid
m
,g
i
,f
i
,z
i
,o
i
,pid
i
,ts
i
,ts
m
>之后,控制服务器cs计算
[0110]
d
i
=h(pid
i
||x)
[0111][0112][0113][0114]
步骤a2:控制服务器cs检查条件是否成立,若成立,则控制服务器cs验证用
户u
i
合法;否则,控制服务器cs终止会话;
[0115]
步骤a3:用户u
i
合法性被验证通过后,控制服务器cs计算
[0116]
bs
m
=h(psid
m
||sid
m
||y)
[0117][0118]
步骤a4:控制服务器cs检查条件是否成立,若成立,则控制服务器cs验证云服务器s
m
合法;若不成立,控制服务器cs认为云服务器s
m
非法,终止会话;
[0119]
步骤a5:云服务器s
m
合法性被验证通过后,控制服务器cs生成一个128位的随机数n
cs
并计算
[0120][0121][0122]
sk
cs
=h(n
i
||n
m
||n
cs
)
[0123][0124][0125]
步骤a6:通过公共信道将<p
cs
,q
cs
,r
cs
,v
cs
>发送至云服务器s
m

[0126]
其中,ts
cs
表示控制服务器cs的当前时间戳,x表示仅为控制服务器cs所知用于验证用户u
i
的密钥,id
i
表示用户u
i
的真实身份标识,sid
m
表示云服务器s
m
的真实身份标识,sk
cs
表示控制服务器cs端生成的共享密钥,r
cs
和v
cs
表示控制服务器cs为云服务器s
m
生成的身份验证条件,p
cs
和q
cs
表示控制服务器cs为用户u
i
生成的身份验证条件,d
i
表示物联网设备和控制服务器cs之间的对称密钥,和分别表示用于验证用户u
i
和云服务器s
m
的合法性且数据传输完整性的参数,表示异或运算。
[0127]
第三次握手过程:云服务器s
m
从接收到的两种身份验证条件中选择与其自身相关的身份验证条件来验证控制服务器cs,并将另一种身份验证条件发送至用户u
i
的物联网设备;
[0128]
具体地,首先,云服务器s
m
从控制服务器cs接收到消息<p
cs
,q
cs
,r
cs
,v
cs
>之后,云服务器s
m
计算
[0129]
w
m
=h(bs
m
||n
m
)
[0130][0131][0132]
然后,云服务器s
m
检查条件是否成立,若成立,云服务器s
m
验证控制服务器cs通过,并将<p
cs
,q
cs
>发送至用户u
i
的物联网设备;
[0133]
其中,sk
m
表示云服务器s
m
端生成的共享密钥,w
m
表示中间运算结果,表示用于验证控制服务器cs的身份真实性的参数;
[0134]
第四次握手过程:用户u
i
的物联网设备根据接收到的身份验证条件验证控制服务器cs的合法性,若控制服务器cs通过验证,用户u
i
、云服务器s
m
和控制服务器cs最终协商得到一个共享密钥sk=h(n
m
||n
cs
||n
i
);其中,n
m
表示第一次握手过程中由云服务器s
m
所生成
的一个128位的随机数,n
cs
表示第二次握手过程中由控制服务器cs所生成的一个128位的随机数,n
i
表示用户u
i
在登录上云服务器s
m
后所生成的一个至少128位的随机数。
[0135]
具体地,首先,用户u
i
的物联网设备从云服务器s
m
接收到消息<p
cs
,q
cs
>之后,用户u
i
的物联网设备计算
[0136]
l
i
=h(n
i
||d
i
||f
i
)
[0137][0138]
sk
i
=h(n
m
||n
cs
||n
i
)
[0139][0140]
然后,用户u
i
的物联网设备检查条件是否成立,若成立,用户u
i
确认控制服务器cs是真实的;
[0141]
最后,用户u
i
、云服务器s
m
和控制服务器cs这3个参与者协商得到一个共享密钥sk=h(n
m
||n
cs
||n
i
)。
[0142]
其中,l
i
表示中间运算结果,sk
i
表示用户u
i
的物联网设备端生成的共享密钥,q
*cs
分别表示用于验证控制服务器cs的身份真实性的参数。
[0143]
需要说明的是,在上述的四次握手过程中,只要用户u
i
、云服务器s
m
和控制服务器cs中的任何一方未能通过身份验证,则会话结束。
[0144]
从上述实施例可以看出,最终,整个身份验证路径(u
i

s
m

cs

s
m

u
i
)被建立。同时,协商得到了共享密钥sk,该共享密钥sk用以加密用户u
i
和云服务器s
m
之间的后续通信流量。
[0145]
在进入认证和密钥协商阶段之前,还需要先进行注册、登录,作为一种可实施方式,本发明实施例中的注册阶段,分为云服务器注册阶段和用户注册阶段;
[0146]
在注册阶段,控制服务器cs会预先随机产生两个高熵数x和y,其中,x用作仅为cs所知的用于验证所有用户u
i
的密钥,y用作仅为cs所知的用于验证所有云服务器s
m
的密钥。然后,任何云服务器s
m
和用户u
i
都可以注册到cs。
[0147]
所述云服务器注册阶段,具体包括以下步骤:
[0148]
云服务器s
m
将注册消息<sid
m
,d>发送到控制服务器cs;其中,sid
m
表示云服务器s
m
的真实身份标识,d是随机数;
[0149]
控制服务器cs在接收到来自云服务器s
m
的注册消息<sid
m
,d>后,计算psid
m
=h(sid
m
||d),bs
m
=h(psid
m
||sid
m
||y),并通过安全通道将<bs
m
>发回云服务器s
m
;其中,psid
m
表示云服务器s
m
的伪身份标识,y表示仅为控制服务器cs所知用于验证云服务器s
m
的密钥,bs
m
表示云服务器s
m
与控制服务器cs之间的对称密钥,h(
·
)表示哈希函数;
[0150]
云服务器s
m
将秘密参数<bs
m
,d>存储到内存中。
[0151]
所述用户注册阶段,具体包括:
[0152]
当用户u
i
希望向控制服务器cs注册时,用户u
i
选择所需的真实身份标识id
i
和密码p
i
进入其物联网设备(如读卡器);
[0153]
物联网设备收集用户u
i
的生物特征b
i
,并生成一个随机数b来计算pid
i
=h(id
i
||b),和其中,pid
i
表示用户u
i
的伪身份标识,a
i
和ω
i
均表示中间运算结果,表示异或运算;
[0154]
物联网设备将注册消息<id
i
,pid
i
,a
i
>通过安全通道发送至控制服务器cs;
[0155]
控制服务器cs在接收到来自物联网设备的注册消息后,验证id
i
的真实性,若id
i
是非法的,控制服务器cs将拒绝用户u
i
的注册;否则,控制服务器cs计算c
i
=h(pid
i
||a
i
),d
i
=h(pid
i
||x)和其中,x表示仅为控制服务器cs所知用于验证用户u
i
的密钥,d
i
表示物联网设备和控制服务器cs之间的对称密钥,c
i
和e
i
均表示中间运算结果;
[0156]
控制服务器cs将数据<c
i
,e
i
,h(
·
)>写入智能卡,并通过专用通信将其传递给用户u
i

[0157]
用户u
i
获得智能卡后,将其插入物联网设备,并再次向物联网设备输入id
i
和p
i
,以便通过物联网设备向智能卡写入ω
i
,智能卡记录信息<c
i

i
,e
i
,h(
·
)>
[0158]
需要说明的是,注册阶段中的“安全通道”可以是因特网密钥交换协议版本2或安全套接字层协议(ssl)。
[0159]
作为一种可实施方式,本发明实施例中的登录阶段,具体包括:
[0160]
当用户u
i
想要从云服务器s
m
获取信息,用户u
i
将智能卡插入物联网设备,并提供p
i*
和其中,p
i*
和分别表示用户u
i
实际输入的身份标识、密码和生物特征;
[0161]
物联网设备计算和检查条件是否成立,若成立,则用户u
i
是真实的,否则,拒绝用户u
i
的登录;
[0162]
若用户u
i
是真实的,物联网设备生成一个至少128位的随机数n
i
,并计算
[0163][0164]
pid
i
=h(id
i
||b)
[0165][0166]
g
i
=h(pid
i
||sid
m
||n
i
||ts
i
||d
i
)
[0167][0168][0169]
其中,ts
i
是物联网设备的当前时间戳,sid
m
是云服务器s
m
的真实身份标识,g
i
、f
i
和z
i
均表示中间运算结果;
[0170]
之后,物联网设备通过公共信道将<g
i
,f
i
,z
i
,pid
i
,ts
i
>传输到云服务器s
m

[0171]
到此为止,前三个阶段的详细实现如图3所示。
[0172]
作为一种可实施方式,本发明实施例中的密码更改阶段(每当用户u
i
想要更新他/她的密码而不与控制服务器cs通信时,就会调用此阶段),具体包括:
[0173]
用户u
i
将智能卡插入物联网设备,然后提供p
i*
和其中,p
i*
和分别表示用户u
i
实际输入的身份标识、密码和生物特征;
[0174]
物联网设备计算和检查条件是否成立,若成立,提示用户u
i
输入新密码p
inew
,并生成一个随机数否则,拒绝用户u
i
的密码更改;
[0175]
接着,物联网设备计算
[0176]
[0177][0178][0179][0180][0181][0182]
最后,物联网设备将智能卡中的原始记录值<c
i

i
,e
i
>替换为
[0183]
从该实施例中可以看出,用户u
i
使用智能卡本地更新密码是非常方便和快速的。
[0184]
一个合法的用户u
i
更新他的身份id
i
是很实际的,比如身份已经过期。但是由于控制服务器cs需要验证用户的id
i
的真实性,作为一种可实施方式,本发明实施例中的身份更改阶段,具体包括:用户u
i
通过安全通道重新注册到控制服务器cs。
[0185]
为了验证本发明协议方法的安全性和其他性能,下述内容主要从以下三方面进行了分析:(1)使用密码相关知识利用启发式分析本发明方案如何抵抗冒充身份攻击;(2)利用scyther和avispa这两个安全协议分析工具模拟本发明方案的实现过程,证明本发明方案能够抵抗主流的攻击过程;(3)简要介绍本发明协议与其他协议的性能比较。
[0186]
1、安全性分析
[0187]
本小节主要利用密码学的知识,详细分析了本发明方案中u
i
、s
m
和cs之间的认证路径,以防范最常见的冒充身份攻击。
[0188]
(1)在云服务器注册阶段,s
m
与cs之间的相互身份验证,s
m
与cs协商产生一个值bs
m
=h(psid
m
||sid
m
||y),该值可视为s
m
和cs的对称密钥,因为值bs
m
只能由s
m
和cs计算。因此,s
m
和cs可以在身份验证阶段通过对称密钥bs
m
实现相互身份验证,例如kerberos协议身份验证。此外,由于身份sid
m
和伪身份psid
m
都与控制服务器cs的机密号y绑定,因此cs将对s
m
的两个身份进行身份验证。因此,我们的协议可以在身份验证阶段实现s
m
和cs之间的相互身份验证。
[0189]
为方便描述,本发明采用以下符号进行标记:
[0190]
在身份验证阶段:
[0191]
(2)u
i
和cs之间的相互身份验证
[0192]
为了避免在控制服务器cs上记录u
i
的身份和密码信息,cs在注册阶段将智能卡分发给u
i
。智能卡在本发明协议中记录值<c
i
,e
i
,h(
·
)>。
[0193]
首先,作为唯一知道id
i
,b
i
和p
i
的u
i
可以计算pid
i
=h(id
i
||b)和用于登录物联网设备,智能卡中记录的c
i
值主要用于验证u
i
。所以,采用以下符号标记它:
[0194]
在用户登录阶段:
[0195]
上述符号表示:借助智能卡中记录的关键参数值c
i
,物联网设备可以验证u
i
。另一方面,用户显然信任自己的物联网设备。
[0196]
其次,当u
i
登录设备时,设备会计算和pid
i
=h(id
i
||b)。智能卡中记录的值e
i
可以看作是物联网设备与cs之间身份验证过程中的中间数据。一方面,只有u
i
使用b
i
和p
i
登录物联网设备,设备才能使用数据ei计算另一方面,只有知道x和pid
i
的cs才能计算d
i
=h(pid
i
||x),然后使用数据e
i
计算因此,物联网设备和cs可以在用户登录阶段借助智能卡实现相互认证。所以,采用以下符号标记它:
[0197]
在用户登录阶段:
[0198]
再次,当u
i
登录到物联网设备时,该物联网设备可以使用值e
i
计算d
i
。然后,值d
i
可以是作为物联网设备和cs的对称密钥,因为只有物联网设备和cs才能计算值d
i
。因此,物联网设备和cs可以在认证阶段通过对称密钥d
i
实现相互认证。所以,采用以下符号标记它:
[0199]
在认证阶段:
[0200]
根据符号(2)、符号(3)和符号(4),我们可以推导出以下符号(5):
[0201]
在认证阶段:
[0202]
上面的符号意味着:在智能卡的帮助下,身份为id
i
的u
i
可以在认证阶段与cs实现相互认证。
[0203]
此外,在收到u
i
注册消息后,cs应该验证u
i
的身份id
i
的真实性。当身份id
i
被确认为合法时,cs将执行后续操作并向u
i
传递智能卡。然后,当u
i
登录到支持物联网的设备时,设备通过哈希函数计算pid
i
=h(id
i
||b),这表明伪身份pid
i
与真实身份id
i
绑定,值b受智能卡中ω
i
记录的保护。因此,u
i
的标识id
i
由u
i
的伪标识pid
i
间接控制,该伪标识与操作d
i
=h(pid
i
||x)的控制服务器cs的机密号x绑定。因此,采用以下符号进行标记:
[0204]
在身份验证阶段:
[0205]
(3)u
i
和s
m
之间的相互身份验证:
[0206]
就像上面第(2)部分的分析一样,可以在这一部分用以下符号来标记
[0207]
在身份验证阶段:
[0208]
由于值n
i
和sid
m
是由对称密钥d
i
加密和传输的,其中和
[0209]
在身份验证阶段:
[0210]
因为值n
m
是由对称密钥bs
m
加密和传输的,其中
[0211]
在身份验证阶段:
[0212]
由于值由秘密值n
i
和d
i
加密和传输,其中
[0213]
在身份验证阶段:
[0214]
由于值由秘密值bs
m
和n
m
加密和传输,其中
[0215]
因此,可以用以下符号来推断:
[0216]
在身份验证阶段:
[0217]
如符号(11)所示,本发明协议通过cs的中介实现了u
i
和s
m
之间的相互认证。此外,这三方共享相同的会话密钥sk=h(n
m
||n
cs
||n
i
)。因此,可以断言本发明协议能够有效地抵抗冒充身份攻击。
[0218]
2、使用scyther和avispa进行仿真分析
[0219]
在本小节中,定义攻击者的能力并讨论本发明协议的安全性分析。基于对抗模型,使用avispa(无限状态系统的自动验证)和scyther的安全协议分析工具来证明该协议可以防御现有的各种攻击。
[0220]
2.1对抗模型
[0221]
参考dolev

yao对手威胁模型,给出威胁攻击模型。
[0222]
dolev

yao对手威胁模型的详细描述如下:
[0223]
(1)攻击者可以窃听和拦截所有通过网络的消息;
[0224]
(2)攻击者可以存储和发送截获的或自建的消息;
[0225]
(3)攻击者可以作为合法主体参与协议的运行;
[0226]
(4)功率分析或边信道攻击可以帮助攻击者提取存储在用户智能卡中的秘密信息。
[0227]
2.2使用安全协议分析工具模拟本发明协议
[0228]
2.2.1仿真代码说明
[0229]
使用仿真工具的第一步是用形式语言描述目标协议。本节介绍avispa工具形式语言hlpsl(高级协议规范语言)和scyther工具形式语言spdl(安全协议描述语言)来模拟本发明协议。
[0230]
(1)本发明协议的hlpsl模拟代码:本发明协议的hlpsl模拟代码涉及5个角色:“角色用户”模拟真实用户u
i
;“角色服务器”模拟云服务器s
m
;“角色控制服务器”模拟控制服务器cs;“角色会话”代表四次交互握手的角色;“角色环境”代表有入侵者的高层角落;“角色目标”代表模拟的目的。下面只简单介绍用户角色、环境角色和安全目标的部分hlpsl描述,如图4所示。
[0231]
在图4(a)中,用户角色过程描述了开始使用的参数、初始状态和转换。“转换”表示接受信息和发送响应信息。“channel(dy)”表示攻击方式为dolev

yao攻击模型,攻击者可以控制协议的网络。例如,攻击者可以拦截、窃取、修改、重放协议中通道上传输的信息,甚至冒充协议中的合法角色执行操作发起攻击。
[0232]
图4(b)展示了角色环境和安全目标。高级角色过程包括全局常量和一个或多个会话的混合角色过程。其中,入侵者可能冒充合法用户运行某些角色进程。还有一些句子描述了入侵者在初始状态下已知的知识,一般包括代理的名称、其他代理共享的所有密钥以及所有已知的功能。对于安全目标的hlpsl建模,我们只给出支持机密性和认证两个目标之一的hlpsl的机密性目标。为了保密,目标实例指示在声明的角色中哪些值是保密的。如果不能实现,则说明入侵者获得了机密值,可以成功攻击协议。对于身份验证,主要目的是验证身份伪装攻击,在上一节的安全性分析中,具体演示本发明协议如何抵抗这种常见的攻击。
[0233]
(2)本发明协议的spdl仿真代码:与hlpsl类似,本发明协议的spdl仿真代码包括3
个角色:“角色u”模拟真实用户u
i
;“角色s”模拟云服务器s
m
;“角色cs”模拟服务器控制cs。这里以控制服务器cs角色为例介绍spdl代码,如图5所示。定义会话协议所需的变量后,本发明协议的完整实现由cs中发生的事件集合表示。"send"和"recv"事件表示cs分别发送消息和接收消息。scyther工具的优点之一是它可以灵活地描述目标属性,无论是变量的机密性还是某个主体对另一个主体的认证。scyther工具可以对用户感兴趣的安全属性进行分析和验证。目标属性的描述是通过“claim”事件完成的,可以用来描述角色的认证和变量的机密性。
[0234]
2.2.2仿真结果
[0235]
本节使用两种形式分析工具展示了本发明协议的模拟结果。在ubuntu操作系统的虚拟机中构建了avispa(2006/02/13版本)和scyther(v1.1.3)。图6显示了avispa提供的所有四个后端分析工具的结果,以模拟所有实体的提议协议。ofmc、cl

atse和satmc模块的测试结果表明本发明协议是安全的(summary safe),这意味着它可以达到预期的安全目标;ta4sp验证模型表示inconclusive,因为当前ta4sp模块不支持单向哈希函数,并且当前版本可以提供no attack trace的结果。在使用scyther工具模拟协议时,也使用dolev

yao攻击模型,分析参数中的最小执行轮数设置为3。scyther工具的模拟结果如图7所示。图7.(a)显示了scyther工具在dolev

yao模型下对我们协议的形式分析的攻击路径。我们的协议消息的可达性分析报告如图7(b)所示的。测试结果表明,本发明协议在该模型下不存在任何攻击威胁。因此,可以断言本发明协议可以抵抗各种常见的攻击,例如内部攻击、重放攻击、会话密钥披露者攻击等。
[0236]
3、性能比较
[0237]
下文中,在对安全功能和计算性能的抵抗力方面具体将本发明协议与其他两个协议(分别为文献1和文献2)进行比较。表2列出了物联网设备和云服务器的强大身份验证协议的9项一般安全要求。表2中的结果表明本发明协议的优势在于用户可审计性、简单安全的密码更改、抵抗离线密码猜测攻击、抵抗假冒攻击和生物特征保护。
[0238]
此外,表3显示了在本发明协议与其他相关协议的每个阶段中,哈希函数和异或xor操作所花费的次数。从最后一行的总计数可以看出,本发明协议使用哈希函数和xor的次数最少。因此,它更适合应用程序资源受限和数据密集型的环境,例如智慧城市中的物联网设备。
[0239]
表2新协议与相关协议的安全功能比较
[0240][0241]
表3新方案与其他相关方案的操作比较
[0242][0243]
h:哈希函数;x:异或运行
[0244]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献