彭 楊,戎 輝,王文揚,田曉笛,高 嵩,4,郭 蓬,4,何 佳
(1.上汽通用五菱汽車股份有限公司,廣西柳州545007;2.中國汽車技術(shù)研究中心,天津300300;3.河北工業(yè)大學(xué),天津300132;4.天津大學(xué),天津300072)
密碼技術(shù)在T-BOX安全防護(hù)中的應(yīng)用
彭 楊1,戎 輝2,3,王文揚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)證性、完整性和重放性四個方面介紹了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ù)越多,存在的信息安全漏洞也越多。為了保證出行安全和信息安全,在功能研究的同時,也要注重檢測系統(tǒng)漏洞并給出有效的解決方案。本文介紹了T-BOX信息安全可能存在的保密性、可認(rèn)證性、完整性和重放性的問題,然后給出了上述問題的具體解決方案。
信息安全指的是信息在生產(chǎn)、傳輸、使用和存儲的過程中,對信息載體和信息的處理、傳輸、存儲、訪問提供安全保護(hù),防止信息數(shù)據(jù)和內(nèi)容被篡改或非法使用。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們的生活已經(jīng)趨向于大數(shù)據(jù)化,日常生活已經(jīng)和信息安全緊密的聯(lián)系到了一起。
信息安全具有很多基本屬性,包括保密性、完整性、可認(rèn)證性和抗重放性等。保密性是指信息在傳遞或存儲過程中不被未授權(quán)的第三方竊取或非法使用。完整性是指信息在傳遞過程中不被修改或破壞,保證信息的準(zhǔn)確性和有效性??烧J(rèn)證性是指在信息互聯(lián)之前,接收和發(fā)送方需要認(rèn)證彼此的身份,防止第三方非法冒充??怪胤判允侵傅谌街貜?fù)或延遲發(fā)送信息,使接受方接收過期的信息或是重復(fù)接受指令,達(dá)到干擾或誤導(dǎo)接收方的目的[1]。信息安全還有其他的屬性,由于本文主要針對上述四種給出解決方案,故不再贅述其他屬性。
2.1 保密性
T-BOX與云端依靠網(wǎng)絡(luò)進(jìn)行傳送,如果信息不加密直接傳送,一旦被第三者竊取,信息就會泄漏,因此,必須采用一種信息加密手段,使得未授權(quán)方不能破解信息。
本文采用AES的加密方法。AES最早是在1997年,由比利時Joan Deaman和VincentRijmen提交的[2]。它是一種分組密鑰,該算法的輸入標(biāo)準(zhǔn)為為128位數(shù)據(jù),密鑰的長度為128、192和256位。
將T-BOX與云端發(fā)送的信息用AES加密,只有通過密鑰才能解密。AES主要是由多個輪組成的,一共分為4步,分別為:
(1)逐字節(jié)替換。AES輸入為128位,即16字節(jié),分為4*4的組合,從替換表(S-BOX)中查找每個字節(jié)對應(yīng)的替換值,對每個字節(jié)進(jìn)行替換。
(2)平移行。以4*4組合的每一行為單位,每一行依次向左移動0,1,2,3個單位(以后的單位依次補在右邊的空格里)。
(3)混合列。對4*4組合按照列進(jìn)行比特運算,替換成另外的4*4組合。
(4)與輪密鑰進(jìn)行異或運算。將(3)混合列之后的組合與密鑰進(jìn)行異或運算,得出一個新的與密鑰相關(guān)的4*4組合。
上述為運算的1輪,每次加密需要重復(fù)上述運算10~14輪。解密則進(jìn)行相反的運算。經(jīng)過加密,在沒有密鑰的前提下,很難破解傳遞信息的真正內(nèi)容。
2.2 可認(rèn)證
T-BOX與云端互通互聯(lián)時,有可能存在偽云給T-BOX發(fā)送錯誤指令,嚴(yán)重者會威脅到車主的生命安全;或者偽端冒充車輛與云端連接,竊取云端存儲的大量信息,因此,需要在信息交互之前認(rèn)證雙方的身份。本文給出了RSA和HMAC MD5兩種方案。
2.2.1 RSA
RSA是一種公鑰算法,需要發(fā)送和接受方都有自己的公鑰和私鑰,并將公鑰發(fā)送給對方。一方的公鑰可以加密信息,但是只有該方的私鑰可以解密。在T-BOX和云端交互之前需要共享公鑰,如圖1所示,描述了T-BOX和云端互相認(rèn)證的過程。
圖1 T-BOX和云端的雙向認(rèn)證
T-BOX給出一串隨機(jī)數(shù)組R1,并用云端的公鑰對R1加密得出函數(shù)值f(R1),最后將兩者組合打包發(fā)送給云端。云端接收到信息之后,用自己的密鑰解密f(R1).如果得出的值與R1不同,則認(rèn)證失敗;如果相同,則完成對T-BOX的單向認(rèn)證,然后云端以同樣的方式完成T-BOX對云端的認(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)造消息驗證碼的方法,輸入為一個消息和密鑰,輸出為一個固定長度的消息摘要。它使用了兩次單向散列函數(shù),目前還沒有發(fā)現(xiàn)產(chǎn)生碰撞的方法。本文采用的HMAC MD5算法表示兩次單向散列運算均為MD5.
T-BOX和云端的認(rèn)證流程和圖1基本一致,不同的是HMACMD5的密鑰是一個,一定要保證密鑰的安全性。
HMACMD5的原理為:
其中H表示MD5的運算,K表示認(rèn)證密碼,m表示輸入的消息,opad表示循環(huán)的0x36,ipad表示循環(huán)的0x5C,具體流程如下[3]:
(1)密鑰填充。若密鑰長度小于分組長度,則末尾補0,若長于分組長度則求其HMAC值,代替密鑰。
(2)填充后的密鑰與ipad異或,得到一個與單向散列函數(shù)的分組長度相同的比特序列,記為ipadkey.
(3)將ipadkey序列附加在消息的開頭進(jìn)行組合,計算它們的MD5值。
(4)將(1)中填充后的密鑰與opad異或,得到一個與分組長度相同的比特序列,記為opadkey.
(5)將(3)得出的散列值放在opadkey后面,作為輸入計算它的MD5值,計委最終的MD5值。
2.3 完整性
T-BOX與云端發(fā)送的信息有可能被第三方篡改,為了保證信息的完整性,給出了MD5、SHA1兩種單項散列函數(shù)的運算方案。
2.3.1 MD5(Message Digest 5)
MD5是1991年Rivest提出的單向散列函數(shù),單向散列函數(shù)具有單向性,很難找到有相同MAC值的兩個數(shù)。MD5可以對任意長度的消息進(jìn)行計算,產(chǎn)生128比特的散列值。
驗證信息完整性的過程按照圖1講述,其中R1表示T-BOX發(fā)送的信息,f(R1)表示經(jīng)MD5運算的值。即使T-BOX發(fā)送的消息被人篡改,當(dāng)云端接收到之后會驗證消息的MD5值是否和f(R1)相同,如果不同直接將信息過濾。
MD5運算步驟為:
1)填充:將消息填充為512的整數(shù)倍。先添加一個1,再添加0使其長度為512倍數(shù)減去64位。
2)記錄信息長度:用64位來存儲填充前信息長度,將這64位加在1)的后面。
3)裝入鏈接變量:在程序中定義4個3位變量初始化為:
4)四輪主循環(huán)運算:先將ABCD分別復(fù)制到a,b,c,d中。主循環(huán)4輪,每輪循環(huán)16次運算,每次都對a,b,c,d其中的3個做一次非線性運算,再將結(jié)果加到第4個變量、文本的一個子分組和一個常數(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ù)運行算法,最后輸出A,B,C和D的級聯(lián),每一輪運算16次,總共運行64步。
2.3.2 SHA1(Secure Hash Algorithm)
SHA1是另一單向散列函數(shù),具有與MD5一樣的單向性,完整性驗證過程與MD5一致,這里就不再贅述。不同的是SHA1只能處理信息長度小于264-1,而且輸出摘要長度為160位。
SHA1運算步驟為[4]:
1)填充并記錄長度,與MD5方法相同。
2)給定常量;
3)初始化緩沖區(qū)。
SHA1用到兩個緩沖區(qū),第一個緩沖區(qū)標(biāo)記為A,B,C,D,E,第二個緩沖區(qū)標(biāo)記為H0,H1,H2,H3,H4,運算中還用到標(biāo)記為W0~W79的80個32位字序列和一個單字緩沖區(qū)TEMP,先將{Hi}這5個變量復(fù)制到A,B,C,D中。
4)處理Mi.
利用消息分組從16個32位字(M0~M15)變成
80個32位字(W0~W79)
5)主循環(huán)運算。
當(dāng)0≤t≤79時,主循環(huán)運算:
其中,E=D;D=C;C=B<<<30;B=A;A= TEMP.
SHA1運算包括四輪,每輪20次操作,SHA1用下列邏輯序列函數(shù),每個輸入為三個32位字,輸出為一個32位字,定義為:
當(dāng)0≤t≤19時,
當(dāng)20≤t≤39時,
當(dāng)40≤t≤49時,
當(dāng)60≤t≤79時,
在這之后a,b,c,d,e分別加上A,B,C,D,E,然后下一個分組數(shù)據(jù)繼續(xù)運算,最后輸出是由A,B,C,D,E級聯(lián)而成。
2.4 重放性
T-BOX和云端交互時,信息可能會被第三方干擾,使信息重復(fù)發(fā)送或是延遲發(fā)送,為了防止這種現(xiàn)象的發(fā)生,本文采用時間戳方案或是計數(shù)器方案。
(1)時間戳
T-BOX和云端互聯(lián)之前,必須確保雙方的時間一致。發(fā)送信息時都要加上發(fā)送該信息的時間,接收方收到信息后首先核對時間,如果收到的是之前的信息,則直接將消息過濾掉。值得注意的是,在通信過程中,必須考慮因信息延遲而導(dǎo)致的緩沖時間。
(2)計數(shù)器
T-BOX在和云端初次信息交互時,給定第一條信息一個編號,并將其存儲到信息中,此后,每條信息都會有一個遞增的編碼。當(dāng)接收方收到的信息是之前的序號,則認(rèn)為此條信息被重放。
本文主要是針對T-BOX信息安全的四大屬性給出解決方案,可以從一定程度上保證信息的安全性。隨著科學(xué)技術(shù)的發(fā)展,還會發(fā)現(xiàn)更多的問題,同時也會出現(xiàn)許多新問題,必須要重視T-BOX的安全問題,不斷的研發(fā)新技術(shù),解決系統(tǒng)漏洞,方便人們生活的同時更要保證人們的信息安全。
[1]雷吉成.物聯(lián)網(wǎng)安全技術(shù)[M].北京:電子工業(yè)出版社,2012.
[2]趙雪梅.AES加密算法的實現(xiàn)及應(yīng)用[J].常熟理工學(xué)院學(xué)報,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é)報.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
彭楊(1981-),男,廣西柳州人,工程師,碩士,研究方向為整車網(wǎng)絡(luò)及車聯(lián)網(wǎng);戎輝(1981-),男,河北邯鄲人,高級工程師,博士,研究方向為汽車電子、新能源、智能網(wǎng)聯(lián);王文揚(1980-),男,河北秦皇島人,高級工程師,碩士,研究方向為汽車電子、新能源、智能網(wǎng)聯(lián);田曉笛(1991-),女,河北衡水人,助理工程師,碩士,研究方向為汽車電子、新能源、智能網(wǎng)聯(lián);高嵩(1988-),男,山東濰坊人,工程師,博士,研究方向為汽車電子、新能源、智能網(wǎng)聯(lián);郭蓬(1983-),女,天津人,工程師,博士,研究方向為汽車電子、新能源、智能網(wǎng)聯(lián).