專利名稱:一種電子控制單元中應用程序的更新方法及系統的制作方法
技術領域:
本發明涉及車輛控制器的應用程序的更新技術領域,尤其涉及一種電子控制單元中應用程序的更新方法及系統。
背景技術:
在機動車輛上通常安裝有多個電子控制單元,用以執行不同的功能,這些電子控制之間通常通過車載網絡總線系統例如CAN總線或LIN系統連接在一起,用以實現它們之間的協調工作以及信息共享。電子控制單元通常包括內部處理器和外部設備,電子控制單元的應用程序存放于處理器的內部存儲器,或者外部設備的片外存儲器內。由于諸多原因,例如,電子控制單元 的應用程序存在缺陷,或者需要增加新的功能,需要對存儲在電子控制單元中的應用程序進行升級和修改,這種情況下就需要對應用程序進行重編程,即對電子控制單元的應用程序進行更新。現有技術中,遠程服務器存儲有廠家的應用程序,重編程設備用遠程服務器下載廠家提供的應用程序,并將應用程序存儲在重編程設備或者外置的存儲設備中,在對電子控制單元中的應用程序進行更新時,重編程設備對應用程序進行解析,由于應用程序中帶有地址信息,因此重編程設備將應用程序解析成應用程序地址和應用程序數據,然后將這些信息發送給電子控制單元,電子控制單元根據應用程序地址將對應的應用程序數據寫入存儲器中。然而,應用程序地址和應用程序數據在由重編程設備傳送至電子控制單元的過程中有可能被非法用戶截獲,并且進行反編譯,其內容可能被破解,即,應用程序在傳輸的過程存在安全風險,因此現有技術中應用程序的更新方法無法保證應用程序的安全。
發明內容
有鑒于此,本發明提供了一種電子控制單元中應用程序的更新方法及系統,用以解決現有的更新方法無法保證電子控制單元中應用程序的安全的問題。其技術方案如下一種電子控制單元中應用程序的更新方法,應用于包括有遠程服務器、重編程設備和電子控制單元網絡的更新系統,所述電子控制單元具有第一密鑰和第二密鑰,所述遠程服務器具有第一公鑰和第一私鑰,所述重編程設備具有第二公鑰和第二私鑰;該方法包括A :所述重編程設備向所述電子控制單元發送身份信息請求信息;B :所述電子控制單元利用所述第一密鑰對自己的身份信息進行加密,然后將加密后的身份信息發送給所述重編程設備;C :所述重編程設備向所述遠程服務器發送更新文件請求;D :所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密,并將加密的更新文件發送給所述重編程設備;
E :所述重編程設備接收所述加密的更新文件,按照預先設定的第一解密規則,利用所述第一公鑰和第二私鑰對所述加密的更新文件進行第一次解密并將第一次解密的更新文件發送給所述電子控制單元;F :所述電子控制單元接收所述第一次解密的更新文件并按照預先設定的第二解密規則,利用所述第二密鑰對所述第一次解密后的更新文件進行第二次解密,并將解密后的更新文件寫入存儲器中;G :結束更新。所述更新文件包括更新文件頭和更新文件數據,所述更新文件數據包括應用程序頭和應用程序數據。所述第二密鑰為所述電子控制單元產生的隨機密鑰;所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰 和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密具體為所述遠程服務器利用所述重編程設備的第二公鑰對所述更新文件頭進行加密;所述遠程服務器利用所述電子控制單元的所述隨機密鑰對所述更新文件數據進行加密;所述遠程服務器利用自己的所述第一私鑰對所述加密的更新文件頭和所述加密的更新文件數據的指紋信息加密生成簽名。所述步驟E具體為所述重編程設備接收所述加密的更新文件,按照預先設定的第一解密規則、利用所述遠程服務器的第一公鑰解密所述加密的更新文件的簽名;驗證解密后的更新文件的簽名是否有效,如果是,則所述重編程設備利用自己的第二私鑰解密所述加密的更新文件的文件頭,并將所述加密的更新文件數據發送給所述電子控制單元;如果否,則執行步驟G ;所述步驟F具體為所述電子控制單元接收所述加密的更新文件數據,按照預先設定的第二解密規貝U、利用所述隨機密鑰解密所述加密的更新文件數據并根據所述解密后的更新文件數據中的應用程序頭將對應的應用程序數據寫入存儲器中。所述步驟A之前還包括H :所述重編程設備向所述電子控制單元發送身份驗證請求信息;I :所述電子控制單元通過安全訪問服務對所述重編程設備進行身份驗證,并將身份驗證結果發送給所述重編程設備;J :所述重編程設備判斷所述身份驗證結果是否有效,如果是,則執行步驟A,如果否則執行步驟G。所述步驟B之后、所述步驟C之前還包括K :所述重編程設備將接收到的所述電子控制單元加密的身份信息和自己的身份信息打包、加密形成身份認證信息,然后將所述身份認證信息發送給所述遠程服務器;L :所述遠程服務器接收所述身份認證信息并驗證其是否有效,如果是,則生成有效的身份認證結果,并將有效的身份認證結果發送給所述重編程設備,然后執行步驟C,如果否,則執行步驟G。
所述步驟K包括Kl :所述重編程設備將接收到的所述電子控制單元加密的身份信息和自己的身份信息打包,生成第一信息;K2:所述重編程設備利用所述遠程服務器的第一公鑰對所述第一信息進行加密,
生成第二信息;K3:所述重編程設備利用散列算法計算所述第二信息的指紋信息,然后利用所述第二私鑰對所述指紋信息加密,生成數字簽名;K4 :所述重編程設備將所述數字簽名附加在所述第二信息后面,生成身份認證信息; K5 :所述重編程設備將所述身份認證信息發送給所述遠程服務器。所述步驟L包括LI :所述遠程服務器接收所述身份認證信息;L2:所述遠程服務器利用所述重編程設備的第二公鑰解密所述身份認證信息的所述數字簽名;L3 :所述遠程服務器驗證所述數字簽名是否有效,如果是,則所述遠程服務器利用自己的所述第一私鑰解密所述身份認證信息,得到所述電子控制單元加密的身份信息,然后執行步驟L4 ;如果否,則執行步驟G ;L4:所述遠程服務器利用所述電子控制單元的所述第一密鑰解密所述電子控制單元加密的身份信息;L5:所述遠程服務器驗證解密后的所述電子控制單元的身份信息是否有效,如果是,則所述遠程服務器生成有效的身份認證結果,并將所述有效的身份認證結果發送給所述重編程設備;如果否,則執行步驟G。所述電子控制單元為同類電子控制單元組中的電子控制單元,所述第二密鑰為所述同類電子控制單元組的密鑰;所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密具體為所述遠程服務器利用所述重編程設備的第二公鑰對所述更新文件頭進行加密;所述遠程服務器利用所述同類電子控制單元組的密鑰對所述更新文件數據進行加密;所述遠程服務器利用自己的所述第一私鑰對所述加密的更新文件頭和所述加密的更新文件數據的指紋信息加密生成簽名。一種電子控制單元中應用程序的更新系統,包括遠程服務器、重編程設備和電子控制單元網絡;所述電子控制單元具有第一密鑰和第二密鑰,所述遠程服務器具有第一公鑰和第一私鑰,所述重編程設備具有第二公鑰和第二私鑰;所述重編程設備,用于向所述電子控制單元發送身份信息請求信息;所述電子控制單元,用于利用所述第一密鑰將自己的身份信息進行加密,然后將加密后的身份信息發送給所述重編程設備;所述重編程設備還用于向所述遠程服務器發送更新文件請求;
所述遠程服務器,用于根據應用程序生成更新文件,然后依據所述第二公鑰、第一私鑰和第二密鑰,按照預先設定的加密規則對所述更新文件進行加密,并將加密的更新文件發送給重編程設備;所述重編程設備,還用于接收所述加密的更新文件,按照預先設定的第一解密規貝U,利用所述第一公鑰和第二私鑰對所述加密的更新文件進行第一次解密并將第一次解密的更新文件發送給所述電子控制單元;所述電子控制單元,還用于接收所述第一次解密的更新文件并按照預先設定的第二解密規則,利用所述第二密鑰對所述第一次解密后的更新文件進行第二次解密,并將解密后的更新文件寫入存儲器中。本發明提供的電子控制單元中應用程序的更新方法和系統中,由于對包括有應用程序數據的更新文件進行了加密處理,因此保證了更新文件在傳輸過程中的安全,即保證 了待更新的電子控制單元中應用程序的安全。此外,遠程服務器對重編程設備和電子控制單元進行身份驗證使得待更新的電子控制單元中應用程序的安全性更高。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。圖I為本發明實施例一提供的應用程序更新方法的流程圖;圖2為本發明實施例一提供的更新文件的結構示意圖;圖3為本發明實施例一提供的加密的更新文件的結構示意圖;圖4為本發明實施例二提供的應用程序的更新方法的流程圖;圖5為本發明實施例三提供的應用程序的更新方法的流程圖;圖6為本發明實施例四提供的應用程序的更新系統的結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。實施例一本發明實施例一提供了一種應用程序的更新方法,應用于包括有遠程服務器、重編程設備和電子控制單元網絡的更新系統。電子控制單元具有第一密鑰Keyl和第二密鑰Key2,其中,第一密鑰Keyl固化在電子控制單元的內部存儲器中,重編程設備和遠程服務器各自具有一對密鑰,假設遠程服務器具有第一公鑰PublicKeyl和第一私鑰PrivateKeyl,重編程設備具有第二公鑰PublicKey2和第二私鑰PrivateKey2。在本實施例中,電子控制單元為應用程序更新系統的電子控制單元網絡中的一個電子控制單元。圖I為本發明實施例一提供的方法的流程圖,該方法包括
SlOl :重編程設備向電子控制單元發送身份驗證請求信息T101。S102:電子控制單元通過安全訪問服務對重編程設備進行身份驗證,并將身份驗證結果T102發送給重編程設備。S103 :重編程設備判斷身份驗證結果T102是否有效,如果是,則重編程設備向電子控制單元發送身份信息請求信息T103,然后執行步驟S104 ;如果否,則結束更新流程。S104 :電子控制單元利用第一密鑰Keyl對自己的身份信息進行加密,然后將加密后的身份信息T104發送給重編程設備。其中,電子控制單元的身份信息包括但不限于身份ID、隨機驗證碼和隨機密鑰。隨機密鑰是電子控制單元接收到重編程設備發送的身份信息請求信息T103時隨機產生的。在本實施例中,第二密鑰Key2為電子控制單元的身份信息中的隨機密鑰。S105 :重編程設備向遠程服務器發送更新文件請求信息T105。 S106 :遠程服務器生成加密的更新文件T106,并將加密的更新文件T106發送給重編程設備。在本實施例中,遠程服務器為每一個電子控制單元生成一個更新文件。圖2為本實施例提供的更新文件的結構示意圖,圖2中的更新文件包括更新文件頭Fl和更新文件數據F2。其中,更新文件頭Fl的信息包括應用程序版本、第一塊應用程序長度、更新文件數據長度、電子控制單元ID掩碼和校驗和等信息。更新文件數據F2是由遠程服務器對應用程序進行隨機分割形成N份,每次重編程對應用程序的分割方法是不一樣的,每份都由應用程序頭F21和應用程序F22數據組成,應用程序頭F21描述了應用程序數據F22的地址、長度和校驗和信息。在本實施例中,步驟S106中,遠程服務器生成加密的更新文件T106具體為S1061 :遠程服務器利用重編程設備的第二公鑰PublicKey2對更新文件頭Fl進行加密。S1062 :遠程服務器利用電子控制單元的第二密鑰Key2對更新文件數據F2進行加
r I I OS1063 :遠程服務器利用自己的第一私鑰PrivateKeyl對加密的更新文件頭和加密的更新文件數據的指紋信息進行加密生成更新文件的簽名。加密的更新文件頭、加密的更新文件數據和簽名組成加密的更新文件,圖3為加密的更新文件的結構示意圖。S107:重編程設備驗證加密的更新文件T106的簽名,然后利用自己的第二私鑰PrivateKey2解密加密的更新文件頭,最后將加密的更新文件數據T107發送給電子控制單
J Li o在本實施例中,重編程設備利用遠程服務器的第一公鑰PublicKeyl解密加密的更新文件T106的簽名的內容,并驗證遠程服務器的簽名是否有效,如果簽名有效,則重編程設備利用自己的第二私鑰PriVateKey2解密加密的更新文件頭,將加密的更新文件數據T107發送給電子控制單元,然后執行步驟S108 ;如果遠程服務器的簽名無效,則結束更新流程。S108 :電子控制單元解密加密的更新文件數據T107,根據解密后的更新文件數據的應用程序頭F21將對應的應用程序數據F22寫入到存儲器中,并將應用程序的更新結果T108反饋給重編程設備。在本實施例中,電子控制單元利用第二密鑰Key2解密加密的更新文件數據T107。本發明實施例一提供的應用程序的更新方法中,遠程服務器對更新文件進行了加密處理,本發明實施例提供的方法中,加密的過程保證了更新文件傳輸過程中的安全,即保證了待更新的電子控制單元中應用程序的安全。此外,電子控制單元對重編程設備的驗證過程提高了應用程序更新過程的安全性。實施例二本發明實施例二提供了一種應用程序的更新方法,應用于包括有遠程服務器、重編程設備和電子控制單元網絡的更新系統。電子控制單元具有第一密鑰Keyl和第二密鑰Key2,其中,第一密鑰Keyl固化在電子控制單元的內部存儲器中,重編程設備和遠程服務器各自具有一對密鑰,假設遠程服務器具有第一公鑰PublicKeyl和第一私鑰PrivateKeyl,重編程設備具有第二公鑰PublicKey2和第二私鑰PrivateKey2。在本實施例中,電子控制單元為應用程序更新系統的電子控制單元網絡中的一個電子控制單元。圖4為該方法的流程圖,該方法包括S201 :重編程設備向電子控制單元發送身份驗證請求信息T201。S202:電子控制單元通過安全訪問服務對重編程設備進行身份驗證,并將身份驗證結果T202發送給重編程設備。S203 :重編程設備判斷身份驗證結果T202是否有效,如果是,則重編程設備向電子控制單元發送身份信息請求信息T203,然后執行步驟S204 ;如果否,則結束更新流程。S204 電子控制單元利用第一密鑰Keyl對自己的身份信息進行加密,并將加密后的身份信息T204發送給重編程設備。其中,電子控制單元的身份信息包括但不限于身份ID、隨機驗證碼和隨機密鑰。隨機密鑰是電子控制單元接收到重編程設備發送的身份信息請求信息T203時隨機產生的。在本實施例中,第二密鑰Key2為電子控制單元的身份信息中的隨機密鑰。S205 :重編程設備將接收到的電子控制單元加密的身份信息T204和自己的身份信息打包、加密形成身份認證信息T205,然后將身份認證信息T205發送給遠程服務器。在本實施例中,步驟S205具體包括S2051 :重編程設備將接收到的電子控制單元加密的身份信息T204和自己的身份信息打包成第一信息Informationl。S2052 :重編程設備利用遠程服務器的第一公鑰PublicKeyl對打包后的第一信息Informationl進行力卩密,生成第二信息Information2。S2053 :重編程設備利用散列算法計算第二信息Information〗的指紋信息,然后利用自己的第二私鑰PriVateKey2對指紋信息加密,生成數字簽名。S2054 :重編程設備將數字簽名附加在第二信息Information〗的后面,生成身份認證信息T205。
S2055 :重編程設備將身份認證信息T205發送給遠程服務器。在本實施例中,重編程設備的身份信息包括但不限于重編程設備的身份ID、版本和隨機驗證碼。S206 :遠程服務器驗證身份認證信息T205是否有效,如果是,則生成有效的身份認證結果T206,并將有效的身份認證結果T206發送給重編程設備,然后執行步驟S207 ;如果否,則結束更新流程。本實施例中的步驟S206具體包括S2061 :遠程服務器利用重編程設備的第二公鑰PublicKey2解密身份認證信息T205的數字簽名。S2062 :遠程服務器驗證數字簽名是否有效,如果驗證數字簽名有效,則遠程服務器利用自己的第一私鑰PrivateKeyl解密身份認證信息T205,得到電子控制單元加密的身份信息T204,然后執行步驟S2063 ;如果驗證數字簽名無效,則結束更新流程。
S2063 :遠程服務器利用第一密鑰Keyl解密電子控制單元加密的身份信息T204。該步驟中的對電子控制單元加密的身份信息T204進行解密與步驟S2 04中的電子控制單元將自己的身份信息加密相對應。S2064:遠程服務器驗證解密后的電子控制單元的身份信息是否有效,如果電子控制單元的身份信息驗證有效,則遠程服務器生成有效的身份認證結果T206,并將有效的身份認證結果T206發送給重編程設備,然后執行步驟S207 ;如果驗證無效,則結束更新流程。S207 :重編程設備向遠程服務器發送更新文件請求信息T207。S208 :遠程服務器生成加密的更新文件T208,并將加密的更新文件T208發送給重編程設備。本實施例中的更新文件與實施例一中的更新文件結構相同,本實施例中的加密的更新文件與實施例一中的加密的更新文件結構相同,在此不做贅述。在本實施例中,步驟S208具體為S2081 :遠程服務器利用重編程設備的第二公鑰PublicKey2對更新文件頭Fl進行加密。S2082 :遠程服務器利用電子控制單元的第二密鑰Key2對更新文件數據F2進行加
r I I OS2082 :遠程服務器利用自己的第一私鑰PrivateKeyl對加密的更新文件頭和加密的更新文件數據的指紋信息進行加密生成更新文件的簽名。S209 :重編程設備驗證加密的更新文件T208的簽名,然后解密加密的更新文件T208的更新文件頭,最后將將加密的更新文件數據T209發送給電子控制單元。重編程設備利用遠程服務器的公鑰PublicKeyl解密加密的更新文件T208的簽名的內容,并驗證更新文件T208的簽名是否有效,如果簽名有效,則重編程設備利用自己的私鑰PrivateKey2解密加密的更新文件頭,將加密的更新文件數據T209發送給電子控制單元,然后執行步驟S210 ;如果簽名無效,則結束更新流程。S210 :電子控制單元解密加密的更新文件數據T209,根據解密后的更新文件數據T209的應用程序頭F21將對應的應用程序數據F22寫入到存儲器中,并將將應用程序的更新結果T210反饋給重編程設備。在本實施例中,電子控制單元利用第二密鑰Key2解密加密的更新文件數據T209。本發明實施例提供的應用程序的更新方法中,遠程服務器對更新文件進行了加密處理,加密的過程保證了更新文件傳輸過程的安全,即保證了待更新的電子控制單元中應用程序的安全。此外,對電子控制單元對重編程設備的身份驗證、遠程服務器對重編程設備和電子控制單元的身份驗證使得待更新的電子控制單元中應用程序的安全性更高。
實施例三在實際應用中,可能存在需要對幾萬甚至幾十萬同類的電子控制單元進行應用程序更新的情況,如果對每個電子控制單元生成一個單獨的更新文件,那么,遠程服務器的負載會大幅度增加,且更新耗時較長。有鑒于此,本發明實施例三提供了一種應用程序的更新方法,應用于包括有遠程服務器、重編程設備和電子控制單元網絡的更新系統,該方法適用于同時對大量同種類型的電子控制單元的應用程序進行的更新。電子控制單元具有第一密鑰Keyl和第二密鑰Key2,重編程設備和遠程服務器各自具有一對密鑰,假設遠程服務器具有第一公鑰PublicKeyl和第一私鑰PrivateKeyl,重編程設備具有第二公鑰PublicKey2和第二私鑰
PrivateKey2。在本實施例中,電子控制單元為電子控制單元網絡中同類電子控制單元組中的一個電子控制單元,電子控制單元的第二密鑰Key2為同種類型的電子控制單元組的密鑰。圖5為本發明實施例三提供的方法的流程圖,該方法包括S301 :重編程設備向電子控制單元發送身份驗證請求信息T301。S302:電子控制單元通過安全訪問服務對重編程設備進行身份驗證,并將身份驗證結果T302發送給重編程設備。S303:重編程設備判斷身份驗證結果是否有效,如果是,則重編程設備向電子控制單元發送身份信息請求信息T303,然后執行步驟S304 ;如果否,則結束更新流程。S304 :電子控制單元利用第一密鑰Keyl將自己的身份信息加密,并將加密后的身份信息T304發送給重編程設備。在本實施例中,第一密鑰Keyl和第二密鑰Key2固化在電子控制單元的內部存儲器比如Flash或e印rom中。電子控制單元的身份信息包括但不限于身份ID、隨機驗證碼。S305 :重編程設備向遠程服務器發送更新文件請求T305。S306 :遠程服務器根據重編程設備的身份ID和電子控制單元的種類生成加密的更新文件T306,并將加密的更新文件T306通過網絡或外置存儲器設備傳送給重編程設備。本實施例中的更新文件與實施例一中的更新文件結構相同,本實施例中的加密的更新文件與實施例一中的加密的更新文件結構相同,在此不做贅述。在本實施例中,遠程服務器利用重編程設備的公鑰PublicKey2對更新文件頭Fl進行加密,利用電子控制單元組的密鑰對更新文件數據F2進行加密,利用自己的第一私鑰PrivateKeyl對加密的更新文件頭和加密的更新文件數據的指紋信息進行加密,生成更新文件的簽名。S307 :重編程設備驗證加密的更新文件T306的簽名是否有效,如果是,則解密加密的更新文件T306的更新文件頭,將加密的更新文件數據T307發送給電子控制單元,然后執行步驟S307 ;如果否,則結束流程。同時,為了更快的實現應用程序的更新,重編程設備暫時保存解密后的更新文件頭,當重編程設備對另一個同類型的電子控制單元的應用程序進行更新時,可以不用進行解密,而直接將加密的更新文件T306中的加密的更新文件數據T306發送給電子控制單元。在本實施例中,重編程設備利用遠程服務器的第一公鑰PublicKeyl解密加密的更新文件T306的簽名的內容,并驗證遠程服務器的簽名是否有效,如果簽名有效,則重編程設備利用自己的第二私鑰PrivateKey〗解密加密的更新文件頭,將加密的更新文件數據T307發送給電子控制單元,然后執行步驟S308 ;如果否,則結束流程。S308 電子控制單元利用電子控制單元組的密鑰解密加密的更新文件數據T307,根據解密后的更新文件數據的應用程序頭F21將對應的應用程序數據F22寫入到存儲器中,并將應用程序的更新結果T308反饋給重編程設備。本發明實施例三提供的應用程序的更新方法中,遠程服務器為每種電子控制單元生成一個更新文件,即在對同類電子控制單元組中的所有電子控制單元進行應用程序更新的過程中,遠程服務器只向重編程設備發送一次更新文件,重編程設備將該更新文件下載到所有同類的電子控制單元中。同時,遠程服務器對更新文件進行了加密處理,因此,本發明實施例提供的方法既保證了應用程序的安全,又緩解了遠程服務器的壓力,同時縮短了更新耗時。實施例四 本發明實施例四還提供了一種電子控制單元中應用程序的更新系統,圖6為該系統的結構示意圖,包括遠程服務器41、重編程設備42和電子控制單元網絡43。其中,遠程服務器41存儲有應用程序數據,還存儲有重編程設備42和電子控制單元網絡43中電子控制單元的身份信息。電子控制單元網絡43中的電子控制單元具有第一密鑰Keyl和第二密鑰,遠程服務器41具有第一公鑰PublicKeyl和第一私鑰PrivateKeyl,重編程設備42具有第二公鑰PubIicKey2 和第二私鑰 PrivateKey2。重編程設備41,用于向電子控制單元發送身份信息請求信息。電子控制單元網絡43中的電子控制單元,用于利用第一密鑰Keyl將自己的身份信息進行加密,然后將加密后的身份信息發送給重編程設備。重編程設備42,還用于向遠程服務器41發送更新文件請求。遠程服務器41,還用于根據應用程序生成更新文件,然后依據第二公鑰PublicKey2、第一私鑰PrivateKeyl和第二密鑰Key2,按照預先設定的加密規則對更新文件進行加密,并將加密的更新文件發送給重編程設備42。重編程設備42,用于接收加密的更新文件,按照預先設定的第一解密規則,利用第一公鑰PublicKeyl和第二私鑰PrivateKey2對加密的更新文件進行第一次解密并將第一次解密的更新文件發送給電子控制單兀。電子控制單元,還用于接收第一次解密的更新文件并按照預先設定的第二解密規貝U,利用第二密鑰Key2對第一次解密后的更新文件進行第二次解密,并將解密后的更新文件寫入存儲器中。遠程服務器41,還用于對重編程設備42和電子控制單元網絡43中的電子控制單元進行身份驗證。本實施例中的第二密鑰Key2可以為當電子控制單元接收到重編程設備的身份信息請求信息時產生的隨機密鑰,也可為同類電子控制單元組的密鑰。本發明實施例提供的系統中,遠程服務器對更新文件進行的加密處理過程以及對重編程設備和電子控制單元進行的身份驗證過程保證了應用程序的安全。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。權利要求
1.一種電子控制單元中應用程序的更新方法,其特征在于,應用于包括有遠程服務器、重編程設備和電子控制單元網絡的更新系統,所述電子控制單元具有第一密鑰和第二密鑰,所述遠程服務器具有第一公鑰和第一私鑰,所述重編程設備具有第二公鑰和第二私鑰; 該方法包括 A :所述重編程設備向所述電子控制單元發送身份信息請求信息; B :所述電子控制單元利用所述第一密鑰對自己的身份信息進行加密,然后將加密后的身份信息發送給所述重編程設備; C :所述重編程設備向所述遠程服務器發送更新文件請求; D :所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密,并將加密的更新文件發送給所述重編程設備; E :所述重編程設備接收所述加密的更新文件,按照預先設定的第一解密規則,利用所述第一公鑰和第二私鑰對所述加密的更新文件進行第一次解密并將第一次解密的更新文件發送給所述電子控制單元; F :所述電子控制單元接收所述第一次解密的更新文件并按照預先設定的第二解密規貝U,利用所述第二密鑰對所述第一次解密后的更新文件進行第二次解密,并將解密后的更新文件寫入存儲器中; G :結束更新。
2.根據權利要求I所述的方法,其特征在于,所述更新文件包括更新文件頭和更新文件數據,所述更新文件數據包括應用程序頭和應用程序數據。
3.根據權利要求2所述的方法,其特征在于, 所述第二密鑰為所述電子控制單元產生的隨機密鑰; 所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密具體為 所述遠程服務器利用所述重編程設備的第二公鑰對所述更新文件頭進行加密; 所述遠程服務器利用所述電子控制單元的所述隨機密鑰對所述更新文件數據進行加密; 所述遠程服務器利用自己的所述第一私鑰對所述加密的更新文件頭和所述加密的更新文件數據的指紋信息加密生成簽名。
4.根據權利要求3所述的方法,其特征在于,所述步驟E具體為 所述重編程設備接收所述加密的更新文件,按照預先設定的第一解密規則、利用所述遠程服務器的第一公鑰解密所述加密的更新文件的簽名; 驗證解密后的更新文件的簽名是否有效,如果是,則所述重編程設備利用自己的第二私鑰解密所述加密的更新文件的文件頭,并將所述加密的更新文件數據發送給所述電子控制單元;如果否,則執行步驟G ; 所述步驟F具體為 所述電子控制單元接收所述加密的更新文件數據,按照預先設定的第二解密規則、利用所述隨機密鑰解密所述加密的更新文件數據并根據所述解密后的更新文件數據中的應用程序頭將對應的應用程序數據寫入存儲器中。
5.根據權利要求I或4所述的方法,其特征在于,所述步驟A之前還包括 H :所述重編程設備向所述電子控制單元發送身份驗證請求信息; I :所述電子控制單元通過安全訪問服務對所述重編程設備進行身份驗證,并將身份驗證結果發送給所述重編程設備; J :所述重編程設備判斷所述身份驗證結果是否有效,如果是,則執行步驟A,如果否則執行步驟G。
6.根據權利要求5所述的方法,其特征在于,所述步驟B之后、所述步驟C之前還包括 K :所述重編程設備將接收到的所述電子控制單元加密的身份信息和自己的身份信息打包、加密形成身份認證信息,然后將所述身份認證信息發送給所述遠程服務器; L :所述遠程服務器接收所述身份認證信息并驗證其是否有效,如果是,則生成有效的身份認證結果,并將有效的身份認證結果發送給所述重編程設備,然后執行步驟C,如果否,則執行步驟G。
7.根據權利要求6所述的方法,其特征在于,所述步驟K包括 Kl :所述重編程設備將接收到的所述電子控制單元加密的身份信息和自己的身份信息打包,生成第一信息; K2 :所述重編程設備利用所述遠程服務器的第一公鑰對所述第一信息進行加密,生成第二信息; K3 :所述重編程設備利用散列算法計算所述第二信息的指紋信息,然后利用所述第二私鑰對所述指紋信息加密,生成數字簽名; K4 :所述重編程設備將所述數字簽名附加在所述第二信息后面,生成身份認證信息; K5 :所述重編程設備將所述身份認證信息發送給所述遠程服務器。
8.根據權利要求7所述的方法,其特征在于,所述步驟L包括 LI :所述遠程服務器接收所述身份認證信息; L2:所述遠程服務器利用所述重編程設備的第二公鑰解密所述身份認證信息的所述數字簽名; L3 :所述遠程服務器驗證所述數字簽名是否有效,如果是,則所述遠程服務器利用自己的所述第一私鑰解密所述身份認證信息,得到所述電子控制單元加密的身份信息,然后執行步驟L4 ;如果否,則執行步驟G ; L4:所述遠程服務器利用所述電子控制單元的所述第一密鑰解密所述電子控制單元加密的身份信息; L5 :所述遠程服務器驗證解密后的所述電子控制單元的身份信息是否有效,如果是,則所述遠程服務器生成有效的身份認證結果,并將所述有效的身份認證結果發送給所述重編程設備;如果否,則執行步驟G。
9.根據權利要求2所述的方法,其特征在于,所述電子控制單元為同類電子控制單元組中的電子控制單元,所述第二密鑰為所述同類電子控制單元組的密鑰; 所述遠程服務器根據應用程序生成更新文件,然后利用所述第二密鑰、第二公鑰和第一私鑰,按照預先設定的加密規則對所述更新文件進行加密具體為 所述遠程服務器利用所述重編程設備的第二公鑰對所述更新文件頭進行加密;所述遠程服務器利用所述同類電子控制單元組的密鑰對所述更新文件數據進行加密; 所述遠程服務器利用自己的所述第一私鑰對所述加密的更新文件頭和所述加密的更新文件數據的指紋信息加密生成簽名。
10.一種電子控制單元中應用程序的更新系統,其特征在于,包括遠程服務器、重編程設備和電子控制單元網絡; 所述電子控制單元具有第一密鑰和第二密鑰,所述遠程服務器具有第一公鑰和第一私鑰,所述重編程設備具有第二公鑰和第二私鑰; 所述重編程設備,用于向所述電子控制單元發送身份信息請求信息; 所述電子控制單元,用于利用所述第一密鑰將自己的身份信息進行加密,然后將加密后的身份信息發送給所述重編程設備; 所述重編程設備還用于向所述遠程服務器發送更新文件請求; 所述遠程服務器,用于根據應用程序生成更新文件,然后依據所述第二公鑰、第一私鑰和第二密鑰,按照預先設定的加密規則對所述更新文件進行加密,并將加密的更新文件發送給重編程設備; 所述重編程設備,還用于接收所述加密的更新文件,按照預先設定的第一解密規則,利用所述第一公鑰和第二私鑰對所述加密的更新文件進行第一次解密并將第一次解密的更新文件發送給所述電子控制單元; 所述電子控制單元,還用于接收所述第一次解密的更新文件并按照預先設定的第二解密規則,利用所述第二密鑰對所述第一次解密后的更新文件進行第二次解密,并將解密后的更新文件寫入存儲器中。
全文摘要
本發明提供了一種電子控制單元中應用程序的更新方法及系統,該系統包括遠程服務器、重編程設備和電子控制單元網絡,該方法包括重編程設備向電子控制單元發送身份信息請求;電子控制單元對自己的身份信息進行加密并將加密的身份信息發送給重編程設備;重編程設備向遠程服務器發送更新文件請求;遠程服務器根據應用程序生成加密的更新文件,并將加密的更新文件傳送給重編程設備,重編程設備將加密的更新文件數據發送給電子控制單元;電子控制單元解密加密的更新文件數據并將應用程序數據寫入存儲器。本發明提供的應用程序的更新方法和系統,由于對包括有應用程序的更新文件進行了加密處理,因此保證了更新文件的安全,即保證了應用程序的安全。
文檔編號H04L29/08GK102662692SQ201210071649
公開日2012年9月12日 申請日期2012年3月16日 優先權日2012年3月16日
發明者湯銘清 申請人:北京經緯恒潤科技有限公司