彭 楊,戎 輝,王文揚(yáng),田曉笛,高 嵩,4,郭 蓬,4,何 佳
(1.上汽通用五菱汽車股份有限公司,廣西柳州545007;2.中國汽車技術(shù)研究中心,天津300300;3.河北工業(yè)大學(xué),天津300132;4.天津大學(xué),天津300072)
密碼技術(shù)在T-BOX安全防護(hù)中的應(yīng)用
彭 楊1,戎 輝2,3,王文揚(yáng)2,田曉笛2,高 嵩2,4,郭 蓬2,4,何 佳2
(1.上汽通用五菱汽車股份有限公司,廣西柳州545007;2.中國汽車技術(shù)研究中心,天津300300;3.河北工業(yè)大學(xué),天津300132;4.天津大學(xué),天津300072)
隨著互聯(lián)網(wǎng)和汽車電子技術(shù)的發(fā)展,T-BOX擁有越來越多的功能,但也產(chǎn)生了更多的信息安全威脅。本文從保密性、可認(rèn)證性、完整性和重放性四個(gè)方面介紹了T-BOX面臨的威脅;然后,基于密碼技術(shù)依次給出解決方案,并簡述了每種方案的解決原理;最后,本文指出T-BOX還面臨著其他的安全威脅,需要繼續(xù)深入研究密碼技術(shù)在T-BOX中的應(yīng)用。
T-BOX;密碼技術(shù);MD5;SHA1;RSA
隨著車聯(lián)網(wǎng)的飛速發(fā)展,各大汽車制造商紛紛推出自己的T-BOX車載終端產(chǎn)品,如寶馬、長安和比亞迪等。T-BOX與外界通過網(wǎng)絡(luò)連接,它的功能越多意味著與外界互通的數(shù)據(jù)越多,存在的信息安全漏洞也越多。為了保證出行安全和信息安全,在功能研究的同時(shí),也要注重檢測系統(tǒng)漏洞并給出有效的解決方案。本文介紹了T-BOX信息安全可能存在的保密性、可認(rèn)證性、完整性和重放性的問題,然后給出了上述問題的具體解決方案。
信息安全指的是信息在生產(chǎn)、傳輸、使用和存儲(chǔ)的過程中,對(duì)信息載體和信息的處理、傳輸、存儲(chǔ)、訪問提供安全保護(hù),防止信息數(shù)據(jù)和內(nèi)容被篡改或非法使用。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們的生活已經(jīng)趨向于大數(shù)據(jù)化,日常生活已經(jīng)和信息安全緊密的聯(lián)系到了一起。
信息安全具有很多基本屬性,包括保密性、完整性、可認(rèn)證性和抗重放性等。保密性是指信息在傳遞或存儲(chǔ)過程中不被未授權(quán)的第三方竊取或非法使用。完整性是指信息在傳遞過程中不被修改或破壞,保證信息的準(zhǔn)確性和有效性。可認(rèn)證性是指在信息互聯(lián)之前,接收和發(fā)送方需要認(rèn)證彼此的身份,防止第三方非法冒充。抗重放性是指第三方重復(fù)或延遲發(fā)送信息,使接受方接收過期的信息或是重復(fù)接受指令,達(dá)到干擾或誤導(dǎo)接收方的目的[1]。信息安全還有其他的屬性,由于本文主要針對(duì)上述四種給出解決方案,故不再贅述其他屬性。
2.1 保密性
T-BOX與云端依靠網(wǎng)絡(luò)進(jìn)行傳送,如果信息不加密直接傳送,一旦被第三者竊取,信息就會(huì)泄漏,因此,必須采用一種信息加密手段,使得未授權(quán)方不能破解信息。
本文采用AES的加密方法。AES最早是在1997年,由比利時(shí)Joan Deaman和VincentRijmen提交的[2]。它是一種分組密鑰,該算法的輸入標(biāo)準(zhǔn)為為128位數(shù)據(jù),密鑰的長度為128、192和256位。
將T-BOX與云端發(fā)送的信息用AES加密,只有通過密鑰才能解密。AES主要是由多個(gè)輪組成的,一共分為4步,分別為:
(1)逐字節(jié)替換。AES輸入為128位,即16字節(jié),分為4*4的組合,從替換表(S-BOX)中查找每個(gè)字節(jié)對(duì)應(yīng)的替換值,對(duì)每個(gè)字節(jié)進(jìn)行替換。
(2)平移行。以4*4組合的每一行為單位,每一行依次向左移動(dòng)0,1,2,3個(gè)單位(以后的單位依次補(bǔ)在右邊的空格里)。
(3)混合列。對(duì)4*4組合按照列進(jìn)行比特運(yùn)算,替換成另外的4*4組合。
(4)與輪密鑰進(jìn)行異或運(yùn)算。將(3)混合列之后的組合與密鑰進(jìn)行異或運(yùn)算,得出一個(gè)新的與密鑰相關(guān)的4*4組合。
上述為運(yùn)算的1輪,每次加密需要重復(fù)上述運(yùn)算10~14輪。解密則進(jìn)行相反的運(yùn)算。經(jīng)過加密,在沒有密鑰的前提下,很難破解傳遞信息的真正內(nèi)容。
2.2 可認(rèn)證
T-BOX與云端互通互聯(lián)時(shí),有可能存在偽云給T-BOX發(fā)送錯(cuò)誤指令,嚴(yán)重者會(huì)威脅到車主的生命安全;或者偽端冒充車輛與云端連接,竊取云端存儲(chǔ)的大量信息,因此,需要在信息交互之前認(rèn)證雙方的身份。本文給出了RSA和HMAC MD5兩種方案。
2.2.1 RSA
RSA是一種公鑰算法,需要發(fā)送和接受方都有自己的公鑰和私鑰,并將公鑰發(fā)送給對(duì)方。一方的公鑰可以加密信息,但是只有該方的私鑰可以解密。在T-BOX和云端交互之前需要共享公鑰,如圖1所示,描述了T-BOX和云端互相認(rèn)證的過程。

