程序更新系统及程序更新方法与流程

文档序号:13221142阅读:311来源:国知局
技术领域本发明涉及对在车辆侧执行的程序的更新的正当性进行验证的程序更新系统及程序更新方法。

背景技术:
近年来,在汽车的领域中,车辆的高功能化日益推进,在车辆中搭载有多种设备,并搭载有很多用于控制这些车载设备的控制装置即所谓的ECU(ElectronicControlUnit,电子控制单元)。例如,在车辆中搭载有例如根据由乘客进行的开关操作等而进行车内照明、车头灯的亮灯/熄灯和警报器的鸣叫等的控制的车身系统ECU、对配置于驾驶员座附近的仪表的动作进行控制的仪表系统ECU以及进行汽车导航装置等的控制的导航系统ECU等各种ECU。通常,ECU由微型计算机等运算处理装置构成,通过读入并执行在ROM(ReadOnlyMemory,只读存储器)中存储的控制程序,从而实现车载设备的控制。即使是相同的车型,控制程序也有时根据运用车辆的目的地、搭载功能而不同,需要与目的地、搭载功能相匹配地重写控制程序,或与控制程序的版本升级相对应地将旧版本的控制程序重写成新版本的控制程序。在专利文献1中公开了一种汽车用控制装置,在搭载于车辆的汽车控制装置中,在能够确认为由无线通信接收到的数据是发送给自身的装置的数据的情况下,将在非易失性存储器中存储的数据重写成所接收到的数据。现有技术文献专利文献专利文献1:日本特开平05-195859号公报

