本發(fā)明涉及車輛,具體而言,涉及一種軟件升級方法、裝置、計算機程序產品、存儲介質、車輛。
背景技術:
1、隨著自動駕駛技術在智能網聯(lián)汽車上的逐步應用和推廣,如何保證車輛微控制器單元(microcontroller?unit,mcu)的固件刷寫安全就變的極為重要。目前,傳統(tǒng)的刷寫方法是由診斷儀通過車上診斷系統(tǒng)(on-board?diagnostics,obd)或者空中下載技術(over-the-air?technology,ota)的方式將整個新的軟件升級包刷入mcu中,為了防止在數(shù)據(jù)傳輸過程中因為電子電氣特性導致的傳輸錯誤,現(xiàn)有技術通常使用循環(huán)冗余校驗(cyclicredundancy?check,crc)或者校驗和(checksum)校驗方法,但是,現(xiàn)有的校驗方法只能保證軟件升級包沒有因為傳輸導致錯誤、無法驗證發(fā)送者的身份以及是否被篡改過,從而,現(xiàn)有技術無法保證軟件升級包的完整性和認證性,無法滿足智能網聯(lián)汽車信息安全的要求,具有極大的信息安全隱患。
2、由上分析可知,針對上述現(xiàn)有技術僅能夠校驗升級軟件包是否在數(shù)據(jù)傳輸過程中發(fā)生錯誤導致軟件升級過程的安全性差的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)思路
1、本發(fā)明實施例提供了一種軟件升級方法、裝置、計算機程序產品、存儲介質、車輛,以至少解決現(xiàn)有技術僅能夠校驗升級軟件包是否在數(shù)據(jù)傳輸過程中發(fā)生錯誤導致軟件升級過程的安全性差的技術問題。
2、根據(jù)本發(fā)明實施例的一個方面,提供了一種應用于服務器端的軟件升級方法,包括:
3、生成待使用的安全密鑰,其中,安全密鑰包括私鑰和公鑰;對軟件升級包進行哈希計算,得到第一消息摘要,其中,軟件升級包用于對車輛控制器端的待升級軟件進行升級;利用私鑰對第一消息摘要進行簽名,得到簽名值;根據(jù)軟件升級包、第一消息摘要、簽名值和第一版本號,生成升級文件,其中,第一版本號為軟件升級包表征的待升級軟件的目標版本號;將公鑰和升級文件傳輸至車輛控制器端,以使車輛控制器端根據(jù)公鑰和升級文件對待升級軟件進行升級。
4、根據(jù)本發(fā)明實施例的另一個方面,提供了一種應用于車輛控制器端的軟件升級方法,包括:
5、接收來自于服務端的公鑰和升級文件,其中,升級文件根據(jù)軟件升級包、第一消息摘要、簽名值和第一版本號生成,第一版本號為軟件升級包表征的待升級軟件的目標版本號,軟件升級包用于對車輛控制器端的待升級軟件進行升級,第一消息摘要通過對軟件升級包進行哈希計算后得到,簽名值利用服務端的私鑰對第一消息摘要進行簽名后得到;根據(jù)公鑰和升級文件對待升級軟件進行升級。
6、可選地,根據(jù)公鑰和升級文件對待升級軟件進行升級包括:從升級文件中獲取第一版本號;對第一版本號與第二版本號進行比較,得到第一比較結果,其中,第二版本號為車輛控制器端待升級軟件的當前版本號;響應于第一比較結果確定第一版本號大于第二版本號,利用公鑰對簽名值進行解密,得到第二消息摘要;對第一消息摘要與第二消息摘要進行比較,得到第二比較結果;響應于第二比較結果確定第一消息摘要與第二消息摘要相等,將軟件升級包寫入車輛控制器端,并對軟件升級包進行哈希計算,得到第三消息摘要;對第一消息摘要與第三消息摘要進行比較,得到第三比較結果;響應于第三比較結果確定第一消息摘要與第三消息摘要相等,完成軟件升級。
7、可選地,上述軟件升級方法還包括:響應滿足以下條件之一,終止當前軟件升級進程:基于第一比較結果確定第一版本號小于或者等于第二版本號;基于第二比較結果確定第一消息摘要與第二消息摘要不相等;基于第三比較結果確定第一消息摘要與第三消息摘要不相等。
8、根據(jù)本發(fā)明實施例的又一方面,還提供了一種軟件升級裝置,包括:
9、第一生成模塊,用于生成待使用的安全密鑰,其中,安全密鑰包括私鑰和公鑰;計算模塊,用于對軟件升級包進行哈希計算,得到第一消息摘要,其中,軟件升級包用于對車輛控制器端的待升級軟件進行升級;處理模塊,用于利用私鑰對第一消息摘要進行簽名,得到簽名值;第二生成模塊,用于根據(jù)軟件升級包、第一消息摘要、簽名值和第一版本號,生成升級文件,其中,第一版本號為軟件升級包表征的待升級軟件的目標版本號;通信模塊,用于將公鑰和升級文件傳輸至車輛控制器端,以使車輛控制器端根據(jù)公鑰和升級文件對待升級軟件進行升級。
10、根據(jù)本發(fā)明實施例的又一方面,還提供了一種軟件升級裝置,包括:
11、接收模塊,用于接收來自于服務端的公鑰和升級文件,其中,升級文件根據(jù)軟件升級包、第一消息摘要、簽名值和第一版本號生成,第一版本號為軟件升級包表征的待升級軟件的目標版本號,軟件升級包用于對車輛控制器端的待升級軟件進行升級,第一消息摘要通過對軟件升級包進行哈希計算后得到,簽名值利用服務端的私鑰對第一消息摘要進行簽名后得到;升級模塊,用于根據(jù)公鑰和升級文件對待升級軟件進行升級。
12、可選地,上述升級模塊還用于:從升級文件中獲取第一版本號;對第一版本號與第二版本號進行比較,得到第一比較結果,其中,第二版本號為車輛控制器端待升級軟件的當前版本號;響應于第一比較結果確定第一版本號大于第二版本號,利用公鑰對簽名值進行解密,得到第二消息摘要;對第一消息摘要與第二消息摘要進行比較,得到第二比較結果;響應于第二比較結果確定第一消息摘要與第二消息摘要相等,將軟件升級包寫入車輛控制器端,并對軟件升級包進行哈希計算,得到第三消息摘要;對第一消息摘要與第三消息摘要進行比較,得到第三比較結果;響應于第三比較結果確定第一消息摘要與第三消息摘要相等,完成軟件升級。
13、可選地,上述軟件升級裝置還包括:終止模塊,用于響應滿足以下條件之一,終止當前軟件升級進程:基于第一比較結果確定第一版本號小于或者等于第二版本號;基于第二比較結果確定第一消息摘要與第二消息摘要不相等;基于第三比較結果確定第一消息摘要與第三消息摘要不相等。
14、根據(jù)本發(fā)明實施例的又一方面,還提供了一種計算機程序產品,包括計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)前述任意一項的軟件升級方法。
15、根據(jù)本發(fā)明實施例的又一方面,還提供了一種計算機可讀存儲介質,計算機可讀存儲介質包括存儲的可執(zhí)行程序,其中,在可執(zhí)行程序運行時控制計算機可讀存儲介質所在設備執(zhí)行權利要求前述任意一項的軟件升級方法。
16、根據(jù)本發(fā)明實施例的又一方面,還提供了一種車輛,包括車載存儲器和車載處理器,車載存儲器中存儲有計算機程序,車載處理器被設置為運行計算機程序以執(zhí)行權利要求前述任意一項的軟件升級方法。
17、在本發(fā)明實施例中,服務器端首先生成待使用的安全密鑰,其中,安全密鑰包括私鑰和公鑰,接著對軟件升級包進行哈希計算,得到第一消息摘要,其中,軟件升級包用于對車輛控制器端的待升級軟件進行升級,再利用私鑰對第一消息摘要進行簽名,得到簽名值,進而根據(jù)軟件升級包、第一消息摘要、簽名值和第一版本號,生成升級文件,其中,第一版本號為軟件升級包表征的待升級軟件的目標版本號,進一步地,服務器端將公鑰和升級文件傳輸至車輛控制器端,以使車輛控制器端根據(jù)公鑰和升級文件對待升級軟件進行升級。通過在將軟件升級包寫入車輛控制器之前進行簽名驗簽以及軟件版本比對,達到了保證寫入車輛控制器的軟件來源的合法性、防止軟件版本被降級的目的,從而實現(xiàn)了提升車輛控制器軟件升級的安全性與可靠性的技術效果,進而解決了現(xiàn)有技術僅能夠校驗升級軟件包是否在數(shù)據(jù)傳輸過程中發(fā)生錯誤導致軟件升級過程的安全性差的技術問題。