圖1 T-BOX和云端的雙向認(rèn)證
T-BOX給出一串隨機(jī)數(shù)組R1,并用云端的公鑰對(duì)R1加密得出函數(shù)值f(R1),最后將兩者組合打包發(fā)送給云端。云端接收到信息之后,用自己的密鑰解密f(R1).如果得出的值與R1不同,則認(rèn)證失敗;如果相同,則完成對(duì)T-BOX的單向認(rèn)證,然后云端以同樣的方式完成T-BOX對(duì)云端的認(rèn)證。
RSA的原理為:

其中,式(1)的數(shù)E和N表示公鑰,公式的含義為明文的E次方除以N的余數(shù);式(2)的數(shù)D和N表示私鑰,公式含義為密文的D次方除以N的余數(shù)。
2.2.2 HMACMD5
HMAC是一種使用單向散列函數(shù)構(gòu)造消息驗(yàn)證碼的方法,輸入為一個(gè)消息和密鑰,輸出為一個(gè)固定長度的消息摘要。它使用了兩次單向散列函數(shù),目前還沒有發(fā)現(xiàn)產(chǎn)生碰撞的方法。本文采用的HMAC MD5算法表示兩次單向散列運(yùn)算均為MD5.
T-BOX和云端的認(rèn)證流程和圖1基本一致,不同的是HMACMD5的密鑰是一個(gè),一定要保證密鑰的安全性。
HMACMD5的原理為:

