发明内容
针对现有技术存在的问题,本发明提供了一种雾计算与区块链融合的智能家居身份认证方法与系统。
本发明是这样实现的,一种雾计算与区块链融合的智能家居身份认证方法,所述雾计算与区块链融合的智能家居身份认证方法包括:
基于受信权威初始化属于网络的所有实体的认证变量,并对所有的智能设备、雾节点、终端用户进行注册;通过区块链上认证和链下认证进行终端用户与雾节点的相互认证;认证成功后,终端用户与智能设备建立安全的连接进行通信。
进一步,所述雾计算与区块链融合的智能家居身份认证方法包括以下步骤:
步骤一,基于受信权威初始化属于网络的所有实体的认证变量;在智能合约上进行所有智能设备和雾节点的注册;并在受信权威上进行终端用户的注册;同时将智能设备、雾节点以及终端用户的密文信息以交易的形式存储在区块链上;
步骤二,终端用户利用用户名、口令和指纹在移动设备上登陆,并向区块链提交访问物联网设备的请求;智能合约验证用户的真实性,若验证不成功,则终止用户的访问请求;若验证成功,则转向步骤三;
步骤三,触发部署在区块链上的智能合约,执行区块链上的认证:区块链上部署的智能合约返回一个临时认证令牌并将消息广播给所有的用户和雾节点;
步骤四,终端用户与雾节点接收本地区块链广播的消息通过验证消息鲜活度、终端用户自身认证以及终端用户与雾节点相互认证进行链下验证;验证成功后,终端用户与智能设备就建立安全的连接进行通信。
进一步,所述基于受信权威初始化属于网络的所有实体的认证变量包括:
首先,受信权威为网络模型中的每个实体计算身份标识,根据每个实体entityi在互联网中的唯一媒体访问控制MAC地址MACi;计算MACi的哈希值,得到实体的身份标识IDi=hash(MACi),并将所述实体的身份标识发送给每个参与者进行存储;
其次,受信权威为所有实体生成一对公私钥对(Puku,Prku),其中u表示参与实体;同时所有的智能设备按照预先定义好的映射规则映射至某个雾节点进行管理;
最后,雾节点为每个智能设备计算注册令牌ReqCard;将所有节点的初始化信息以交易的形式打包成区块;
所述令牌ReqCard由管理所述智能设备的雾节点的唯一身份标识FID、智能设备唯一身份标识SID及使用椭圆曲线数字签名算法的签名结果Signature组成;所述签名结果Signature利用雾节点的私钥对雾节点和相应智能设备的身份标识信息进行签名得到。
进一步,所述在智能合约上进行所有的智能设备和雾节点的注册;并在受信权威上进行终端用户的注册包括:
(1)雾节点注册:雾节点向系统提交注册交易请求事件ReqRegistration(MACFID,FID),触发智能合约,进行注册验证;注册权威根据雾节点的身份标识,查询所述雾节点是否已经被注册;若已被注册则拒绝所述雾节点提交的注册交易请求,并根据媒体访问控制地址验证雾节点身份标识FID的正确性;若所述雾节点身份标识FID的正确性验证成功,则接受所述雾节点提交的注册交易请求;否则,注册失败;同时于注册成功后将雾节点与关联智能设备的映射关系记录在区块链上;
(2)智能设备注册:智能设备提交注册交易请求事件ReqRegistra tion(MACFID,FID,MACSID,SID,ReqCardSID,PukSID)到区块链,触发智能合约,区块链上的智能合约执行智能设备的注册验证;
所述智能设备的注册验证包括:
(2.1)查询由注册权威发布的SID验证智能设备是否已经存在于系统中,如果已经存在,则注册终止;
(2.2)验证智能设备和对应的雾节点媒体访问控制地址MAC的正确性;通过注册请求中的MAC地址验证SID和FID的正确性;
(2.3)通过注册请求中的SID和FID的以及雾节点的公钥验证智能设备的身份令牌ReqCardSID;
(2.4)当且仅当媒体访问控制地址MAC、SID、FID、智能设备的身份令牌ReqCardSID验证均成功后,注册成功;
(3)终端用户注册,用户Ui利用智能终端Pi在受信权威上进行注册:
(3.1)用户选择一个唯一的身份IDi和口令PWi.并在移动设备输入自身生物信息,Pi利用模糊提取器生成函数Gen(·)产生一个秘密字符串s和一个辅助串r,即Gen(ω)→(s,r);并利用智能终端用输入的生物信息隐藏口令:UPWi=h(PWi||s);移动设备通过安全信道发送注册请求{IDi,PWi,r.}到注册权威;
(3.2)从移动设备Pi接收请求消息,注册权威为终端用户计算一个伪身份PIDi=h(IDi||r),注册权威发送响应消息{PIDi}给Pi;同时将信息{PIDi,r}存储至区块链;
(3.3)用户接收来自注册权威的消息,移动设备Pi存储(PIDi,h(·),r,Gen(·),Rep(·)在自身内存中。
进一步,所述终端用户利用用户名、口令和指纹在移动设备上登陆,并向区块链提交访问物联网设备的请求包括:
用户Ui在移动终端Pi输入用户身份IDi和口令PWi.,并在智能终端上输入自身生物信息,智能终端利用嵌入其中的模糊提取器计算Rep(ω,r)→s*,UPW*=h(IDi||s*),如果UPWi=UPW*用户登录成功;移动终端向本地区块链提交认证请求交易事件ReqAuth(IDi,PWi,MACSID,SID),其中MACSID表示智能设备的媒体访问地址,SID表示智能设备的身份标识。
进一步,所述区块链上认证包括:
1)通过区块链上存储的用户信息PIDi验证用户的身份,若所述假名身份存在,则验证传输的媒体访问地址MACSID是否存在,若存在则查询区块链上的SID验证智能设备是否已经存在,如果所述智能设备存在,则通过智能设备的MAC地址验证SID是否正确,若SID验证通过,则转向步骤2);否则,验证失败;
2)区块链上部署的智能合约返回一个带有临时访问证书AccessCredential=(TOKEN,r,PIDi,FID,T1,ΔT)的消息;区块链所述消息广播给所有用户和雾节点;
其中令牌TOKEN由用户伪身份PIDi、雾节点身份标识FID和智能设备身份标识SID取哈希生成,为TOKEN=h(SID||PIDi||FID);其中,T1表示当前会话时间,ΔT表示最大传输时延,r表示用户注册阶段由模糊提取器生成的辅助串,PIDi表示用户的假名身份标识,FID表示雾节点的身份标识。
进一步,所述终端用户与雾节点接收本地区块链广播的消息通过验证消息鲜活度、终端用户自身认证以及终端用户与雾节点相互认证进行链下验证包括:
终端用户接收本地区块链广播的消息并验证所述消息的鲜活度,同时终端用户向给管理所述智能设备的雾节点发送包含自身信息和令牌的消息M1的消息进行终端用户自身的认证;雾节点接收终端用户发送的消息认证用户成功之后,向终端用户发送一个用于认证的响应消息M2;
所述链下验证包括以下步骤:
1)终端用户通过广播接收消息,检查条件Tnew-T1<ΔT是否满足,Tnew表示当前系统最新时间;若满足,则通过向相应雾节点发送消息{M1,Signed(M1),Pukuser}进行终端用户自身认证;其中M1=(TOKEN,r,PIDi,T2,n,Pukuser,ΔT),Signed(M1)表示终端用户使用自己的私钥对消息M1生成的数字签名,Pukuser表示终端用户的公钥;
2)雾节点利用用户Ui的私钥验证签名并检查条件Tnew-T2<ΔT是否满足,若满足,则雾节点检查用户传输的身份标识PIDi与广播收到的是否一致,若两者不相等则终止认证;
3)雾节点验证终端用户传过来的令牌是否真实有效:计算TOKEN*=h(SID||FID||PIDi),判断TOKEN*是否等于TOKEN,若不相等则拒绝访问请求;雾节点发送响应消息{M2,Signed(M2),PukFID},M2=(n-1,T3,PukFID)给终端用户;其中,Signed(M2)表示雾节点使用自己的私钥生成的数字签名,T2表示当前会话时间,PukFID表示标识该雾节点的公钥;
4)终端用户用雾节点的公钥验证签名,检查条件Tnew-T3<ΔT是否满足,若不满足,则终止。
本发明的另一目的在于提供一种实施所述雾计算与区块链融合的智能家居身份认证方法的雾计算与区块链融合的智能家居身份认证系统,所述雾计算与区块链融合的智能家居身份认证系统包括:
初始化模块,用于基于受信权威初始化属于网络的所有实体的认证变量;
注册模块,用于在智能合约上进行所有的智能设备和雾节点的注册;同时用于在受信权威上进行终端用户的注册;
认证模块,用于对终端用户与智能设备进行相互认证;
通信模块,用于接收通过验证的用户的访问请求并建立安全连接进行通信;
所述认证模块包括:
用户登陆单元,用于通过输入用户名、口令和指纹进行终端用户登录;
用户身份验证单元,用于利用智能合约验证用户的真实性;同时于认证通过时,利用区块链上部署的智能合约返回一个临时认证令牌并广播给所有的用户和雾节点;
终端用户验证单元,用于终端用户对接收的本地区块链广播的消息进行鲜活度验证;同时用于鲜活度验证通过后终端用户向管理所述智能设备的雾节点发送包含自身信息和令牌的消息M1消息进行终端用户自身认证;
雾节点认证单元:用于接收终端用户发送的消息认证用户成功,并向终端用户发送用于认证的响应消息M2。
进一步,所述雾计算与区块链融合的智能家居身份认证系统还包括:
受信权威,用于进行安全变量的初始化;
终端用户,用于发送认证请求触发智能合约并从智能合约中请求获得访问特定智能设备的权限;同时用于获得访问权限后将联系负责管理指定智能设备的雾节点进行身份验证;
智能合约,用于进行终端用户和智能设备的注册以及终端用户和智能设备的认证;并根据满足智能合约预设条件的实体发送的请求执行相应处理;
雾节点,用于利用边缘网络中的设备认证合法用户访问智能设备;
智能设备,用于每个智能设备被映射至一个雾节点,执行部分处理。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述雾计算与区块链融合的智能家居身份认证系统。
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
本发明使用区块链技术将集中式架构转变为去中心化方式,可以极大地提高系统的安全性,根据安全分析本专利能够实现物联网环境中的三大安全要求,即信息的保密性、完整性和防篡改。同时本专利在实际运行环境中可以抵御重播攻击、中间人攻击、女巫攻击、分布式拒绝服务、冒名顶替和内部特权攻击等。
本发明在认证过程中不需要云和第三方的参与,解决了以往的技术方案容易导致单点失败的问题。通过读取系统初始化生成的认证变量可以实现分布式的认证,极大的提升了认证效率。同时雾计算提供一套本地化的计算服务,为终端智能家居设备之间提供计算等资源提高了整个系统的可扩展性;本发明引入模糊提取器和摘要算法来考虑用户数据的隐私。消息传输的过程中确保了前向匿名性,即使某些消息被捕获,也无法通过推倒得知任何用户的信息。
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
本发明提供了一个轻量级的认证方法,利用了去中心化和可扩展的属性,使用雾节点管理一组智能设备,通过雾节点连接以太坊智能合约来验证用户对设备的访问。本发明使用联盟区块链构建网络模型,联盟区块链中其成员加入的严格执行准入机制和授权机制,使得网络共识的时间几乎可以忽略不计,因此能够显著提高效率。
第三,作为本发明的权利要求的创造性辅助证据,还体现在本发明的技术方案转化后的预期收益和商业价值为:
背景:随着5G+AIoT赋能下,全面革新智能家居产品形态,更大范畴的底层互联协议开始诞生,设备全面支持更多的平台,智能家居行业在近些年进入了AIoT赋能期。信息安全和隐私问题开始越来越受到人们的关注,对于一个智能家居系统,选择合适的身份认证方案就显得有尤为重要。
消费市场分析:近几年,我国智能家居出货量每年都在快速的增长,前,智能家居涵盖了智能照明、AI智能语音、视频娱乐设备、家庭安全监控、大小家电等各种智能设备,再加上中国具有用户规模优化,智能家居的前景不可估量,据IDC报告数据显示,预计2024年市场出货额将突破800亿美元。随着80、90后逐渐成为消费市场的主力军,个性化、舒适、便利、时尚已经成为了年轻一代的消费主力军的共同追求,正是基于这些需求,智能家居产业存在着巨大的潜力。同时因为许多通过互联网发送的数据(例如摄像机的视频数据)未加密导致许多敏感信息在互联网可访问的系统上公开传输或存储。因此本发明需要设计一种合理的身份认证和权限访问控制系统。而本专利是一个轻量级的身份认证方案,兼顾认证效率和系统性能,同时能够给予用户隐私保护。而且由于本专利为去中心化的架构,更加符合现如今智能家居生态的发展趋势,因此本专利的技术转化后的消费市场行情同样明朗。
商业价值及预期收益分析:通过上面的背景和市场分析,可以看到在未来一段时间智能家居以及各种为了抵御安全攻击设计出来的身份认证方案市场前景是巨大的。而本专利因为采用去中心化的架构,同时引入雾计算做到了性能与安全的平衡,因此在可预见的时间内本专利转化后的技术存在着巨大的商业价值。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
如图1所示,本发明实施例提供的雾计算与区块链融合的智能家居身份认证方法包括:
基于受信权威初始化属于网络的所有实体的认证变量,并对所有的智能设备、雾节点、终端用户进行注册;通过区块链上认证和链下认证进行终端用户与雾节点的相互认证;认证成功后,终端用户与智能设备建立安全的连接进行通信。
如图2所示,本发明实施例提供的雾计算与区块链融合的智能家居身份认证方法包括以下步骤:
S101,基于受信权威初始化属于网络的所有实体的认证变量;在智能合约上进行所有的智能设备和雾节点的注册;并在受信权威上进行终端用户的注册;同时将智能设备、雾节点以及终端用户的密文信息以交易的形式存储在区块链上;
S102,终端用户利用用户名、口令和指纹在移动设备上登陆,并向区块链提交访问物联网设备的请求;智能合约验证用户的真实性,若验证不成功,则终止用户的访问请求;若验证成功,则转向步骤S103;
S103,触发部署在区块链上的智能合约,执行区块链上的认证:区块链上部署的智能合约返回一个临时认证令牌并将消息广播给所有的用户和雾节点;
S104,终端用户与雾节点接收本地区块链广播的消息通过验证消息鲜活度、终端用户自身认证以及终端用户与雾节点相互认证进行链下验证;验证成功后,终端用户与智能设备就建立安全的连接进行通信。
本发明实施例提供的基于受信权威初始化属于网络的所有实体的认证变量包括:
首先,受信权威为网络模型中的每个实体计算身份标识,根据每个实体entityi在互联网中的唯一媒体访问控制MAC地址MACi;计算MACi的哈希值,得到实体的身份标识IDi=hash(MACi),并将所述实体的身份标识发送给每个参与者进行存储;
其次,受信权威为所有实体生成一对公私钥对(Puku,Prku),其中u表示参与实体;同时所有的智能设备按照预先定义好的映射规则映射至某个雾节点进行管理;
最后,雾节点为每个智能设备计算注册令牌ReqCard;所有节点的初始化信息以交易的形式打包成区块附加到区块链上。
本发明实施例提供的令牌ReqCard由管理所述智能设备的雾节点的唯一身份标识FID、智能设备唯一身份标识SID及使用椭圆曲线数字签名算法的签名结果Signature组成;所述签名结果Signature利用雾节点的私钥对雾节点和相应智能设备的身份标识信息进行签名得到。
本发明实施例提供的在智能合约上进行所有的智能设备和雾节点的注册;并在受信权威上进行终端用户的注册包括:
(1)雾节点注册:雾节点向系统提交注册交易请求事件ReqRegistration(MACFID,FID),触发智能合约,进行注册验证;注册权威根据雾节点的身份标识,查询所述雾节点是否已经被注册;若已被注册则拒绝所述雾节点提交的注册交易请求,并根据媒体访问控制地址验证雾节点身份标识FID的正确性;若所述雾节点身份标识FID的正确性验证成功,则接受所述雾节点提交的注册交易请求;否则,注册失败;同时于注册成功后将雾节点与关联智能设备的映射关系记录在区块链上;
(2)智能设备注册:智能设备提交注册交易请求事件ReqRegistra tion(MACFID,FID,MACSID,SID,ReqCardSID,PukSID)到区块链,触发智能合约,区块链上的智能合约执行智能设备的注册验证;
本发明实施例提供的智能设备的注册验证包括:
(2.1)查询由注册权威发布的SID验证智能设备是否已经存在于系统中,如果已经存在,则注册终止;
(2.2)验证智能设备和对应的雾节点媒体访问控制地址MAC的正确性;通过注册请求中的MAC地址验证SID和FID的正确性;
(2.3)通过注册请求中的SID和FID的以及雾节点的公钥验证智能设备的身份令牌ReqCardSID;
(2.4)当且仅当媒体访问控制地址MAC、SID、FID、智能设备的身份令牌ReqCardSID验证均成功后,注册成功;
(3)终端用户注册,用户Ui利用智能终端Pi在受信权威上进行注册:
(3.1)用户选择一个唯一的身份IDi和口令PWi.并在移动设备输入自身生物信息,Pi利用模糊提取器生成函数Gen(·)产生一个秘密字符串s和一个辅助串r,即Gen(ω)→(s,r);并利用智能终端用输入的生物信息隐藏口令:UPWi=h(PWi||s);移动设备通过安全信道发送注册请求{IDi,PWi,r.}到注册权威;
(3.2)从移动设备Pi接收请求消息,注册权威为终端用户计算一个伪身份PIDi=h(IDi||r),注册权威发送响应消息{PIDi}给Pi;同时将信息{PIDi,r}存储至区块链;
(3.3)用户接收来自注册权威的消息,移动设备Pi存储(PIDi,h(·),r,Gen(·),Rep(·)在自身内存中。
本发明实施例提供的终端用户利用用户名、口令和指纹在移动设备上登陆,并向区块链提交访问物联网设备的请求包括:
用户Ui在移动终端Pi输入用户身份IDi和口令PWi.,并在移动终端上按压指纹ω,移动终端利用嵌入其中的模糊提取器计算Rep(ω,r)→s*,UPW*=h(IDi||s*),如果UPWi=UPW*用户登录成功;移动终端向本地区块链提交认证请求交易事件ReqAuth(IDi,PWi,MACSID,SID),其中MACSID表示智能设备的媒体访问地址,SID表示智能设备的身份标识。
本发明实施例提供的区块链上认证包括:
1)通过区块链上存储的用户信息PIDi验证用户的身份,若所述假名身份存在,则验证传输的媒体访问地址MACSID是否存在,若存在则查询区块链上的SID验证智能设备是否已经存在,如果所述智能设备存在,则通过智能设备的MAC地址验证SID是否正确,若SID验证通过,则转向步骤2);否则,验证失败;
2)区块链上部署的智能合约返回一个带有临时访问证书AccessCredential=(TOKEN,r,PIDi,FID,T1,ΔT)的消息;区块链所述消息广播给所有用户和雾节点;
其中令牌TOKEN由用户伪身份PIDi、雾节点身份标识FID和智能设备身份标识SID取哈希生成,为TOKEN=h(SID||PIDi||FID);其中,T1表示当前会话时间,ΔT表示最大传输时延,r表示用户注册阶段由模糊提取器生成的辅助串,PIDi表示用户的假名身份标识,FID表示雾节点的身份标识。
本发明实施例提供的终端用户与雾节点接收本地区块链广播的消息通过验证消息鲜活度、终端用户自身认证以及终端用户与雾节点相互认证进行链下验证包括:
终端用户接收本地区块链广播的消息并验证所述消息的鲜活度,同时终端用户向给管理所述智能设备的雾节点发送包含自身信息和令牌消息的消息M1以及附加的签名进行终端用户自身的认证;雾节点接收终端用户发送的消息认证用户成功之后,向终端用户发送一个用于认证的响应消息M2。
本发明实施例提供的链下验证包括以下步骤:
1)终端用户通过广播接收消息,检查条件Tnew-T1<ΔT是否满足,Tnew表示当前系统最新时间;若满足,则通过向相应雾节点发送消息{M1,Signed(M1),Pukuser}进行终端用户自身认证;其中M1=(TOKEN,r,PIDi,T2,n,Pukuser,ΔT),Signed(M1)表示终端用户使用自己的私钥对消息M1生成的数字签名,Pukuser表示终端用户的公钥;
2)雾节点利用用户Ui的私钥验证签名并检查条件Tnew-T2<ΔT是否满足,若满足,则雾节点检查用户传输的身份标识PIDi与广播收到的是否一致,若两者不相等则终止认证;
3)雾节点验证终端用户传过来的令牌是否真实有效:计算TOKEN*=h(SID||FID||PIDi),判断TOKEN*是否等于TOKEN,若不相等则拒绝访问请求;雾节点发送响应消息{M2,Signed(M2),PukFID},M2=(n-1,T3,PukFID)给终端用户;其中,Signed(M2)表示雾节点使用自己的私钥生成的数字签名,T2表示当前会话时间,PukFID表示标识该雾节点的公钥;
4)终端用户用雾节点的公钥验证签名,检查条件Tnew-T3<ΔT是否满足,若不满足,则终止。
如图4所示,本发明实施例提供的雾计算与区块链融合的智能家居身份认证系统包括:
初始化模块,用于基于受信权威初始化属于网络的所有实体的认证变量;
注册模块,用于在智能合约上进行所有的智能设备和雾节点的注册;同时用于在受信权威上进行终端用户的注册;
认证模块,用于对登录用户以及相应智能设备进行相互验证;
通信模块,用于接收通过验证的用户的访问请求并建立安全连接进行通信。
本发明实施例提供的认证模块包括:
用户登陆单元,用于通过输入用户名、口令和指纹进行终端用户登录;
用户身份验证单元,用于利用智能合约验证用户的真实性;同时于认证通过时,利用区块链上部署的智能合约返回一个临时认证令牌并广播给所有的用户和雾节点;
终端用户验证单元,用于终端用户对接收的本地区块链广播的消息进行鲜活度验证;同时用于鲜活度验证通过后终端用户向管理所述智能设备的雾节点发送包含自身信息和令牌的消息M1消息进行终端用户自身认证;
雾节点认证单元:用于接收终端用户发送的消息认证用户成功,并向终端用户发送用于认证的响应消息M2。
认证模块雾计算与区块链融合的智能家居身份认证系统还包括:
受信权威,用于进行安全变量的初始化;
终端用户,用于发送认证请求触发智能合约并从智能合约中请求获得访问特定智能设备的权限;同时用于获得访问权限后将联系负责管理指定智能设备的雾节点进行身份验证;
智能合约,用于进行终端用户和智能设备的注册以及终端用户和智能设备的认证;并根据满足智能合约预设条件的实体发送的请求执行相应处理;
雾节点,用于利用边缘网络中的设备认证合法用户访问智能设备;
智能设备,用于每个智能设备被映射至一个雾节点,执行部分处理。
下面结合具体实施例对本发明的技术方案作进一步说明。
实施例1:
1、本发明的雾计算与区块链融合的智能家居身份认证包括五个实体模块:
受信权威(Trusted Authority,TA):作为一个可信节点,受信权威主要负责一些安全变量的初始化。它们拥有强大的计算和存储能力,同时是区块链的成员之一但不参与认证过程。
终端用户:作为智能家居系统中的唯一用户实体,它从智能合约中请求获得访问特定智能设备的权限。用户发送认证请求以触发智能合约。一旦用户获得访问权限,它将联系负责管理指定智能设备的雾节点进行身份验证。终端用户通常拥有相对充足的计算能力和计算资源,可以使用开放的接口通过Internet来访问智能合约。
智能合约:智能合约是运行在区块链平台上的一段及自动化脚本程序。终端用户和智能设备的注册以及他们的认证都需要访问分布在区块链网络中的智能合约。当相关实体向区块链提出某个请求且智能合约的某一条件得到满足时,其对应的程序将被自动执行。
雾节点:雾计算主要使用边缘网络中的设备。每个雾由网络边缘的一组设备构成,它们在地理位置上更接近本发明的智能设备,而且数据传输的延迟低。雾节点具有良好的移动性,和其他移动设备如手机可以直接相互通信。每个雾节点也被用来管理一组智能设备,这可提高智能家居环境的可扩展性。雾节点也是区块链的成员,用于认证合法用户访问智能设备。
智能设备:在智能家居环境中,每个智能设备将被映射到一个雾节点,智能设备被认为是一个资源受限的设备,其存储、内存和处理能力都是有限的。
2、本发明实现在智能家环境中终端用户与智能设备的身份认证,其工作原理是这样:
第一阶段是初始化阶段,它主要是基于受信权威来初始化属于网络的所有实体的认证变量。
第二阶段是注册阶段,在这个阶段,所有的智能设备和雾节点的注册工作在智能合约上由已编写好的自动化脚本完成,终端用户在受信权威上注册,他们的密文信息以交易的形式存储在区块链上。
第三阶段是认证阶段,在这个阶段,在终端用户访问智能设备之前,需要进行相互认证,以便与相应的智能设备进行通信。认证阶段步骤如下:
用户登陆:终端用户首先在自己的移动设备上登陆,登陆过程要求用户输入正确的用户名、口令和指纹。登陆成功后,用户的移动设备向区块链提交发生访问某个物联网设备的请求。
触发智能合约验证用户身份:智能合约验证用户的真实性,如果验证不成功,立即终止用户的访问请求,如果验证成功,区块链上部署的智能合约返回一个临时认证令牌并将此消息广播给所有的用户和雾节点,用于接下来的链下认证过程。
终端用户验证回调消息:终端用户收到本地区块链广播的消息后,验证此消息的鲜活度后,给管理该智能设备的雾节点发送消息包含自身信息和令牌的消息M1,用于认证自身。
雾节点完成相互认证:雾节点收到终端用户发来的消息认证用户成功之后,同时向终端用户也发送一个用于认证的响应消息M2.
完成认证过程并建立连接:在终端用户和雾节点完成相互认证后,终端用户与智能设备就可以建立起安全的连接进行通信。
3.本发明实现的技术细节
在一个大型的智能家居环境中,可能有数十个智能设备和雾节点。这些节点相互合作,完成特定的任务。为了实现它们之间的安全认证,本发明使用基于联盟区块链和雾节点融合的方式构建了认证系统,认证系统结构如图4所示它由五个参与方组成:受信权威(TA)、终端用户、雾节点、智能家居环境中的各种智能设备,以及分布在整个区块链网络中的以太坊智能合约。在整个网络模型中,受信机构不参与认证过程。
3.1初始化阶段:
这一部分主要是让受信权威初始化智能家居环境中的雾节点和智能设备。首先,受信权威为网络模型中的每个实体计算身份标识,根据每个实体entityi在互联网中的唯一媒体访问控制(MAC)地址MACi,计算MACi的哈希值,得到实体的身份标识IDi=hash(MACi),并将其发送给每个参与者进行存储。其中,智能设备的身份标记为SID,雾节点身份标记为FID。然后,受信权威为所有实体生成一对公私钥对(Puku,Prku),其中u代表参与实体。公私钥对主要用于验证认证和注册过程中用户的合法性和消息的完整性。同时在初始化的过程中所有的智能设备会按照预先定义好的映射规则映射到某个雾节点进行管理。最后,雾节点为每个智能设备计算注册令牌ReqCard用于后续的注册阶段,该令牌由管理此智能设备的雾节点的唯一身份标识FID;智能设备唯一身份标识SID及使用椭圆曲线数字签名算法(ECDSA)的签名结果Signature组成,该签名使用雾节点的私钥对雾节点和相应智能设备的身份标识信息进行签名。这些节点的初始化信息以交易的形式打包成区块,在网络共识过程完成后被附加到区块链的末端。
3.2注册阶段
注册阶段主要包括三个方面:用户注册、智能设备注册和雾节点注册。这个阶段在安全通道上执行。
(1)雾节点注册:雾节点向系统提交注册交易请求事件ReqRegistration(MACFID,FID),触发智能合约,完成相应的注册验证过程。接下来,注册权威根据雾节点的身份标识,查询该节点是否已经被注册。如果存在,它拒绝该请求。然后根据媒体访问控制地址验证雾节点身份标识FID的正确性。如果它是正确的,就接受请求,否则,注册失败。注册成功后,雾节点与关联智能设备的映射关系会被记录在区块链上。
(2)智能设备注册:每个雾节点都与一组智能设备相关联,所以当一个普通的智能设备进行注册时,除了自身的信息外,还需要提供管理该智能设备的雾节点的信息。当某个智能设备需要注册时,他提交注册交易请求事件ReqRegistra tion(MACFID,FID,MACSID,SID,ReqCardSID,PukSID)到区块链,然后智能合约被触发,区块链上的智能合约执行注册验证过程。具体步骤如下:
·查询由注册权威发布的SID来验证智能设备是否已经存在于系统中,如果已经存在,则注册终止。
·验证智能设备和对应的雾节点媒体访问控制地址MAC的正确性。
·通过注册请求中的MAC地址验证SID和FID的正确性。
·通过注册请求中的SID和FID的以及雾节点的公钥验证智能设备的身份令牌ReqCardSID。
如果以上步骤全部通过则注册成功,反之注册失败。
(3)终端用户注册:当用户想访问智能设备时他们必须首先在受信权威上进行注册,用户Ui使用他的手机Pi进行注册过程。具体步骤如下:
·用户选择一个唯一的身份IDi和口令PWi.并且在移动设备输入自己的生物信息如指纹ω,Pi利用模糊提取器生成函数Gen(·)产生一个秘密字符串s和一个辅助串r,即Gen(ω)→(s,r)。然后智能手机使用ω来隐藏口令:UPWi=h(PWi||s)。移动设备通过安全信道发送注册请求{IDi,PWi,r.}到注册权威。
·从移动设备Pi收到请求消息后,注册权威为终端用户计算一个伪身份PIDi=h(IDi||r),注册权威发送响应消息{PIDi}给Pi.同时将信息{PIDi,r}存储到区块链。
·用户收到来自注册权威的消息后,手机Pi存储(PIDi,h(·),r,Gen(·),Rep(·)在它的内存中。
3.3认证阶段
认证过程的整个执行流程分为区块链上的认证部分和链下认证部分两个模块组成。
链上认证过程如下:
当用户想要访问某个智能设备时,用户Ui在移动终端Pi首先输入自己的身份IDi和口令PWi.,用户在手机屏幕上按压自己的指纹ω,手机利用嵌入其中的模糊提取器计算Rep(ω,r)→s*,UPW*=h(IDi||s*),如果UPWi=UPW*用户登录成功。然后移动终端向本地区块链提交认证请求交易事件ReqAuth(IDi,PWi,MACSID,SID),其中MACSID表示智能设备的媒体访问地址,SID表示智能设备的身份标识,然后触发部署在区块链上的智能合约,执行链上的认证过程,验证按照以下步骤进行。
1)通过区块链上存储的用户信息PIDi验证用户的身份,若该假名身份存在,则验证传过来的媒体访问地址MACSID是否存在,若通过检测则继续接下来的查询过程。即通过查询区块链上的SID验证智能设备是否已经存在,如果存在,然后通过智能设备的MAC地址验证SID是否正确,如果验证通过,继续以下步骤,否则退出验证程序。
2)区块链上部署的智能合约返回一个带有临时访问证书AccessCredential=(TOKEN,r,PIDi,FID,T1,ΔT)的消息。区块链将此消息广播给所有用户和雾节点。消息中携带的令牌TOKEN用于后续的认证,TOKEN是由用户伪身份PIDi、雾节点身份标识FID和智能设备身份标识SID对其取哈希生成,即TOKEN=h(SID||PIDi||FID),T1表示当前会话时间,ΔT表示最大传输时延,r为用户注册阶段由模糊提取器生成的辅助串,PIDi为用户的假名身份标识,FID是雾节点的身份标识。
接下来管理此设智能设备的雾节点和用户进行链下的认证工作。
3)终端用户通过广播收到此消息后,启动链下认证过程,Tnew表示当前系统最新时间,检查条件Tnew-T1<ΔT是否满足。接下来用户将通过向相应雾节点发送消息{M1,Signed(M1),Pukuser}认证自己,其中M1=(TOKEN,r,PIDi,T2,n,Pukuser,ΔT),Signed(M1)是终端用户使用自己的私钥对消息M1生成的数字签名,Pukuser表示终端用户的公钥。TOKEN是由用户伪身份PIDi、雾节点身份标识FID和智能设备身份标识SID对其取哈希生成,即TOKEN=h(SID||PIDi||FID),T2表示当前会话时间,ΔT表示最大传输时延,r为用户注册阶段由模糊提取器生成的辅助串,PIDi为用户的假名身份标识,n是一个随机数。
4)雾节点使用用户Ui的私钥验证签名并检查条件Tnew-T2<ΔT是否满足,Tnew表示当前系统最新时间。然后雾节点检查用户传过来的身份标识PIDi与广播收到的是否一致,如果两者不相等终止认证。接下来雾节点验证终端用户传过来的令牌是否真实有效,即计算TOKEN*=h(SID||FID||PIDi),其中PIDi为用户的假名身份标识,SID为终端用户请求通信的智能设备的身份标识,FID为管理该智能设备的雾节点的身份标识。判断TOKEN*是否等于TOKEN,若不相等则拒绝该请求。接下来,雾节点发送响应消息{M2,Signed(M2),PukFID},M2=(n-1,T3,PukFID)给终端用户,Signed(M2)是雾节点使用自己的私钥生成的数字签名,T2表示当前会话时间,PukFID标识该雾节点的公钥。
5)终端用户用雾节点的公钥验证签名,检查条件Tnew-T3<ΔT是否满足,如果条件不成立,则终止当前会话。最后,用户和智能设备之间可以建立一个正常的安全连接进行数据交换。
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
本发明的应用实施例提供了一种信息数据处理终端所述信息数据处理终端用于实现所述雾计算与区块链融合的智能家居身份认证方法与系统。
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
在能提供可靠安全性的前提下,为了检验本专利的性能,本发明采用计算开销为指标,和其他现有的方案进行比较。本发明使用方案中用到的密码原语的执行时间的总和来对计算代价进行量化。假定Th,Tf,Ted,Te,Tmac,Thamc分别表示哈希函数,模糊提取器,消息加密,ECC上的点乘运算,消息认证码和哈希MAC的运算时间。同时本发明采用已有的仿真结果用Treq,Texc表示提交认证请求到区块链和发送消息的平均时间。由于消息认证码,哈希消息认证码和哈希函数的运行时间相近,因此这里本发明假定Th=Thamc=Tmac。各个密码原语的执行时间归纳在表1中。
Table.1.密码原语的执行时间
本发明的认证过程分为链上和链下的认证过程,在链上部分需要先提交认证请求智能合约返回一个认证令牌,这部分的计算代价为Treq+Texc=1.069+0.03=1.099ms,然后指向链下的认证过程计算代价为3Th=0.0156ms.表2展示了本发明的专利和其他现有主流技术[1-4]的比较结果。
Table.2.计算代价比较
从比较中可以看出本发明在计算代价上比[1,2,3]高但是低于[4]。但是在[1,2,3]中的认证方案都是中心化的,无法免于单点失败的问题,而且本发明的方案引入了雾节点,系统的可拓展性和健壮性更强,因此本专利兼顾了安全性和运行效率。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。