一种面向智能家庭的具有隐私保护特性的身份认证方法与流程

文档序号:17938424发布日期:2019-06-18 22:49阅读:528来源:国知局
一种面向智能家庭的具有隐私保护特性的身份认证方法与流程

本发明属于信息安全的技术领域,具体为一种面向智能家庭的具有隐私保护特性的身份认证方法。

技术背景

随着智能设备和高速网络的快速增长,以iot为基础的智能家庭因其带来能源节省,安全监控以及健康护理等优点成为了未来最具潜力的物联网应用场景之一。智能家庭系统允许用户远程连接入家庭内的传感器,智能设备以及家用电器以实现远程访问、控制的功能,但是已有的智能家庭远程接入,特别是用户身份认证方法,存在着严重的隐私泄露问题:攻击者或者直接通过攻击系统盗取用户身份信息进而非法监视或控制智能家庭,或者通过网络流量分析出用户的日常起居行为。

因此,有大量工作对上述问题进行了研究以并提供安全的身份认证,但是仍然存在如下问题:第一,大多数方案是通过引入可信第三方实现安全认证和通信,但可信第三方往往是难以确保的;第二,也有许多方案是直接让智能设备本身认证远程用户,但是智能设备资源有限,安全隐患多,同时当智能设备增多时,重复认证的问题严重。



技术实现要素:

本发明针对现有技术存在的问题,基于面向智能家庭的ifttt服务提出一种具有隐私保护特性的身份认证方法。ifttt(ifthisthenthat.)服务是互联网服务的一种类型,在智能设备和用户之间作为接口,其给用户远程操控智能设备和通过ifttt流程配置智能家庭带来便利。本发明引入用户私有的ifttt家庭网关作为智能家庭系统中智能设备的认证的执行者,系统模型如图1所示,该模型有四部分组成:用户手机、ifttt服务器、ifttt家庭网关和家庭中的智能设备。

本发明解决其技术问题所采用的技术方案如下:

首先在itfff家庭网关和ifttt服务器之间建立安全通道;

再者设计一个互认证协议,该协议允许ifttt家庭网关和远程用户通过ifttt服务器互相认证,而且ifttt服务器不能跟踪监控用户访问行为。该方案有三个阶段:系统初始化阶段、注册阶段、认证和密钥协商阶段,由图2所示。

阶段a:系统初始化阶段;

ifttt服务器初始化:采用ecc算法,生成私钥x和公共参数{p,ep,p,ps,n,h1(·)},并发布公共参数。

ifttt家庭网关初始化:预配置公共参数{p,ep,p,ps,n,h1(·)}和序列号(snj)。采用ecc算法,生成私钥xj和公共参数存储公共参数。

阶段b:注册阶段:

家庭网关注册阶段:ifttt家庭网关注册到ifttt服务器,确认身份ridj和秘密h1(snj||x)。

用户注册阶段:用户注册到ifttt家庭网关,面对面的方式配置用户id(uidj)和初始认证会话秘钥

阶段c:认证和密钥协商阶段;

家庭网关登录阶段:ifttt家庭网关登录ifttt服务器,互认证之后,协商一个会话秘钥ifttt服务器将hgj标记为在线。

在密钥协商互认证阶段:用户和ifttt家庭网关通过ifttt服务器互相认证,协商一个新的会话秘钥这对攻击者和ifttt服务器都是私密的。而且,最后一个会话密钥涉及相互身份验证以防止冒充攻击。

至此,密钥协商互认证程序完成,spi直接通过会话秘钥发送远程控制信息到家庭网关hgj或从家庭网关hgj收到信息。

本发明的优点如下:

(1)允许ifttt家庭网关通过ifttt服务器与远程用户实现安全的互认证。ifttt服务器仅维护家庭网关假名列表,并加密和转发用户和其家庭网关之间的加密信息,以防止引入共享的ifttt服务器带来的隐私泄露,以及杜绝基于网络数据流量分析的日常起居行为泄露。

(2)家庭网络中的智能设备由ifttt家庭网关管理,它们组成一个独立的自治系统。ifttt家庭网关代替智能设备验证远程用户,并负责维护管理智能家庭系统。ifttt家庭网关从逻辑上被ifttt服务器隐藏,ifttt服务器不能跟踪用户,攻击者也不能跟踪用户和ifttt家庭网关,因此,实现了匿名、不可追踪等自治认证。