技术实现要素:
发明要解决的课题然而,在形成为能够追加或更新车载设备的控制程序的结构的情况下,存在追加并执行由恶意的第三者制成的程序的危险。由此,存在例如经由车内网络而收发的信息通过不正当的程序而泄露到外部等的危险。本发明鉴于上述情形而完成,其目的在于,提供一种能够验证在车辆侧执行的程序的更新的正当性的程序更新系统及程序更新方法。用于解决课题的技术方案本发明的程序更新系统包括:多个控制装置,具备存储用于控制车载设备的控制程序的存储单元以及读取并执行所述控制程序的执行单元;中继装置,经由车内通信线而连接到该多个控制装置;以及车外装置,经由车外通信网而连接到该中继装置,存储更新所述控制程序所需的更新数据,从该车外装置向所述中继装置发送所述更新数据,根据该中继装置接收到的所述更新数据,更新所述控制装置的存储单元中存储的控制程序,所述程序更新系统的特征在于,所述更新数据包括:针对作为更新对象的控制装置的更新控制程序;以及实现如下单元的计算机程序:计算与该更新控制程序相关的摘要值的单元、判定更新后的所述控制装置的动作是否正常的单元、将该判定单元的判定结果响应给所述中继装置的单元,所述中继装置具备将从所述车外装置接收到的所述更新数据发送到所述作为更新对象的控制装置的单元,所述控制装置具备:接收从所述中继装置发送的所述更新数据的单元;以及通过所接收到的所述更新数据中包含的所述更新控制程序而对所述存储单元中存储的控制程序进行更新的单元,所述控制装置执行所述更新数据中包含的所述计算机程序而判定更新后的动作是否正常,并将该判定结果响应给所述中继装置。本发明的程序更新系统的特征在于,所述中继装置具备:存储对经由所述车内通信线而连接的各控制装置进行识别的装置识别信息和对各控制装置的存储单元中存储的控制程序进行识别的程序识别信息的单元;以及将存储作为更新对象的控制程序的控制装置的装置识别信息以及所述控制程序的程序识别信息发送到所述车外装置的单元,所述车外装置具备:接收从所述中继装置发送的装置识别信息和程序识别信息的单元;根据所接收到的装置识别信息和程序识别信息来确定应该发送到所述中继装置的更新数据的单元;以及在将所确定的更新数据发送到所述中继装置时附加所述装置识别信息和程序识别信息的单元。本发明的程序更新系统的特征在于,所述中继装置具备:取得与所述更新控制程序相关的摘要值的单元;对所取得的摘要值进行加密的单元;以及将被加密的摘要值发送到所述车外装置的单元,所述车外装置具备:接收从所述中继装置发送的已加密的摘要值的单元;对所接收到的摘要值进行解码的单元;将被解码的摘要值与预先存储的期望值进行比较的单元;以及根据比较的结果来判断所述控制装置中的更新后的控制程序的正当性的单元。本发明的程序更新系统的特征在于,所述车外装置具备在判断为更新后的控制程序不正当的情况下经由所述中继装置将所存储的更新数据和所述计算机程序再次发送到所述控制装置的单元。本发明的程序更新系统的特征在于,所述车外装置具备在判断为更新后的控制程序不正当的情况下经由所述中继装置向所述控制装置通知应该停止执行所述控制程序的单元,所述控制装置具备在从所述车外装置接收到应该停止执行所述控制程序的通知的情况下停止执行所述控制程序的单元。本发明的程序更新系统的特征在于,所述车外装置、所述中继装置和所述控制装置中的至少一个具备保持更新前的控制程序的单元,所述车外装置具备在判断为更新后的控制程序不正当的情况下经由所述中继装置向所述控制装置通知应该回到更新前的控制程序的单元,所述控制装置具备:在经由所述中继装置接收到应该回到更新前的控制程序的通知的情况下取得更新前的控制程序的单元;以及使所述存储单元中存储的更新后的控制程序返回到所取得的更新前的控制程序的单元。在本发明的程序更新方法中,针对具备存储用于控制车载设备的控制程序的存储单元以及读取并执行所述控制程序的执行单元的控制装置,车外装置将更新所述控制程序所需的更新数据发送到与所述控制装置连接的中继装置,根据该中继装置接收到的所述更新数据来更新所述控制装置的存储单元中存储的控制程序,所述程序更新方法的特征在于,所述更新数据包括:针对作为更新对象的控制装置的更新控制程序;以及实现如下单元的计算机程序:计算与该更新控制程序相关的摘要值的单元、判定更新后的所述控制装置的动作是否正常的单元、将该判定单元的判定结果响应给所述中继装置的单元,所述中继装置将从所述车外装置接收到的所述更新数据发送到所述作为更新对象的控制装置,所述控制装置接收从所述中继装置发送的所述更新数据,通过所接收到的所述更新数据中包含的所述更新控制程序而对所述存储单元中存储的控制程序进行更新,执行所述更新数据中包含的所述计算机程序而判定更新后的动作是否正常,并将该判定结果响应给所述中继装置。在本发明中,车外装置存储有更新数据以作为更新控制装置中存储的控制程序所需的更新数据,该更新数据包括针对作为更新对象的控制装置的更新控制程序以及实现计算与更新控制程序相关的摘要值的单元、判定更新后的控制装置的动作是否正常的单元和响应判定结果的单元的计算机程序,经由中继装置将更新数据发送到控制装置。在控制装置中,根据所接收到的更新数据中包含的更新控制程序而对控制程序进行更新,并且通过执行更新数据中包含的计算机程序而判定更新后的动作是否正常,并响应给中继装置。在本发明中,能够在对控制程序进行更新的更新数据中安装上述计算机程序,因此与事先在控制装置内安装的情况相比,不易窜改上述计算机程序。另外,在中继装置或以能够通信的方式连接到中继装置的车外装置中,能够通过验证更新控制程序的摘要值的正当性而确保所更新的控制程序的正当性。在本发明中,中继装置管理控制装置的装置识别信息和控制程序的程序识别信息,因此车外装置能够通过从中继装置取得作为更新对象的控制装置的装置识别信息和控制程序的程序识别信息而确定更新对象。在本发明中,中继装置对从控制装置发送的摘要值进行加密并发送到车外装置,因此能够防止在发送摘要值的通信路径的中途发生窜改。在本发明中,在判断为更新后的控制程序不正当的情况下,再次发送更新数据和所述计算机程序,因此能够防止伴随着缺失位等而产生的控制程序的不良状况。在本发明中,在判断为更新后的控制程序不正当的情况下,停止执行控制程序,因此防止车载设备通过被窜改的控制程序而动作。在本发明中,在判断为更新后的控制程序不正当的情况下,返回到更新前的控制程序,因此至少能够确保更新前的控制装置的动作。发明效果根据本申请,在对控制程序进行更新的更新数据中,安装实现计算与更新控制程序相关的摘要值的单元、判定更新后的动作是否正常的单元以及将判定结果响应给所述中继装置的单元的计算机程序,因此与事先安装在控制装置内的情况相比,不易窜改上述计算机程序。另外,由于能够在更新数据的发布侧制成上述计算机程序,因此能够在每当进行更新时变更针对摘要值的期望值,能够防止窜改和电子欺骗。另外,在中继装置或以能够通信的方式连接到中继装置的车外装置中,能够通过验证从控制装置输出的摘要值而确认上述计算机程序的正常动作,从而能够确保所更新的控制程序的正当性。附图说明图1是示出本实施方式的程序更新系统的结构的示意图。图2是示出网关的内部结构的框图。图3是说明ECU的内部结构的框图。图4是说明服务器装置的内部结构的框图。图5是示出服务器装置执行的处理的步骤的流程图。图6是示出在车辆中执行的处理的步骤的流程图。图7是示出验证摘要值的处理的步骤的流程图。具体实施方式以下,根据示出其实施方式的附图,具体说明本发明。图1是示出本实施方式的程序更新系统的结构的示意图。在图中以单点划线示出的1是车辆,在车辆1中搭载有网关10和多个ECU30、30、…等。在车辆1中存在多个由与共同的通信线进行总线连接的多个ECU30、30、…组成的通信组,网关10对通信组之间的通信进行中继。因此,多条通信线连接到网关10。另外,网关10以能够通信的方式连接于公共移动电话网等广域无线网N,通过广域无线网N将从服务器装置5等车外装置接收到的信息发送到ECU30,并且经由广域无线网N将从ECU30取得的信息发送到车外装置。此外,在本实施方式中,构成为网关10直接地与车外装置进行通信,但也可以构成为将通信装置与网关10连接,通过所连接的通信装置而与车外装置进行通信。在与网关10连接的通信装置中包括例如用户持有的移动电话机、智能手机、平板型终端、笔记本型PC(PersonalComputer,个人计算机)等装置。图2是示出网关10的内部结构的框图。网关10构成为具备CPU(CentralProcessingUnit,中央处理单元)11、RAM(RandomAccessMemory,随机存取存储器)12、存储部13、车内通信部14和无线通信部15等。CPU11通过将在存储部13中存储的一个或多个程序读取到RAM12中并执行,使网关10作为本发明的中继装置而发挥功能。CPU11例如通过分时等来切换执行多个程序,从而能够并行地执行多个程序。RAM12由SRAM(StaticRAM,静态随机存取存储器)或DRAM(DynamicRAM,动态随机存取存储器)等存储器元件构成,临时地存储CPU11所执行的程序和执行中所需的数据等。存储部13使用闪存存储器或EEPROM(ElectricallyErasableProgrammableReadOnlyMemory,电可擦可编程只读存储器)等非易失性的存储器元件或硬盘等磁存储装置等来构成。存储部13具有对CPU11所执行的程序和执行中所需的数据等进行存储的存储区域。经由配置于车辆1内的通信线将多个ECU30、30、…连接到车内通信部14。车内通信部14根据例如CAN(ControllerAreaNetwork,控制器局域网络)、LIN(LocalInterconnectNetwork,局域互连网络)、Ethernet(注册商标)或MOST(MediaOrientedSystemsTransport,媒体导向系统传输)等标准而与ECU30进行通信。车内通信部14将由CPU11提供的信息发送到作为对象的ECU30,并且将从ECU30接收到的信息提供给CPU11。车内通信部14也可以是,不仅根据上述通信标准,还根据在车载网络中使用的其他通信标准来进行通信。无线通信部15例如使用天线和执行与其通信相关的处理的附属电路来构成,具有与公共移动电话网等广域无线网N连接而执行通信处理的功能。无线通信部15通过由未图示的基站形成的广域无线网N,将从CPU11提供的信息发送到服务器装置5等车外装置,并且将从车外装置接收到的信息提供给CPU31。此外,网关10也可以构成为具备用于连接上述通信装置的有线通信部来代替无线通信部15。该有线通信部具有经由与USB(UniversalSerialBus,通用串行总线)或RS232C等标准对应的通信缆线来连接通信装置的连接器,并与经由通信缆线连接的通信装置进行通信。有线通信部通过无线通信将从CPU11提供的信息发送到与广域无线网N连接的车外装置,并且将通过广域无线网N从车外装置接收到的信息提供给CPU11。图3是说明ECU30的内部结构的框图。ECU30具备例如CPU31、RAM32、存储部33、通信部34等,进行未图示的各种车载设备的控制。CPU31将在存储部33中预先存储的一个或多个程序读取到RAM32中并执行,从而控制上述各硬件的动作,使ECU30作为本发明的控制装置而发挥功能。RAM32由SRAM或DRAM等存储器元件构成,临时地存储CPU31执行的程序和执行中所需的数据等。存储部33使用闪存存储器或EEPROM等非易失性的存储器元件或硬盘等磁存储装置等来构成。存储部33所存储的信息包括例如用于使CPU31执行用于对作为控制对象的车载装置进行控制的处理的计算机程序(以下,称为控制程序)。在通信部34经由配置于车辆1内的通信线而连接有网关10。通信部34根据例如CAN(ControllerAreaNetwork,控制器局域网络)或LIN(LocalInterconnectNetwork,局域互连网络)、Ethernet(注册商标)或MOST(MediaOrientedSystemsTransport,媒体导向系统传输)等标准而与网关10进行通信。通信部34将由CPU31提供的信息发送到网关10,并且将从网关10接收到的信息提供给CPU31。通信部34也可以是,不仅根据上述通信标准,还根据在车载网络中使用的其他通信标准来进行通信。图4是说明服务器装置5的内部结构的框图。服务器装置5例如具备CPU51、ROM52、RAM53、存储部54、通信部55等。CPU51通过将在ROM52中预先存储的一个或多个程序读取到RAM53中并执行,从而控制上述各硬件的动作,使服务器装置5作为本发明的车外装置而发挥功能。RAM53由SRAM或DRAM等存储器元件构成,临时地存储CPU51所执行的程序和执行中所需的数据等。存储部54使用闪存存储器或EEPROM等非易失性的存储器元件或硬盘等磁存储装置等来构成。存储部54所存储的信息包括例如对搭载于车辆1中的ECU30所执行的控制程序进行更新时所需的更新数据。更新数据包括更新控制程序,该更新控制程序执行用于对作为更新对象的ECU30所存储的控制程序的一部分或全部进行重写的控制。另外,在更新数据中存储有应该使更新了控制程序的ECU30执行的计算机程序(以下,称为响应程序)。响应程序构成为使ECU30作为计算更新控制程序所涉及的摘要值的单元、判定更新后的动作是否正常的单元以及将该判定结果响应给网关10的单元而发挥功能的计算机程序。通信部55包括例如执行与通信相关的处理的处理电路,具有与公共移动电话网等广域无线网N连接而执行通信处理的功能。通信部55经由广域无线网N将由CPU51提供的信息发送到外部的装置,并且将经由广域无线网N而接收到的信息提供给CPU51。以下,说明控制程序的更新步骤。图5是示出服务器装置5所执行的处理的步骤的流程图。在服务器装置5的存储部54中,将用于更新车辆1侧的ECU30所执行的控制程序的更新数据(重编程数据,reprogrammingdata)与控制程序的版本号建立对应并存储。服务器装置5的CPU51判断是否从车辆1的网关10接收到附加有车辆1的车辆编号、作为更新对象的ECU30的序列号和作为更新对象的控制程序的版本号的更新数据的请求(步骤S11)。在未接收到请求的情况下(S11:“否”),CPU51待机直到从车辆1的网关10接收到请求为止。在接收到请求的情况下(S11:“是”),CPU51从存储部54读取应该发送的更新数据,对所读取的更新数据赋予认证机构(CA:CertificationAuthority)或每个OEM(OriginalEquipmentManufacturer,原始设备制造商)的电子签名(步骤S12)。接下来,CPU51通过通信部55将包括上述更新控制程序和响应程序并且赋予了电子签名的更新数据发送到具备作为更新对象的ECU30的车辆1的网关10(步骤S13)。此外,在图5所示的处理步骤中,构成为参照在更新数据的请求中附加的车辆编号、ECU30的序列号和控制程序的版本号来确定作为更新对象的ECU30,但也可以构成为,在服务器装置5的存储部54中,将车辆1的车辆编号、ECU30的序列号、安装于ECU30的控制程序的版本号彼此建立关联并存储,从服务器装置5侧指定作为更新对象的ECU30。图6是示出在车辆1中执行的处理的步骤的流程图。在由网关10的无线通信部15接收到从服务器装置5发送的更新数据的情况下(步骤S21),网关10的CPU11判断与所接收到的更新数据相关的电子签名是否正当(步骤S22)。网关10能够通过预先从认证机构或各OEM取得电子证书而使用该电子证书来判断电子签名是否正当。在判断为从服务器装置5接收到的更新数据的电子签名不正当的情况下(S22:“否”),CPU11结束基于本流程图的处理。在判断为从服务器装置5接收到的更新数据的电子签名正当的情况下(S22:“是”),CPU11通过车内通信部14向作为更新对象的ECU30发送所接收到的更新数据(步骤S23)。在由ECU30的通信部34接收到从网关10发送的更新数据的情况下(步骤S24),ECU30的CPU31将所接收到的更新数据中包含的更新控制程序读入到RAM32中并执行,执行对在存储部33中存储的控制程序进行更新的处理(重编程序)(步骤S25)。在控制程序的更新中能够采用例如OSGi(OpenServicesGatewayinitiative,开放服务网关协议)的技术。OSGi是管理被称为束(bundle)的程序的动态追加和执行等的系统,构成为作为束的执行基础的OSGi框架而在CPU31中进行动作。此外,OSGi是现有技术,因此省略详细的说明。另外,CPU31也可以采用OSGi以外的技术来进行控制程序的更新。在控制程序的更新完成的情况下,ECU30的CPU31将更新数据中包含的响应程序读入到RAM32中并执行(步骤S26),使ECU30作为计算与更新控制程序相关的摘要值的单元、判定更新后的动作是否正常的单元以及将该判定结果发送到网关10的单元而发挥功能。执行了响应程序的ECU30的CPU31针对更新控制程序而计算摘要值(步骤S27)。CPU31所计算的摘要值既可以是通过已知的散列函数来求出的摘要值(散列值),也可以是通过MD5等其他算法来求出的摘要值。另外,在更新控制程序通过由多个程序构成的程序组而构成的情况下,也可以仅根据预先确定的程序来计算摘要值。也可以包括更新后的控制程序在内地计算摘要值。此外,计算摘要值的范围由响应程序规定。接下来,CPU31使ECU30的基本功能进行动作,判定本装置(ECU30自身)是否正常动作(步骤S28)。在判定为本装置正常动作的情况下(S28:“是”),CPU31通过通信部34将在步骤S27中计算出的摘要值与该判定结果一起发送到网关10(步骤S29)。另外,在本置未正常动作的情况下(S28:“否”),CPU31结束基于本流程图的处理。在由车内通信部14接收到从ECU30发送的判定结果和摘要值的情况下(步骤S30),网关10的CPU11对所接收到的摘要值进行加密(步骤S31),并通过无线通信部15将加密的摘要值发送到服务器装置5(步骤S32)。此外,在本实施方式中,构成为在ECU30中计算更新控制程序的摘要值,在判定为本装置正常动作的情况下,将计算出的摘要值发送到网关10,但在ECU30中,也可以仅执行通过更新后的控制程序来判定本装置是否正常动作并将该判定结果响应给网关10的处理。在该情况下,网关10构成为在从ECU30接收到表示正常动作的响应时,根据在步骤S21中接收到的更新数据中包含的更新控制程序来计算摘要值,对计算出的摘要值进行加密之后发送到服务器装置5即可。图7是示出验证摘要值的处理的步骤的流程图。服务器装置5的CPU51在由通信部55接收到从车辆1的网关10发送的已加密的摘要值的情况下(步骤S41),对已加密的摘要值进行解码(步骤S42)。此外,作为通过网关10对摘要值进行加密并通过服务器装置5对已加密的摘要值进行解码的方法,能够使用公开密钥加密方式等已知的方法。接下来,服务器装置5的CPU51对被解码的摘要值与在存储部54中预先存储的期望值进行比较(步骤S43),判断两者是否一致(步骤S44)。在判断为两者一致的情况下(S44:“是”),CPU51判定为在作为更新对象的ECU30中控制程序的更新正常地结束(步骤S45)。另外,在判断为两者不一致的情况下(S44:“否”),CPU51判定为ECU30中的控制程序的更新不正常(步骤S46)。也可以构成为,在ECU30中的控制程序的更新不正常的情况下,服务器装置5将在存储部54中存储的更新数据再次发送到ECU30。另外,在ECU30中的控制程序的更新不正常的情况下,有可能在ECU30中执行控制程序的发布源不希望的动作,因此也可以构成为将指示控制程序的停止的通知从服务器装置5通知到车辆1侧,使控制程序停止。进而,在ECU30中的控制程序的更新不正常的情况下,服务器装置5也可以经由网关10将表示应该回到更新前的控制程序的通知发送到ECU30,使在ECU30的存储部33中存储的更新后的控制程序回到更新前的控制程序。此外,更新前的控制程序保持在服务器装置5的存储部54、网关10的存储部13和ECU30的存储部33中的任一方即可。在ECU30接收到从服务器装置5发送的上述通知的情况下,从自身的存储部33、网关10的存储部13和服务器装置5的存储部54中的任一方取得更新前的控制程序,将更新后的控制程序重写成更新前的控制程序,从而能够返回原状。如上所述,在本申请中,能够在更新控制程序的更新数据中安装执行如下处理的计算机程序(响应程序),即计算控制程序的摘要值的处理、判定本装置是否正常动作的处理和在正常动作的情况下将摘要值发送到网关10的处理,因此与事先在ECU30内安装响应程序的情况相比,不易窜改响应程序。另外,由于能够在更新数据的发布侧制成响应程序,因此能够在每当进行更新时变更针对摘要值的期望值,能够防止窜改和电子欺骗。应该认为本次公开的实施方式在所有方面都是示例性的,而不是限制性的。本发明的范围并不通过上述内容示出而是通过权利要求书来示出,是指包括与权利要求书等同的意思和范围内的所有变更。标号说明1车辆10网关11CPU12RAM13存储部14车内通信部15无线通信部30ECU31CPU32RAM33存储部34通信部5服务器装置51CPU52ROM53RAM54存储部55通信部。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1