建立TBOX终端和TSP平台之间通道的方法以及系统与流程

文档序号:12751492阅读:23304来源:国知局
建立TBOX终端和TSP平台之间通道的方法以及系统与流程

本发明涉及一种建立TBOX终端和TSP平台之间通道的方法以及系统。



背景技术:

车联网系统由车、安装在车上的TBOX终端、TSP服务平台、用户端的手机APP或者PC WEB用户端四部分组成,用户使用手机APP或者WEB用户端,可以从软件的界面对车辆进行控制,例如:下发锁车、开关空调、开关车门车窗等命令,并可以通过手机APP或者是WEB用户端查看车辆的相关信息,进行一些车辆状态查看、故障诊断等。具体过程是用户使用手机APP或者WEB用户端发出的指令通过网络传输到TSP平台,再发送给TBOX终端,TBOX终端通过车辆的CAN总线命令下发给车辆,进行控制。TBOX终端通过CAN总线、定位模块、惯性测量传感器模块等采集车辆状态后,通过无线通信网络发送给TSP平台,TSP平台再发送给手机APP或者WEB用户端,客户就可以进行状态查看或者是故障诊断。

其存在的缺点:由于多个环节采用明文通信,容易遭到黑客入侵破坏,导致以下后果:

TBOX终端和TSP平台之间通信的数据被窃听,破解。车辆私人信息被非法获取。

TBOX终端和TSP平台认证出现问题,TBOX终端被连接到非法中心,车辆被非法控制,造成交通安全事故:例如发动机、油门、ABS、空调、车门车窗等等被控制。

名词解释:

TBOX终端:Telematics BOX,简称车载TBOX,主要用于采集车辆相关信息,包含:位置信息、姿态信息、车辆状态信息(通过连接车上CAN总线)等,然后通过无线通信将信息传送到TSP平台。同时用户使用手机APP和PC的WEB用户端可以通过TSP平台下发指令给TBOX终端,对车辆进行控制操作,例如开关车门、开关空调等。

TSP平台:TSP服务平台,用于接收TBOX终端上传的数据,进行处理分析,并将用户从手机APP或者是PC的WEB用户端下发的车辆控制指令报文发送给TBOX终端。

手机APP/PC WEB用户端:手机上安装的应用程序用户端/个人电脑上安装的应用程序用户端。

Key:密钥。

