• / 16
  • 下載費用:30 金幣  

用于選擇性軟件回退的方法.pdf

關 鍵 詞:
用于 選擇性 軟件 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310414325.X

申請日:

2013.09.12

公開號:

CN103677891A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 9/445申請日:20130912|||公開
IPC分類號: G06F9/445; G06F21/56(2013.01)I; G06F21/57(2013.01)I 主分類號: G06F9/445
申請人: 通用汽車環球科技運作有限責任公司
發明人: A.I.阿爾拉巴迪; K.M.貝爾茨; T.M.富里斯特
地址: 美國密執安州
優先權: 2012.09.12 US 13/612,225
專利代理機構: 中國專利代理(香港)有限公司 72001 代理人: 劉楨;胡斌
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310414325.X

授權公告號:

||||||

法律狀態公告日:

2017.01.11|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明涉及用于選擇性軟件回退的方法。用于驗證將安裝到控制器中的軟件文件的系統和方法。該方法包括準備所述軟件文件,包括將軟件版本代碼分配給軟件文件,將安全版本代碼分配給軟件文件,以及用軟件文件版本代碼和安全版本代碼對軟件文件進行簽名。簽名的軟件文件被提供至控制器以安裝在控制器上,并且控制器驗證軟件文件簽名以確定軟件文件是否為有效的以及安全版本代碼是否為有效的。如果簽名的軟件文件為有效的并且安全版本代碼為有效的,則控制器允許將軟件文件安裝在控制器中。

權利要求書

權利要求書
1.  一種用于驗證將安裝到控制器中的軟件文件的方法,所述方法包括:
準備所述軟件文件;
將軟件版本代碼分配給所述軟件文件;
將安全版本代碼分配給所述軟件文件;
用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行數字簽名;
將所述簽名的軟件文件提供至所述控制器以安裝在所述控制器上;
驗證所述控制器中的所述軟件文件簽名以確定所述軟件文件是否為有效的;
如果所述控制器確定所述簽名的軟件文件為有效的,則確定所述軟件文件中的所述安全版本代碼是否為有效的;以及
如果所述簽名的軟件文件為有效的且所述安全版本代碼為有效的,則允許將所述軟件文件安裝在所述控制器中。

2.  根據權利要求1所述的方法,其中將安全版本代碼分配給所述軟件文件包括:如果所述軟件文件未準備用于修正安全漏洞,則將所述安全版本代碼保持相同;如果所述軟件文件已準備好用于修正安全漏洞,則增加所述安全版本代碼。

3.  根據權利要求2所述的方法,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器中的較舊版本的安全版本代碼,如果是這樣,則不允許將所述軟件文件加載到所述控制器中。

4.  根據權利要求2所述的方法,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器中的相同或較新版本的所述安全版本代碼,如果是這樣,則允許將所述軟件文件加載到所述控制器中。

5.  根據權利要求4所述的方法,還包括:如果分配給所述軟件文件的所述安全版本代碼大于所述存儲的版本的所述安全版本代碼,則將所述控制器中的所述存儲的版本的所述安全版本代碼變為分配給所述軟件文件的所述安全版本代碼。

6.  根據權利要求1所述的方法,其中對所述軟件文件簽名包括使用采用數字簽名與公鑰和私鑰的非對稱密鑰加密,并且驗證所述軟件文件包括數字簽名驗證。

7.  根據權利要求1所述的方法,其中所述控制器為車輛上的電子控制單元(ECU)。

8.  一種用于驗證將安裝到車輛上的電子控制單元(ECU)中的軟件文件的方法,所述方法包括:
準備所述軟件文件;
將軟件版本代碼分配給所述軟件文件;
將安全版本代碼分配給所述軟件文件,其中將安全版本代碼分配給所述軟件文件包括:如果所述軟件文件未準備用于修正安全漏洞,則將所述安全版本代碼保持相同;以及如果所述軟件文件已準備好用于修正安全漏洞,則增加所述安全版本代碼;
用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行數字簽名;
將所述簽名的軟件文件提供至所述ECU以安裝在所述控制器上;
驗證所述ECU中的所述軟件文件簽名以確定所述軟件文件是否為有效的;以及
如果所述ECU確定所述簽名的軟件文件為有效的,則確定所述軟件文件中的所述安全版本代碼是否為有效的,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器上的較舊版本的所述安全版本代碼,并且如果是這樣,則不允許將所述軟件文件安裝在所述控制器中,如果不是這樣,則允許將所述軟件文件安裝在所述控制器中。

