本发明涉及一种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、空调、车门车窗等等被控制。TSP平台连接了非法的TBOX,收到虚假信息。
名词解释:
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 Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC需要使用一个加密用的散列函数,例如SHA(256)。
SHA:安全哈希算法(Secure Hash Algorithm),主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。
SHA(256):基于256bit长度密钥的SHA算法。
AES:高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,是一种对称性的加密算法。这个标准用来替代原先的DES,已经广为全世界所使用。
AES(128):基于128bit长度密钥的AES算法。
安全加密芯片:内置安全加密算法,通过SPI或UART等接口和TBOX终端的MCU连接,可以实现包括:获取安全加密芯片序列号、数据加密、数据解密、随机生成数字,保存密钥及随机数等功能。
密钥管理服务器(KMS):简称硬件加密机,负责密钥的生成、分发、存储、备份、管理、销毁等等,同时负责TSP平台的报文的加解密。
技术实现要素:
本发明要解决的技术问题,在于提供一种TBOX终端和TSP平台之间密钥生成方法以及系统,通过该密钥生成方法可以有效的防止因TBOX终端和TSP平台之间的交互流程被攻击而出现通讯数据被破解泄露,车辆被恶意控制。
本发明之一是这样实现的:一种TBOX终端和TSP平台之间密钥生成方法,包括如下步骤:
步骤1、生成安全加密芯片主密钥;
步骤2、将安全加密芯片主密钥存储至TSP平台;
步骤3、将安全加密芯片主密钥烧写至TBOX终端。
进一步地,所述TBOX终端内设有一安全加密芯片,所述步骤1进一步具体为:
在TSP平台上随机生成车企集团根主密钥GRKey;
通过HMAC算法生成车辆子品牌主密钥VBMKey;其中车企集团根主密钥GRKey作为输入消息,车辆品牌标识VBId作为key;
通过HMAC算法生成安全加密芯片生产厂商主密钥SCVMKey;其中安全加密芯片厂商标识SCVId作为key,车辆子品牌主密钥VBMKey作为输入消息;
通过HMAC算法生成原始密钥SCMORKey;其中安全加密芯片序列号SCSNo作为key,安全加密芯片生产厂商主密钥SCVMKey作为输入消息;
将原始密钥SCMORKey作为安全加密芯片主密钥。
进一步地,所述TSP平台上设有一硬件加密机,所述硬件加密机上设有USB加密锁,当USB加密锁插入硬件加密机时,开始生成安全加密芯片主密钥。
进一步地,所述将原始密钥SCMORKey作为安全加密芯片主密钥进一步具体为:截取原始密钥SCMORKey的起始16字节以及末尾16字节,组成32字节的安全加密芯片主密钥SCMKey。
进一步地,所述步骤3进一步具体为:
TSP平台将安全加密芯片主密钥SCMKey通过加密后发送给PC配置工具;
PC配置工具将接收的数据解密后烧写至安全加密芯片中。
进一步地,所述加密方式以及解密方式均为AES,将安全加密芯片序列号SCSNo作为key。
本发明之二是这样实现的:一种TBOX终端和TSP平台之间密钥生成系统,包括如下模块:
密钥生成模块,生成安全加密芯片主密钥;
存储模块,将安全加密芯片主密钥存储至TSP平台;
烧写模块,将安全加密芯片主密钥烧写至TBOX终端。
进一步地,所述TBOX终端内设有一安全加密芯片,所述密钥生成模块进一步具体为:
在TSP平台上随机生成车企集团根主密钥GRKey;
通过HMAC算法生成车辆子品牌主密钥VBMKey;其中车企集团根主密钥GRKey作为输入消息,车辆品牌标识VBId作为key;
通过HMAC算法生成安全加密芯片生产厂商主密钥SCVMKey;其中安全加密芯片厂商标识SCVId作为key,车辆子品牌主密钥VBMKey作为输入消息;
通过HMAC算法生成原始密钥SCMORKey;其中安全加密芯片序列号SCSNo作为key,安全加密芯片生产厂商主密钥SCVMKey作为输入消息;
将原始密钥SCMORKey作为安全加密芯片主密钥。
进一步地,所述TSP平台上设有一硬件加密机,所述硬件加密机上设有USB加密锁,当USB加密锁插入硬件加密机时,开始生成安全加密芯片主密钥。
进一步地,所述将原始密钥SCMORKey作为安全加密芯片主密钥进一步具体为:截取原始密钥SCMORKey的起始16字节以及末尾16字节,组成32字节的安全加密芯片主密钥SCMKey。
进一步地,所述烧写模块进一步具体为:
TSP平台将安全加密芯片主密钥SCMKey通过加密后发送给PC配置工具;
PC配置工具将接收的数据解密后烧写至安全加密芯片中。
进一步地,所述加密方式以及解密方式均为AES,将安全加密芯片序列号SCSNo作为key。
本发明具有如下优点:本发明一种TBOX终端和TSP平台之间密钥生成方法以及系统,该密钥生成方式充分结合现有的硬件设备,产生独一无二的密钥,并且生成过程复杂,破解难;实现TBOX终端和TSP平台之间通讯交互的安全加密,能够防止非法的TBOX终端接入合法的TSP平台,以及防止合法的TBOX终端接入非法的TBOX平台,最终防止因TBOX终端和TSP平台之间的交互流程被攻击而出现通讯数据被破解泄露,车辆被恶意控制。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
图2为本发明中TBOX终端安全芯片密钥生成流程。
图3为本发明中TBOX终端安全芯片主密钥传递流程。
图4为本发明中TBOX终端和TSP平台双向认证流程。
图5为本发明中上下行会话密钥生成流程。
图6为本发明中上下行会话计数器生成流程。
图7为本发明中TBOX终端发送报文给TSP平台。
图8为本发明中TSP平台发送报文给TBOX终端。
具体实施方式
如图1所示,本发明TBOX终端和TSP平台之间密钥生成方法,包括如下步骤:
步骤1、TSP平台上设有一硬件加密机,所述硬件加密机上设有USB加密锁,当USB加密锁插入硬件加密机时,开始生成安全加密芯片主密钥;在TSP平台上随机生成车企集团根主密钥GRKey;
通过HMAC算法生成车辆子品牌主密钥VBMKey;其中车企集团根主密钥GRKey作为输入消息,车辆品牌标识VBId作为key;
通过HMAC算法生成安全加密芯片生产厂商主密钥SCVMKey;其中安全加密芯片厂商标识SCVId作为key,车辆子品牌主密钥VBMKey作为输入消息;
通过HMAC算法生成原始密钥SCMORKey;其中安全加密芯片序列号SCSNo作为key,安全加密芯片生产厂商主密钥SCVMKey作为输入消息;
将原始密钥SCMORKey作为安全加密芯片主密钥,所述将原始密钥SCMORKey作为安全加密芯片主密钥进一步具体为:截取原始密钥SCMORKey的起始16字节以及末尾16字节,组成32字节的安全加密芯片主密钥SCMKey;
步骤2、将安全加密芯片主密钥存储至TSP平台;
步骤3、TSP平台将安全加密芯片主密钥SCMKey通过加密后发送给PC配置工具;
PC配置工具将接收的数据解密后烧写至安全加密芯片中,所述加密方式以及解密方式均为AES,将安全加密芯片序列号SCSNo作为key。
本发明TBOX终端和TSP平台之间密钥生成系统,包括如下模块:
密钥生成模块,TSP平台上设有一硬件加密机,所述硬件加密机上设有USB加密锁,当USB加密锁插入硬件加密机时,开始生成安全加密芯片主密钥;在TSP平台上随机生成车企集团根主密钥GRKey;
通过HMAC算法生成车辆子品牌主密钥VBMKey;其中车企集团根主密钥GRKey作为输入消息,车辆品牌标识VBId作为key;
通过HMAC算法生成安全加密芯片生产厂商主密钥SCVMKey;其中安全加密芯片厂商标识SCVId作为key,车辆子品牌主密钥VBMKey作为输入消息;
通过HMAC算法生成原始密钥SCMORKey;其中安全加密芯片序列号SCSNo作为key,安全加密芯片生产厂商主密钥SCVMKey作为输入消息;
将原始密钥SCMORKey作为安全加密芯片主密钥,所述将原始密钥SCMORKey作为安全加密芯片主密钥进一步具体为:截取原始密钥SCMORKey的起始16字节以及末尾16字节,组成32字节的安全加密芯片主密钥SCMKey,所述TBOX终端内设有一安全加密芯片;
存储模块,将安全加密芯片主密钥存储至TSP平台;
烧写模块,TSP平台将安全加密芯片主密钥SCMKey通过加密后发送给PC配置工具;
PC配置工具将接收的数据解密后烧写至安全加密芯片中,所述加密方式以及解密方式均为AES,将安全加密芯片序列号SCSNo作为key。
本发明一种具体实施方式以及密钥的具体使用方法:
本发明的思路是:1、在TBOX终端和TSP平台之间的传输,采用加密通信、安全密钥接入认证的方式。具体为:在TBOX终端上增加1个可以实现安全加密算法的模块,在对应的TSP平台的通讯接入服务处增加1个密钥管理服务器(KMS),简称硬件加密机。通过这样的方法来保护TBOX终端不会接入到远端的非法中心,遭到数据破解泄露及非法控制命令下发,保障车辆安全。2、本发明方法主要采用的是对称性加密方式。
1系统总体架构
系统主要由TBOX终端(增加了安全加密芯片)、TSP平台(增加了密钥管理服务器(KMS),也称为硬件加密机)、车、手机APP或者PC上的WEB用户端四部分组成。
TBOX终端:主要用于采集车辆相关信息,然后通过无线通信传送到TSP平台。同时手机APP和PC的WEB用户端可以通过TSP平台下发指令给TBOX终端,对车辆进行控制操作,例如开关车门等。在原有TBOX终端中增加1个设计,内部的MCU通过一个SPI口或者UART口连接到一个安全加密芯片,可以实现包括:获取安全加密芯片序列号、数据加密、数据解密、随机生成数字,保存密钥及随机数等功能。本处的安全芯片支持通用国际算法,包括3DES、AES、SHA等等。
TSP平台:负责接收TBOX终端上传的数据,进行处理分析,并将用户从手机APP或者是WEB用户端下发的车辆控制指令报文,发送给TBOX终端。在原有TSP平台设计中增加:在终端无线网络接入的地方增加1台密钥管理服务器(KMS),简称硬件加密机。硬件加密机负责密钥的生成、分发、存储、备份、管理、销毁等等,同时负责对交互报文的加解密。硬件加密机配有密钥管理员USB加密锁(1个或多个),只有当所有的USB加密锁都被插入到硬件加密机后,硬件加密机才能得到足够的授权,进行密钥生成。防止因不规范管理造成不合法密钥随意生成。
车:用户最终实现功能控制的东西,TBOX终端安装的地方,提供TBOX终端电源。TBOX终端可以采集到车辆的各种信息,包括:位置、姿态、车辆内部状态数据等(通过CAN总线)。
在这样一个系统中,TSP平台侧的硬件加密机和TBOX终端侧的安全加密芯片内部存储相应的加密密钥,实现TSP平台与TBOX终端之间通信端到端加密机制,以实现以下主要安全功能:
TSP平台与TBOX终端之间双向认证功能。
关键敏感数据的加密传输。
信息数据的完整性校验。
为了实现以上功能,首先需要生成每个TBOX终端特有的安全加密芯片的主密钥,并安全传递密钥,写入安全加密芯片。
之后,TBOX终端和TSP平台之间要通过一系列双向认证的过程,建立安全可靠的连接,并生成临时的会话密钥。
最后,TBOX终端可以通过临时的会话密钥,进行安全加密的通信。
会话密钥在一次会话结束后,自动作废,再下一个会话启动时,再进行双向认证,新的会话密钥建立。
本方法中使用的加密算法主要采用的是:AES(128)和HMAC算法(所有的HMAC算法都采用SHA(256)作为内部散列算法)。
HMAC算法的调用方式为HMAC(key,data)。Key为密钥,data为输入消息。
安全加密芯片的主密钥生成流程如下:
针对不同的TBOX终端,因其是提供给不同的车厂的不同的车辆使用,因此根据车企不同、车辆子品牌不同,车厂要求定制的安全加密芯片厂家不同、各个安全加密芯片的序列号不同,生成不同的TBOX终端的安全加密芯片主密钥。
如图2所示,具体流程说明如下:
车企集团根主密钥生成:操作人员操作硬件加密机生成安全芯片主密钥。第一步是,将车厂的密钥管理员USB加密锁(1个或多个)插入硬件加密机。
硬件加密机检测到已经获得最高管理员授权。
硬件加密机通过内部的物理噪声源随机数发生器,随机生成32字节的车企集团根主密钥GRKey,并保存下来。后续如需使用,不需要再生成。
车辆子品牌主密钥生成:硬件加密机根据车辆品牌标识VBId(16字节)计算车辆子品牌主密钥VBMKey(64字节)。使用的算法是HMAC,计算的方式是使用车辆品牌标识VBId(16字节)作为key,车企集团根主密钥GRKey(32字节)作为输入消息,调用方式:HMAC(VBId,GRKey)。
安全加密芯片生产厂商主密钥生成:硬件加密机根据安全芯片厂商标识SCVId(16字节)计算安全加密芯片生产厂商主密钥SCVMKey(64字节)。使用的算法是HMAC,计算的方式是使用安全芯片厂商标识SCVId(16字节)作为key,车辆子品牌主密钥VBMKey(64字节)作为输入消息,调用方式:HMAC(SCVId,VBMKey)。
安全加密芯片主密钥生成:硬件加密机根据计算安全芯片主密钥SCMKey(32字节)。首先使用安全芯片序列号SCSNo(16字节)作为key,安全加密芯片生产厂商主密钥SCVMKey(64字节)作为消息输入,并采用HMAC算法,生成64字节原始密钥SCMORKey,调用方式是HMAC(SCSNo,SCVMKey)。第二步,截取原始密钥SCMORKey的最初的16字节和最末的16字节,组成32字节的安全芯片主密钥SCMKey。
安全加密芯片主密钥传递:硬件加密机将安全芯片主密钥SCMKey传递给TBOX终端上的安全加密芯片进行写入保存。关于安全加密芯片具体的传递流程,如图3所示。
至此,安全加密芯片主密钥被生成后,进行传递保存到TBOX终端的安全加密芯片。
安全加密芯片主密钥SCMKey实际上是一个密钥组,分成两个部分,各长16字节,这两支密钥分别为:
MACKey:专用于MAC值计算的密钥值,用于后续报文交互时HMAC算法中的key使用;其中MACKey是SCMKey前面16个字节的内容。AESKey:专用于加密操作的密钥值,用于后续报文交互时AES算法中的key使用;AESKey就是SCMKey后面16个字节的内容。
2、安全加密芯片主密钥传递流程:对安全加密芯片的密钥传递流程,需要在TBOX终端生产的时候进行,如图3所示。
TBOX整机生产开始参数配置:TBOX终端完成整机装配生产,通过生产上使用的PC配置工具,开始进行参数配置。(PC配置工具通过PC上的串口和TBOX终端连接进行通信,实现相关功能)
操作配置安全加密芯片主密钥功能:产线操作人员使用PC配置工具中的配置安全加密芯片主密钥SCMkey功能,按下功能按钮。
请求安全加密芯片序列号:PC配置工具通过串口发命令给TBOX终端,索取安全加密芯片序列号SCSNo。
获取安全加密芯片序列号:TBOX终端收到PC配置工具的命令,向安全加密芯片获取安全加密芯片序列号SCSNo后,发送给PC配置工具。
发送序列号和终端料号信息给TSP平台:PC配置工具将所生产的TBOX终端产品料号及安全加密芯片序列号SCSNo打包后,通过网络发送给远端的TSP平台。
TSP平台查询相关信息:TSP平台通过后台系统根据TBOX终端产品料号查询到对应的车厂名称以及车型信息、安全芯片加密厂商名称,发送这些信息以及安全加密芯片序列号SCSNo给TSP平台的硬件加密机(密钥管理服务器)进行安全加密芯片主密钥SCMkey计算。
安全加密芯片主密钥计算:密钥管理服务器根据TSP平台传递的信息,查询到车企集团根主密钥GRKey(32字节)、车辆品牌标识VBId(16字节)、安全芯片厂商标识SCVId(16字节)并根据TSP平台传送的安全加密芯片序列号SCSNo进行安全加密芯片主密钥计算。
安全加密芯片主密钥加密:密钥管理服务器将生成的安全加密芯片主密钥SCMkey采用安全加密芯片序列号SCSNo(16字节)进行加密后发送给TSP平台。加密方式是AES(128),使用安全加密芯片序列号SCSNo(16字节)作为key。
加密的密钥返回配置工具:TSP平台将加密后的安全芯片主密钥发给PC配置工具,PC配置工具通过串口下发给TBOX终端。
加密的密钥解密:TBOX终端采用安全加密芯片序列号SCSNo作为key对下发的加密的密钥进行解密,解密方式是AES(128)。
安全加密芯片主密钥写入:TBOX终端将安全加密芯片主密钥写入安全加密芯片。
完成写入,返回成功:TBOX终端返回密钥设置成功的应答给PC配置工具,完成安全加密芯片主密钥烧写。
双向认证流程如下:
TBOX终端和TSP平台在相互建立通信连接,进行数据交互前,必须进行双向认证,以保证终端及平台的合法性。
双向认证是对安全数据保护的有效手段,它包含两个方面的安全操作:
TSP平台需要向TBOX终端提供认证信息供TBOX终端校验TSP平台的合法性。
TBOX终端同时也需要向TSP平台提供认证信息供TSP平台校验TBOX终端的合法性。
在每一个新的会话开始之前,服务器与终端应进行双向认证。在完成双向认证之后,设备将会向平台提供对设备的相应访问权限。基于AES的双向认证会在验证双方的安全密钥之后产生一个共同的会话密钥以及顺序计数器的初值SOC。SOC主要用于在会话周期内的防重发机制,每使用会话密钥进行一次加密/解密运算之前,必须将SOC的值加1。
如图4所示,获取安全芯片序列号及生成8位随机数:TBOX终端从内置的安全加密芯片中获取安全加密芯片的序列号SCSNo(16字节),以及一个8字节的随机数TBOXrnd_8byte。
TBOX终端发送认证请求:TBOX终端使用安全加密芯片的序列号SCSNo以及8字节随机数TBOXrnd_8byte,以及TBOX终端序列号生成TBOX终端设备认证请求报文,发给TSP平台。
TSP平台将请求发给硬件加密机:TSP平台收到来自TBOX终端设备的认证请求报文,发送给硬件加密机。
硬件加密机生成随机数:硬件加密机生成一个32字节的随机数KMSrnd_32byte以及8字节随机数KMSrnd_8byte。
硬件加密机生成字符串:硬件加密机生成字符串KMS_S(KMSrnd_8byte,TSPId,TBOXrnd_8byte,SCSNo,KMSrnd_32byte),TSPId为平台标识码。
硬件加密机加密字符串:硬件加密机根据安全加密芯片序列号SCSNo获取安全加密芯片主密钥并对KMS_S进行加密,将字符串KMS_S加密后,形成的加密字符串ENKMS_S发给TSP平台。加密算法为AES(128)。
TSP平台下发加密字符串给TBOX终端:TSP平台将加密字符串ENKMS_S发送给TBOX终端。
加密字符串解密:TBOX终端根据安全芯片主密钥解密字符串ENKMS_S得到KMS_S,然后从中得到SCSNo和TBOXrnd_8byte的值,并进行校验。
校验结果处理:校验结果通过的话,则继续进行双向认证,否则认证失败,结束流程。
TBOX终端生成会话密钥和会话计数器:TBOX的安全芯片主密钥生成一个32字节的随机数TBOXrnd_32byte,并利用TBOXrnd_32byte和KMSrnd_32byte生成上行会话密钥KSET_U及上行会话顺序计数器初值SOC_U,下行会话密钥KSET_D及下行会话顺序计数器初值SOC_D。会话密钥及会话计数器的生成算法参见图6和图5。
TBOX终端生成字符串并加密:TBOX终端生成字符串TBOX_SS(KM Srnd_8byte,TSPId,TBOXrnd_32byte,SCSNo,KMSrnd_32byte),并使用TBOX终端的安全芯片主密钥对字符串TBOX_SS进行加密,生成加密字符串ENTBOX_SS。加密算法采用AES(128)。
TBOX终端发送加密字符串:TBOX终端将加密字符串ENTBOX_SS发到TSP平台。
TSP平台转发字符串到硬件加密机:TSP平台将加密字符串ENTBOX_SS发到平台内部的硬件加密机。
硬件加密机校验随机数数值:硬件加密机根据安全加密芯片主密钥,解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校验KMSrnd_32byte和KMSrnd_8byte的值。
校验随机数结果:如果校验通过,则继续进行认证;如果不通过,则双向认证失败,结束认证。
硬件加密机生成会话密钥:硬件加密机根据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终端设备发送加密报文和安全加密芯片序列号SCSNo给TSP平台,TSP平台将加密报文和安全加密芯片序列号SCSNo传送给硬件加密机。
接收报文,校验完整性:硬件加密机将上行会话计数器SOC_U+1,先使用HMAC算法对加密报文的完整性进行校验,校验加密报文的尾部的哈希值是否正确。
校验结果:校验结果通过,则进入解密环节,否则,认为报文不完整,丢弃。
解密报文:硬件加密机使用上行会话密钥KSET_ENC_U解密加密报文的正文部分,返回明文给TSP平台,进行分析处理。
如图8所示,发送会话计数器累加:TSP平台将需要发送加密的明文数据TSP_SENDDATA以及安全加密芯片序列号SCSNo发给硬件加密机,硬件加密机将下行会话计数器值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的值在芯片内将会一直有效,直到会话由于下列情况而终止:
安全加密芯片因TBOX终端重启等原因被掉电复位。
TBOX终端掉线重新和TSP平台连接。
TBOX终端取消使用加密方式和TSP平台连接,改用明文方式。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。