一种面向物联网云环境下端到端安全保障方法与流程

文档序号:14187073阅读:153来源:国知局

本发明属于物联网和云计算领域,涉及一种面向物联网云环境下端到端安全保障方法。



背景技术:

随着信息技术的不断发展,不断涌现的新技术给人们的生活带来了极大地便利。物联网以自己灵活,高效的特点,吸引了人们的关注。为了使物联网发挥出更大的作用,就要把云计算和物联网技术相结合,使用云计算的优点,以此来使物联网的发展有更好的基础。云计算可以给物联网提供强大的计算功能和存储能力。在云计算的基础上让物联网技术通过无线传感器进行信息采集,再把采集到的信息传到应用平台上,能够实现资源共享和对系统全面的控制,物联网技术与云技术的结合可以实现互补。

传统物联网技术通过无线传感器网络将采集到信息上传到本地服务器中,无法灵活的实现资源控制,云计算的出现便提供了这种可能。但由于云服务器不在用户的可监控范围内,而且传感器节点往往也部署在人的不可监控范围内,所以需要一种认证与密钥协商方法来保证节点安全的接入云服务器。同时密钥协商的方式大致分为两种:rsa公钥加密方法和diffie-hellman密钥协商方法,由于无线传感网在能量、计算能力和通信带宽方面的限制,rsa、ecc等公钥算法很难在资源受限型节点中直接实现。



技术实现要素:

有鉴于此,本发明的目的在于提供一种面向物联网云环境下端到端安全保障方法,在确定节点与云服务器身份合法性的同时,有效降低传感器节点的计算和存储开销,在其它节点入网时,只需实现与网关的认证即可。

为达到上述目的,本发明提供如下技术方案:

一种面向物联网云环境下端到端安全保障方法,包括以下步骤:

s1:初始化:系统管理员为节点和网关配置身份标识id、预共享密钥;网关和云服务器向第三方可信中心ca提交身份信息,申请数字证书,完成数字证书颁发,该数字证书用于协助完成网关和云服务器的双向认证;

s2:认证与密钥协商:首先采用基于椭圆曲线算法的pki认证机制实现网关和云服务器的认证及密钥协商建立网关与云服务器的安全通道,在网关与云服务器发起会话之前,网关和云服务器通过从可信第三方认证中心获得的数字证书,利用认证中心颁发的数字证书和基于改进的ecc椭圆曲线密码算法实现认证;

在完成网关与云服务器的安全通道建立后,采用基于改进的对称密钥双向认证协议实现资源受限型节点和网关的认证与密钥协商,构造消息认证码和会话密钥,然后比较消息中的消息认证码和本地的消息认证码,来完成对对方的认证;通过记录的时间戳来判断是否有延迟攻击;

最后利用网关与云服务器的会话密钥加密节点与网关的会话密钥,并发送至云服务器,完成终端节点与云服务器的安全通道建立。

进一步,所述步骤s1具体为:系统管理员为节点和网关配置身份标识id、预共享密钥kp;网关和云服务器向pki系统中ra注册中心注册登记,并由ca证书中心生成和颁发数字证书certa、certb,该数字证书用于协助完成网关和云服务器的双向认证;certa={ida,pua,(da,sa),ea,ta}为认证中心ca为终端实体a颁发的数字证书;其中,ida为ca分配给用户a的身份标识;ya为用户a的公钥,ya=ra×p,ra∈[1,n-1]是用户a的私钥,其中p为椭圆曲线上e(a,b)上的点,n为p的阶;ea表示有h(tda||ya||ta)生成的摘要;(da,sa)表示ea经过椭圆曲线数字签名生成的整数对;ta表示数字证书发放时间和有效期。

进一步,所述步骤s2具体为

s201:网关a生成随机数r1∈[1,n-1],计算y1=r1×p,其中p为椭圆曲线上e(a,b)上的点,n为p的阶;网关a向云服务器b发送认证请求消息m1=y1;

s202:云服务器b收到消息m1后,生成随机数r2∈[1,n-1],计算y2=r2×p,yb1=rb×y1,y21=r2×y1=r2×r1×p,然后以y21作为会话密钥,生成密文cb=e(y21,certb||t1),表示使用会话密钥y21加密certb||t1,t1为消息m2的时间戳,最后将消息m2=y2||cb||h(y21||yb1||certb||t1)发送给网关a;

