一种基于车联网的移动终端设备可信认证方法及系统
技术领域
本发明涉及一种基于车联网的移动终端设备可信认证方法及系统。
背景技术
移动通信技术的普及,使得越来越多的用户依赖移动终端应用进行信息交互,尤其是车联网领域。用户可以使用移动终端设备实时查看车辆信息和状态,并发送指令对车辆进行实时操作。但是,移动终端属于第三方设备,车联网服务商存在无法准确识别设备是否可信、用户端软件是否遭受非法入侵、设备信息是否篡改等问题。因此,如何有效的对车联网提供一种可信认证,成为目前解决车联网安全的关键问题之一。
虽然目前提供设备认证的方法有很多,但是传统的设备采取设备信息加密的认证方法,其认证形式较为单一,攻击者很容易通过收集大量设备交互信息或数据进行识别,从而伪装真实用户对车辆进行控制,进而给车联网用户造成了重大损失。
另一方面,由于云计算和大数据的发展,用户在其它平台中预留的真实信息,在其它平台安全度不高的情况下,攻击者很容易获取到这些用户真实信息,并利用该信息伪装成车联网系统用户,进而入侵车联网系统对车辆发动攻击,从而造成不可预料的风险。因此,针对车联网用户设备提供一种可信认证,显得很有必要。
发明内容
针对车联网系统中存在移动设备认证难度较大的问题,本发明提出了一种基于车联网的移动终端设备可信认证方法及系统,将移动终端和服务器层利用区块链节点隔开,防止非法窃听和攻击。同时,利用设备中的ID生成虚拟传递网络标签,并在服务器中进行认证,有效的阻止设备伪装或信息篡改,其具体发明内容如下所述。
一种基于车联网的移动终端设备可信认证模型,包括以下步骤。
步骤1:模型参数初始化工作。
包括车联网系统需要对车载设备或移动终端的ID、共享密钥K、传输允许的最大延时t max 、与真实ID对应的网络传输标记Tag等信息,以及服务器端和移动终端时间戳进行初始化同步,确保时间戳的一致性。
步骤2:车联网系统中的云服务器根据当前的系统负载,构建区块链节点层,并将区块链节点层提供对外互联网访问功能,以此隐藏系统底层中的服务层和云服务器节点。
步骤3:云服务器与手机或车载设备等移动终端利用区块链节点建立通信信道,移动终端根据设备ID 1 和当前的时间戳T i 生成网络传输的Tag = Se(ID 1 , T i )值,并将Tag值和时间戳T i 利用服务器公布的RSA公钥加密得到ETag和ET i ,传递给区块链节点,由区块链节点转移给云服务器进行下一步操作。
步骤4:云服务器依据移动终端设备发送的通信数据,获取的加密的ETag值和时间戳ET i 等信息,利用存储在服务器端口的RSA私钥进行解密,得到原始明文数据Tag值和时间戳T i 。
同时,服务器将当前的时间戳T i+1 与移动终端发送的时间戳T i 进行对比,得到时间戳的差值ΔT 1 = | T i+1 - T i |。
步骤5:如果ΔT 1 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给移动终端,提示用户认证失败,信息延时无法传递,让移动终端重新发送数据,回到步骤3。
如果ΔT 1 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤6:由于延时在可控范围内,表明数据在正常通信信道中传输。
此时,云服务器根据解密的Tag和移动终端传递的T i 解密得到移动终端的ID 2 = De (Tag, T i )。
在服务器中查询该ID 2 ,如果该ID 2 不存在,则表示数据被篡改或伪造,认证终止,并返回消息。
如果该ID 2 存在,则通过该设备ID 2 ,查询到系统中对应的设备的RSA公钥。
步骤7:服务器端利用时间戳随机函数Radom(T i ),生成128位系统端的随机数R x ,同时将服务器当前的时间戳T i+2 和刚刚生成随机数R x ,利用步骤6查询的RSA公钥加密得到ET i+2 和ER x ,并将该参数传递给移动终端。
步骤8:移动终端收到加密数据ET i+2 和ER x 后,利用本地的RSA私钥解密,得到明文数据时间戳T i+2 和随机数R x ;利用移动终端设备当前的时间戳T i+3 和发送的时间戳T i+2 进行比对,得到时间戳差值ΔT 2 = | T i+3 - T i+2 |。
如果ΔT 2 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给服务器,提示本次认证失败,信息延时无法传递,让服务器端重新发送数据,回到步骤6。
如果ΔT 2 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤9:移动终端的延时认证通过后,则会利用同样的时间戳随机函数Radom(T i ),生成移动终端的128为随机数R y ,并利用初始化中的共享密钥,将R x 和R y 生成两个认证消息M 1 = AUE(K⊕R y , R x )和M 2 = AUE(ID⊕R y , R x )。
利用服务器的RSA公钥,对其认证消息M 1 和M 2 进行加密得到密文E 1 和E 2 ;移动终端将密文E 1 、E 2 、ETag和ET i+4 发送给区块链节点。
步骤10:区块链节点将移动终端发送的加密信息传递给服务器端,由服务器端进行解密,得到明文数据,包括认证消息M 1 、M 2 、网络标签Tag和时间戳T i+4 等。
服务器端利用当前的时间戳和移动终端T i+5 发送的时间戳T i+4 进行比对,得到时间戳差值ΔT 3 = | T i+5 - T i+4 |。
如果ΔT 3 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给移动终端,提示本次认证失败,信息延时无法传递,让移动终端重新发送数据,回到步骤9。
如果ΔT 3 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤11:云服务器根据解密的Tag和移动终端传递的T i+4 解密得到移动终端的ID 3 = De(Tag, T i+4 )。
如果在服务器系统查询中该ID 3 不存在,则表示数据被篡改或伪造,认证终止,并返回消息;如果该ID3存在,则通过该设备ID 3 ,查询到系统中对应的设备的RSA公钥,并进行下一步操作。
步骤12:利用共享密钥K和RSA公钥,对认证消息M 1 进行解密可以得到R x1 和R y1 ,对认证消息M 2 进行解密可以得到R x2 和R y2 。
当且仅当|R x1 = R x2 |和|R y1 = R y2 |二者同时满足时,可信认证才算通过,移动终端可以正常通信。
一种基于车联网的移动终端设备可信认证方法,其内容如下:
系统初始化,车联网系统需要对移动终端的ID、共享密钥K、传输允许的最大延时t max 、与真实ID对应的网络传输标记Tag等信息。
服务器端和移动终端时间戳进行初始化同步,确保时间戳的一致性
移动终端根据设备ID 1 和当前的时间戳T i 生成网络传输的Tag = Se(ID 1 , T i )值,并利用服务器公布的RSA公钥加密得到ETag = ESRSA(Tag)和ET i = ESRSA(T i ),将加密参数发送给区块链节点。
区块链节点将加密参数传递给服务器,并利用服务器中存储的私钥进行解密,得到明文数据设备标签Tag=DSRSA(ETag)和时间戳T i =DSRSA(T i )。
服务器端利用本地时间戳T i+1 和发送时间戳T i 进行对比,得到差值ΔT 1 = | T i+1 - T i |。
如果ΔT 1 ≥ t max ,认证失败;如果ΔT 1 < t max ,认证继续。
云服务器利用Tag可以得到ID 2 = De(Tag, Ti)。
在服务器中查询该ID 2 ,如果该ID 2 不存在,则认证终止,并返回消息;如果该ID 2 存在,则认证继续,并通过ID 2 查询到系统中对应的设备的RSA公钥;
服务器端利用当前时间戳T i+2 和随机函数生成128位系统端的随机数R x = Radom (T i+2 ),并利用设备的RSA公钥加密得到ET i+2 = ECRSA(T i+2 )和ER x = ECRSA(R x ),将参数返回给移动终端。
移动终端对加密参数进行解密,得到T i+2 = DCRSA(ET i+2 ) 和R x = DCRSA(ER x ),并利用本地当前时间戳T i+3 进行差值比较得到ΔT 2 = | T i+3 - T i+2 |。
如果ΔT 2 ≥ t max ,认证失败;如果ΔT 2 < t max ,认证继续。
移动终端会利用时间戳T i+3 和随机函数得到128位随机数R y = Radom(T i+3 )。
利用初始化中的共享密钥,将R x 和R y 生成两个认证消息M 1 = AUE(K⊕R y , R x )和M 2 = AUE(ID⊕R y , R x )。
将相关认证参数进行加密,得到E 1 = ESRSA(M 1 )、E 2 = ESRSA(M 2 )、ETag = ESRSA (Tag)和ET i+4 = ESRSA(T i+4 ),并发送给服务器。
服务器对接收的数据进行解密,得到M 1 = DSRSA(E 1 )、M 2 = DSRSA(E 2 )、Tag = DSRSA(ETag)和T i+4 = DSRSA(ET i+4 )。
利用服务器端当前时间戳T i+5 进行比对,得到时间戳差值ΔT 3 = | T i+5 - T i+4 |。
如果ΔT 3 ≥ t max ,认证失败;如果ΔT 3 < t max ,认证继续。
对认证消息进行解密,得到ID 3 = De(Tag, Ti),{R x1 , R y1 } = AUD(K⊕M 1 ),{R x2 ,R y2 } = AUD(ID 3 ⊕M 2 )。
如果在服务器中该ID 3 不存在,则认证终止;如果该ID 3 存在,则认证继续。
当且仅当|R x1 = R x2 |和|R y1 = R y2 |二者同时满足时,可信认证成功。
一种基于车联网的移动终端设备可信认证系统,其内容为:
系统初始化模块,移动终端的软件安装以及车载设备的系统初始化完成后,会将激活信息发送给服务器,比对服务器的时间戳,加载RSA密钥信息,完成整个车联网系统的初始化工作。
数据加密模块,服务器、移动终端和车载设备在系统初始化阶段,会分享各自的公钥,并在本地加密区域留存私钥;在数据传输过程中,对数据进行加密传输,保证通信系统的安全。
数据解密模块,服务器、移动终端和车载设备的利用留存在本地私钥,对加密数据进行解密,并反馈解密信息。
可信认证模块,服务器和移动终端或车载设备之间,利用权利1或权利2中所述的模型或方法,完成移动终端或车载设备的可信认证,对认证通过后的设备,进行数据互联互通。
有益效果如下所述。
本发明提出一种基于车联网的移动终端设备可信认证方法及系统,该方法在加密算法的基础上,针对复杂网络环境中的车联网移动终端用户提供一种安全可靠的可信认证方法。由于移动终端用户具有良好的便携性,用户使用移动端接收或发送消息控制车辆成为了一种趋势。另一方面,移动终端设备的制造并不是由车联网服务商提供的,服务商提供的移动终端软件也存在第三方攻击的风险,再者通信信道中的数据也有被篡改的可能,因此其安全性得不到保障,尤其是在设备认证上。因此,本发明提供了一种基于车联网的移动终端设备可信认证的解决方案,在移动终端设备和服务器之间,建立可信的加密认证信道,实现可信移动终端的信息安全传输,最终保障整个车联网系统的安全。
附图说明
图1为本发明所述的车联网移动终端可信认证系统模型图;
图2为本发明所述的车联网移动终端可信认证方法图。
具体实施方式
下面结合附图和实施方式对本发明做进一步说明。
如图1所示,一种基于移动终端可信认证系统模型,包括以下内容。
步骤1:模型参数初始化工作。
包括车联网系统需要对车载设备或移动终端的ID、共享密钥K、传输允许的最大延时t max 、与真实ID对应的网络传输标记Tag等信息,以及服务器端和移动终端时间戳进行初始化同步,确保时间戳的一致性。
步骤2:车联网系统中的云服务器根据当前的系统负载,构建区块链节点层,并将区块链节点层提供对外互联网访问功能,以此隐藏系统底层中的服务层和云服务器节点。
步骤3:云服务器与手机或车载设备等移动终端利用区块链节点建立通信信道,移动终端根据设备ID 1 和当前的时间戳T i 生成网络传输的Tag = Se(ID 1 , T i )值,并将Tag值和时间戳T i 利用服务器公布的RSA公钥加密得到ETag和ET i ,传递给区块链节点,由区块链节点转移给云服务器进行下一步操作。
步骤4:云服务器依据移动终端设备发送的通信数据,获取的加密的ETag值和时间戳ET i 等信息,利用存储在服务器端口的RSA私钥进行解密,得到原始明文数据Tag值和时间戳T i 。
同时,服务器将当前的时间戳T i+1 与移动终端发送的时间戳T i 进行对比,得到时间戳的差值ΔT 1 = | T i+1 - T i |。
步骤5:如果ΔT 1 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给移动终端,提示用户认证失败,信息延时无法传递,让移动终端重新发送数据,回到步骤3。
如果ΔT 1 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤6:由于延时在可控范围内,表明数据在正常通信信道中传输。
此时,云服务器根据解密的Tag和移动终端传递的T i 解密得到移动终端的ID 2 = De (Tag, T i )。
在服务器中查询该ID 2 ,如果该ID 2 不存在,则表示数据被篡改或伪造,认证终止,并返回消息。
如果该ID 2 存在,则通过该设备ID 2 ,查询到系统中对应的设备的RSA公钥。
步骤7:服务器端利用时间戳随机函数Radom(T i ),生成128位系统端的随机数R x ,同时将服务器当前的时间戳T i+2 和刚刚生成随机数R x ,利用步骤6查询的RSA公钥加密得到ET i+2 和ER x ,并将该参数传递给移动终端。
步骤8:移动终端收到加密数据ET i+2 和ER x 后,利用本地的RSA私钥解密,得到明文数据时间戳T i+2 和随机数R x ;利用移动终端设备当前的时间戳T i+3 和发送的时间戳T i+2 进行比对,得到时间戳差值ΔT 2 = | T i+3 - T i+2 |。
如果ΔT 2 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给服务器,提示本次认证失败,信息延时无法传递,让服务器端重新发送数据,回到步骤6。
如果ΔT 2 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤9:移动终端的延时认证通过后,则会利用同样的时间戳随机函数Radom(T i ),生成移动终端的128为随机数R y ,并利用初始化中的共享密钥,将R x 和R y 生成两个认证消息M 1 = AUE(K⊕R y , R x )和M 2 = AUE(ID⊕R y , R x )。
利用服务器的RSA公钥,对其认证消息M 1 和M 2 进行加密得到密文E 1 和E 2 ;移动终端将密文E 1 、E 2 、ETag和ET i+4 发送给区块链节点。
步骤10:区块链节点将移动终端发送的加密信息传递给服务器端,由服务器端进行解密,得到明文数据,包括认证消息M 1 、M 2 、网络标签Tag和时间戳T i+4 等。
服务器端利用当前的时间戳和移动终端T i+5 发送的时间戳T i+4 进行比对,得到时间戳差值ΔT 3 = | T i+5 - T i+4 |。
如果ΔT 3 ≥ t max ,那么直接抛弃数据,并返回数据超时信息给移动终端,提示本次认证失败,信息延时无法传递,让移动终端重新发送数据,回到步骤9。
如果ΔT 3 < t max ,那么数据的延时在可控范围内传递,可信认证继续执行,进行下一步认证操作。
步骤11:云服务器根据解密的Tag和移动终端传递的T i+4 解密得到移动终端的ID 3 = De(Tag, T i+4 )。
如果在服务器系统查询中该ID 3 不存在,则表示数据被篡改或伪造,认证终止,并返回消息;如果该ID3存在,则通过该设备ID 3 ,查询到系统中对应的设备的RSA公钥,并进行下一步操作。
步骤12:利用共享密钥K和RSA公钥,对认证消息M 1 进行解密可以得到R x1 和R y1 ,对认证消息M 2 进行解密可以得到R x2 和R y2 。
当且仅当|R x1 = R x2 |和|R y1 = R y2 |二者同时满足时,可信认证才算通过,移动终端可以正常通信。
如图2所示,一种基于车联网的移动终端可信认证系统方法图,其主要内容如下所述。
系统初始化,车联网系统需要对移动终端的ID、共享密钥K、传输允许的最大延时t max 、与真实ID对应的网络传输标记Tag等信息。
服务器端和移动终端时间戳进行初始化同步,确保时间戳的一致性。
移动终端根据设备ID 1 和当前的时间戳T i 生成网络传输的Tag = Se(ID 1 , T i )值,并利用服务器公布的RSA公钥加密得到ETag = ESRSA(Tag)和ET i = ESRSA(T i ),将加密参数发送给区块链节点。
区块链节点将加密参数传递给服务器,并利用服务器中存储的私钥进行解密,得到明文数据设备标签Tag=DSRSA(ETag)和时间戳T i =DSRSA(T i )。
服务器端利用本地时间戳T i+1 和发送时间戳T i 进行对比,得到差值ΔT 1 = | T i+1 - T i |。
如果ΔT 1 ≥ t max ,认证失败;如果ΔT 1 < t max ,认证继续。
云服务器利用Tag可以得到ID 2 = De(Tag, Ti)。
在服务器中查询该ID 2 ,如果该ID 2 不存在,则认证终止,并返回消息;如果该ID 2 存在,则认证继续,并通过ID 2 查询到系统中对应的设备的RSA公钥;
服务器端利用当前时间戳T i+2 和随机函数生成128位系统端的随机数R x = Radom (T i+2 ),并利用设备的RSA公钥加密得到ET i+2 = ECRSA(T i+2 )和ER x = ECRSA(R x ),将参数返回给移动终端。
移动终端对加密参数进行解密,得到T i+2 = DCRSA(ET i+2 ) 和R x = DCRSA(ER x ),并利用本地当前时间戳T i+3 进行差值比较得到ΔT 2 = | T i+3 - T i+2 |。
如果ΔT 2 ≥ t max ,认证失败;如果ΔT 2 < t max ,认证继续。
移动终端会利用时间戳T i+3 和随机函数得到128位随机数R y = Radom(T i+3 )。
利用初始化中的共享密钥,将R x 和R y 生成两个认证消息M 1 = AUE(K⊕R y , R x )和M 2 = AUE(ID⊕R y , R x )。
将相关认证参数进行加密,得到E 1 = ESRSA(M 1 )、E 2 = ESRSA(M 2 )、ETag = ESRSA (Tag)和ET i+4 = ESRSA(T i+4 ),并发送给服务器。
服务器对接收的数据进行解密,得到M 1 = DSRSA(E 1 )、M 2 = DSRSA(E 2 )、Tag = DSRSA(ETag)和T i+4 = DSRSA(ET i+4 )。
利用服务器端当前时间戳T i+5 进行比对,得到时间戳差值ΔT 3 = | T i+5 - T i+4 |。
如果ΔT 3 ≥ t max ,认证失败;如果ΔT 3 < t max ,认证继续。
对认证消息进行解密,得到ID 3 = De(Tag, Ti),{R x1 , R y1 } = AUD(K⊕M 1 ),{R x2 ,R y2 } = AUD(ID 3 ⊕M 2 )。
如果在服务器中该ID 3 不存在,则认证终止;如果该ID 3 存在,则认证继续。
当且仅当|R x1 = R x2 |和|R y1 = R y2 |二者同时满足时,可信认证成功。
综上所述,本发明提出一种基于车联网的移动终端设备可信认证方法及系统,该方法在加密算法的基础上,针对复杂网络环境中的车联网移动终端用户提供一种安全可靠的可信认证方法。由于移动终端用户具有良好的便携性,用户使用移动端接收或发送消息控制车辆成为了一种趋势。另一方面,移动终端设备的制造并不是由车联网服务商提供的,服务商提供的移动终端软件也存在第三方攻击的风险,再者通信信道中的数据也有被篡改的可能,因此其安全性得不到保障,尤其是在设备认证上。
因此,本发明提供了一种基于车联网的移动终端设备可信认证的解决方案,在移动终端设备和服务器之间,建立可信的加密认证信道,实现可信移动终端的信息安全传输,最终保障整个车联网系统的安全。
本发明中所叙述的具体实施方案仅仅是对本发明所做出的具体说明,本发明所属技术领域中的技术人员可以根据实际情况,对具体实施案例做出对应的修改、补充或采取相似方式替换,但这并不会偏离本发明的精神或超出权利要求书中的定义范围。