HMAC:HMAC是密钥相关的哈希运算消息认证码(Hash-based MessageAuthentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC需要使用一个加密用的散列函数,例如SHA(256)。

SHA:安全哈希算法(Secure Hash Algorithm),主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(DigitalSignature Algorithm DSA)。

SHA(256):基于256bit长度密钥的SHA算法。

AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,是一种对称性的加密算法。这个标准用来替代原先的DES,已经广为全世界所使用。

AES(128):基于128bit长度密钥的AES算法。

硬件安全加密SIM卡:硬件SIM卡,内置安全加密芯片,其内部内置安全加密算法,通过ISO7816等接口和TBOX终端的MCU连接,可以实现包括:获取硬件安全加密SIM卡的IMSI号、数据加密、数据解密、随机生成数字,保存密钥及随机数等功能。其在出厂前安装,安装方式是在生产的时候直接以表贴的形式贴片在PCB板上。

密钥管理服务器(KMS):简称硬件加密机,负责密钥的生成、分发、存储、备份、管理、销毁等等,同时负责TSP平台的报文的加解密。



技术实现要素:

本发明要解决的技术问题,在于提供一种建立TBOX终端和TSP平台之间通道的方法以及系统,防止因TBOX终端和TSP平台之间的交互流程被攻击而出现通讯数据被破解泄露,车辆被恶意控制。

本发明之一是这样实现的:一种建立TBOX终端和TSP平台之间通道的方法,包括如下步骤:

步骤1、生成硬件安全加密SIM卡主密钥;

步骤2、建立TBOX终端与TSP平台通信通道,并根据硬件安全加密SIM卡主密钥进行认证。

进一步地,所述步骤2进一步具体为:

TBOX终端使用硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台;

TSP平台收到来自TBOX终端设备的认证请求报文,并生成一个32字节的随机数KMSrnd_32byte;之后生成一字符串KMS_S(KMSrnd_32byte,TSPId,IMEINo,IMSINo),其中TSPId为TSP平台标识码;

根据硬件安全加密SIM卡的IMSI号IMSINo获取硬件安全加密SIM卡主密钥,并对KMS_S进行加密,将形成的加密字符串ENKMS_S发给发送给TBOX终端;

TBOX终端根据硬件安全加密SIM卡主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到IMSINo和IMEINo的值,并进行校验;

校验结果通过的话,则继续进行双向认证,否则认证失败,结束认证;

TBOX终端生成一个32字节的随机数TBOXrnd_32byte;TBOX终端利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

TBOX终端生成字符串TBOX_SS(KMSrnd_32byte,TBOXrnd_32byte,IMSINo,IMEINo),并使用TBOX终端的硬件安全加密SIM卡主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS;

TBOX终端将加密字符串ENTBOX_SS发到TSP平台;

TSP平台根据硬件安全加密SIM卡主密钥解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte、IMEINo和IMSINo的值;

如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证;

TSP平台利用TBOXrnd_32byte和KMSrnd_32byte以同样的方法生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

双向认证完成,通道建立成功。

进一步地,还包括步骤3、TBOX终端与TSP平台进行报文的相互传输。

进一步地,所述TSP平台设有硬件加密机,所述步骤3进一步具体为:

TBOX终端发送报文给TSP平台如下:

发送会话计数器累加:TBOX终端将需要上传到TSP平台的明文数据TBOX_SENDDATA准备好,并将上行会话计数器SOC_U值+1;

发送报文加密:TBOX终端使用上行会话密钥KSET_U加密明文数据SOC_U+TBOX_SENDDATA,得到加密数据ENTBOX_SENDDATA,把加密数据ENTBOX_SENDDATA作为加密报文的正文部分;

计算哈希值:TBOX终端使用HMAC算法计算加密数据ENTBOX_SENDDATA的哈希值,并附在加密报文正文后面,形成完整的加密报文;

发送加密报文:TBOX终端设备发送加密报文和硬件安全加密SIM卡的IMSI号IMSINo给TSP平台,TSP平台将加密报文和硬件安全加密SIM卡的IMSI号IMSINo传送给硬件加密机;

接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理;

TSP平台发送报文给TBOX终端如下:

发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及硬件安全加密SIM卡的IMSI号IMSINo发给硬件加密机,硬件加密机将下行会话计数器值SOC_D的值+1;

发送报文加密:硬件加密机使用下行会话密钥KSET_ENC_D加密明文数据SOC_D+TSP_SENDDATA,得到加密数据ENTSP_SENDDATA,把加密数据ENTSP_SENDDATA作为加密报文的正文部分;

计算哈希值:硬件加密机使用HMAC算法计算加密数据ENTSP_SENDDATA的哈希值,附在加密报文正文部分的后面,生成完整报文,并返回给TSP平台;

发送加密报文:TSP平台将加密报文发给TBOX终端;

接收报文,校验完整性:TBOX终端将下行会话计数器值SOC_D的值+1,并使用HMAC算法来计算加密报文正文的哈希值,之后对比加密报文尾部附带的值,是否正确,检验报文的完整性;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:TBOX终端采用下行会话密钥KSET_ENC_D解密加密报文的正文值,得到明文,并进行处理。

进一步地,所述上行下行密钥生成方法:

计算HMAC(MACKey,TBOXrnd_32byte)的值D1;

计算HMAC(MACKey,KMSrnd_32byte)的值D2。

使用D1的值和D2的值异或,生成D3;

取D3的起始16个字节作为KSET_ENC_U,用于上行会话AES加密使用,取D3末尾的16个字节作为KSET_MAC_U,用于上行会话HMAC计算作为KEY使用;将KSET_ENC_U和KSET_MAC_U组成上行会话密钥KSET_U;

使用D1的值和D2的值,累加生成D4

取D4的起始16个字节作为KSET_ENC_D,用于下行会话AES加密使用,取D4末尾的16个字节作为KSET_MAC_D,用于下行会话HMAC计算作为KEY使用;两个16字节的密钥组成下行会话密钥KSET_D。

进一步地,所述SOC_U以及SOC_D生成方法:

计算AES(AESKey,TBOXrnd_32byte)的值S1;

计算AES(AESKey,KMSrnd_32byte)的值S2;

使用S1的值和S2的值,累加生成S3;

取S3最初16个字节作为SOC_U,上行会话顺序计数器,取S3末尾的16个字节作为SOC_D,作为下行会话顺序计数器。

本发明之二是这样实现的:一种建立TBOX终端和TSP平台之间通道的系统,包括如下模块:

生成密钥模块,生成硬件安全加密SIM卡主密钥;

通道建立模块,建立TBOX终端与TSP平台通信通道,并根据硬件安全加密SIM卡主密钥进行认证。

进一步地,所述通道建立模块进一步具体为:

TBOX终端使用硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台;

TSP平台收到来自TBOX终端设备的认证请求报文,并生成一个32字节的随机数KMSrnd_32byte;之后生成一字符串KMS_S(KMSrnd_32byte,TSPId,IMEINo,IMSINo),其中TSPId为TSP平台标识码;

根据硬件安全加密SIM卡的IMSI号IMSINo获取硬件安全加密SIM卡主密钥,并对KMS_S进行加密,将形成的加密字符串ENKMS_S发给发送给TBOX终端;

TBOX终端根据硬件安全加密SIM卡主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到IMSINo和IMEINo的值,并进行校验;

校验结果通过的话,则继续进行双向认证,否则认证失败,结束认证;

TBOX终端生成一个32字节的随机数TBOXrnd_32byte;TBOX终端利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

TBOX终端生成字符串TBOX_SS(KMSrnd_32byte,TBOXrnd_32byte,IMSINo,IMEINo),并使用TBOX终端的硬件安全加密SIM卡主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS;

TBOX终端将加密字符串ENTBOX_SS发到TSP平台;

TSP平台根据硬件安全加密SIM卡主密钥解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte、IMEINo和IMSINo的值;

如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证;

TSP平台利用TBOXrnd_32byte和KMSrnd_32byte以同样的系统生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

双向认证完成,通道建立成功。

进一步地,还包括报文传输模块,TBOX终端与TSP平台进行报文的相互传输。

进一步地,所述TSP平台设有硬件加密机,所述报文传输模块进一步具体为:

TBOX终端发送报文给TSP平台如下:

发送会话计数器累加:TBOX终端将需要上传到TSP平台的明文数据TBOX_SENDDATA准备好,并将上行会话计数器SOC_U值+1;

发送报文加密:TBOX终端使用上行会话密钥KSET_U加密明文数据SOC_U+TBOX_SENDDATA,得到加密数据ENTBOX_SENDDATA,把加密数据ENTBOX_SENDDATA作为加密报文的正文部分;

计算哈希值:TBOX终端使用HMAC算法计算加密数据ENTBOX_SENDDATA的哈希值,并附在加密报文正文后面,形成完整的加密报文;

发送加密报文:TBOX终端设备发送加密报文和硬件安全加密SIM卡的IMSI号IMSINo给TSP平台,TSP平台将加密报文和硬件安全加密SIM卡的IMSI号IMSINo传送给硬件加密机;

接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理;

TSP平台发送报文给TBOX终端如下:

发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及硬件安全加密SIM卡的IMSI号IMSINo发给硬件加密机,硬件加密机将下行会话计数器值SOC_D的值+1;

发送报文加密:硬件加密机使用下行会话密钥KSET_ENC_D加密明文数据SOC_D+TSP_SENDDATA,得到加密数据ENTSP_SENDDATA,把加密数据ENTSP_SENDDATA作为加密报文的正文部分;

计算哈希值:硬件加密机使用HMAC算法计算加密数据ENTSP_SENDDATA的哈希值,附在加密报文正文部分的后面,生成完整报文,并返回给TSP平台;

发送加密报文:TSP平台将加密报文发给TBOX终端;

接收报文,校验完整性:TBOX终端将下行会话计数器值SOC_D的值+1,并使用HMAC算法来计算加密报文正文的哈希值,之后对比加密报文尾部附带的值,是否正确,检验报文的完整性;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:TBOX终端采用下行会话密钥KSET_ENC_D解密加密报文的正文值,得到明文,并进行处理。

进一步地,所述上行下行密钥生成方法:

计算HMAC(MACKey,TBOXrnd_32byte)的值D1;

计算HMAC(MACKey,KMSrnd_32byte)的值D2。

使用D1的值和D2的值异或,生成D3;

取D3的起始16个字节作为KSET_ENC_U,用于上行会话AES加密使用,取D3末尾的16个字节作为KSET_MAC_U,用于上行会话HMAC计算作为KEY使用;将KSET_ENC_U和KSET_MAC_U组成上行会话密钥KSET_U;

使用D1的值和D2的值,累加生成D4

取D4的起始16个字节作为KSET_ENC_D,用于下行会话AES加密使用,取D4末尾的16个字节作为KSET_MAC_D,用于下行会话HMAC计算作为KEY使用;两个16字节的密钥组成下行会话密钥KSET_D。

进一步地,所述SOC_U以及SOC_D生成方法:

计算AES(AESKey,TBOXrnd_32byte)的值S1;

计算AES(AESKey,KMSrnd_32byte)的值S2;

使用S1的值和S2的值,累加生成S3;

取S3最初16个字节作为SOC_U,上行会话顺序计数器,取S3末尾的16个字节作为SOC_D,作为下行会话顺序计数器。

本发明具有如下优点:本发明一种建立TBOX终端和TSP平台之间通道的方法以及系统,实现TBOX终端和TSP平台之间通讯交互的安全加密,能够防止非法的TBOX终端接入合法的TSP平台,以及防止合法的TBOX终端接入非法的TBOX平台,最终防止因TBOX终端和TSP平台之间的交互流程被攻击而出现通讯数据被破解泄露,车辆被恶意控制。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法执行流程图。

图2为本发明中TBOX终端硬件安全加密SIM卡密钥生成流程。

图3为本发明中TBOX终端硬件安全加密SIM卡主密钥传递流程。

图4为本发明中TBOX终端和TSP平台双向认证流程。

图5为本发明中上下行会话密钥生成流程。

图6为本发明中上下行会话计数器生成流程。

图7为本发明中TBOX终端发送报文给TSP平台。

图8为本发明中TSP平台发送报文给TBOX终端。

具体实施方式

如图1所示,本发明建立TBOX终端和TSP平台之间通道的方法,包括如下步骤:

步骤1、生成硬件安全加密SIM卡主密钥;

步骤2、TBOX终端使用硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台;

TSP平台收到来自TBOX终端设备的认证请求报文,并生成一个32字节的随机数KMSrnd_32byte;之后生成一字符串KMS_S(KMSrnd_32byte,TSPId,IMEINo,IMSINo),其中TSPId为TSP平台标识码;

根据硬件安全加密SIM卡的IMSI号IMSINo获取硬件安全加密SIM卡主密钥,并对KMS_S进行加密,将形成的加密字符串ENKMS_S发给发送给TBOX终端;

TBOX终端根据硬件安全加密SIM卡主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到IMSINo和IMEINo的值,并进行校验;

校验结果通过的话,则继续进行双向认证,否则认证失败,结束认证;

TBOX终端生成一个32字节的随机数TBOXrnd_32byte;TBOX终端利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

TBOX终端生成字符串TBOX_SS(KMSrnd_32byte,TBOXrnd_32byte,IMSINo,IMEINo),并使用TBOX终端的硬件安全加密SIM卡主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS;

TBOX终端将加密字符串ENTBOX_SS发到TSP平台;

TSP平台根据硬件安全加密SIM卡主密钥解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte、IMEINo和IMSINo的值;

如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证;

TSP平台利用TBOXrnd_32byte和KMSrnd_32byte以同样的方法生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

双向认证完成,通道建立成功。

步骤3、TSP平台设有硬件加密机;

TBOX终端发送报文给TSP平台如下:

发送会话计数器累加:TBOX终端将需要上传到TSP平台的明文数据TBOX_SENDDATA准备好,并将上行会话计数器SOC_U值+1;

发送报文加密:TBOX终端使用上行会话密钥KSET_U加密明文数据SOC_U+TBOX_SENDDATA,得到加密数据ENTBOX_SENDDATA,把加密数据ENTBOX_SENDDATA作为加密报文的正文部分;

计算哈希值:TBOX终端使用HMAC算法计算加密数据ENTBOX_SENDDATA的哈希值,并附在加密报文正文后面,形成完整的加密报文;

发送加密报文:TBOX终端设备发送加密报文和硬件安全加密SIM卡的IMSI号IMSINo给TSP平台,TSP平台将加密报文和硬件安全加密SIM卡的IMSI号IMSINo传送给硬件加密机;

接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理;

TSP平台发送报文给TBOX终端如下:

发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及硬件安全加密SIM卡的IMSI号IMSINo发给硬件加密机,硬件加密机将下行会话计数器值SOC_D的值+1;

发送报文加密:硬件加密机使用下行会话密钥KSET_ENC_D加密明文数据SOC_D+TSP_SENDDATA,得到加密数据ENTSP_SENDDATA,把加密数据ENTSP_SENDDATA作为加密报文的正文部分;

计算哈希值:硬件加密机使用HMAC算法计算加密数据ENTSP_SENDDATA的哈希值,附在加密报文正文部分的后面,生成完整报文,并返回给TSP平台;

发送加密报文:TSP平台将加密报文发给TBOX终端;

接收报文,校验完整性:TBOX终端将下行会话计数器值SOC_D的值+1,并使用HMAC算法来计算加密报文正文的哈希值,之后对比加密报文尾部附带的值,是否正确,检验报文的完整性;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:TBOX终端采用下行会话密钥KSET_ENC_D解密加密报文的正文值,得到明文,并进行处理。

所述上行下行密钥生成方法:

计算HMAC(MACKey,TBOXrnd_32byte)的值D1;

计算HMAC(MACKey,KMSrnd_32byte)的值D2。

使用D1的值和D2的值异或,生成D3;

取D3的起始16个字节作为KSET_ENC_U,用于上行会话AES加密使用,取D3末尾的16个字节作为KSET_MAC_U,用于上行会话HMAC计算作为KEY使用;将KSET_ENC_U和KSET_MAC_U组成上行会话密钥KSET_U;

使用D1的值和D2的值,累加生成D4

取D4的起始16个字节作为KSET_ENC_D,用于下行会话AES加密使用,取D4末尾的16个字节作为KSET_MAC_D,用于下行会话HMAC计算作为KEY使用;两个16字节的密钥组成下行会话密钥KSET_D。

所述SOC_U以及SOC_D生成方法:

计算AES(AESKey,TBOXrnd_32byte)的值S1;

计算AES(AESKey,KMSrnd_32byte)的值S2;

使用S1的值和S2的值,累加生成S3;

取S3最初16个字节作为SOC_U,上行会话顺序计数器,取S3末尾的16个字节作为SOC_D,作为下行会话顺序计数器。

本发明建立TBOX终端和TSP平台之间通道的系统,包括如下模块:

生成密钥模块,生成硬件安全加密SIM卡主密钥;

通道建立模块,TBOX终端使用硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台;

TSP平台收到来自TBOX终端设备的认证请求报文,并生成一个32字节的随机数KMSrnd_32byte;之后生成一字符串KMS_S(KMSrnd_32byte,TSPId,IMEINo,IMSINo),其中TSPId为TSP平台标识码;

根据硬件安全加密SIM卡的IMSI号IMSINo获取硬件安全加密SIM卡主密钥,并对KMS_S进行加密,将形成的加密字符串ENKMS_S发给发送给TBOX终端;

TBOX终端根据硬件安全加密SIM卡主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到IMSINo和IMEINo的值,并进行校验;

校验结果通过的话,则继续进行双向认证,否则认证失败,结束认证;

TBOX终端生成一个32字节的随机数TBOXrnd_32byte;TBOX终端利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

TBOX终端生成字符串TBOX_SS(KMSrnd_32byte,TBOXrnd_32byte,IMSINo,IMEINo),并使用TBOX终端的硬件安全加密SIM卡主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS;

TBOX终端将加密字符串ENTBOX_SS发到TSP平台;

TSP平台根据硬件安全加密SIM卡主密钥,解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte、IMEINo和IMSINo的值;

如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证;

TSP平台利用TBOXrnd_32byte和KMSrnd_32byte以同样的系统生成上行会话密钥KSET_U、上行会话顺序计数器初值SOC_U、下行会话密钥KSET_D以及下行会话顺序计数器初值SOC_D;

双向认证完成,通道建立成功。

报文传输模块,TSP平台设有硬件加密机;

TBOX终端发送报文给TSP平台如下:

发送会话计数器累加:TBOX终端将需要上传到TSP平台的明文数据TBOX_SENDDATA准备好,并将上行会话计数器SOC_U值+1;

发送报文加密:TBOX终端使用上行会话密钥KSET_U加密明文数据SOC_U+TBOX_SENDDATA,得到加密数据ENTBOX_SENDDATA,把加密数据ENTBOX_SENDDATA作为加密报文的正文部分;

计算哈希值:TBOX终端使用HMAC算法计算加密数据ENTBOX_SENDDATA的哈希值,并附在加密报文正文后面,形成完整的加密报文;

发送加密报文:TBOX终端设备发送加密报文和硬件安全加密SIM卡的IMSI号IMSINo给TSP平台,TSP平台将加密报文和硬件安全加密SIM卡的IMSI号IMSINo传送给硬件加密机;

接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理;

TSP平台发送报文给TBOX终端如下:

发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及硬件安全加密SIM卡的IMSI号IMSINo发给硬件加密机,硬件加密机将下行会话计数器值SOC_D的值+1;

发送报文加密:硬件加密机使用下行会话密钥KSET_ENC_D加密明文数据SOC_D+TSP_SENDDATA,得到加密数据ENTSP_SENDDATA,把加密数据ENTSP_SENDDATA作为加密报文的正文部分;

计算哈希值:硬件加密机使用HMAC算法计算加密数据ENTSP_SENDDATA的哈希值,附在加密报文正文部分的后面,生成完整报文,并返回给TSP平台;

发送加密报文:TSP平台将加密报文发给TBOX终端;

接收报文,校验完整性:TBOX终端将下行会话计数器值SOC_D的值+1,并使用HMAC算法来计算加密报文正文的哈希值,之后对比加密报文尾部附带的值,是否正确,检验报文的完整性;

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃;

解密报文:TBOX终端采用下行会话密钥KSET_ENC_D解密加密报文的正文值,得到明文,并进行处理。

所述上行下行密钥生成方法:

计算HMAC(MACKey,TBOXrnd_32byte)的值D1;

计算HMAC(MACKey,KMSrnd_32byte)的值D2。

使用D1的值和D2的值异或,生成D3;

取D3的起始16个字节作为KSET_ENC_U,用于上行会话AES加密使用,取D3末尾的16个字节作为KSET_MAC_U,用于上行会话HMAC计算作为KEY使用;将KSET_ENC_U和KSET_MAC_U组成上行会话密钥KSET_U;

使用D1的值和D2的值,累加生成D4

取D4的起始16个字节作为KSET_ENC_D,用于下行会话AES加密使用,取D4末尾的16个字节作为KSET_MAC_D,用于下行会话HMAC计算作为KEY使用;两个16字节的密钥组成下行会话密钥KSET_D。

所述SOC_U以及SOC_D生成方法:

计算AES(AESKey,TBOXrnd_32byte)的值S1;

计算AES(AESKey,KMSrnd_32byte)的值S2;

使用S1的值和S2的值,累加生成S3;

取S3最初16个字节作为SOC_U,上行会话顺序计数器,取S3末尾的16个字节作为SOC_D,作为下行会话顺序计数器。

本发明一种具体实施方式:

本发明的思路是:1、在TBOX终端和TSP平台之间的传输,采用加密通信、安全密钥接入认证的方式。具体为:在TBOX终端上增加1个可以实现安全加密算法的硬件安全加密SIM卡,在对应的TSP平台的通讯接入服务处增加1个密钥管理服务器(KMS),简称硬件加密机。通过这样的方法来保护TBOX终端不会接入到远端的非法中心,遭到数据破解泄露及非法控制命令下发,保障车辆安全。2、本发明方法主要采用的是对称性加密方式。

1系统总体架构

系统主要由TBOX终端(增加了硬件安全加密SIM卡)、TSP平台(增加了密钥管理服务器(KMS),也称为硬件加密机)、车、手机APP或者PC上的WEB用户端四部分组成。

TBOX终端:主要用于采集车辆相关信息,然后通过无线通信传送到TSP平台。同时手机APP和PC的WEB用户端可以通过TSP平台下发指令给TBOX终端,对车辆进行控制操作,例如开关车门等。在原有TBOX终端中增加1个设计,内部的MCU通过一个ISO7816接口连接到一个硬件安全加密SIM卡,可以实现包括:获取硬件安全加密SIM卡的IMSI号、数据加密、数据解密、随机生成数字,保存密钥及随机数等功能。本处的硬件安全加密SIM卡支持通用国际算法,包括3DES、AES、SHA等等。

TSP平台:负责接收TBOX终端上传的数据,进行处理分析,并将用户从手机APP或者是WEB用户端下发的车辆控制指令报文,发送给TBOX终端。在原有TSP平台设计中增加:在终端无线网络接入的地方增加1台密钥管理服务器(KMS),简称硬件加密机。硬件加密机负责密钥的生成、分发、存储、备份、管理、销毁等等,同时负责对交互报文的加解密。

车:用户最终实现功能控制的东西,TBOX终端安装的地方,提供TBOX终端电源。TBOX终端可以采集到车辆的各种信息,包括:位置、姿态、车辆内部状态数据等(通过CAN总线)。

在这样一个系统中,TSP平台侧的硬件加密机和TBOX终端侧的硬件安全加密SIM卡内部存储相应的加密密钥,实现TSP平台与TBOX终端之间通信端到端加密机制,以实现以下主要安全功能:

TSP平台与TBOX终端之间双向认证功能。

关键敏感数据的加密传输。

信息数据的完整性校验。

为了实现以上功能,首先需要生成每个TBOX终端特有的硬件安全加密SIM卡的主密钥,并安全传递密钥,写入硬件安全加密SIM卡。

之后,TBOX终端和TSP平台之间要通过一系列双向认证的过程,建立安全可靠的连接,并生成临时的会话密钥。

最后,TBOX终端可以通过临时的会话密钥,进行安全加密的通信。

会话密钥在一次会话结束后,自动作废,再下一个会话启动时,再进行双向认证,新的会话密钥建立。

本方法中使用的加密算法主要采用的是:AES(128)和HMAC算法(所有的HMAC算法都采用SHA(256)作为内部散列算法)。

HMAC算法的调用方式为HMAC(key,data)。Key为密钥,data为输入消息。

硬件安全加密SIM卡的主密钥生成流程如下:

针对不同的TBOX终端,因其是提供给不同的车厂的不同的车辆使用,因此根据车企不同、车辆子品牌不同,车厂要求定制的硬件安全加密SIM卡厂家不同、各个硬件安全加密SIM卡的IMSI号不同,生成不同的TBOX终端的硬件安全加密SIM卡主密钥。

如图2所示,具体流程说明如下:

车企集团根主密钥生成:操作人员操作硬件加密机生成硬件安全加密SIM卡主密钥。第一步是,硬件加密机通过内部的物理噪声源随机数发生器,随机生成32字节的车企集团根主密钥GRKey,并保存下来。后续如需使用,不需要再生成。

车辆子品牌主密钥生成:硬件加密机根据车辆品牌标识VBId(16字节)计算车辆子品牌主密钥VBMKey(64字节)。使用的算法是HMAC,计算的方式是使用车辆品牌标识VBId(16字节)作为key,车企集团根主密钥GRKey(32字节)作为输入消息,调用方式:HMAC(VBId,GRKey)。

硬件安全加密SIM卡生产厂商主密钥生成:硬件加密机根据硬件安全加密SIM卡厂商标识SCVId(16字节)计算硬件安全加密SIM卡生产厂商主密钥SCVMKey(64字节)。使用的算法是HMAC,计算的方式是使用硬件安全加密SIM卡厂商标识SCVId(16字节)作为key,车辆子品牌主密钥VBMKey(64字节)作为输入消息,调用方式:HMAC(SCVId,VBMKey)。

TBOX终端主密钥生成:硬件加密机根据TBOX终端的IMEI号IMEINo计算TBOX终端主密钥TBOXMKey(64字节)。使用的算法是HMAC,计算的方式是使用TBOX终端的IMEI号IMEINo作为key,硬件安全加密SIM卡生产厂商主密钥SCVMKey(64字节)作为输入消息,调用方式:HMAC(IMEINo,SCVMKey)。

硬件安全加密SIM卡主密钥生成:硬件加密机根据硬件安全加密SIM卡的IMSI号码IMSINo计算硬件安全加密SIM卡主密钥SCMKey(32字节)。首先使用硬件安全加密SIM卡的IMSI号IMSINo作为key,TBOX终端主密钥TBOXMKey(64字节)作为消息输入,并采用HMAC算法,生成64字节原始密钥SCMORKey,调用方式是HMAC(IMSINo,TBOXMKey)。第二步,截取原始密钥SCMORKey的最初的16字节和最末的16字节,组成32字节的硬件安全加密SIM卡主密钥SCMKey。

硬件安全加密SIM卡主密钥传递:硬件加密机将硬件安全加密SIM卡主密钥SCMKey传递给TBOX终端上的硬件安全加密SIM卡进行写入保存。关于硬件安全加密SIM卡具体的传递流程,如图3所示。

至此,硬件安全加密SIM卡主密钥被生成后,进行传递保存到TBOX终端的硬件安全加密SIM卡。

硬件安全加密SIM卡主密钥SCMKey实际上是一个密钥组,分成两个部分,各长16字节,这两支密钥分别为:

MACKey:专用于MAC值计算的密钥值,用于后续报文交互时HMAC算法中的key使用;其中MACKey是SCMKey前面16个字节的内容。

AESKey:专用于加密操作的密钥值,用于后续报文交互时AES算法中的key使用;AESKey就是SCMKey后面16个字节的内容。

2、硬件安全加密SIM卡主密钥传递流程:对硬件安全加密SIM卡的密钥传递流程,需要在TBOX终端生产的时候进行,如图3所示。

TBOX整机生产开始参数配置:TBOX终端完成整机装配生产,通过生产上使用的PC配置工具,开始进行参数配置。(PC配置工具通过PC上的串口和TBOX终端连接进行通信,实现相关功能)

操作配置硬件安全加密SIM卡主密钥功能:产线操作人员使用PC配置工具中的配置硬件安全加密SIM卡主密钥SCMkey功能,按下功能按钮。

请求硬件安全加密SIM卡的IMSI号:PC配置工具通过串口发命令给TBOX终端,索取硬件安全加密SIM卡IMSI号码IMSINo、TBOX终端的IMEI号IMEINo。

获取IMSI号、IMEI号:TBOX终端收到PC配置工具的命令,获取硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo后,发送给PC配置工具。

发送序列号和终端料号信息给TSP平台:PC配置工具将所生产的TBOX终端产品料号及硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo打包后,通过网络发送给远端的TSP平台。

TSP平台查询相关信息:TSP平台通过后台系统根据TBOX终端产品料号查询到对应的车厂名称以及车型信息、硬件安全加密SIM卡加密厂商名称,发送这些信息以及硬件安全加密SIM卡的IMSI号IMSINo、、TBOX终端的IMEI号IMEINo给TSP平台的硬件加密机(密钥管理服务器)进行硬件安全加密SIM卡主密钥SCMkey计算。

硬件安全加密SIM卡主密钥计算:密钥管理服务器根据TSP平台传递的信息,查询到车企集团根主密钥GRKey(32字节)、车辆品牌标识VBId(16字节)、硬件安全加密SIM卡厂商标识SCVId(16字节)并根据TSP平台传送的硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo进行硬件安全加密SIM卡主密钥计算。

硬件安全加密SIM卡主密钥加密:密钥管理服务器将生成的硬件安全加密SIM卡主密钥SCMkey采用硬件安全加密SIM卡的IMSI号IMSINo进行加密后发送给TSP平台。加密方式是AES(128),使用硬件安全加密SIM卡的IMSI号IMSINo作为key。

加密的密钥返回配置工具:TSP平台将加密后的硬件安全加密SIM卡主密钥发给PC配置工具,PC配置工具通过串口下发给TBOX终端。

加密的密钥解密:TBOX终端采用硬件安全加密SIM卡的IMSI号IMSINo作为key对下发的加密的密钥进行解密,解密方式是AES(128)。

硬件安全加密SIM卡主密钥写入:TBOX终端将硬件安全加密SIM卡主密钥写入硬件安全加密SIM卡。

完成写入,返回成功:TBOX终端返回密钥设置成功的应答给PC配置工具,完成硬件安全加密SIM卡主密钥烧写。

双向认证流程如下:

TBOX终端和TSP平台在相互建立通信连接,进行数据交互前,必须进行双向认证,以保证终端及平台的合法性。

双向认证是对安全数据保护的有效手段,它包含两个方面的安全操作:

TSP平台需要向TBOX终端提供认证信息供TBOX终端校验TSP平台的合法性。

TBOX终端同时也需要向TSP平台提供认证信息供TSP平台校验TBOX终端的合法性。

在每一个新的会话开始之前,服务器与终端应进行双向认证。在完成双向认证之后,设备将会向平台提供对设备的相应访问权限。基于AES的双向认证会在验证双方的安全密钥之后产生一个共同的会话密钥以及顺序计数器的初值SOC。SOC主要用于在会话周期内的防重发机制,每使用会话密钥进行一次加密/解密运算之前,必须将SOC的值加1。

如图4所示,TBOX终端发送认证请求:TBOX终端使用硬件安全加密SIM卡的IMSI号IMSINo、TBOX终端的IMEI号IMEINo以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台。

TSP平台将请求发给硬件加密机:TSP平台收到来自TBOX终端设备的认证请求报文,发送给硬件加密机。

硬件加密机生成随机数:硬件加密机生成一个32字节的随机数KMSrnd_32byte。

硬件加密机生成字符串:硬件加密机生成字符串KMS_S(KMSrnd_32byte,TSPId,IMEINo,IMSINo),TSPId为平台标识码。

硬件加密机加密字符串:硬件加密机根据硬件安全加密SIM卡的IMSI号IMSINo获取硬件安全加密SIM卡主密钥并对KMS_S进行加密,将字符串KMS_S加密后,形成的加密字符串ENKMS_S发给TSP平台。加密算法为AES(128)。

TSP平台下发加密字符串给TBOX终端:TSP平台将加密字符串ENKMS_S发送给TBOX终端。

加密字符串解密:TBOX终端根据硬件安全加密SIM卡主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到IMSINo和IMEINo的值,并进行校验。

校验结果处理:校验结果通过的话,则继续进行双向认证,否则认证失败,结束流程。

TBOX终端生成会话密钥和会话计数器:TBOX的硬件安全加密SIM卡主密钥生成一个32字节的随机数TBOXrnd_32byte,并利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U及上行会话顺序计数器初值SOC_U,下行会话密钥KSET_D及下行会话顺序计数器初值SOC_D。会话密钥及会话计数器的生成算法参见图6和图5。

TBOX终端生成字符串并加密:TBOX终端生成字符串TBOX_SS(KMSrnd_32byte,TBOXrnd_32byte,IMSINo,IMEINo),并使用TBOX终端的硬件安全加密SIM卡主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS。加密算法采用AES(128)。

TBOX终端发送加密字符串:TBOX终端将加密字符串ENTBOX_SS发到TSP平台。

TSP平台转发字符串到硬件加密机:TSP平台将加密字符串ENTBOX_SS发到平台内部的硬件加密机。

硬件加密机校验随机数数值:硬件加密机根据硬件安全加密SIM卡主密钥,解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte、IMEINo和IMSINo的值。

校验随机数结果:如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证。

硬件加密机生成会话密钥:硬件加密机根据TBOXrnd_32byte以及KMSrnd_32byte生成上行会话密钥KSET_U及上行会话顺序计数器初值SOC_U,下行会话密钥KSET_D及下行会话顺序计数器初值SOC_D,并保存下来。会话密钥及会话计数器的生成算法如图5和图6所示。

双向认证建立:双向认证建立,可以开始采用加密报文交互。

会话密钥和会话计数器的生成流程

上下行会话密钥生成的是一个32字节的密钥组,分成两个部分,分别用于MAC计算和AES加密计算。

上下行会话计数器生成的是一个16字节的数。

如图5所示,哈希值1计算:使用算法计算HMAC(MACKey,TBOXrnd_32byte)的值D1(64位)。

哈希值2计算:使用算法计算HMAC(MACKey,KMSrnd_32byte)的值D2(64位)。

异或值计算:使用D1的值和D2的值异或,生成D3(64位)。

上行密钥生成:取D3最初16个字节作为KSET_ENC_U,用于上行会话AES加密使用,取D3最末尾的16个字节作为KSET_MAC_U,用于上行会话HMAC计算作为KEY使用。两个16字节的密钥组成上行会话密钥KSET_U(32字节)。

累加值计算:使用D1的值和D2的值,累加生成D4(64位)

下行密钥生成:取D4最初16个字节作为KSET_ENC_D,用于下行会话AES加密使用,取D4最末尾的16个字节作为KSET_MAC_D,用于下行会话HMAC计算作为KEY使用。两个16字节的密钥组成下行会话密钥KSET_D(32字节)。

如图6所示,上下行会话计数器生成流程

加密值1计算:使用算法计算AES(AESKey,TBOXrnd_32byte)的值S1(88位)。

加密值2计算:使用算法计算AES(AESKey,KMSrnd_32byte)的值S2(88位)。

累加和计算:使用S1的值和S2的值,累加生成S3(88位)。

会话计数器生成:取S3最初16个字节作为SOC_U,上行会话顺序计数器,取S3最末尾的16个字节作为SOC_D,作为下行会话顺序计数器。

5、TBOX终端和TSP平台双向认证建立后,可以进行加密通信,如图7和图8所述:

如图7所示,发送会话计数器累加:TBOX终端将需要上传到TSP平台的明文数据TBOX_SENDDATA准备好,并将上行会话计数器SOC_U值+1。

发送报文加密:TBOX终端使用上行会话密钥KSET_U加密明文数据SOC_U+TBOX_SENDDATA,得到加密数据ENTBOX_SENDDATA,把加密数据ENTBOX_SENDDATA作为加密报文的正文部分。

计算哈希值:TBOX终端使用HMAC算法计算加密数据ENTBOX_SENDDATA的哈希值,并附在加密报文正文后面,形成完整的加密报文。

发送加密报文:TBOX终端设备发送加密报文和硬件安全加密SIM卡的IMSI号IMSINo给TSP平台,TSP平台将加密报文和硬件安全加密SIM卡的IMSI号IMSINo传送给硬件加密机。

接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确。

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃。

解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理。

如图8所示,发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及硬件安全加密SIM卡的IMSI号IMSINo发给硬件加密机,硬件加密机将下行会话计数器值SOC_D的值+1。

发送报文加密:硬件加密机使用下行会话密钥KSET_ENC_D加密明文数据SOC_D+TSP_SENDDATA,得到加密数据ENTSP_SENDDATA,把加密数据ENTSP_SENDDATA作为加密报文的正文部分。

计算哈希值:硬件加密机使用HMAC算法计算加密数据ENTSP_SENDDATA的哈希值,附在加密报文正文部分的后面,生成完整报文,并返回给TSP平台。

发送加密报文:TSP平台将加密报文发给TBOX终端。

接收报文,校验完整性:TBOX终端将下行会话计数器值SOC_D的值+1,并使用HMAC算法来计算加密报文正文的哈希值,之后对比加密报文尾部附带的值,是否正确,检验报文的完整性。

校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃。

解密报文:TBOX终端采用下行会话密钥KSET_ENC_D解密加密报文的正文值,得到明文。

会话密钥和上下行会话计数器SOC的值在芯片内将会一直有效,直到会话由于下列情况而终止:

硬件安全加密SIM卡因TBOX终端重启等原因被掉电复位。

TBOX终端掉线重新和TSP平台连接。

TBOX终端取消使用加密方式和TSP平台连接,改用明文方式。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

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