s203:网关a收到消息m2,计算会话密钥y12=r1y2=r1×r2×p=y21,获得b的证书和时间戳certb||t1=d(y12,cb),验证certb的有效性,其中d(y12,cb)表示用会话密钥y12解密cb;如果验证成功,则继续下一步,否则要求重发消息m2;

s204:网关a计算y1b=r1×yb,验证cb||h(y12||y1b||certb||t1),以及时间t1的有效性。如果成功,表示完成网关对云服务器的认证,然后继续下一步,否则重新发起会话;

s205:网关a计算ya2=ra×y2和ca=e(y12,certa||t2),生成消息m3=ca||h(y12||ya2||certa||t2),并发送给云服务器b;

s206:云服务器b收到消息m3后,首先解密certa||t2=d(y12,ca),然后验证certa和h(y12||ya2||certa||t2),以及t2的有效性;如果验证成功,则通知网关a完成相互的认证和密钥的协商,生成会话密钥y12,否则通知网关a协议执行失败,重新发起会话;

s207:首先节点i向网关发送认证请求idi||ni,同时构造消息认证码mac1=h(idi||ni),其中,h()表示单向hash函数,idi表示节点i的身份标识,ni为节点i生成的随机数,并记录当前时间t1;

s208:网关收到节点的认证请求后,根据idi,ni,网关自身的身份标识idgateway,网关生成的随机数n2,和预共享密钥kpi计算网关与节点i之间的会话密钥ski=h(kpi,idi||idgateway),消息认证码mac2=h(idi||ni),mac3=h(idgateway||n2),记录当前时间t2,然后构造认证请求响应消息e(ski,mac2)||idgateway||n2发送给节点,其中e(ski,mac2)表示用会话密钥加密消息认证码mac2;

s209:节点i收到网关的回应消息后,首先记录当前时间t3,计算δt'=t3-t1是否大于网络最大延迟时间δt,δt由网络传输时间和计算时间共同决定,如果δt'>δt,终止认证;若δt'<δt,节点i计算会话密钥ski=h(kpi,idi||idgateway)解密e(ski,mac2),验证会话密钥ski的可用性;然后节点i判断接收到的消息中mac2是否与本地生成的mac1相同;若不相同,终止认证;若相同,完成节点i对网关的认证;最后,节点i构造消息认证码mac4=h(idgateway||n2)发送至网关;

s2010:网关收到节点i的消息后,首先记录当前时间t4,计算δt”=t4-t2是否大于δt,如果δt”>δt,终止认证;若δt”<δt,确定消息中mac4是否与本地生成的mac3相同,若不相同,终止认证;若相同,完成网关对节点i的认证。;

s2011:若此时网关与云服务器尚未完成认证与密钥协商,则执行步骤s201至s206;否则,利用网关与云服务器的会话密钥y12加密网关和节点i之间的会话密钥ski,并发送至云服务器,云服务器解密后存储与此节点i的会话密钥ski;完成节点i与云服务器的安全通道建立。

本发明的有益效果在于:本发明在保障节点和云服务器身份合法性的同时,有效降低了传感器节点的计算开销,通过网关间接的实现对云服务器的认证,减少网关与云服务器认证次数,实现终端节点与云服务器的安全通信。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明的一种初始化流程示意图;

图2为本发明的一种节点与云端的安全通道建立流程示意图;

图3为本发明机制示意图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

1.初始化过程如下:

如图1所示,系统管理员为节点和网关配置身份标识id、预共享密钥kp;网关和云服务器向pki系统中ra注册中心注册登记,并由ca证书中心生成和颁发数字证书certa、certb,该数字证书可用于协助完成网关和云服务器的双向认证。certa={ida,pua,(da,sa),ea,ta}为认证中心ca为终端实体a颁发的数字证书。其中,ida为ca分配给用户a的身份标识;ya为用户a的公钥,ya=ra×p,ra∈[1,n-1]是用户a的私钥,其中p为椭圆曲线上e(a,b)上的点,n为p的阶;ea表示有h(tda||ya||ta)生成的摘要;(da,sa)表示ea经过椭圆曲线数字签名生成的整数对;ta表示数字证书发放时间和有效期。

