专利名称:一种电子控制单元中应用程序的更新方法及系统的制作方法
技术领域:
本发明涉及车辆控制器的应用程序的更新技术领域,尤其涉及一种电子控制单元中应用程序的更新方法及系统。
背景技术:
在机动车辆上通常安装有多个电子控制单元,用以执行不同的功能,这些电子控制之间通常通过车载网络总线系统例如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日
发明者汤铭清 申请人:北京经纬恒润科技有限公司