9.  根據權利要求8所述的方法,還包括:如果分配給所述軟件文件的所述安全版本代碼大于所述存儲的版本的所述安全版本代碼,則將所述控制器中的所述存儲的版本的所述安全版本代碼變為分配給所述軟件文件的所述安全版本代碼。

10.  一種用于驗證將安裝到控制器中的軟件文件的系統,所述系統包括:
用于準備所述軟件文件的裝置;
用于將軟件版本代碼分配給所述軟件文件的裝置;
用于將安全版本代碼分配給所述軟件文件的裝置;
用于用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行簽名的裝置;
用于將所述簽名的軟件文件提供至所述控制器以安裝在所述控制器上的裝置;
用于驗證所述控制器中的所述軟件文件簽名以確定所述軟件文件是否為有效的裝置;
用于在所述控制器確定所述簽名的軟件文件為有效的時確定所述軟件文件中的所述安全版本代碼是否為有效的裝置;以及
用于在所述軟件文件為有效的且所述安全版本代碼為有效的時允許將所述軟件文件安裝在所述控制器中的裝置。

說明書

說明書用于選擇性軟件回退的方法
技術領域
本發明大體上涉及用于防止軟件文件的脆弱的舊版本在控制器中被刷寫的系統和方法,并且更具體地涉及用于防止軟件文件的脆弱的舊版本在車輛電子控制單元(ECU)中被刷寫的系統和方法,這包括每次發布新軟件文件時更新安全碼以修正安全漏洞。
背景技術
大多數現代化車輛包括電子控制單元(ECU)或控制器,其控制諸如動力系、氣候控制系統、信息娛樂系統、車身系統、底盤系統以其它的車輛系統的操作。此類控制器需要為專門用途設計的軟件,以便執行控制功能。隨著這些控制器的數量和復雜性的增加,以及由惡意軟件開發者造成的威脅的不斷增加,比以往更重要的是對加載到汽車控制器上的二進制文件的來源和內容進行認證。在車輛控制器中使用未正確認證的或壞的、惡意設計的軟件的后果包括車輛或其系統的非預期行為、車輛上的防盜特征的丟失、對諸如里程計的部件的潛在篡改、以及其它車輛特征和功能的丟失。
一種已知的數字編碼技術被稱為非對稱密鑰加密,其使用數字簽名來認證編程到控制器中的文件。如本領域的技術人員所充分理解的,非對稱密鑰加密使用稱為私鑰和公鑰的一對與數學有關的密鑰來加密和解密消息。為了創建數字簽名,簽名者使用他的僅其本人知道的私鑰來加密消息。該數字簽名可隨后由另一方使用與簽名者的私鑰成對的公鑰來解密。
刷寫是一種用于將軟件、校準文件和其它應用程序上傳到車輛ECU或其它可編程裝置的閃存中的熟知的方法。引導裝載程序是一種加載到ECU上的嵌入式軟件程序,該程序在ECU和正刷寫軟件的編程裝置之間提供接口。引導裝載程序可采用非對稱密鑰加密并存儲在允許ECU執行軟件或校準之前必須用來對由編程裝置傳輸的數字簽名進行解碼的公鑰。
與軟件文件相關聯的文件標題通常包括關于該文件的信息和包括模塊ID、兼容ID、簽名、地址范圍等的與緊隨文件標題的代碼有關的信息。一旦軟件文件已被發布、正確刷寫和在ECU中運行,就可能發現軟件文件具有一些安全漏洞,潛在的黑客可能通過該安全漏洞惡意訪問ECU。當此類安全漏洞被識別時,車輛制造商可以修訂軟件文件,以便消除安全漏洞。然后將新軟件文件刷寫到ECU中以替換編程到ECU存儲器中的脆弱軟件。然而,ECU可能仍然是脆弱的,因為擁有帶正確的可信簽名的軟件文件的脆弱舊版本的潛在黑客可以將該軟件文件加載回ECU,然后利用安全漏洞。換言之,如果已用修正安全漏洞的修訂過的軟件文件刷寫了ECU,潛在黑客可以訪問已正確簽名但包括安全漏洞的較舊版本的軟件文件,將該軟件文件加載回ECU,然后利用安全漏洞。
發明內容
根據本發明的教導,公開了用于驗證將安裝到控制器中的軟件文件的系統和方法。該方法包括準備所述軟件文件,包括將軟件版本代碼分配給軟件文件,將安全版本代碼分配給軟件文件,以及用軟件文件版本代碼和安全版本代碼對軟件文件進行簽名。簽名的軟件文件被提供至控制器以安裝在控制器上,并且控制器驗證軟件文件簽名以確定軟件文件是否為有效的以及安全版本代碼是否為有效的。如果簽名為有效的且安全版本代碼為有效的,并且滿足其它所需條件,則控制器允許將軟件文件安裝在控制器中。
本發明提供下列技術方案。
1. 一種用于驗證將安裝到控制器中的軟件文件的方法,所述方法包括:
準備所述軟件文件;
將軟件版本代碼分配給所述軟件文件;
將安全版本代碼分配給所述軟件文件;
用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行數字簽名;
將所述簽名的軟件文件提供至所述控制器以安裝在所述控制器上;
驗證所述控制器中的所述軟件文件簽名以確定所述軟件文件是否為有效的;
如果所述控制器確定所述簽名的軟件文件為有效的,則確定所述軟件文件中的所述安全版本代碼是否為有效的;以及
如果所述簽名的軟件文件為有效的且所述安全版本代碼為有效的,則允許將所述軟件文件安裝在所述控制器中。
2. 根據技術方案1所述的方法,其中將安全版本代碼分配給所述軟件文件包括:如果所述軟件文件未準備用于修正安全漏洞,則將所述安全版本代碼保持相同;如果所述軟件文件已準備好用于修正安全漏洞,則增加所述安全版本代碼。
3. 根據技術方案2所述的方法,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器中的較舊版本的安全版本代碼,如果是這樣,則不允許將所述軟件文件加載到所述控制器中。
4. 根據技術方案2所述的方法,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器中的相同或較新版本的所述安全版本代碼,如果是這樣,則允許將所述軟件文件加載到所述控制器中。
5. 根據技術方案4所述的方法,還包括:如果分配給所述軟件文件的所述安全版本代碼大于所述存儲的版本的所述安全版本代碼,則將所述控制器中的所述存儲的版本的所述安全版本代碼變為分配給所述軟件文件的所述安全版本代碼。
6. 根據技術方案1所述的方法,其中對所述軟件文件簽名包括使用采用數字簽名與公鑰和私鑰的非對稱密鑰加密,并且驗證所述軟件文件包括數字簽名驗證。
7. 根據技術方案1所述的方法,其中所述控制器為車輛上的電子控制單元(ECU)。
8. 一種用于驗證將安裝到車輛上的電子控制單元(ECU)中的軟件文件的方法,所述方法包括:
準備所述軟件文件;
將軟件版本代碼分配給所述軟件文件;
將安全版本代碼分配給所述軟件文件,其中將安全版本代碼分配給所述軟件文件包括:如果所述軟件文件未準備用于修正安全漏洞,則將所述安全版本代碼保持相同;以及如果所述軟件文件已準備好用于修正安全漏洞,則增加所述安全版本代碼;
用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行數字簽名;
將所述簽名的軟件文件提供至所述ECU以安裝在所述控制器上;
驗證所述ECU中的所述軟件文件簽名以確定所述軟件文件是否為有效的;以及
如果所述ECU確定所述簽名的軟件文件為有效的,則確定所述軟件文件中的所述安全版本代碼是否為有效的,其中確定所述軟件文件中的所述安全版本代碼是否為有效的包括確定所述安全版本代碼是否為存儲在所述控制器上的較舊版本的所述安全版本代碼,并且如果是這樣,則不允許將所述軟件文件安裝在所述控制器中,如果不是這樣,則允許將所述軟件文件安裝在所述控制器中。
9. 根據技術方案8所述的方法,還包括:如果分配給所述軟件文件的所述安全版本代碼大于所述存儲的版本的所述安全版本代碼,則將所述控制器中的所述存儲的版本的所述安全版本代碼變為分配給所述軟件文件的所述安全版本代碼。
10. 根據技術方案8所述的方法,其中對所述軟件文件簽名包括使用采用數字簽名與公鑰和私鑰的非對稱密鑰加密,并且驗證所述軟件文件包括數字簽名驗證。
11. 一種用于驗證將安裝到控制器中的軟件文件的系統,所述系統包括:
用于準備所述軟件文件的裝置;
用于將軟件版本代碼分配給所述軟件文件的裝置;
用于將安全版本代碼分配給所述軟件文件的裝置;
用于用所述軟件文件版本代碼和所述安全版本代碼對所述軟件文件進行簽名的裝置;
用于將所述簽名的軟件文件提供至所述控制器以安裝在所述控制器上的裝置;
用于驗證所述控制器中的所述軟件文件簽名以確定所述軟件文件是否為有效的裝置;
用于在所述控制器確定所述簽名的軟件文件為有效的時確定所述軟件文件中的所述安全版本代碼是否為有效的裝置;以及
用于在所述軟件文件為有效的且所述安全版本代碼為有效的時允許將所述軟件文件安裝在所述控制器中的裝置。
12. 根據技術方案11所述的系統,其中用于將安全版本代碼分配給所述軟件文件的裝置在所述軟件文件未準備用于修正安全漏洞時將所述安全版本代碼保持相同,并且在所述軟件文件已準備好用于修正安全漏洞時增加所述安全版本代碼。
13. 根據技術方案12所述的系統,其中用于確定所述軟件文件中的所述安全版本代碼是否為有效的裝置確定所述安全版本代碼是否為存儲在所述控制器上的較舊版本的所述安全版本代碼,如果是這樣,則不允許將所述軟件文件加載到所述控制器中。
14. 根據技術方案12所述的系統,其中用于確定所述軟件文件中的所述安全版本代碼是否為有效的裝置確定所述安全版本代碼是否為存儲在所述控制器上的相同或較新版本的所述安全版本代碼,如果是這樣,則允許將所述軟件文件加載到所述控制器中。
15. 根據技術方案14所述的系統,還包括用于在分配給所述軟件文件的所述安全版本代碼大于所述存儲的版本的所述安全版本代碼時將所述控制器中的所述存儲的版本的所述安全版本代碼變為分配給所述軟件文件的所述安全版本代碼的裝置。
16. 根據技術方案11所述的系統,其中,所述用于對所述軟件文件簽名的裝置使用采用數字簽名與公鑰和私鑰的非對稱密鑰加密,并且所述用于驗證所述軟件文件的裝置采用數字簽名驗證。
17. 根據技術方案11所述的系統,其中所述控制器為車輛上的電子控制單元(ECU)。
根據結合附圖的以下描述和所附權利要求,本發明的另外的特征將變得顯而易見。
附圖說明
圖1是示出用于驗證數字簽名的過程的示意性框圖;
圖2是使用數字簽名對電子內容進行簽名和驗證的方法的框圖,包括將內容和簽名文件從編程源傳輸至執行控制器;
圖3是示出如何將電子內容和數字簽名物理地傳輸至車輛中的控制器的方法的示意圖;
圖4是示出用于利用每個新軟件版本和安全級別代碼更新特定的軟件文件的過程的流程圖;
圖5是示出將軟件文件安裝在ECU上的過程的流程圖;以及
圖6是示出用于確定是否應將新軟件文件刷寫到ECU中的過程的流程圖。
具體實施方式
涉及用于防止脆弱的較舊版本的軟件文件被刷寫在ECU上的系統和方法的本發明的實施例的以下討論在本質上僅僅是示例性的,而決不意圖限制本發明或其應用或用途。例如,如本文所討論的,用于防止刷寫脆弱的較舊版本的軟件文件的技術具有用于車輛ECU的應用。然而,本領域的技術人員可以理解,該技術可應用于其它控制器。
圖1是用于使用非對稱密鑰數字簽名來認證編程到控制器中的文件的已知方法的框圖10。如本領域的技術人員所理解的,非對稱密鑰加密使用稱為私鑰和公鑰的一對與數學有關的密鑰來加密和解密消息。為了創建數字簽名,簽名者使用他的僅其本人知道的私鑰來加密數字消息。隨后可由另一方使用與簽名者的私鑰成對的公鑰對數字簽名進行解密,以認證文件或消息。
在簽名步驟12中,提供內容文件14,其中內容文件14可以是一個軟件、校準文件或將在控制器中使用的其它“軟部分”內容。對內容文件14進行散列計算以產生內容文件14的散列值16。然后用簽名者的私鑰對散列值16加密,以產生數字簽名18,其中數字簽名18僅對特定內容文件是有用的。
然后在驗證步驟20中使用數字簽名18和內容文件14,在本文所討論的應用中,該步驟將由ECU中的引導裝載程序執行。數字簽名18利用簽名者的公鑰被解密以產生解密的散列值22。同時,由驗證器對內容文件14進行散列計算,以產生計算的散列值24。在框26處,將解密的散列值22與計算的散列值24相比較。如果解密的散列值22匹配計算的散列值24,則在橢圓28處發布有效的確定,并且使用內容文件14。如果解密的散列值22不匹配計算的散列值24,則在橢圓30處發布無效的確定,并且不使用內容文件14。
圖2是示出使用數字簽名對電子內容進行簽名和驗證的方法的框圖40,包括將內容和簽名文件從編程源傳輸至執行控制器。文件存儲庫42存儲統稱為內容文件44的可執行軟件、校準文件或其它“軟部分”文件”。內容文件44通常為二進制文件。期望獲得數字簽名46以用于內容文件44。為了對內容文件44進行數字簽名,將內容文件44提供給簽名服務器48。在簽名服務器48上,對內容文件44執行散列計算以產生散列值52。使用存儲在簽名服務器48上的私鑰對散列值52加密,其中加密產生數字簽名46。然后,將數字簽名46提供返回給文件存儲庫42。
此時,內容文件44和數字簽名46均存在于存儲庫42中。挑戰是之后通過由汽車制造商使用的各種商業系統來傳輸內容文件44和數字簽名46,以及安裝和驗證在車輛中的控制器上的內容文件44。通常,汽車制造商將具有至少兩個負責在車輛中的控制器上安裝軟件和校準文件的組織或部門,即制造和服務部門。圖2示出制造數據庫56,該數據庫由汽車制造商的制造部門使用以管理安裝為在生產車輛中的“部分”的電子文件。圖2同樣示出服務數據庫62,該數據庫由汽車制造商的服務部門使用以管理安裝為在服務設施中起作用的在車輛中的“服務部分”的電子文件。如圖2所示,制造數據庫56和服務數據庫62兩者接收將被用于制造部門和服務部門的相應功能的內容文件44和數字簽名46的副本。
為了實際上安裝或刷寫在車輛中的控制器上的內容文件44,使用了編程工具68。如圖所示,編程工具68也接收內容文件44和數字簽名46的副本。也就是說,制造部門可將來自制造數據庫56的內容文件44和數字簽名46提供至編程工具68以便安裝在新的生產車輛上,或者服務部門可將來自服務數據庫62的內容文件44和數字簽名46提供至編程工具68以便安裝在被提供服務的車輛上。
下一個步驟是用編程工具68將內容文件44安裝在車輛中的控制器上。ECU 74是將實際上使用內容文件44的控制器。下面是ECU 74的架構的簡要討論。ECU 74上的軟件由引導裝載程序、可執行軟件和一個或多個校準文件組成。出于該討論的目的,假設ECU 74具有單個中央處理器(CPU)。在實際車輛中,ECU 74可具有多個CPU,并且每個CPU將具有引導裝載程序、可執行軟件和一個或多個校準文件。
ECU 74中的引導裝載程序負責驗證和安裝新的可執行軟件和校準文件。因此,在本段落中描述的功能由ECU 74中的引導裝載程序執行。編程工具68將內容文件44和數字簽名46提供給ECU 74。由引導裝載程序使用存儲庫42的公鑰來對數字簽名46解密以產生解密的散列值78。公共簽名密鑰可駐留在ECU 74中或結合內容文件44和數字簽名46提供給ECU 74。同時,由引導裝載程序對內容文件44進行散列計算以產生計算的散列值84。在框80處,將解密的散列值78與計算的散列值84相比較。如果解密的散列值78匹配計算的散列值84,則發布有效的確定88,并且使用內容文件44。如果要使用的內容文件44為可執行軟件,則引導裝載程序將其作為新的可執行軟件安裝在ECU 74上。如果要使用的內容文件44為校準文件,則引導裝載程序將其作為一個或多個校準文件之一安裝在ECU 74上。如果解密的散列值78不匹配計算的散列值84,則發布無效的確定86,并且不在ECU 74上使用內容文件44。
圖3是示出如何將電子內容和數字簽名文件物理地傳輸至車輛控制器的方法的示意圖。車輛36包括圖2中示出和以上討論的ECU 74。ECU 74可控制車輛36上的發動機、變速器、底盤、車身、信息娛樂系統或其它系統。內容文件44和數字簽名46被提供至此處示出為制造數據庫56的中央數據庫。內容文件44和數字簽名46向制造數據庫56的傳送可通過公司網絡進行。制造數據庫56將內容文件44和數字簽名46提供給編程工具68,其中該傳送可通過將編程工具68附接到可以訪問數據庫56的計算機來實現。編程工具68經由連接38與ECU 74通信,該連接可以是有線的或無線的。利用建立的連接38,內容文件44和數字簽名46可從編程工具68下載至ECU 74,其中引導裝載程序可執行先前討論的安全驗證功能。
本發明提出一種用于防止將軟件文件的脆弱但真實的版本刷寫到車輛ECU中的技術。特別地,除了諸如軟件文件版本代碼、模型模塊ID、兼容ID等的軟件文件的其它參數之外,識別軟件文件的特定安全版本的安全版本(SECVER)代碼被用作文件標題的一部分,以識別文件的安全級別。應當指出,安全版本代碼包括在軟件文件的編程部分中且包括在數字簽名驗證中。每次對軟件文件的新版本進行發布準備時,文件的新版本可包括或不包括用于修正已識別的安全漏洞的代碼。例如,軟件文件的新版本可能由于許多原因而不涉及修正安全漏洞,例如,添加功能、提供用于不同車輛的文件等。如果軟件文件的新版本不解決安全漏洞問題,則安全版本代碼保持相同,但更新軟件的版本識別號。如果軟件文件更新確實包括用于修正安全漏洞的代碼,則針對該新版本更新安全版本代碼。因此,軟件文件的任何此前版本將不包括該新的更新的安全版本代碼。因此,將不允許擁有包括較早的安全版本代碼的正確簽名的較舊版本的軟件文件的潛在黑客刷寫到ECU中。特別地,引導裝載程序在新軟件文件被刷寫之前將確認該軟件文件的文件標題上的簽名,并且還將驗證安全版本代碼等于或晚于已安裝在ECU上的現有軟件文件的所存儲的安全版本代碼。
以上討論可由圖4所示流程圖90來表示。軟件文件版本代碼1限定在框92處且包括表示該軟件的初始發布版本和在特定時間點的當前安全代碼的安全版本代碼1。如果該軟件文件被更新至在框94處表示的不包括用于修正安全漏洞的代碼的軟件文件的第二版本,則識別更新的軟件文件的發布代碼被更新至例如軟件文件版本代碼2,但安全版本代碼將與前一版本的安全版本代碼1保持相同。如果在軟件文件的第二版本代碼2發布之后在其中識別到安全漏洞,則可以在框96處準備和發布新版本的軟件文件以修正漏洞,其包括新的軟件文件版本代碼(例如,軟件文件版本代碼3)和用于補丁文件的更新的較晚的安全版本代碼(例如,安全版本代碼2)。
如果新版本的軟件文件被發布以用于安裝,則引導裝載程序將僅當該版本被正確簽名且包括與當前存儲在ECU上的安全版本代碼相同或更高的安全版本代碼時允許該版本被刷寫到ECU中。如果新版本的軟件文件包括比當前存儲的軟件文件更高的安全版本代碼,則引導裝載程序將把其安全版本代碼更新至新的安全版本代碼,以使得包括較低級別的安全版本代碼的任何軟件文件將不被允許繼續刷寫。因此,如果ECU中的引導裝載程序接收到刷寫新軟件文件的請求,則其將確定軟件文件是否被正確簽名以及當被正確簽名時其是否具有正確的安全版本代碼。如果正確簽名的軟件文件具有比當前存儲在引導裝載程序中的安全版本代碼更低的安全版本代碼,則引導裝載程序將不允許刷寫該軟件文件。如果新軟件文件上的安全版本代碼包括與引導裝載程序上存儲的相同的安全版本代碼,則引導裝載程序將允許刷寫軟件文件并且將把該安全版本代碼保持在引導裝載程序中。如果正確簽名的軟件文件包括比當前存儲在引導裝載程序上的更高的安全版本代碼,則引導裝載程序將允許刷寫軟件文件并且將把其存儲的安全版本代碼更新至軟件文件上設置的級別,這樣,要刷寫的任何更晚版本的軟件文件將需要具有該級別或更高級別的安全版本代碼。
圖5是示出用于在每次發布新版本的軟件文件時分配軟件版本代碼和安全版本代碼的過程的流程圖100。在框102處,新版本的軟件文件被準備好了并且準備用于發布。在框104處,新版本的軟件文件被分配了新的軟件文件版本代碼。在決策菱形106處,軟件發布工程師確定新版本是否用于安全漏洞修補,如果是這樣,則在框108處軟件發布工程師將下一個更高的安全版本代碼分配給軟件文件。接著在框110處軟件發布工程師對軟件文件簽名。如果在決策菱形106處新軟件版本不是用于修正安全漏洞,則在框112處軟件發布工程師保持相同的安全版本代碼,并且繼續到框110以對新版本的軟件文件簽名。然后在框114處發布簽名的軟件文件,并且該過程在框116處結束。
圖6是示出ECU中的引導裝載程序用來確定是否應將新軟件文件刷寫到ECU中的過程的流程圖120。引導裝載程序在框122處接收新軟件文件并在框124處識別標題信息。引導裝載程序在決策菱形126處確定軟件文件是否具有有效簽名,如果不是,則引導裝載程序在框128處退出引導。如果算法在決策菱形126處確定軟件文件的確具有有效簽名,則算法在決策菱形130處確定安全版本代碼是否有效。如果安全版本代碼是比引導裝載程序中當前存儲的安全版本代碼更舊的代碼,則引導裝載程序在框128處退出引導。如果分別在決策菱形126和130處簽名是有效的且安全版本代碼是有效的,則引導裝載程序在框132處安裝或刷寫軟件文件。引導裝載程序接著在決策菱形134處確定是否已滿足運行軟件文件的所有剩余要求,并且在不滿足時在框128處退出引導,而不運行軟件文件。如果算法確定軟件文件上的安全版本代碼高于引導裝載程序中先前存儲的安全版本代碼,則引導裝載程序在框136處存儲新版本的安全代碼以用于下一次軟件發布,并且在框138處退出引導。
如本領域的技術人員將充分理解的,本文討論的描述本發明的若干和各種步驟和過程可能是指由計算機、處理器或其它電子計算裝置執行的操作,該電子計算裝置利用電氣現象操縱和/或轉化數據。這些計算機和電子裝置可以采用各種易失性和/或非易失性存儲器,包括其上儲存有可執行程序的非暫時性計算機可讀介質,這些程序包括能夠由計算機或處理器執行的各種代碼或可執行指令,其中存儲器和/或計算機可讀介質可包括所有形式和類型的存儲器和其它計算機可讀介質。
所公開的以上討論僅描述了本發明的示例性實施例。本領域技術人員將容易從此類討論和附圖及權利要求認識到,在不脫離所附權利要求中限定的本發明的精神和范圍的情況下,可以在其中做出各種更改、修改和變型。

關于本文
本文標題:用于選擇性軟件回退的方法.pdf
鏈接地址:http://www.pqsozv.live/p-6180778.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影