2.认证与密钥协商方法如下:

如图2-3所示,在认证和密钥协商前,网关a和云服务器b都有各自的公钥证书certa和certb,但没有对方的公钥证书。协议总的目标是通信双方进行相互认证,并且建立一个秘密的共享会话密钥,用于加密传输节点与网关的会话密钥。流程图及协议执行步骤如下(由网关a发起会话):

步骤1:网关a生成随机数r1∈[1,n-1],计算y1=r1×p,其中p为椭圆曲线上e(a,b)上的点,n为p的阶。网关a向云服务器b发送认证请求消息m1=y1;

步骤2:云服务器b收到消息m1后,生成随机数r2∈[1,n-1],计算y2=r2×p,yb1=rb×y1,y21=r2×y1=r2×r1×p,然后以y21作为会话密钥,生成密文cb=e(y21,certb||t1),表示使用会话密钥y21加密certb||t1,t1为消息m2的时间戳,最后将消息m2=y2||cb||h(y21||yb1||certb||t1)发送给网关a。

步骤3:网关a收到消息m2,计算会话密钥y12=r1y2=r1×r2×p=y21,获得b的证书和时间戳certb||t1=d(y12,cb),验证certb的有效性,其中d(y12,cb)表示用会话密钥y12解密cb。如果验证成功,则继续下一步,否则要求重发消息m2;

步骤4:网关a计算y1b=r1×yb,验证cb||h(y12||y1b||certb||t1),以及时间t1的有效性。如果成功,表示完成网关对云服务器的认证,然后继续下一步,否则重新发起会话;

步骤5:网关a计算ya2=ra×y2和ca=e(y12,certa||t2),生成消息m3=ca||h(y12||ya2||certa||t2),并发送给云服务器b;

步骤6:云服务器b收到消息m3后,首先解密certa||t2=d(y12,ca),然后验证certa和h(y12||ya2||certa||t2),以及t2的有效性。如果验证成功,则通知网关a完成相互的认证和密钥的协商,生成会话密钥y12,否则通知网关a协议执行失败,重新发起会话。

步骤7:首先节点i向网关发送认证请求idi||ni,同时构造消息认证码mac1=h(idi||ni),其中,h()表示单向hash函数,idi表示节点i的身份标识,ni为节点i生成的随机数,并记录当前时间t1。

步骤8:网关收到节点的认证请求后,根据idi,ni,网关自身的身份标识idgateway,网关生成的随机数n2,和预共享密钥kpi计算网关与节点i之间的会话密钥ski=h(kpi,idi||idgateway),消息认证码mac2=h(idi||ni),mac3=h(idgateway||n2),记录当前时间t2,然后构造认证请求响应消息e(ski,mac2)||idgateway||n2发送给节点,其中e(ski,mac2)表示用会话密钥加密消息认证码mac2。

步骤9:节点i收到网关的回应消息后,首先记录当前时间t3,计算δt'=t3-t1是否大于网络最大延迟时间δt(δt由网络传输时间和计算时间共同决定),如果δt'>δt,终止认证。若δt'<δt,节点i计算会话密钥ski=h(kpi,idi||idgateway)解密e(ski,mac2),验证会话密钥ski的可用性。然后节点i判断接收到的消息中mac2是否与本地生成的mac1相同。若不相同,终止认证;若相同,完成节点i对网关的认证。最后,节点i构造消息认证码mac4=h(idgateway||n2)发送至网关。

步骤10:网关收到节点i的消息后,首先记录当前时间t4,计算δt”=t4-t2是否大于δt,如果δt”>δt,终止认证。若δt”<δt,确定消息中mac4是否与本地生成的mac3相同,若不相同,终止认证;若相同,完成网关对节点i的认证。

步骤11:若此时网关与云服务器尚未完成认证与密钥协商,则执行步骤1至6;否则,利用网关与云服务器的会话密钥y12加密网关和节点i之间的会话密钥ski,并发送至云服务器,云服务器解密后存储与此节点i的会话密钥ski。至此,便完成节点i与云服务器的安全通道建立。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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