附图说明

图1系统模型图

图2整体流程图

图3为密钥协商互认证过程表。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合附图对本发明作进一步的说明。

本发明首先在itfff家庭网关和ifttt服务器之间建立安全通道;

再者设计一个互认证协议,该协议允许ifttt家庭网关和远程用户通过ifttt服务器互相认证,而且ifttt服务器不能跟踪监控用户访问行为;

该方法有三个阶段:系统初始化阶段、注册阶段、认证和密钥协商阶段。

参数定义如下:

三个阶段具体描述如下:

阶段a:系统初始化阶段;

ifttt服务器初始化:采用ecc算法,生成私钥x和公共参数{p,ep,p,ps,n,h1(·)},并发布公共参数;

ifttt家庭网关初始化:预配置公共参数{p,ep,p,ps,n,h1(·)}和序列号(snj);采用ecc算法,生成私钥xj和公共参数存储公共参数;

阶段b:注册阶段:

家庭网关注册阶段:ifttt家庭网关注册到ifttt服务器,确认身份ridj和秘密h1(snj||x);

用户注册阶段:用户注册到ifttt家庭网关,面对面的方式配置用户id(uidj)和初始认证会话秘钥

阶段c:认证和密钥协商阶段;

家庭网关登录阶段:ifttt家庭网关登录ifttt服务器,互认证之后,协商一个会话秘钥ifttt服务器将家庭网关hgj标记为在线;在密钥协商互认证阶段:用户和ifttt家庭网关通过ifttt服务器互相认证,协商一个新的会话秘钥这对攻击者和ifttt服务器都是私密的;而且,最后一个会话密钥涉及相互身份验证以防止冒充攻击;

至此,密钥协商互认证程序完成,spi直接通过会话秘钥发送远程控制信息到家庭网关hgj或从家庭网关hgj收到信息。

阶段a:系统初始化阶段;

ifttt服务器初始化:当ifttt服务器(s)启动时,首先在有限域fp上选取一条椭圆曲线ep,其中p为大素数;再者,选取一个安全单向散列函数h1(·)。然后,取ep上一个基点p,阶为n,私钥x,然后计算ps=x*p作为公钥。s私有x,发布{p,ep,p,ps,n,h1(·)}。

ifttt家庭网关初始化:假设家庭网关(hgj)已经配置了公共参数{p,ep,p,ps,n,h1(·)}和序列号(snj)。当hgj启动时,取一个安全单向散列函数h2(·)和一条有限域上的椭圆曲线其中pj为大素数。再取上的一个基点pj,阶nj,私钥xj,然后计算作为公钥。hgj私有xj,存储公共参数

阶段b:注册阶段;

该方案有两个独立的注册阶段:家庭网关注册阶段和用户注册阶段。在家庭网关注册阶段(见图2①,②),ifttt家庭网关注册到ifttt服务器,确认身份ridj和秘密h1(snj||x)。在用户注册阶段(见图2③、④),用户注册到ifttt家庭网关,面对面的方式配置用户id(uidj)和初始认证会话秘钥

1)家庭网关注册阶段:

步骤hgr1:hgj产生随机数ridj、rj,计算mr1=rj*ps,mr2=rj*p,b3=h1(mr2)||snj||ridj。然后发送m1={mr2,b1,b2,b3,t1}到s。

步骤hgr2:s计算mr1*=x*mr2,从b1、b2获得然后检查是否成立,如果不成立,终止进程。反之,s判定mr1=mr1*,并通过自己的有效数据库找到snj。如果snj存在,计算b5=h1(snj||x)||snj||ridj||mr1。返回m2={b4,b5}到hgj。s存储ridj作为家庭网关的身份,存储h1(snj||x)作为家庭网关的秘密。

步骤hgr3:当hgj收到m2,从b4中提取检查等式若等式成立,hgj得到然后提取自身专有硬件地址macj,计算否则,关闭进程。最后,hgj存储(ridj,rj)。

2)用户注册阶段

步骤ur1:当用户(ui)注册到hgj时,hgj产生随机数rcj作为注册码,在屏幕上显示ui,然后发送ridj和公共参数到用户智能手机上。

