本發(fā)明涉及一種TBOX終端和TSP平臺之間密鑰生成方法以及系統(tǒng)。
背景技術(shù):
車聯(lián)網(wǎng)系統(tǒng)由車、安裝在車上的TBOX終端、TSP服務(wù)平臺、用戶端的手機APP或者PC WEB用戶端四部分組成,用戶使用手機APP或者WEB用戶端,可以從軟件的界面對車輛進行控制,例如:下發(fā)鎖車、開關(guān)空調(diào)、開關(guān)車門車窗等命令,并可以通過手機APP或者是WEB用戶端查看車輛的相關(guān)信息,進行一些車輛狀態(tài)查看、故障診斷等。具體過程是用戶使用手機APP或者WEB用戶端發(fā)出的指令通過網(wǎng)絡(luò)傳輸?shù)絋SP平臺,再發(fā)送給TBOX終端,TBOX終端通過車輛的CAN總線命令下發(fā)給車輛,進行控制。TBOX終端通過CAN總線、定位模塊、慣性測量傳感器模塊等采集車輛狀態(tài)后,通過無線通信網(wǎng)絡(luò)發(fā)送給TSP平臺,TSP平臺再發(fā)送給手機APP或者WEB用戶端,客戶就可以進行狀態(tài)查看或者是故障診斷。
其存在的缺點:由于多個環(huán)節(jié)采用明文通信,容易遭到黑客入侵破壞,導(dǎo)致以下后果:
TBOX終端和TSP平臺之間通信的數(shù)據(jù)被竊聽,破解。車輛私人信息被非法獲取。
TBOX終端和TSP平臺認證出現(xiàn)問題,TBOX終端被連接到非法中心,車輛被非法控制,造成交通安全事故:例如發(fā)動機、油門、ABS、空調(diào)、車門車窗等等被控制。TSP平臺連接了非法的TBOX,收到虛假信息。
名詞解釋:
TBOX終端:Telematics BOX,簡稱車載TBOX,主要用于采集車輛相關(guān)信息,包含:位置信息、姿態(tài)信息、車輛狀態(tài)信息(通過連接車上CAN總線)等,然后通過無線通信將信息傳送到TSP平臺。同時用戶使用手機APP和PC的WEB用戶端可以通過TSP平臺下發(fā)指令給TBOX終端,對車輛進行控制操作,例如開關(guān)車門、開關(guān)空調(diào)等。
TSP平臺:TSP服務(wù)平臺,用于接收TBOX終端上傳的數(shù)據(jù),進行處理分析,并將用戶從手機APP或者是PC的WEB用戶端下發(fā)的車輛控制指令報文發(fā)送給TBOX終端。
手機APP/PC WEB用戶端:手機上安裝的應(yīng)用程序用戶端/個人電腦上安裝的應(yīng)用程序用戶端。
Key:密鑰。
HMAC:HMAC是密鑰相關(guān)的哈希運算消息認證碼(Hash-based Message Authentication Code),HMAC運算利用哈希算法,以一個密鑰和一個消息為輸入,生成一個消息摘要作為輸出。HMAC需要使用一個加密用的散列函數(shù),例如SHA(256)。
SHA:安全哈希算法(Secure Hash Algorithm),主要適用于數(shù)字簽名標準(Digital Signature Standard DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm DSA)。
SHA(256):基于256bit長度密鑰的SHA算法。
AES:高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學(xué)中又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準,是一種對稱性的加密算法。這個標準用來替代原先的DES,已經(jīng)廣為全世界所使用。
AES(128):基于128bit長度密鑰的AES算法。
安全加密芯片:內(nèi)置安全加密算法,通過SPI或UART等接口和TBOX終端的MCU連接,可以實現(xiàn)包括:獲取安全加密芯片序列號、數(shù)據(jù)加密、數(shù)據(jù)解密、隨機生成數(shù)字,保存密鑰及隨機數(shù)等功能。
密鑰管理服務(wù)器(KMS):簡稱硬件加密機,負責(zé)密鑰的生成、分發(fā)、存儲、備份、管理、銷毀等等,同時負責(zé)TSP平臺的報文的加解密。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種TBOX終端和TSP平臺之間密鑰生成方法以及系統(tǒng),通過該密鑰生成方法可以有效的防止因TBOX終端和TSP平臺之間的交互流程被攻擊而出現(xiàn)通訊數(shù)據(jù)被破解泄露,車輛被惡意控制。
本發(fā)明之一是這樣實現(xiàn)的:一種TBOX終端和TSP平臺之間密鑰生成方法,包括如下步驟:
步驟1、生成安全加密芯片主密鑰;
步驟2、將安全加密芯片主密鑰存儲至TSP平臺;
步驟3、將安全加密芯片主密鑰燒寫至TBOX終端。
進一步地,所述TBOX終端內(nèi)設(shè)有一安全加密芯片,所述步驟1進一步具體為:
在TSP平臺上隨機生成車企集團根主密鑰GRKey;
通過HMAC算法生成車輛子品牌主密鑰VBMKey;其中車企集團根主密鑰GRKey作為輸入消息,車輛品牌標識VBId作為key;
通過HMAC算法生成安全加密芯片生產(chǎn)廠商主密鑰SCVMKey;其中安全加密芯片廠商標識SCVId作為key,車輛子品牌主密鑰VBMKey作為輸入消息;
通過HMAC算法生成原始密鑰SCMORKey;其中安全加密芯片序列號SCSNo作為key,安全加密芯片生產(chǎn)廠商主密鑰SCVMKey作為輸入消息;
將原始密鑰SCMORKey作為安全加密芯片主密鑰。
進一步地,所述TSP平臺上設(shè)有一硬件加密機,所述硬件加密機上設(shè)有USB加密鎖,當USB加密鎖插入硬件加密機時,開始生成安全加密芯片主密鑰。
進一步地,所述將原始密鑰SCMORKey作為安全加密芯片主密鑰進一步具體為:截取原始密鑰SCMORKey的起始16字節(jié)以及末尾16字節(jié),組成32字節(jié)的安全加密芯片主密鑰SCMKey。
進一步地,所述步驟3進一步具體為:
TSP平臺將安全加密芯片主密鑰SCMKey通過加密后發(fā)送給PC配置工具;
PC配置工具將接收的數(shù)據(jù)解密后燒寫至安全加密芯片中。
進一步地,所述加密方式以及解密方式均為AES,將安全加密芯片序列號SCSNo作為key。
本發(fā)明之二是這樣實現(xiàn)的:一種TBOX終端和TSP平臺之間密鑰生成系統(tǒng),包括如下模塊:
密鑰生成模塊,生成安全加密芯片主密鑰;
存儲模塊,將安全加密芯片主密鑰存儲至TSP平臺;
燒寫模塊,將安全加密芯片主密鑰燒寫至TBOX終端。
進一步地,所述TBOX終端內(nèi)設(shè)有一安全加密芯片,所述密鑰生成模塊進一步具體為:
在TSP平臺上隨機生成車企集團根主密鑰GRKey;
通過HMAC算法生成車輛子品牌主密鑰VBMKey;其中車企集團根主密鑰GRKey作為輸入消息,車輛品牌標識VBId作為key;
通過HMAC算法生成安全加密芯片生產(chǎn)廠商主密鑰SCVMKey;其中安全加密芯片廠商標識SCVId作為key,車輛子品牌主密鑰VBMKey作為輸入消息;
通過HMAC算法生成原始密鑰SCMORKey;其中安全加密芯片序列號SCSNo作為key,安全加密芯片生產(chǎn)廠商主密鑰SCVMKey作為輸入消息;
將原始密鑰SCMORKey作為安全加密芯片主密鑰。
進一步地,所述TSP平臺上設(shè)有一硬件加密機,所述硬件加密機上設(shè)有USB加密鎖,當USB加密鎖插入硬件加密機時,開始生成安全加密芯片主密鑰。
進一步地,所述將原始密鑰SCMORKey作為安全加密芯片主密鑰進一步具體為:截取原始密鑰SCMORKey的起始16字節(jié)以及末尾16字節(jié),組成32字節(jié)的安全加密芯片主密鑰SCMKey。
進一步地,所述燒寫模塊進一步具體為:
TSP平臺將安全加密芯片主密鑰SCMKey通過加密后發(fā)送給PC配置工具;
PC配置工具將接收的數(shù)據(jù)解密后燒寫至安全加密芯片中。
進一步地,所述加密方式以及解密方式均為AES,將安全加密芯片序列號SCSNo作為key。
本發(fā)明具有如下優(yōu)點:本發(fā)明一種TBOX終端和TSP平臺之間密鑰生成方法以及系統(tǒng),該密鑰生成方式充分結(jié)合現(xiàn)有的硬件設(shè)備,產(chǎn)生獨一無二的密鑰,并且生成過程復(fù)雜,破解難;實現(xiàn)TBOX終端和TSP平臺之間通訊交互的安全加密,能夠防止非法的TBOX終端接入合法的TSP平臺,以及防止合法的TBOX終端接入非法的TBOX平臺,最終防止因TBOX終端和TSP平臺之間的交互流程被攻擊而出現(xiàn)通訊數(shù)據(jù)被破解泄露,車輛被惡意控制。
附圖說明
下面參照附圖結(jié)合實施例對本發(fā)明作進一步的說明。
圖1為本發(fā)明方法執(zhí)行流程圖。
圖2為本發(fā)明中TBOX終端安全芯片密鑰生成流程。
圖3為本發(fā)明中TBOX終端安全芯片主密鑰傳遞流程。
圖4為本發(fā)明中TBOX終端和TSP平臺雙向認證流程。
圖5為本發(fā)明中上下行會話密鑰生成流程。
圖6為本發(fā)明中上下行會話計數(shù)器生成流程。
圖7為本發(fā)明中TBOX終端發(fā)送報文給TSP平臺。
圖8為本發(fā)明中TSP平臺發(fā)送報文給TBOX終端。
具體實施方式
如圖1所示,本發(fā)明TBOX終端和TSP平臺之間密鑰生成方法,包括如下步驟:
步驟1、TSP平臺上設(shè)有一硬件加密機,所述硬件加密機上設(shè)有USB加密鎖,當USB加密鎖插入硬件加密機時,開始生成安全加密芯片主密鑰;在TSP平臺上隨機生成車企集團根主密鑰GRKey;
通過HMAC算法生成車輛子品牌主密鑰VBMKey;其中車企集團根主密鑰GRKey作為輸入消息,車輛品牌標識VBId作為key;
通過HMAC算法生成安全加密芯片生產(chǎn)廠商主密鑰SCVMKey;其中安全加密芯片廠商標識SCVId作為key,車輛子品牌主密鑰VBMKey作為輸入消息;
通過HMAC算法生成原始密鑰SCMORKey;其中安全加密芯片序列號SCSNo作為key,安全加密芯片生產(chǎn)廠商主密鑰SCVMKey作為輸入消息;
將原始密鑰SCMORKey作為安全加密芯片主密鑰,所述將原始密鑰SCMORKey作為安全加密芯片主密鑰進一步具體為:截取原始密鑰SCMORKey的起始16字節(jié)以及末尾16字節(jié),組成32字節(jié)的安全加密芯片主密鑰SCMKey;
步驟2、將安全加密芯片主密鑰存儲至TSP平臺;
步驟3、TSP平臺將安全加密芯片主密鑰SCMKey通過加密后發(fā)送給PC配置工具;
PC配置工具將接收的數(shù)據(jù)解密后燒寫至安全加密芯片中,所述加密方式以及解密方式均為AES,將安全加密芯片序列號SCSNo作為key。
本發(fā)明TBOX終端和TSP平臺之間密鑰生成系統(tǒng),包括如下模塊:
密鑰生成模塊,TSP平臺上設(shè)有一硬件加密機,所述硬件加密機上設(shè)有USB加密鎖,當USB加密鎖插入硬件加密機時,開始生成安全加密芯片主密鑰;在TSP平臺上隨機生成車企集團根主密鑰GRKey;
通過HMAC算法生成車輛子品牌主密鑰VBMKey;其中車企集團根主密鑰GRKey作為輸入消息,車輛品牌標識VBId作為key;
通過HMAC算法生成安全加密芯片生產(chǎn)廠商主密鑰SCVMKey;其中安全加密芯片廠商標識SCVId作為key,車輛子品牌主密鑰VBMKey作為輸入消息;
通過HMAC算法生成原始密鑰SCMORKey;其中安全加密芯片序列號SCSNo作為key,安全加密芯片生產(chǎn)廠商主密鑰SCVMKey作為輸入消息;
將原始密鑰SCMORKey作為安全加密芯片主密鑰,所述將原始密鑰SCMORKey作為安全加密芯片主密鑰進一步具體為:截取原始密鑰SCMORKey的起始16字節(jié)以及末尾16字節(jié),組成32字節(jié)的安全加密芯片主密鑰SCMKey,所述TBOX終端內(nèi)設(shè)有一安全加密芯片;
存儲模塊,將安全加密芯片主密鑰存儲至TSP平臺;
燒寫模塊,TSP平臺將安全加密芯片主密鑰SCMKey通過加密后發(fā)送給PC配置工具;
PC配置工具將接收的數(shù)據(jù)解密后燒寫至安全加密芯片中,所述加密方式以及解密方式均為AES,將安全加密芯片序列號SCSNo作為key。
本發(fā)明一種具體實施方式以及密鑰的具體使用方法:
本發(fā)明的思路是:1、在TBOX終端和TSP平臺之間的傳輸,采用加密通信、安全密鑰接入認證的方式。具體為:在TBOX終端上增加1個可以實現(xiàn)安全加密算法的模塊,在對應(yīng)的TSP平臺的通訊接入服務(wù)處增加1個密鑰管理服務(wù)器(KMS),簡稱硬件加密機。通過這樣的方法來保護TBOX終端不會接入到遠端的非法中心,遭到數(shù)據(jù)破解泄露及非法控制命令下發(fā),保障車輛安全。2、本發(fā)明方法主要采用的是對稱性加密方式。
1系統(tǒng)總體架構(gòu)
系統(tǒng)主要由TBOX終端(增加了安全加密芯片)、TSP平臺(增加了密鑰管理服務(wù)器(KMS),也稱為硬件加密機)、車、手機APP或者PC上的WEB用戶端四部分組成。
TBOX終端:主要用于采集車輛相關(guān)信息,然后通過無線通信傳送到TSP平臺。同時手機APP和PC的WEB用戶端可以通過TSP平臺下發(fā)指令給TBOX終端,對車輛進行控制操作,例如開關(guān)車門等。在原有TBOX終端中增加1個設(shè)計,內(nèi)部的MCU通過一個SPI口或者UART口連接到一個安全加密芯片,可以實現(xiàn)包括:獲取安全加密芯片序列號、數(shù)據(jù)加密、數(shù)據(jù)解密、隨機生成數(shù)字,保存密鑰及隨機數(shù)等功能。本處的安全芯片支持通用國際算法,包括3DES、AES、SHA等等。
TSP平臺:負責(zé)接收TBOX終端上傳的數(shù)據(jù),進行處理分析,并將用戶從手機APP或者是WEB用戶端下發(fā)的車輛控制指令報文,發(fā)送給TBOX終端。在原有TSP平臺設(shè)計中增加:在終端無線網(wǎng)絡(luò)接入的地方增加1臺密鑰管理服務(wù)器(KMS),簡稱硬件加密機。硬件加密機負責(zé)密鑰的生成、分發(fā)、存儲、備份、管理、銷毀等等,同時負責(zé)對交互報文的加解密。硬件加密機配有密鑰管理員USB加密鎖(1個或多個),只有當所有的USB加密鎖都被插入到硬件加密機后,硬件加密機才能得到足夠的授權(quán),進行密鑰生成。防止因不規(guī)范管理造成不合法密鑰隨意生成。
車:用戶最終實現(xiàn)功能控制的東西,TBOX終端安裝的地方,提供TBOX終端電源。TBOX終端可以采集到車輛的各種信息,包括:位置、姿態(tài)、車輛內(nèi)部狀態(tài)數(shù)據(jù)等(通過CAN總線)。
在這樣一個系統(tǒng)中,TSP平臺側(cè)的硬件加密機和TBOX終端側(cè)的安全加密芯片內(nèi)部存儲相應(yīng)的加密密鑰,實現(xiàn)TSP平臺與TBOX終端之間通信端到端加密機制,以實現(xiàn)以下主要安全功能:
TSP平臺與TBOX終端之間雙向認證功能。
關(guān)鍵敏感數(shù)據(jù)的加密傳輸。
信息數(shù)據(jù)的完整性校驗。
為了實現(xiàn)以上功能,首先需要生成每個TBOX終端特有的安全加密芯片的主密鑰,并安全傳遞密鑰,寫入安全加密芯片。
之后,TBOX終端和TSP平臺之間要通過一系列雙向認證的過程,建立安全可靠的連接,并生成臨時的會話密鑰。
最后,TBOX終端可以通過臨時的會話密鑰,進行安全加密的通信。
會話密鑰在一次會話結(jié)束后,自動作廢,再下一個會話啟動時,再進行雙向認證,新的會話密鑰建立。
本方法中使用的加密算法主要采用的是:AES(128)和HMAC算法(所有的HMAC算法都采用SHA(256)作為內(nèi)部散列算法)。
HMAC算法的調(diào)用方式為HMAC(key,data)。Key為密鑰,data為輸入消息。
安全加密芯片的主密鑰生成流程如下:
針對不同的TBOX終端,因其是提供給不同的車廠的不同的車輛使用,因此根據(jù)車企不同、車輛子品牌不同,車廠要求定制的安全加密芯片廠家不同、各個安全加密芯片的序列號不同,生成不同的TBOX終端的安全加密芯片主密鑰。
如圖2所示,具體流程說明如下:
車企集團根主密鑰生成:操作人員操作硬件加密機生成安全芯片主密鑰。第一步是,將車廠的密鑰管理員USB加密鎖(1個或多個)插入硬件加密機。
硬件加密機檢測到已經(jīng)獲得最高管理員授權(quán)。
硬件加密機通過內(nèi)部的物理噪聲源隨機數(shù)發(fā)生器,隨機生成32字節(jié)的車企集團根主密鑰GRKey,并保存下來。后續(xù)如需使用,不需要再生成。
車輛子品牌主密鑰生成:硬件加密機根據(jù)車輛品牌標識VBId(16字節(jié))計算車輛子品牌主密鑰VBMKey(64字節(jié))。使用的算法是HMAC,計算的方式是使用車輛品牌標識VBId(16字節(jié))作為key,車企集團根主密鑰GRKey(32字節(jié))作為輸入消息,調(diào)用方式:HMAC(VBId,GRKey)。
安全加密芯片生產(chǎn)廠商主密鑰生成:硬件加密機根據(jù)安全芯片廠商標識SCVId(16字節(jié))計算安全加密芯片生產(chǎn)廠商主密鑰SCVMKey(64字節(jié))。使用的算法是HMAC,計算的方式是使用安全芯片廠商標識SCVId(16字節(jié))作為key,車輛子品牌主密鑰VBMKey(64字節(jié))作為輸入消息,調(diào)用方式:HMAC(SCVId,VBMKey)。
安全加密芯片主密鑰生成:硬件加密機根據(jù)計算安全芯片主密鑰SCMKey(32字節(jié))。首先使用安全芯片序列號SCSNo(16字節(jié))作為key,安全加密芯片生產(chǎn)廠商主密鑰SCVMKey(64字節(jié))作為消息輸入,并采用HMAC算法,生成64字節(jié)原始密鑰SCMORKey,調(diào)用方式是HMAC(SCSNo,SCVMKey)。第二步,截取原始密鑰SCMORKey的最初的16字節(jié)和最末的16字節(jié),組成32字節(jié)的安全芯片主密鑰SCMKey。
安全加密芯片主密鑰傳遞:硬件加密機將安全芯片主密鑰SCMKey傳遞給TBOX終端上的安全加密芯片進行寫入保存。關(guān)于安全加密芯片具體的傳遞流程,如圖3所示。
至此,安全加密芯片主密鑰被生成后,進行傳遞保存到TBOX終端的安全加密芯片。
安全加密芯片主密鑰SCMKey實際上是一個密鑰組,分成兩個部分,各長16字節(jié),這兩支密鑰分別為:
MACKey:專用于MAC值計算的密鑰值,用于后續(xù)報文交互時HMAC算法中的key使用;其中MACKey是SCMKey前面16個字節(jié)的內(nèi)容。AESKey:專用于加密操作的密鑰值,用于后續(xù)報文交互時AES算法中的key使用;AESKey就是SCMKey后面16個字節(jié)的內(nèi)容。
2、安全加密芯片主密鑰傳遞流程:對安全加密芯片的密鑰傳遞流程,需要在TBOX終端生產(chǎn)的時候進行,如圖3所示。
TBOX整機生產(chǎn)開始參數(shù)配置:TBOX終端完成整機裝配生產(chǎn),通過生產(chǎn)上使用的PC配置工具,開始進行參數(shù)配置。(PC配置工具通過PC上的串口和TBOX終端連接進行通信,實現(xiàn)相關(guān)功能)
操作配置安全加密芯片主密鑰功能:產(chǎn)線操作人員使用PC配置工具中的配置安全加密芯片主密鑰SCMkey功能,按下功能按鈕。
請求安全加密芯片序列號:PC配置工具通過串口發(fā)命令給TBOX終端,索取安全加密芯片序列號SCSNo。
獲取安全加密芯片序列號:TBOX終端收到PC配置工具的命令,向安全加密芯片獲取安全加密芯片序列號SCSNo后,發(fā)送給PC配置工具。
發(fā)送序列號和終端料號信息給TSP平臺:PC配置工具將所生產(chǎn)的TBOX終端產(chǎn)品料號及安全加密芯片序列號SCSNo打包后,通過網(wǎng)絡(luò)發(fā)送給遠端的TSP平臺。
TSP平臺查詢相關(guān)信息:TSP平臺通過后臺系統(tǒng)根據(jù)TBOX終端產(chǎn)品料號查詢到對應(yīng)的車廠名稱以及車型信息、安全芯片加密廠商名稱,發(fā)送這些信息以及安全加密芯片序列號SCSNo給TSP平臺的硬件加密機(密鑰管理服務(wù)器)進行安全加密芯片主密鑰SCMkey計算。
安全加密芯片主密鑰計算:密鑰管理服務(wù)器根據(jù)TSP平臺傳遞的信息,查詢到車企集團根主密鑰GRKey(32字節(jié))、車輛品牌標識VBId(16字節(jié))、安全芯片廠商標識SCVId(16字節(jié))并根據(jù)TSP平臺傳送的安全加密芯片序列號SCSNo進行安全加密芯片主密鑰計算。
安全加密芯片主密鑰加密:密鑰管理服務(wù)器將生成的安全加密芯片主密鑰SCMkey采用安全加密芯片序列號SCSNo(16字節(jié))進行加密后發(fā)送給TSP平臺。加密方式是AES(128),使用安全加密芯片序列號SCSNo(16字節(jié))作為key。
加密的密鑰返回配置工具:TSP平臺將加密后的安全芯片主密鑰發(fā)給PC配置工具,PC配置工具通過串口下發(fā)給TBOX終端。
加密的密鑰解密:TBOX終端采用安全加密芯片序列號SCSNo作為key對下發(fā)的加密的密鑰進行解密,解密方式是AES(128)。
安全加密芯片主密鑰寫入:TBOX終端將安全加密芯片主密鑰寫入安全加密芯片。
完成寫入,返回成功:TBOX終端返回密鑰設(shè)置成功的應(yīng)答給PC配置工具,完成安全加密芯片主密鑰燒寫。
雙向認證流程如下:
TBOX終端和TSP平臺在相互建立通信連接,進行數(shù)據(jù)交互前,必須進行雙向認證,以保證終端及平臺的合法性。
雙向認證是對安全數(shù)據(jù)保護的有效手段,它包含兩個方面的安全操作:
TSP平臺需要向TBOX終端提供認證信息供TBOX終端校驗TSP平臺的合法性。
TBOX終端同時也需要向TSP平臺提供認證信息供TSP平臺校驗TBOX終端的合法性。
在每一個新的會話開始之前,服務(wù)器與終端應(yīng)進行雙向認證。在完成雙向認證之后,設(shè)備將會向平臺提供對設(shè)備的相應(yīng)訪問權(quán)限。基于AES的雙向認證會在驗證雙方的安全密鑰之后產(chǎn)生一個共同的會話密鑰以及順序計數(shù)器的初值SOC。SOC主要用于在會話周期內(nèi)的防重發(fā)機制,每使用會話密鑰進行一次加密/解密運算之前,必須將SOC的值加1。
如圖4所示,獲取安全芯片序列號及生成8位隨機數(shù):TBOX終端從內(nèi)置的安全加密芯片中獲取安全加密芯片的序列號SCSNo(16字節(jié)),以及一個8字節(jié)的隨機數(shù)TBOXrnd_8byte。
TBOX終端發(fā)送認證請求:TBOX終端使用安全加密芯片的序列號SCSNo以及8字節(jié)隨機數(shù)TBOXrnd_8byte,以及TBOX終端序列號生成TBOX終端設(shè)備認證請求報文,發(fā)給TSP平臺。
TSP平臺將請求發(fā)給硬件加密機:TSP平臺收到來自TBOX終端設(shè)備的認證請求報文,發(fā)送給硬件加密機。
硬件加密機生成隨機數(shù):硬件加密機生成一個32字節(jié)的隨機數(shù)KMSrnd_32byte以及8字節(jié)隨機數(shù)KMSrnd_8byte。
硬件加密機生成字符串:硬件加密機生成字符串KMS_S(KMSrnd_8byte,TSPId,TBOXrnd_8byte,SCSNo,KMSrnd_32byte),TSPId為平臺標識碼。
硬件加密機加密字符串:硬件加密機根據(jù)安全加密芯片序列號SCSNo獲取安全加密芯片主密鑰并對KMS_S進行加密,將字符串KMS_S加密后,形成的加密字符串ENKMS_S發(fā)給TSP平臺。加密算法為AES(128)。
TSP平臺下發(fā)加密字符串給TBOX終端:TSP平臺將加密字符串ENKMS_S發(fā)送給TBOX終端。
加密字符串解密:TBOX終端根據(jù)安全芯片主密鑰解密字符串ENKMS_S得到KMS_S,然后從中得到SCSNo和TBOXrnd_8byte的值,并進行校驗。
校驗結(jié)果處理:校驗結(jié)果通過的話,則繼續(xù)進行雙向認證,否則認證失敗,結(jié)束流程。
TBOX終端生成會話密鑰和會話計數(shù)器:TBOX的安全芯片主密鑰生成一個32字節(jié)的隨機數(shù)TBOXrnd_32byte,并利用TBOXrnd_32byte和KMSrnd_32byte生成上行會話密鑰KSET_U及上行會話順序計數(shù)器初值SOC_U,下行會話密鑰KSET_D及下行會話順序計數(shù)器初值SOC_D。會話密鑰及會話計數(shù)器的生成算法參見圖6和圖5。
TBOX終端生成字符串并加密:TBOX終端生成字符串TBOX_SS(KM Srnd_8byte,TSPId,TBOXrnd_32byte,SCSNo,KMSrnd_32byte),并使用TBOX終端的安全芯片主密鑰對字符串TBOX_SS進行加密,生成加密字符串ENTBOX_SS。加密算法采用AES(128)。
TBOX終端發(fā)送加密字符串:TBOX終端將加密字符串ENTBOX_SS發(fā)到TSP平臺。
TSP平臺轉(zhuǎn)發(fā)字符串到硬件加密機:TSP平臺將加密字符串ENTBOX_SS發(fā)到平臺內(nèi)部的硬件加密機。
硬件加密機校驗隨機數(shù)數(shù)值:硬件加密機根據(jù)安全加密芯片主密鑰,解密字符串ENTBOX_SS,得到字符串TBOX_SS,并校驗KMSrnd_32byte和KMSrnd_8byte的值。
校驗隨機數(shù)結(jié)果:如果校驗通過,則繼續(xù)進行認證;如果不通過,則雙向認證失敗,結(jié)束認證。
硬件加密機生成會話密鑰:硬件加密機根據(jù)TBOXrnd_32byte以及KMSrnd_32byte生成上行會話密鑰KSET_U及上行會話順序計數(shù)器初值SOC_U,下行會話密鑰KSET_D及下行會話順序計數(shù)器初值SOC_D,并保存下來。會話密鑰及會話計數(shù)器的生成算法如圖5和圖6所示。
雙向認證建立:雙向認證建立,可以開始采用加密報文交互。
會話密鑰和會話計數(shù)器的生成流程
上下行會話密鑰生成的是一個32字節(jié)的密鑰組,分成兩個部分,分別用于MAC計算和AES加密計算。
上下行會話計數(shù)器生成的是一個16字節(jié)的數(shù)。
如圖5所示,哈希值1計算:使用算法計算HMAC(MACKey,TBOXrnd_32byte)的值D1(64位)。
哈希值2計算:使用算法計算HMAC(MACKey,KMSrnd_32byte)的值D2(64位)。
異或值計算:使用D1的值和D2的值異或,生成D3(64位)。
上行密鑰生成:取D3最初16個字節(jié)作為KSET_ENC_U,用于上行會話AES加密使用,取D3最末尾的16個字節(jié)作為KSET_MAC_U,用于上行會話HMAC計算作為KEY使用。兩個16字節(jié)的密鑰組成上行會話密鑰KSET_U(32字節(jié))。
累加值計算:使用D1的值和D2的值,累加生成D4(64位)
下行密鑰生成:取D4最初16個字節(jié)作為KSET_ENC_D,用于下行會話AES加密使用,取D4最末尾的16個字節(jié)作為KSET_MAC_D,用于下行會話HMAC計算作為KEY使用。兩個16字節(jié)的密鑰組成下行會話密鑰KSET_D(32字節(jié))。
如圖6所示,上下行會話計數(shù)器生成流程
加密值1計算:使用算法計算AES(AESKey,TBOXrnd_32byte)的值S1(88位)。
加密值2計算:使用算法計算AES(AESKey,KMSrnd_32byte)的值S2(88位)。
累加和計算:使用S1的值和S2的值,累加生成S3(88位)。
會話計數(shù)器生成:取S3最初16個字節(jié)作為SOC_U,上行會話順序計數(shù)器,取S3最末尾的16個字節(jié)作為SOC_D,作為下行會話順序計數(shù)器。
5、TBOX終端和TSP平臺雙向認證建立后,可以進行加密通信,如圖7和圖8所述:
如圖7所示,發(fā)送會話計數(shù)器累加:TBOX終端將需要上傳到TSP平臺的明文數(shù)據(jù)TBOX_SENDDATA準備好,并將上行會話計數(shù)器SOC_U值+1。
發(fā)送報文加密:TBOX終端使用上行會話密鑰KSET_U加密明文數(shù)據(jù)SOC_U+TBOX_SENDDATA,得到加密數(shù)據(jù)ENTBOX_SENDDATA,把加密數(shù)據(jù)ENTBOX_SENDDATA作為加密報文的正文部分。
計算哈希值:TBOX終端使用HMAC算法計算加密數(shù)據(jù)ENTBOX_SENDDATA的哈希值,并附在加密報文正文后面,形成完整的加密報文。
發(fā)送加密報文:TBOX終端設(shè)備發(fā)送加密報文和安全加密芯片序列號SCSNo給TSP平臺,TSP平臺將加密報文和安全加密芯片序列號SCSNo傳送給硬件加密機。
接收報文,校驗完整性:硬件加密機將上行會話計數(shù)器SOC_U+1,先使用HMAC算法對加密報文的完整性進行校驗,校驗加密報文的尾部的哈希值是否正確。
校驗結(jié)果:校驗結(jié)果通過,則進入解密環(huán)節(jié),否則,認為報文不完整,丟棄。
解密報文:硬件加密機使用上行會話密鑰KSET_ENC_U解密加密報文的正文部分,返回明文給TSP平臺,進行分析處理。
如圖8所示,發(fā)送會話計數(shù)器累加:TSP平臺將需要發(fā)送加密的明文數(shù)據(jù)TSP_SENDDATA以及安全加密芯片序列號SCSNo發(fā)給硬件加密機,硬件加密機將下行會話計數(shù)器值SOC_D的值+1。
發(fā)送報文加密:硬件加密機使用下行會話密鑰KSET_ENC_D加密明文數(shù)據(jù)SOC_D+TSP_SENDDATA,得到加密數(shù)據(jù)ENTSP_SENDDATA,把加密數(shù)據(jù)ENTSP_SENDDATA作為加密報文的正文部分。
計算哈希值:硬件加密機使用HMAC算法計算加密數(shù)據(jù)ENTSP_SENDDATA的哈希值,附在加密報文正文部分的后面,生成完整報文,并返回給TSP平臺。
發(fā)送加密報文:TSP平臺將加密報文發(fā)給TBOX終端。
接收報文,校驗完整性:TBOX終端將下行會話計數(shù)器值SOC_D的值+1,并使用HMAC算法來計算加密報文正文的哈希值,之后對比加密報文尾部附帶的值,是否正確,檢驗報文的完整性。
校驗結(jié)果:校驗結(jié)果通過,則進入解密環(huán)節(jié),否則,認為報文不完整,丟棄。
解密報文:TBOX終端采用下行會話密鑰KSET_ENC_D解密加密報文的正文值,得到明文。
會話密鑰和上下行會話計數(shù)器SOC的值在芯片內(nèi)將會一直有效,直到會話由于下列情況而終止:
安全加密芯片因TBOX終端重啟等原因被掉電復(fù)位。
TBOX終端掉線重新和TSP平臺連接。
TBOX終端取消使用加密方式和TSP平臺連接,改用明文方式。
雖然以上描述了本發(fā)明的具體實施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。