其中H表示MD5的運(yùn)算,K表示認(rèn)證密碼,m表示輸入的消息,opad表示循環(huán)的0x36,ipad表示循環(huán)的0x5C,具體流程如下[3]:
(1)密鑰填充。若密鑰長度小于分組長度,則末尾補(bǔ)0,若長于分組長度則求其HMAC值,代替密鑰。
(2)填充后的密鑰與ipad異或,得到一個(gè)與單向散列函數(shù)的分組長度相同的比特序列,記為ipadkey.
(3)將ipadkey序列附加在消息的開頭進(jìn)行組合,計(jì)算它們的MD5值。
(4)將(1)中填充后的密鑰與opad異或,得到一個(gè)與分組長度相同的比特序列,記為opadkey.
(5)將(3)得出的散列值放在opadkey后面,作為輸入計(jì)算它的MD5值,計(jì)委最終的MD5值。
2.3 完整性
T-BOX與云端發(fā)送的信息有可能被第三方篡改,為了保證信息的完整性,給出了MD5、SHA1兩種單項(xiàng)散列函數(shù)的運(yùn)算方案。
2.3.1 MD5(Message Digest 5)
MD5是1991年Rivest提出的單向散列函數(shù),單向散列函數(shù)具有單向性,很難找到有相同MAC值的兩個(gè)數(shù)。MD5可以對(duì)任意長度的消息進(jìn)行計(jì)算,產(chǎn)生128比特的散列值。
驗(yàn)證信息完整性的過程按照?qǐng)D1講述,其中R1表示T-BOX發(fā)送的信息,f(R1)表示經(jīng)MD5運(yùn)算的值。即使T-BOX發(fā)送的消息被人篡改,當(dāng)云端接收到之后會(huì)驗(yàn)證消息的MD5值是否和f(R1)相同,如果不同直接將信息過濾。
MD5運(yùn)算步驟為:
1)填充:將消息填充為512的整數(shù)倍。先添加一個(gè)1,再添加0使其長度為512倍數(shù)減去64位。
2)記錄信息長度:用64位來存儲(chǔ)填充前信息長度,將這64位加在1)的后面。
3)裝入鏈接變量:在程序中定義4個(gè)3位變量初始化為:

4)四輪主循環(huán)運(yùn)算:先將ABCD分別復(fù)制到a,b,c,d中。主循環(huán)4輪,每輪循環(huán)16次運(yùn)算,每次都對(duì)a,b,c,d其中的3個(gè)做一次非線性運(yùn)算,再將結(jié)果加到第4個(gè)變量、文本的一個(gè)子分組和一個(gè)常數(shù)。
第一輪:FF(a,b,c,d,Mj,s,ti)
表示:

其中,

第二輪:GG(a,b,c,d,Mj,s,ti)
表示:

其中,

第三輪:HH(a,b,c,d,Mj,s,ti)
表示:

其中,

第四輪:II(a,b,c,d,Mj,s,ti)
表示:

其中,

常數(shù)ti是232×a bs(sini)的整數(shù)部分,i單位是弧度。所有這些完成后,A,B,C,D分別加上a,b,c,d.然后下一組數(shù)據(jù)繼續(xù)運(yùn)行算法,最后輸出A,B,C和D的級(jí)聯(lián),每一輪運(yùn)算16次,總共運(yùn)行64步。
2.3.2 SHA1(Secure Hash Algorithm)
SHA1是另一單向散列函數(shù),具有與MD5一樣的單向性,完整性驗(yàn)證過程與MD5一致,這里就不再贅述。不同的是SHA1只能處理信息長度小于264-1,而且輸出摘要長度為160位。
SHA1運(yùn)算步驟為[4]:
1)填充并記錄長度,與MD5方法相同。

2)給定常量;
3)初始化緩沖區(qū)。
SHA1用到兩個(gè)緩沖區(qū),第一個(gè)緩沖區(qū)標(biāo)記為A,B,C,D,E,第二個(gè)緩沖區(qū)標(biāo)記為H0,H1,H2,H3,H4,運(yùn)算中還用到標(biāo)記為W0~W79的80個(gè)32位字序列和一個(gè)單字緩沖區(qū)TEMP,先將{Hi}這5個(gè)變量復(fù)制到A,B,C,D中。
4)處理Mi.
利用消息分組從16個(gè)32位字(M0~M15)變成
80個(gè)32位字(W0~W79)

5)主循環(huán)運(yùn)算。
當(dāng)0≤t≤79時(shí),主循環(huán)運(yùn)算:

其中,E=D;D=C;C=B<<<30;B=A;A= TEMP.
SHA1運(yùn)算包括四輪,每輪20次操作,SHA1用下列邏輯序列函數(shù),每個(gè)輸入為三個(gè)32位字,輸出為一個(gè)32位字,定義為:
當(dāng)0≤t≤19時(shí),

當(dāng)20≤t≤39時(shí),

當(dāng)40≤t≤49時(shí),

當(dāng)60≤t≤79時(shí),