步骤ur2:ui设置密码和用户名,表示为(pwi,uni)。用户手动输入pwi、uni、rcj到智能手机(spi)中。然后,spi检索其硬件地址maci,计算w=h2(pwi||uni),ep=w*pj,c3=h2(ep||u||rcj),m3={ep,c1,c2,c3},将m3发送到hgj。

步骤ur3:收到m3,hgj首先计算cp*=xj*ep,然后从c1、c2获得u*并检查等式若不相等,进程终止。反之,hgj认为i=i*并计算uidi=h2(u),存储同时返回到spi。

步骤ur4:收到m4,spi如hgj一样计算uidi、若m4有效,计算存储

阶段c:认证和密钥协商阶段:

该部分也包括两个独立的阶段:家庭网关登录阶段和密钥协商互认证阶段。在家庭网关登录阶段(见图2⑤、⑥),ifttt家庭网关登录ifttt服务器,互认证之后,协商一个会话秘钥ifttt服务器将hgj标记为在线。在密钥协议互认证阶段(见图2⑦、⑧、⑨、⑩),用户和ifttt家庭网关通过ifttt服务器互相认证,协商一个新的会话秘钥这对攻击者和ifttt服务器都是私密的;而且,最后一个会话密钥涉及相互身份验证以防止冒充攻击。

1)家庭网关登录阶段

步骤hgl1:hgj通过macj从rj恢复h1(snj||x),产生随机数rj,计算mr1=rj*ps,mr2=rj*p,b3=h1(mr2||h1(snj||x)||ridj||t1),m5={mr2,b1,b2,b3,t1},然后将m5发送到s。

步骤hgl2:s首先根据条件检验t1的及时性,△t表示最大传输延迟时间,是m5的到达时间。如果t1满足,s计算mr1*=x*mr2,通过b1、b2计算得到ridj*、然后检验等式若相等,s得到ridj*=ridj、mr1*=mr1,然后产生一个随机数r,计算b5=h1(mr1||h1(snj||x)||ridj||r||t2,m6={b4,b5,t2},把m6发送到hgj。该次会话,s把加入到数据库中。

步骤hgl3:hgj根据条件检验t2的及时性,是m6的到达时间.如果满足,hgj提取r*,判断h1(mr1||h1(snj||x)||ridj||r*||t2)=b5。如果相等,hgj认为r*=r,计算并安全存储

2)密钥协商互认证阶段

从前面阶段可知,s私有x,公共参数{p,ep,p,ps,n,h1(·)},数据库中存储hgj私有xj,公共参数对ui存储对s存储和s的公共参数。ui记忆中有{uni,pwi},其spi存储和hgj的公共参数。

该阶段在s的帮助下,完成ui和hgj之间的密钥协商互认证,但是在ui和hgj认证阶段,s仅仅加密(解密)和转发认证消息,并不能跟踪发生的事件,见图3。

步骤auka1:ui输入用户名(uni)和密码(pwi),spi计算w=h2(pwi||uni),通过w从计算出uidi、spi产生随机数ri,计算e=ri*pj、m7={ridj,e,o1,o2,o3,t1},将m7发送到s。

步骤auka2:s首先根据条件检验t1的及时性,△t表示最大传输延迟时间,是m7的到达时间。若条件成立,s找到ridj,然后转发到hgj。

步骤auka3:收到m7密文(mm7),hgj首先计算然后检验h1(m7);若其相等,则根据条件检验t1的及时性,△t′(>2△t)表示最大传输延迟时间,是mm7的到达时间。若条件成立,hgj计算c*=xj*e,从o1、o2中恢复uidi*检验等式是否成立,若不成立,进程结束。反之,hgj认为uidi*=uidi、再检验与数据库中是否相等,若相等,则产生随机数rj,计算m8={o4,o5,t2}。之后,将发送到s。同时计算更新

步骤auka4:s计算得到m8,检验h1(m8),若其相等,则根据条件检验t2的及时性,是mm8的到达时间。若成立,则转发m8到spi。

步骤auka5:spi首先根据条件检验t1的及时性,是m8的到达时间。若条件成立,则spi用h2(c)从m8中的o4提取检验等式若成立,则spi认为c=c*、rj*=rj,计算更新之后,计算更新至此,密钥协议互认证程序完成,spi直接通过发送远程控制信息或从hgj收到信息。

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