本發(fā)明涉及車輛遠程升級技術領域,具體的說,涉及了一種車輛安全遠程升級系統(tǒng)及升級方法。
背景技術:
隨著無線網(wǎng)絡覆蓋的完善、智能車載終端的普及、以及車輛MCU或ECU的廣泛應用,人們對汽車的智能化需求越來越高。目前,已經(jīng)可以實現(xiàn)對車輛MCU或ECU進行遠程升級。車輛MCU或ECU的遠程升級可以及時解決MCU或ECU中存在的問題,幫助車輛廠商降低升級所帶來的成本,同時給用戶的使用帶來便利,提升用戶對車輛及廠商的滿意度。
然而,目前現(xiàn)有的車輛遠程升級方案并沒有或者極少采取妥善的安全保護措施,從而容易造成升級數(shù)據(jù)被篡改或被第三方植入惡意代碼等安全問題,輕則造成車輛故障影響使用、重則造成車毀人亡的悲劇。同時,由于缺乏對升級數(shù)據(jù)的加密保護,容易導致車輛廠商的競爭對手或惡意第三方截獲升級數(shù)據(jù)包的明文,從而分析出車輛已有或潛在的缺陷,進行進一步攻擊的可能。
如何改進現(xiàn)有的車輛遠程升級的方法,實現(xiàn)對車輛進行安全有效的遠程升級,成為急需解決的問題。
技術實現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有技術的不足,提供一種車輛安全遠程系統(tǒng),并同時提供該系統(tǒng)的升級方法,使得在對車輛進行遠程升級時,可以確保升級數(shù)據(jù)的機密性和完整性。
為了實現(xiàn)上述目的,本發(fā)明所采用的技術方案是:
一種車輛安全遠程升級系統(tǒng),所述系統(tǒng)包括,升級包服務器,插入或內(nèi)嵌有升級包安全處理模塊;車載終端,插入或內(nèi)嵌有安全模塊,并通過車用網(wǎng)絡連接有車輛待升級模塊;遠程升級服務器,分別與所述升級包服務器和所述車載終端網(wǎng)絡連接;密鑰服務器,分別與所述升級包服務器和所述車載終端網(wǎng)絡連接;所述升級包安全處理模塊和所述安全模塊內(nèi)存儲有預置的共享密鑰;所述升級包安全處理模塊還存儲有可用于數(shù)字簽名的私鑰;所述升級包服務器調(diào)用所述升級包安全處理模塊將預置的車輛升級數(shù)據(jù)作安全處理后上傳至所述遠程升級服務器;所述車載終端與所述遠程升級服務器和所述密鑰服務器交互獲得車輛升級數(shù)據(jù),并使用車輛升級數(shù)據(jù)對所述車輛待升級模塊進行升級。
一種車輛安全遠程升級系統(tǒng)的升級方法,包括如下步驟:
步驟1,所述升級包服務器調(diào)用所述升級包安全處理模塊將預置的車輛升級數(shù)據(jù)作安全處理后上傳至所述遠程升級服務器;
步驟2,所述車載終端與所述遠程升級服務器和所述密鑰服務器交互獲得車輛升級數(shù)據(jù);
步驟3,使用車輛升級數(shù)據(jù)對所述車輛待升級模塊進行升級。
基于上述,所述步驟1包括如下步驟:
步驟1.1,所述升級包服務器向所述密鑰服務器請求加密密鑰因子,并向所述密鑰服務器傳送所述車輛待升級模塊的當前版本號;
步驟1.2,所述密鑰服務器生成加密密鑰因子,并將其與所述車輛待升級模塊的當前版本號一起保存,并向所述升級包服務器返回所述加密密鑰因子;
步驟1.3,所述升級包服務器收到所述加密密鑰因子后,調(diào)用所述升級包安全處理模塊計算獲得加密密鑰;
步驟1.4,所述升級包服務器使用所述升級包安全處理模塊內(nèi)置的私鑰對車輛升級數(shù)據(jù)進行數(shù)字簽名,同時調(diào)用所述升級包安全處理模塊使用所述加密密鑰加密所述車輛升級數(shù)據(jù),然后將經(jīng)過簽名和加密的車輛升級數(shù)據(jù)上傳至所述遠程升級服務器。
基于上述,所述步驟2包括如下步驟:
步驟2.1,所述車載終端向所述車輛待升級模塊查詢模塊版本信息,并將查詢到的模塊版本信息發(fā)送給所述遠程升級服務器;
步驟2.2,所述遠程升級服務器根據(jù)所述模塊版本信息查找有無對應的經(jīng)過簽名和加密的車輛升級數(shù)據(jù),若有則進行下一步,否則向所述車載終端返回不需要升級的信息后終止升級流程;
步驟2.3,所述遠程升級服務器將查找到的對應的經(jīng)過簽名和加密的車輛升級數(shù)據(jù)返回給所述車載終端;
步驟2.4,所述車載終端向所述密鑰服務器發(fā)送所述模塊版本信息;
步驟2.5,所述密鑰服務器向所述車載終端返回所述模塊版本信息對應的加密密鑰因子;
步驟2.6,所述車載終端在收到所述加密密鑰因子后,調(diào)用所述安全模塊計算獲得加密密鑰。
基于上述,所述步驟3包括如下步驟:
步驟3.1,所述車載終端將經(jīng)過簽名和加密的所述車輛升級數(shù)據(jù)發(fā)送給所述車輛待升級模塊;
步驟3.2,所述車輛待升級模塊調(diào)用所述安全模塊使用所述加密密鑰解密得到所述車輛升級數(shù)據(jù)的明文,并對所述車輛升級數(shù)據(jù)進行數(shù)字簽名的驗證;若解密不正確或數(shù)字簽名驗證未通過,則終止升級流程;
步驟3.3,所述車輛待升級模塊根據(jù)所述車輛升級數(shù)據(jù)進行升級。
基于上述,所述步驟1.3中獲得加密密鑰的方法為:所述升級包安全處理模塊使用其內(nèi)預置的共享密鑰,通過摘要算法對所述加密密鑰因子進行摘要計算,將獲得的摘要值作為所述加密密鑰。
基于上述,所述步驟2.6中獲得加密密鑰的方法為:所述安全模塊使用其內(nèi)預置的共享密鑰,通過摘要算法對所述加密密鑰因子進行摘要計算,將獲得的摘要值作為所述加密密鑰,所述加密密鑰存儲于所述安全模塊中。
基于上述,在所述步驟3.3的所述車輛待升級模塊根據(jù)所述車輛升級數(shù)據(jù)進行升級后,所述車輛待升級模塊將升級結果返回給所述車載終端。
基于上述,所述車輛升級數(shù)據(jù)包括車輛升級程序包和車輛升級策略。
基于上述,所述摘要算法包括SM1和SHA256。
本發(fā)明所提供的車輛安全遠程升級系統(tǒng)及升級方法通過在升級包服務器與車載終端增加基于硬件安全芯片的安全模塊,再結合密鑰服務器和遠程升級服務器,為升級數(shù)據(jù)提供了加密與數(shù)字簽名及驗證的服務,保障了升級數(shù)據(jù)的機密性與完整性,實現(xiàn)了安全可靠的車輛遠程升級,有效地防止了因升級數(shù)據(jù)被篡改、被第三方植入惡意代碼或者被車輛廠商的競爭對手或惡意第三方截獲升級數(shù)據(jù)包的明文,而分析出車輛已有或潛在的缺陷,進行攻擊等安全問題,有效地解決了現(xiàn)有技術安全性不足的問題。
附圖說明
圖1為本發(fā)明的車輛安全遠程升級系統(tǒng)的結構示意圖。
圖2為本發(fā)明車輛安全遠程升級系統(tǒng)的升級方法的流程示意圖。
具體實施方式
下面通過具體實施方式,對本發(fā)明的技術方案做進一步的詳細描述。
如圖1所示,一種車輛安全遠程升級系統(tǒng),所述系統(tǒng)包括,升級包服務器,插入或內(nèi)嵌有升級包安全處理模塊;至少一個車載終端,插入或內(nèi)嵌有安全模塊,并通過車用網(wǎng)絡連接有車輛待升級模塊;遠程升級服務器,分別與所述升級包服務器和所述車載終端網(wǎng)絡連接;密鑰服務器,分別與所述升級包服務器和所述車載終端網(wǎng)絡連接;所述升級包安全處理模塊和所述安全模塊內(nèi)存儲有預置的共享密鑰;所述升級包安全處理模塊還存儲有可用于數(shù)字簽名的私鑰;
所述升級包服務器調(diào)用所述升級包安全處理模塊將預置的車輛升級數(shù)據(jù)作安全處理后上傳至所述遠程升級服務器;所述車載終端與所述遠程升級服務器和所述密鑰服務器交互獲得車輛升級數(shù)據(jù),并使用車輛升級數(shù)據(jù)對所述車輛待升級模塊進行升級。
具體的應用實例中,所述升級包安全處理模塊和所述安全模塊采用安全專用芯片,支持的商用密碼算法包括SM1、SM2和SM3;支持的國際常用密碼算法包括3DES、AES、RSA和SHA-1;所述安全專用芯片,可提供的密碼服務包括用于存儲個人數(shù)字身份證書和簽名私鑰、為移動終端提供數(shù)字簽名、簽名驗證和數(shù)據(jù)加解密,其內(nèi)提供安全存儲空間,用于保存密鑰及用戶私有數(shù)據(jù),支持的硬件接口包括SPI、SD和USB。
所述車載終端為車輛監(jiān)控管理系統(tǒng)的前端設備,包括無線通訊模塊、GPS模塊、車載LCD觸摸屏、視頻服務器、外接攝像機、通話手柄和車輛防盜器等。
所述車輛待升級模塊為行車控制MCU或車輛相關的各ECU,包括車載信息與通訊控制系統(tǒng)ECU、動力傳動系統(tǒng)ECU、底盤控制系統(tǒng)ECU、車身控制系統(tǒng)ECU和后備控制系統(tǒng)ECU等。所述車用網(wǎng)絡包括CAN總線網(wǎng)絡、LIN總線網(wǎng)絡和車用以太網(wǎng)。
所述車輛安全遠程升級系統(tǒng)的升級方法,包括如下步驟:
步驟1,所述升級包服務器調(diào)用所述升級包安全處理模塊將預置的車輛升級數(shù)據(jù)作安全處理后上傳至所述遠程升級服務器;
步驟2,所述車載終端與所述遠程升級服務器和所述密鑰服務器交互獲得車輛升級數(shù)據(jù);
步驟3,使用車輛升級數(shù)據(jù)對所述車輛待升級模塊進行升級。
具體實現(xiàn)的時候,所述步驟1包括如下步驟:
步驟1.1,所述升級包服務器向所述密鑰服務器請求加密密鑰因子,并向所述密鑰服務器傳送所述車輛待升級模塊的當前版本號;
步驟1.2,所述密鑰服務器生成加密密鑰因子,并將其與所述車輛待升級模塊的當前版本號一起保存,并向所述升級包服務器返回所述加密密鑰因子;
步驟1.3,所述升級包服務器收到所述加密密鑰因子后,調(diào)用所述升級包安全處理模塊計算獲得加密密鑰;
步驟1.4,所述升級包服務器使用所述升級包安全處理模塊內(nèi)置的私鑰對車輛升級數(shù)據(jù)進行數(shù)字簽名,同時調(diào)用所述升級包安全處理模塊使用所述加密密鑰加密所述車輛升級數(shù)據(jù),然后將經(jīng)過簽名和加密的車輛升級數(shù)據(jù)上傳至所述遠程升級服務器。
所述步驟2包括如下步驟:
步驟2.1,所述車載終端向所述車輛待升級模塊查詢模塊版本信息,并將查詢到的模塊版本信息發(fā)送給所述遠程升級服務器;
步驟2.2,所述遠程升級服務器根據(jù)所述模塊版本信息查找有無對應的經(jīng)過簽名和加密的車輛升級數(shù)據(jù),若有則進行下一步,否則向所述車載終端返回不需要升級的信息后終止升級流程;
步驟2.3,所述遠程升級服務器將查找到的對應的經(jīng)過簽名和加密的車輛升級數(shù)據(jù)返回給所述車載終端;
步驟2.4,所述車載終端向所述密鑰服務器發(fā)送所述模塊版本信息;
步驟2.5,所述密鑰服務器向所述車載終端返回所述模塊版本信息對應的加密密鑰因子;
步驟2.6,所述車載終端在收到所述加密密鑰因子后,調(diào)用所述安全模塊計算獲得加密密鑰。
所述步驟3包括如下步驟:
步驟3.1,所述車載終端將經(jīng)過簽名和加密的所述車輛升級數(shù)據(jù)發(fā)送給所述車輛待升級模塊;
步驟3.2,所述車輛待升級模塊調(diào)用所述安全模塊使用所述加密密鑰解密得到所述車輛升級數(shù)據(jù)的明文,并對所述車輛升級數(shù)據(jù)進行數(shù)字簽名的驗證;若解密不正確或數(shù)字簽名驗證未通過,則終止升級流程;
步驟3.3,所述車輛待升級模塊根據(jù)所述車輛升級數(shù)據(jù)進行升級,并將升級結果返回給所述車載終端。
在其他實施例中,所述車輛升級數(shù)據(jù)包括車輛升級程序包和車輛升級策略。在步驟1.4中,所述的使用所述升級包安全處理模塊內(nèi)置的私鑰對所述車輛升級數(shù)據(jù)進行數(shù)字簽名具體是指使用所述升級包安全處理模塊內(nèi)置的私鑰對所述的車輛升級策略進行數(shù)字簽名;使用所述加密密鑰加密所述車輛升級數(shù)據(jù)具體是指使用所述加密密鑰對所述的車輛升級程序包和所述被數(shù)字簽名后的車輛升級策略進行加密。在步驟3.2中,所述車輛待升級模塊調(diào)用所述安全模塊使用所述加密密鑰解密得到所述車輛升級數(shù)據(jù)明文具體是指使用所述加密密鑰對所述的車輛升級程序包和所述被數(shù)字簽名后的車輛升級策略進行解密;對所述車輛升級數(shù)據(jù)進行數(shù)字簽名的驗證具體是指對所述被數(shù)字簽名后的車輛升級策略進行數(shù)字簽名的驗證。
進一步的,所述步驟1.3中獲得加密密鑰的方法可以是:所述升級包安全處理模塊使用其內(nèi)預置的共享密鑰,通過摘要算法對所述加密密鑰因子進行摘要計算,將獲得的摘要值作為所述加密密鑰。所述步驟2.6中獲得加密密鑰的方法可以是:所述安全模塊使用其內(nèi)預置的共享密鑰,通過摘要算法對所述加密密鑰因子進行摘要計算,將獲得的摘要值作為所述加密密鑰,所述加密密鑰存儲于所述安全模塊中。其中,所述摘要算法包括SM1和SHA256。
最后應當說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非對其限制;盡管參照較佳實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術人員應當理解:依然可以對本發(fā)明的具體實施方式進行修改或者對部分技術特征進行等同替換;而不脫離本發(fā)明技術方案的精神,其均應涵蓋在本發(fā)明請求保護的技術方案范圍當中。