在這之后a,b,c,d,e分別加上A,B,C,D,E,然后下一個(gè)分組數(shù)據(jù)繼續(xù)運(yùn)算,最后輸出是由A,B,C,D,E級(jí)聯(lián)而成。
2.4 重放性
T-BOX和云端交互時(shí),信息可能會(huì)被第三方干擾,使信息重復(fù)發(fā)送或是延遲發(fā)送,為了防止這種現(xiàn)象的發(fā)生,本文采用時(shí)間戳方案或是計(jì)數(shù)器方案。
(1)時(shí)間戳
T-BOX和云端互聯(lián)之前,必須確保雙方的時(shí)間一致。發(fā)送信息時(shí)都要加上發(fā)送該信息的時(shí)間,接收方收到信息后首先核對(duì)時(shí)間,如果收到的是之前的信息,則直接將消息過濾掉。值得注意的是,在通信過程中,必須考慮因信息延遲而導(dǎo)致的緩沖時(shí)間。
(2)計(jì)數(shù)器
T-BOX在和云端初次信息交互時(shí),給定第一條信息一個(gè)編號(hào),并將其存儲(chǔ)到信息中,此后,每條信息都會(huì)有一個(gè)遞增的編碼。當(dāng)接收方收到的信息是之前的序號(hào),則認(rèn)為此條信息被重放。
本文主要是針對(duì)T-BOX信息安全的四大屬性給出解決方案,可以從一定程度上保證信息的安全性。隨著科學(xué)技術(shù)的發(fā)展,還會(huì)發(fā)現(xiàn)更多的問題,同時(shí)也會(huì)出現(xiàn)許多新問題,必須要重視T-BOX的安全問題,不斷的研發(fā)新技術(shù),解決系統(tǒng)漏洞,方便人們生活的同時(shí)更要保證人們的信息安全。
[1]雷吉成.物聯(lián)網(wǎng)安全技術(shù)[M].北京:電子工業(yè)出版社,2012.
[2]趙雪梅.AES加密算法的實(shí)現(xiàn)及應(yīng)用[J].常熟理工學(xué)院學(xué)報(bào),2010,2(24):105-110.
[3]黎琳.Hash函數(shù)RIPEMD-128和HMAC-MD4的安全性分析[D].濟(jì)南:山東大學(xué),2007.
[4]王紅霞,陸塞群.基于HMAC-SHA1算法的消息認(rèn)證機(jī)制[J].山西師范大學(xué)學(xué)報(bào).2005,1(19):30-33.
Cryptography Algorithm s in T-BOX Security Protection
PENG Yang1,RONG Hui2,3,WANGWen-yang2,TIAN Xiao-di2,GAO Song2,4,GUO Peng2,4,HE Jia2
(1.SGMW Automobile Co.,Ltd.,Liuzhou Guangxi 545007,China;2.China Automotive Technology&Research Center,Tianjin 300300,China;3.Hebei University of Technology,Tianjin 300132,China;4.Tianjin University,Tianjin 300072,China;)
With the development of Internet and automobile electronic technology,T-BOX has more and more functions,but also producesmore information security threats.This paper introduces the threats to T-BOX from four aspects,such as the confidentiality,authenti-cation,integrity and replay.Then,the principles of solutions are given based on the password techniques in turn.;finally,this paper points out that T-BOX faces other security threats,and we need to continue to further study.
T-BOX;cryptography;MD5;SHA1;RSA
TP319
A
1672-545X(2017)04-0247-04
2017-01-29
彭?xiàng)睿?981-),男,廣西柳州人,工程師,碩士,研究方向?yàn)檎嚲W(wǎng)絡(luò)及車聯(lián)網(wǎng);戎輝(1981-),男,河北邯鄲人,高級(jí)工程師,博士,研究方向?yàn)槠囯娮印⑿履茉础⒅悄芫W(wǎng)聯(lián);王文揚(yáng)(1980-),男,河北秦皇島人,高級(jí)工程師,碩士,研究方向?yàn)槠囯娮印⑿履茉础⒅悄芫W(wǎng)聯(lián);田曉笛(1991-),女,河北衡水人,助理工程師,碩士,研究方向?yàn)槠囯娮印⑿履茉础⒅悄芫W(wǎng)聯(lián);高嵩(1988-),男,山東濰坊人,工程師,博士,研究方向?yàn)槠囯娮印⑿履茉础⒅悄芫W(wǎng)聯(lián);郭蓬(1983-),女,天津人,工程師,博士,研究方向?yàn)槠囯娮印⑿履茉础⒅悄芫W(wǎng)聯(lián).