本发明涉及匿名认证技术领域,具体涉及一种面向智能家居的用户可监管匿名身份认证方法。
背景技术:
随着机器学习、人工智能技术的飞速发展,具备自治和保姆式服务的智能家居网正变得越来越普及。智能家居设备不仅可以感知家庭环境,而且可以自主的为家庭用户做出各种行为,如访问外网进行购买、订阅、请求帮助、能源分享等等,使得用户可以轻松享受生活。
在这种场景下,虽然已经有一些匿名身份认证技术被提出;但是,所提出的协议不能满足用户对智能设备代表用户执行的各种网络行为进行随时监管的需求。因此,本发明提出了智能家居网内智能设备代表用户访问外网服务场景下的、用户可监管的匿名认证方法,使得智能家居访问应用服务时的匿名性的同时允许用户监管。
技术实现要素:
本发明主要针对先存在的匿名身份认证技术的不足,提供的一种一种面向智能家居的用户可监管匿名身份认证方法。本发明包括ifttt服务器、用户、智能设备、应用服务器和区块链组件,各个组件交互步骤如下:
(1)系统初始化;ifttt服务器、用户和区块链分别初始化,生成系统所需参数;
(2)用户和应用服务器分别向ifttt服务器注册;获取各自的is-认证密钥用以证明自己的真实性和合法性;
(3)智能设备向用户注册;智能设备在进行外网访问前,需要向用户进行注册,以获得用户的is-认证密钥以及用户的身份id;而用户端通过管理授权智能设备的id和对应的公钥实现后续监管;
(4)智能设备代表用户访问应用服务器实现匿名双向认证;智能设备生成可供用户监管的公钥,并使用用户的is-认证密钥和身份id,向应用服务器发起认证请求,实现匿名的双向认证;
(5)认证结果上链;双向认证完毕后,应用服务器向区块链写入认证结果,将本次认证的智能设备的公钥和对所认证公钥的签名等信息以区块链业务交易的形式存储到区块链中;
(6)用户监管智能设备;用户通过自己的私钥sku解密属于自己智能设备产生的一次性公钥,然后利用自己的is-认证密钥
进一步的,步骤(1)所述的初始化,具体如下:
ifttt服务器初始化:为应用服务器和用户提供可信is-认证密钥准备好参数;用户初始化:为内部的智能设备安全通信准备好参数;区块链初始化:基于双线性映射加密方案的参数,为所有用户和智能设备的监管准备好参数;具体实现如下:
1-1.用户u单独为家居网内智能设备初始化参数和公私钥对:
用户u首先选择一个大素数pu,并在有限域
1-2.区块链平台为所有的用户初始化系统公共参数
区块链平台为所有用户选定一个双线性群
其中p为群
进一步的,步骤(2)和步骤(3)所述的注册其具体实现如下:
2-1.用户ui通过ifttt网关hgig向ifttt服务器is注册并获取is-认证密钥
所述的智能手机是指控制智能设备的客户端;
2-2.应用服务器sj向ifttt服务器is注册并获取is-认证密钥
2-3.智能设备sdt向用户u注册:
sdt生成公私钥对:sdt根据自己的身份标识tid∈{0,1}*生成
sdt向用户u注册:
①智能设备发起请求,从用户u处获得公钥pku,参数
②sdt使用用户的u的公钥pku执行基于椭圆曲线的加密消息
③用户u收到rm1后,利用自己的私钥进行解密获得
回送{rm2,rm3}给智能设备sdt,为方便后面描述简记rm2和rm3如下:rm2={rm2l,rm2r},rm3={rm3l,rm3r};
④sdt收到后,使用私钥
因为,
接着,sdt使用
sdt用上面第③④步相同的计算,从rm3中取出ridi并存储:
使用私钥
因为,
接着,sdt使用h3(rid′i||μ′2)=r′2,然后再计算r′2p1是否等于rm3l(即r2p1),如果相等,则保存ridi,否则终止;
至此,智能设备存储自己的公钥信息pk,秘密保存存储
进一步的,步骤(4)所述的匿名双向认证,智能设备sdt代表用户u向应用服务器as访问时,每一次应用业务访问均生成一次性伪公钥(fpk):
3-1智能设备sdt生成一次性伪公钥fpk向服务器as发起认证请求:
sdt首先获取应用服务器的身份sidj及相应的公钥pkas,并随机生成k以及点qt=(x,y),进行如下计算:
其中,
再者,计算mm2=pxor(m2,qt),mfpk=pxor(fpk,qt),mppub=pxor(ppub,qt),vu=h(m1||sidj||fpk||ppub||t1),v=h(mm2,m3,mfpk,mppub,vu,t1);
所述的pxor操作,具体如下:
定义1:pxor(a,b);表示点a和点b的横纵坐标分别做异或
定义2:pxor(a,b);表示数a和点b的横纵坐标都做异或
最后,sdt发送{mm2,m3,mfpk,mppub,vu,t1,v}给应用服务器;需要说明的是当一次业务需要多次不同时间登录进行操作时,需要多次认证的话,qt是每次登录认证时随机生成的,其他的对应一次业务不变;
3-2.应用服务器as认证智能设备sdt
应用服务器收到后,首先检查tnow-t1≤δt是否符合?其中tnow指as收到信息的时刻,t1指sdt发送信息的时刻,δt指系统设置的阈值;如果上述表达式结果符合条件,则计算h(mm2,m3,mfpk,mppub,vu,t1)并验证是否与收到v一致?若不一致,则终止认证;否则应用服务器首先用自己的私钥skas从m3中解密出
3-3智能设备sdt认证应用服务器as并确认会话密钥
sdt收到后,检查t′now-t2≤δt是否符合,其中t′now指sdt收到信息的时刻,f2指as发送信息的时刻,δt指系统设置的阈值,若不符合终止认证,否则计算hqt′=pxor(m4,m1)=(x′,y′),同时计算hqt=(h(x),h(y)),并判断hqt′=hqt是否成立?如果成立则说明该应用服务器为ifttt服务器认证的合法应用服务器,同时将h(m1)作为本次通话的会话密钥;
接着,sdt随机生成r,计算出
最后,向应用服务器回送{m5,m6,msignfsk(fpk),t3,v};
3-4应用服务器as确认会话密钥
应用服务器收到后,检查t″now-t3≤δt是否符合,其中t″now指as收到信息的时刻,t3指sdt发送信息的时刻,δt指系统设置的阈值;如果上述表达式结果符合条件,接着验证h(m5,m6,msignfsk(fpk),t3)是否与v符合,若不符合终止认证,否则计算pxor(hqt*,qt*)是否与m5相等?如果相等则说明智能设备sdt已经认证完毕并已确定了本次会话密钥
进一步的,认证结果上链保存特征实现如下:
认证结束时,应用服务器将身份认证结果写入到区块链中;区块链的交易是以应用服务器的公钥作为地址发出的交易,除了含有应用服务器的签名、身份sidj外,必须包含智能设备sdt的fpk,r,signfsk(fpk),ppub,time1,其中time1为交易生成时间,其与signfsk(fpk)中隐含的t3之间的距离必须小于δt,矿工验证才能通过,确认其为新鲜的真实认证交易;
4-1.认证结果交易上链
为了完成有效的业务监管,智能设备和应用服务器完成双向认证后,应用服务器发起type为auth的交易,即
其中tcontent为:
{sidj,fpk,r,signfsk(fpk),ppub,time1,
矿工收到该交易后,确认该交易是auth类型,判断tin中的前一交易tpre和输入脚本
4-2.认证后业务交易上链
当应用服务器和智能设备sdt后续进行业务交互产生需要监管的数据时,其产生type为merch的交易,tin是中的前一交易tpre必须是type为auth的交易或者一个可以追溯到auth交易的一个merch交易;
如果该交易由应用服务器发起,可表示为:
其中tcontent为:
{sidj,fpk,r,ppub,m,signfsk(m),time1,
其中,m为应用服务器和智能设备sdt的使用会话密钥加密的业务数据,其可以随时供应用服务器和智能设备查阅,同时方便用户u监管自己的智能设备;
如果该交易由智能设备sdt发起,可表示为
其中tcontent为:
同样的,m为应用服务器和智能设备sdt的使用会话密钥加密的业务数据;
矿工收到应用服务器发起的业务交易后,首先根据tin找到初始的auth交易,如果没找到则退出,否则使用fpk,r,ppub,计算
矿工收到智能设备sdt发起的交易验证过程同上,具体为:
矿工收到智能设备sdt发起的业务交易后,同样先根据tin找到初始的auth交易,如果没找到则退出,否则使用pkas从
进一步的,监管特征实现如下:
用户通过查询区块链交易,针对每个交易的fpk,首先使用自己的私钥sku进行解密,如果可以成功解密出
本发明有益效果:
本发明引入区块链技术,构建用户可监管的智能设备访问外网时的匿名认证方法,利用区块链不可篡改的特性,用户可以随时通过区块链监管智能设备的所有行为,从而实现完全控制该智能设备。
附图说明
图1系统模型图;
图2整体流程图;
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1和2所示,一种面向智能家居的用户可监管匿名身份认证方法,其特征在于包括ifttt服务器、用户、智能设备、应用服务器和区块链组件,各个组件交互步骤如下:
1初始化在该过程中,ifttt服务器初始化:为应用服务器和用户提供可信is-认证密钥准备好参数;其次,用户初始化:为内部的智能设备安全通信准备好参数;最后,区块链初始化:基于双线性映射加密方案的参数,为所有用户和智能设备的监管准备好参数。
1-1用户u单独为家居网内智能设备初始化参数和公私钥对
用户u首先选择一个大素数pu,并在有限域
1-2区块链平台为所有的用户初始化系统公共参数
区块链平台为所有用户选定一双线性群
其中p为群
2用户和应用服务器分别向ifttt服务器注册用户和应用服务器均事先向ifttt服务器注册并获得is-认证密钥方可进行下一步。
2-1用户ui通过ifttt网关hgig向ifttt服务器is注册并获取is-认证密钥
2-2应用服务器sj向ifttt服务器is注册并获取is-认证密钥
智能设备向用户注册:智能设备sdt向用户u注册
3-1sdt生成公私钥对:sdt根据自己的身份标识tid∈{0,1}*生成
3-2sdt向用户u注册:
(1)智能设备发起请求,从用户u处获得公钥pku,参数{epu(au,bu),pu,pu}以及公共参数pp。
(2)sdt使用用户的u的公钥pku执行基于椭圆曲线的加密消息
(3)u收到rm1后,利用自己的私钥进行解密获得
回送{rm2,rm3}给智能设备sdt,为方便后面描述简记rm2和rm3如下:rm2={rm2l,rm2r},rm3={rm3l,rm3r}。
(4)sdt收到后,使用私钥
因为,
接着,sdt使用
智能设备代表用户访问应用服务器实现匿名双向认证:智能设备sdt代表用户向应用服务器as访问时,每一次应用业务访问均生成伪公钥(fpk):例如购买行为中的一个订单交易对应一个fpk;智能设备sdt与应用服务器as的匿名认证流程如表1所示。
表1sdt与as匿名认证流程
4-1智能设备sdt生成一次性业务公钥fpk向服务器as发起认证请求
sdt首先获取应用服务器的身份sidj及相应的公钥pkas,并随机生成k以及点qt=(x,y),进行如下计算:
其中,
再者,计算mm2=pxor(m2,qt),mfpk=pxor(fpk,qt),mppub=pxor(ppub,qt),vu=h(m1||sidj||fpk||ppub||t1),v=h(mm2,m3,mfpk,mppub,vu,t1)。
最后,sdt发送{mm2,m3,mfpk,mppub,vu,t1,v}给应用服务器;需要说明的是当一次业务需要多次不同时间登录进行操作时,需要多次认证的话,qt是每次登录认证时随机生成的,其他的对应一次业务不变。
4-2应用服务器as认证智能设备sdt
应用服务器收到后,首先检查tnow-t1≤δt是否符合?其中tnow指as收到信息的时刻,t1指sdt发送信息的时刻,δt指系统设置的阈值;如果符合,则计算h(mm2,m3,mfpk,mppub,vu,t1)并验证是否与收到v一致?若不一致,则终止认证;否则应用服务器首先用自己的私钥skas从m3中解密出
4-3智能设备sdt认证应用服务器as并确认会话密钥
sdt收到后,检查t′now-t2≤δt是否符合,其中t′now指sdt收到信息的时刻,t2指as发送信息的时刻,δt指系统设置的阈值,若不符合终止认证,否则计算hqt′=pxor(m4,m1)=(x′,y′),同时计算hqt=(h(x),h(y)),并判断hqt′=hqt是否成立?如果成立则说明该应用服务器为ifttt服务器认证的合法应用服务器,同时将h(m1)作为本次通话的会话密钥。
接着,sdt随机生成r,计算出
最后,向应用服务器回送{m5,m6,msignfsk(fpk),t3,v}。
4-4应用服务器as确认会话密钥
应用服务器收到后,检查t″now-t3≤δt是否符合,其中t″now指as收到信息的时刻,t3指sdt发送信息的时刻,δt指系统设置的阈值;并验证h(m5,m6,msignfsk(fpk),t3)是否与v符合,若不符合终止认证,否则计算pxor(hqt*,qt*)是否与m5相等?如果相等则说明智能设备sdt已经认证完毕并已确定了本次会话密钥
认证结果上链保存:saa-daes协议中用户可监管的认证交易格式tx,描述如下所示:
tid是交易标识;ttype表示本交易的类型,为了实现用户全程监管,交易可以分为{auth,merch}两种类型,其中auth表示tcontent为认证结果,merch表示tcontent为交互业务记录;tin表示交易的输入项,即交易成立前验证所需参数和智能合约(脚本);tout表示交易的输出项,即交易传递给下一交易生成验证时所需参数和智能合约(脚本)。为更清晰阐述,tx格式可表示为表2。
表2认证交易tx
其中,tpre表示前一次交易;
认证结束时,应用服务器将身份认证结果写入到区块链中。区块链的交易是以应用服务器的公钥作为地址发出的交易,除了含有应用服务器的签名、身份sidj外,必须包含智能设备sdt的fpk,r,signfsk(fpk),ppub,time1,其中time1为交易生成时间,其与signfsk(fpk)中隐含的t3之间的距离必须小于δt,矿工验证才能通过,确认其为新鲜的真实认证交易;
5-1认证结果交易上链
为了完成有效的业务监管,智能设备和应用服务器完成双向认证后,应用服务器发起type为auth的交易,即
其中tcontent为:
{sidj,fpk,r,signfsk(fpk),ppub,time1,
矿工收到该交易后,确认该交易是auth类型,判断tin中的前一交易tpre和输入脚本
5-2认证后业务交易上链
当应用服务器和智能设备sdt后续进行业务交互产生需要监管的数据时,其产生type为merch的交易,tin是中的前一交易tpre必须是type为auth的交易或者一个可以追溯到auth交易的一个merch交易。
如果该交易由应用服务器发起,可表示为:
其中tcontent为:
{sidj,fpk,r,ppub,m,signfsk(m),time1,
如果该交易由智能设备sdt发起,可表示为
其中tcontent为:
需要说明的是,此时的m为应用服务器和智能设备sdt的使用会话密钥加密的业务数据,其可以随时供应用服务器和智能设备查阅,同时方便用户u监管自己的智能设备。
矿工收到应用服务器发起的业务交易后,首先根据tin找到初始的auth交易,如果没找到则退出,否则使用fpk,r,ppub,计算
矿工收到智能设备sdt发起的交易验证过程如上,不做赘述。
用户监管智能设备:用户通过查询区块链交易,针对每个交易的fpk,首先使用自己的私钥sku进行解密,如果可以成功解密出