1.一种面向智能家庭的具有隐私保护特性的身份认证方法,其特征在于:首先在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收到信息。
2.根据权利要求1所述的一种面向智能家庭的具有隐私保护特性的身份认证方法,其特征在于阶段A系统初始化阶段,具体实现如下:IFTTT服务器初始化:当IFTTT服务器启动时,首先在有限域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,存储公共参数
3.根据权利要求2所述的一种面向智能家庭的具有隐私保护特性的身份认证方法,其特征在于阶段B注册阶段,具体实现如下:
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认为u=u*, 并计算uIDi=H2(u), 存储 同时返回 到SPi;
步骤UR4 :收到M4 ,SPi如HGj一样计算uIDi、 若M4有效,计算存储
4.根据权利要求3所述的一种面向智能家庭的具有隐私保护特性的身份认证方法,其特征在于阶段c认证和密钥协商阶段,具体实现如下:①家庭网关登录阶段
步骤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 (SN j||x) ||rI Dj||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,计算 并安全存储②密钥协商互认证阶段
从前面阶段可知,S私有x,公共参数{p,Ep,P,Ps,n,H1(·)},数据库中存储HGj私有xj,公共参数 对Ui存储对S存储 和S的公共参数;Ui记忆中有{UNi,PWi},其SPi存储和HGj的公共参数,具体步骤如下:
步骤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的到达时间 ;若 条 件 成 立 ,则S P i 用 H 2 (c ) 从 M 8中 的 O 4 提 取 r j* ,检 验 等式若成立,则SPi认为c=c*、rj*=rj,计算更新 之后,计算
更新 至此,密钥协议互认证程序完成,SPi直接通过 发送远程控制信息或从HGj收到信息。