本發(fā)明涉及車載網(wǎng)絡(luò)安全通信方法領(lǐng)域,具體是一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法。
背景技術(shù):
隨著信息技術(shù)和移動(dòng)通信技術(shù)的發(fā)展,傳統(tǒng)汽車正在向智能化、網(wǎng)絡(luò)化方向演變。車載網(wǎng)向上連接至車聯(lián)網(wǎng)、互聯(lián)網(wǎng),網(wǎng)絡(luò)融合帶來的有用信息有助于提高乘客物理安全,方便司機(jī)駕駛,改善城市交通等。但是,越來越多的車輛連接上互聯(lián)網(wǎng),互聯(lián)網(wǎng)的安全隱患也逐步滲透到車載網(wǎng)中,這可能帶來嚴(yán)重的安全后果。特別是在遠(yuǎn)程診斷服務(wù)中,診斷工具DT(Diagnostics Tool)利用INTERNET連接到車載診斷端口,通過電子控制單元網(wǎng)關(guān)GECU(Gateway ECU),建立與CAN總線中電子控制單元ECUs(Electronic Control Units)的通信。正常診斷工具讀取并分析CAN總線發(fā)出的消息,給出診斷結(jié)果。但是,一些攻擊者把DT作為入口,入侵到車載的關(guān)鍵部件如車窗、安全氣囊、告警系統(tǒng)等,發(fā)送惡意指令;甚至忽略駕駛員的輸入,對(duì)汽車進(jìn)行控制,致使其剎車失效、引擎停止,進(jìn)而引發(fā)嚴(yán)重的交通事故。因此,增強(qiáng)外部設(shè)備對(duì)車載網(wǎng)的安全訪問非常重要。
CAN協(xié)議是目前車載控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)協(xié)議,它采用報(bào)文序列號(hào)、時(shí)窗、循環(huán)冗余校驗(yàn)碼等方法,保證了通信可靠性,但是缺乏必要的信息安全機(jī)制。攻擊者可選擇高優(yōu)先級(jí)發(fā)送數(shù)據(jù)占用總線,致使其他ECU無法使用總線;攻擊者通過診斷接口掌握車輛運(yùn)行時(shí)的狀態(tài)、控制車輛的關(guān)鍵部件等。CAN協(xié)議無法抵抗偽造、篡改、竊聽等安全威脅。
目前,已有部分工作面向CAN設(shè)計(jì)了ECU和網(wǎng)關(guān)之間的安全通信協(xié)議,提供保密、認(rèn)證功能,但是沒有考慮外部設(shè)備接入時(shí)的準(zhǔn)入控制。一些工作建議在車載固件升級(jí)時(shí),廠商和ECUs間基于PKI建立端到端的安全連接,因?yàn)橹悄芷囍屑闪舜罅縀CU,其計(jì)算能力有限,而公鑰密碼具有高能耗性,因此建立廠商和ECUs間安全連接的方法實(shí)際意義局限。計(jì)算開銷大的協(xié)議,在車載中難以得到實(shí)際應(yīng)用。另外,由于CAN網(wǎng)絡(luò)的特殊性,原始的加密認(rèn)證算法也不能直接應(yīng)用于CAN中。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,基于CAN網(wǎng)絡(luò)的特殊性,提供CAN網(wǎng)絡(luò)與遠(yuǎn)程應(yīng)用的安全連接機(jī)制,以解決遠(yuǎn)程診斷服務(wù)對(duì)車載部件的非法訪問的問題。
為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案為:
一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:確保只有通過認(rèn)證的遠(yuǎn)程診斷工具才能夠接入車載網(wǎng)絡(luò),包括以下步驟:
(1)、車輛請(qǐng)求診斷服務(wù),遠(yuǎn)程診斷工具發(fā)送證書給網(wǎng)關(guān);
(2)、網(wǎng)關(guān)驗(yàn)證診斷工具發(fā)送的證書有效后,如證書使用者在可信列表中,則從該證書中提取公鑰,協(xié)商出共享密鑰,發(fā)送確認(rèn)消息、認(rèn)證碼及網(wǎng)關(guān)證書給診斷工具;
(3)、診斷工具驗(yàn)證網(wǎng)關(guān)證書有效后,如證書使用者已被授權(quán),從網(wǎng)關(guān)證書中提取公鑰,計(jì)算共享密鑰,認(rèn)證網(wǎng)關(guān)身份,如通過認(rèn)證,回應(yīng)連接確認(rèn)消息;
(4)、網(wǎng)關(guān)認(rèn)證診斷工具,如通過認(rèn)證,生成隨機(jī)的群會(huì)話密鑰,向ECUs、診斷工具安全地發(fā)送群會(huì)話密鑰;
(5)、診斷工具與ECUs間的使用群會(huì)話密鑰進(jìn)行安全通信;
(6)、當(dāng)診斷工具釋放連接時(shí),網(wǎng)關(guān)生成新的群密鑰,通知ECUs更新密鑰斷開連接。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(1)中,診斷工具向網(wǎng)關(guān)發(fā)送的消息包括證書、發(fā)送和接收方的ID、時(shí)戳。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(2)中,網(wǎng)關(guān)確認(rèn)診斷工具證書有效后,如證書的使用者在可信列表中,則從證書中提取出其公鑰,計(jì)算共享密鑰kGD=H(t2×dGECU×t1×dDTG),發(fā)送確認(rèn)消息、認(rèn)證碼、網(wǎng)關(guān)證書給診斷工具,其中,dGECU為網(wǎng)關(guān)私鑰,dDTG為診斷工具公鑰,,t1、t2為分別為診斷工具、網(wǎng)關(guān)發(fā)送的時(shí)戳,H為哈希算法SHA。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(3)中,診斷工具確認(rèn)網(wǎng)關(guān)證書有效后,如證書的使用者在已授權(quán)用戶中,則從網(wǎng)關(guān)證書中提取出網(wǎng)關(guān)公鑰,計(jì)算KDG=H(t1×dDT×t2×dGECUG),判斷等式是否成立;如成立,發(fā)送確認(rèn)消息否則,協(xié)商失敗退出,其中,其中,IDGECU為網(wǎng)關(guān)身份,dGECUG為網(wǎng)關(guān)公鑰,dDT為診斷工具私鑰,HMAC為基于SHA的帶密鑰的消息認(rèn)證算法,當(dāng)診斷工具與網(wǎng)關(guān)身份真實(shí),建立的密鑰KDG=KGD為雙方共享密鑰。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(4)中,網(wǎng)關(guān)計(jì)算如與診斷工具發(fā)來的認(rèn)證碼一致,則認(rèn)證通過,否則認(rèn)證失敗退出;如認(rèn)證通過,網(wǎng)關(guān)隨機(jī)生成群會(huì)話密鑰GCK,發(fā)送給電子控制單元ECUi,發(fā)送給DT;這里ECUi與網(wǎng)關(guān)間存在初始的共享密鑰AES為主流的加密算法,HMAC為基于SHA的帶密鑰的消息認(rèn)證算法,CAES、CHMAC分別為面向CAN網(wǎng)絡(luò)的AES、HMAC算法。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:面向CAN的AES算法為:
CAESk(M)=AESk(CTR)⊕M,其中CTR為ECU計(jì)數(shù)器的值,M為消息,AESk(CTR)為傳統(tǒng)的AES算法,使用密鑰k,加密CTR后,截取結(jié)果的前64位比特;該算法解決了AES-128密文128比特與CAN數(shù)據(jù)載荷字段為64比特的矛盾,CTR可防止重放攻擊。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:面向CAN的HMAC算法為:
CHMACk(M)是傳統(tǒng)HMAC作用于CTR||M,并截取結(jié)果的前32比特,將其放在CAN幀擴(kuò)展ID字段和CRC字段,各16比特;該方法可解決消息認(rèn)證碼在CAN中的存儲(chǔ)問題。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(5)中,診斷工具與網(wǎng)關(guān)間具有共享群會(huì)話密鑰GCK,診斷數(shù)據(jù)上傳、下載的方式為:
CAESGCK(Diagnostic data||CHMACGCK(Diagnostic data))。
所述的一種車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其特征在于:步驟(6)中,網(wǎng)關(guān)生成新群密鑰并向ECUs發(fā)送新密鑰,使ECUi與診斷工具無法繼續(xù)通信。
與已有技術(shù)相比,本發(fā)明的有益效果體現(xiàn)在:
采用本發(fā)明的車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法能夠提供CAN網(wǎng)絡(luò)與遠(yuǎn)程應(yīng)用的安全連接機(jī)制,能夠防止遠(yuǎn)程診斷服務(wù)對(duì)車載部件的非法訪問。在建立連接后,ECUs單元與診斷工具之間的通信處理速度快,計(jì)算開銷小。
附圖說明
圖1是本發(fā)明實(shí)施例車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法步驟流程圖。
圖2是本發(fā)明實(shí)施例車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法流程框圖。
圖3是本發(fā)明實(shí)施例車載遠(yuǎn)程診斷服務(wù)的網(wǎng)絡(luò)架構(gòu)圖。
具體實(shí)施方式
本發(fā)明實(shí)施例的車載遠(yuǎn)程診斷服務(wù)的安全接入與保密通信方法,其網(wǎng)絡(luò)架構(gòu)如圖3。車載網(wǎng)包括電子控制單ECUs,全球衛(wèi)星導(dǎo)航系統(tǒng)單元(Global Navigation Satellite System,GNSS)、硬件安全模塊(Hardware Security Modules,HSMs)和傳感器模塊(Sensors)等組成。傳感器模塊獲得車輛自身的數(shù)據(jù),如位置、速度、方向等;全球衛(wèi)星導(dǎo)航系統(tǒng)單元用于獲得車輛準(zhǔn)確的位置信息;ECUs是車輛的重要組件,它收集、分析各模塊感知的數(shù)據(jù),發(fā)出指令,控制車輛的各種行駛行為。關(guān)鍵的ECUs都配有硬件安全模塊,用來存儲(chǔ)敏感數(shù)據(jù),執(zhí)行密碼相關(guān)操作。在車載遠(yuǎn)程診斷的服務(wù)中,當(dāng)車輛發(fā)起診斷申請(qǐng)時(shí),診斷工具利用INTERNET連接到車輛的診斷端口,建立診斷工具與ECUs的通信。假設(shè)診斷工具(DT)、ECU網(wǎng)關(guān)(GECU)已擁有數(shù)字證書,分別為CertDT和CertGECU;ECUi與網(wǎng)關(guān)存在初始的共享密鑰另外,由于車載網(wǎng)中CAN總線只能承受有限載荷,AES密文與HMAC認(rèn)證碼無法直接應(yīng)用,需要修改AES算法加密車載數(shù)據(jù),修改HMAC算法生成相關(guān)數(shù)據(jù)的驗(yàn)證碼。本發(fā)明中的方法包括步驟如圖1和圖2所示:
S1診斷工具發(fā)送的消息為IDDT||IDGECU||t1||CertDT,其中IDDT、IDGECU分別為診斷工具、網(wǎng)關(guān)ID,t1為時(shí)戳。
S2網(wǎng)關(guān)檢查診斷工具的證書。如果無效,退出。否則,從證書中提取出公鑰dDTG,基于Diffie-Hellman密鑰交換思想,建立共享密鑰kGD=H(t2×dGECU×t1×dDTG),引入時(shí)戳是保證共享密鑰的新鮮性;發(fā)送給診斷工具,其中dGECU為網(wǎng)關(guān)私鑰,HMAC為基于SHA的消息認(rèn)證算法,采用了剛產(chǎn)生的共享密鑰。
S3診斷工具檢查網(wǎng)關(guān)證書是否有效。如果無效,退出。否則,從證書提取出網(wǎng)關(guān)公鑰dDECUG,計(jì)算KDG=H(t1×dDT×t2×dGECUG)和判斷等式是否成立;如成立,發(fā)送確認(rèn)消息否則,協(xié)商失敗退出。上式正確是因?yàn)榫W(wǎng)關(guān)與診斷工具協(xié)商出的共享密鑰滿足KDG=KGD.
S4網(wǎng)關(guān)計(jì)算判斷等式是否成立;如成立,網(wǎng)關(guān)隨機(jī)生成群會(huì)話密鑰GCK,發(fā)送給ECUi,發(fā)送給DT。這里,發(fā)送給DT消息使用常規(guī)的加密算法、HMAC消息認(rèn)證算法,而發(fā)送給ECUi使用的是面向CAN的AES、HMAC算法。
S5診斷工具與網(wǎng)關(guān)間建立的共享密鑰為GCK,診斷數(shù)據(jù)的通信格式為CAESGCK(Diagnostic data||CHMACGCK(Diagnostic data)),其中CAES、CHMAC為面向CAN的AES算法、HMAC算法。
S6釋放連接的方法為,網(wǎng)關(guān)生成新GCK′,向ECUs發(fā)送由于診斷工具不再擁有新的GCK′,無法與ECUs通信。
面向CAN的AES算法為:
CAESk(M)=AESk(CTR)⊕M,其中CTR為ECU計(jì)數(shù)器的值,AESk(CTR)為基于傳統(tǒng)的AES算法,使用密鑰k,加密CTR后,截取結(jié)果的前64比特,M為消息。該算法為解決AES-128密文128比特與CAN數(shù)據(jù)載荷字段為64比特的矛盾。
面向CAN的HMAC算法為:
CHMACk(M)是傳統(tǒng)的HMAC作用于CTR||M,并截取結(jié)果的前32比特,將其放在CAN幀擴(kuò)展ID字段和CRC字段,各16比特。該方法可解決消息認(rèn)證碼在CAN中的存儲(chǔ)問題。為防止消息的重放,將每個(gè)ECU計(jì)數(shù)器CTR作為幀的組成部分,進(jìn)行認(rèn)證和加密,每發(fā)送一幀,計(jì)數(shù)器加1。
以上實(shí)施方式僅用于說明本說明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。