CN117355833A - 完整性验证装置以及完整性验证方法 - Google Patents

完整性验证装置以及完整性验证方法 Download PDF

Info

Publication number
CN117355833A
CN117355833A CN202280037248.8A CN202280037248A CN117355833A CN 117355833 A CN117355833 A CN 117355833A CN 202280037248 A CN202280037248 A CN 202280037248A CN 117355833 A CN117355833 A CN 117355833A
Authority
CN
China
Prior art keywords
verification
software
integrity
priority
vehicle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280037248.8A
Other languages
English (en)
Inventor
岸川刚
平野亮
氏家良浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of CN117355833A publication Critical patent/CN117355833A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Abstract

一种完整性验证装置,软件由与车载网络系统连接的一个以上的电子控制装置的任一个来执行,完整性验证装置具备:验证计划表决定部,决定对软件的完整性进行验证的验证定时;完整性验证部,在针对软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在验证定时的该软件的至少一部分而被算出的信息;以及验证优先级决定部,决定验证优先级,该验证优先级是对决定验证定时或决定验证范围产生影响的优先级。

Description

完整性验证装置以及完整性验证方法
技术领域
本公开涉及对软件的完整性进行验证的完整性验证装置以及完整性验证方法。
背景技术
在专利文献1公开了对软件的完整性进行验证的技术。
在专利文献2公开了根据被设定的监视计划表对软件进行验证的监视装置。
(现有技术文献)
(专利文献)
专利文献1:日本专利第5198422号公报
专利文献2:日本专利第4388292号公报
发明内容
发明要解决的课题
本公开提供一种具有能够对软件中的风险高的软件优先进行验证的可能性的完整性验证装置以及完整性验证方法,该软件是在搭载于机动车的控制网络的ECU中运行的软件。
用于解决课题的手段
本公开的一个方式所涉及的完整性验证装置是对车载网络系统中的一个以上的软件的完整性进行验证的完整性验证装置,所述一个以上的软件的每一个由与所述车载网络系统连接的一个以上的电子控制装置的任一个来执行,所述完整性验证装置具备:验证计划表决定部,决定对所述一个以上的软件的每一个的完整性进行验证的验证定时;完整性验证部,对所述一个以上的软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在所述验证定时的该软件的至少一部分而被算出的信息;以及验证优先级决定部,决定验证优先级,该验证优先级是对决定所述验证定时或决定所述验证范围产生影响的优先级。
另外,这些概括性的或具体的方式,可以由系统、方法、集成电路、计算机程序或计算机可读取的CD-ROM等非暂时性的记录介质来实现,也可以由系统、方法、集成电路、计算机程序以及非暂时性的记录介质的任意的组合来实现。
发明效果
通过本公开的一个方式所涉及的完整性验证装置等,在车载网络系统中具有能够对风险高的软件的完整性优先进行验证的可能性。
附图说明
图1是实施方式中的车载网络系统的构成图。
图2是实施方式中的网域控制器的构成图。
图3是实施方式中的安全OS部的构成图。
图4是实施方式中的ECU的构成图。
图5是示出实施方式中的验证结果的一个例子的图。
图6是示出实施方式中的完整性信息的一个例子的图。
图7是示出实施方式中的车辆状态的一个例子的图。
图8是示出实施方式中的验证优先级的一个例子的图。
图9是示出实施方式中的验证计划表的一个例子的图。
图10是示出实施方式中的车辆状态发生了变化时的安全OS部的动作序列的图。
图11是示出实施方式中的车辆状态发生了变化时的安全OS部的动作序列的图。
图12是示出实施方式中的车辆状态发生了变化时的安全OS部的动作序列的图。
图13是实施方式中的安全OS部的完整性验证处理的流程图。
图14是实施方式中的安全OS部的验证优先级的变更处理的流程图。
图15是其他变形例中的安全OS部的完整性验证时的变形的流程图。
图16是示出其他的变形例中的监视服务器的完整性验证状况的显示例子的图。
具体实施方式
近几年在搭载于机动车的系统中,包括很多被称作电子控制单元(ElectronicControl Unit,以下称为ECU)的装置。将这些ECU进行了连接的网络,被称作车载网络。随着机动车的高功能化,ECU处理的信息量也增大,搭载于机动车的ECU的数量增加且连接ECU的电线束的长度也变长,从而机动车的重量增加成为问题。
在这样的状况下,曾经尝试过通过整合ECU的功能来减少ECU的数量。被整合的ECU被称作网域控制器,在搭载高功能的CPU(Central Processing Unit:中央处理器)的1台硬件上,实现多个被虚拟化的ECU的功能(软件)。
ECU功能的虚拟化由虚拟机监控器来实现,由在虚拟机监控器上实现各个功能的虚拟机(VM:Virtual Machine)来运行。虚拟机按照实现的功能的不同,则操作系统、安全性级别、功能安全级别等也不同。因此存在如下的安全性风险,在最脆弱的虚拟机被侵害时,在网域控制器上运行的其他的虚拟机也受到影响等。
针对这样的状况,公开了例如专利文献1那样对运行的软件的完整性进行验证的技术。
但是,可以考虑在机动车的ECU中也实施各虚拟机的完整性的验证。
然而在被整合的ECU的环境中,对所有虚拟机的完整性同时进行验证,会导致验证时间的增加,这对要求实时性的系统而言并非是优选的。此外,在专利文献2中公开了根据被设定的监视计划表来验证软件的监视装置。
然而,在网域控制器那样的多个虚拟机运行的装置中,根据机动车的状况,风险高的虚拟机有可能发生变化,因此在预先计划的验证中,不能够对风险高的虚拟机以恰当的定时来验证完整性。换言之,本发明人员在现有技术中发现存在如下的课题,即在车载网络系统中的1个以上的软件中,对风险高的软件的至少一部分的完整性优先进行验证是困难的。
本公开的一个方式所涉及的完整性验证装置,对车载网络系统中的一个以上的软件的完整性进行验证,所述一个以上的软件的每一个由与所述车载网络系统连接的一个以上的电子控制装置的任一个来执行,所述完整性验证装置具备:验证计划表决定部,决定对所述一个以上的软件的每一个的完整性进行验证的验证定时;完整性验证部,对所述一个以上的软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在所述验证定时的该软件的至少一部分而被算出的信息;以及验证优先级决定部,决定验证优先级,该验证优先级是对决定所述验证定时或决定所述验证范围产生影响的优先级。
据此,基于按照验证优先级而被决定的验证定时或验证范围,能够对被适应性地决定的验证对象的软件的至少一部分的完整性进行验证。换言之,具有能够对风险高的软件的至少一部分的完整性优先进行验证的可能性。因此,即便使风险小的软件的完整性的验证的频度减少或使验证范围缩小,也能够抑制对1个以上的软件的完整性的验证的效果减少。从而,在要求实时性的系统中,能够减少对软件的完整性进行验证时所需要的处理负荷。
此外也可以是,所述验证计划表决定部以所述一个以上的软件中的一个软件的所述验证优先级越高则所述一个软件的验证频度就越高的方式,来决定所述一个软件的验证定时。
据此,能够在优先级越高时就以越高的频度来验证软件的完整性,对提高安全性有效果。
此外也可以是,所述完整性验证部以所述一个以上的软件中的一个软件的所述验证优先级越高则所述一个软件的验证范围就越大的方式,来决定所述一个软件的验证范围。
据此,能够在优先级越高时就在越大的验证范围中验证软件的完整性,对提高安全性有效果。
此外也可以是,所述验证优先级决定部按照搭载所述车载网络系统的车辆的车辆状态,来变更所述软件的验证优先级。
据此,能够针对功能或风险按照车辆状态而变化的软件,适应性地决定验证优先级,对高效地进行验证有效果。
此外也可以是,所述车辆状态包括停车中、行驶中、自动驾驶中、诊断模式中、充电中、更新中、有车外网络通信、无车外网络通信的至少其中一个。
据此,能够针对软件的功能或风险发生变化的车辆状态适应性地决定验证优先级,对高效地进行验证有效果。
此外也可以是,所述验证优先级决定部按照所述车辆状态来变更软件的所述验证优先级,所述软件是处理内容按照所述车辆状态而变化的软件。
据此,例如能够针对功能或风险按照车辆状态而变化的软件,变更验证优先级,对高效地进行完整性验证有效果。
此外也可以是,所述一个以上的软件是在所述电子控制装置上执行的软件整体、在所述电子控制装置上执行的成为虚拟化基础的虚拟机监控器、操作系统、虚拟机、应用、进程、文件中的任一个。
据此,能够对成为验证对象的软件详细地进行分类,对高效地进行完整性验证有效果。
此外也可以是,所述一个以上的软件包括多个软件,该多个软件的每一个实现多个虚拟机的每一个。
据此,能够针对实现多个虚拟机的多个软件,变更验证优先级,对高效地进行完整性验证有效果。
此外也可以是,所述完整性验证装置还具备:异常监视部,检测异常状态,该异常状态示出与所述一个以上的软件有关的通信异常、存储器利用量异常以及处理器利用量异常的至少其中一个异常,所述存储器以及所述处理器是由所述一个以上的电子控制装置所具备的,所述验证优先级决定部,将与所述一个以上的软件中被检测到所述异常状态的软件对应的所述验证优先级变更为更高。
据此,能够按照车载网络系统中的异常状态来变更软件的完整性验证的优先级,对在风险高的状况下提高安全性有效果。
此外,本公开的一个方式所涉及的完整性验证方法,是对车载网络系统中的一个以上的软件的完整性进行验证的方法,所述一个以上的软件的每一个,由与所述车载网络系统连接的一个以上的电子控制装置的任一个来执行,在所述完整性验证方法中,决定对所述一个以上的软件的每一个的完整性进行验证的验证定时,对所述一个以上的软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在所述验证定时的该软件的至少一部分而被算出的信息,决定验证优先级,该验证优先级是对决定所述验证定时或决定所述验证范围产生影响的优先级。
据此,基于按照验证优先级而被决定的验证定时或验证范围,能够对被适应性地决定的验证对象的软件的至少一部分的完整性进行验证。换言之,具有能够对风险高的软件的至少一部分的完整性优先进行验证的可能性。因此,即便使风险小的软件的完整性的验证的频度减少或使验证范围缩小,也能够抑制对1个以上的软件的完整性的验证的效果减少。从而,在要求实时性的系统中,能够减少对软件的完整性进行验证时所需要的处理负荷。
以下参照附图,对本公开的实施方式所涉及的软件完整性验证装置(完整性验证装置)进行说明。另外,以下说明的实施方式都是示本公开的优选的一个具体例子。即以下的实施方式所示的数值、形状、材料、构成要素、构成要素的配置位置以及连接形态、步骤、步骤的顺序等均为本公开的一个例子,其主旨并非是对本公开进行限定。本公开根据技术方案的记载而被确定。因此,对于以下的实施方式的构成要素中没有记载在本公开的最上位概念的独立技术方案的构成要素,并不是达成本公开而必需的构成要素,它作为优选的构成要素来说明。
(实施方式)
以下对搭载了系统(车载网络系统)的车辆中的软件完整性验证装置(完整性验证装置)进行说明,上述的系统是多个电子控制单元(ECU:Electronic Control Unit)经由车载网络进行通信的系统。
[1.1车载网络系统的构成]
图1是本实施方式中的车载网络系统的构成图。车载网络系统被搭载在车辆10。车载网络系统是控制网络系统的一个例子。
如图1所示,车载网络系统具备:网域控制器100a、网域控制器100b、ECU200a、ECU200b、ECU200c、以及ECU200d。
网域控制器100a和网域控制器100b分别是对ECU进行了整合的控制器,该ECU是对被称为网域的功能单位进行控制的ECU。作为具体例子,在座舱域控制器中整合了车内的信息娱乐系统、外部网络连接、平视显示器控制、环绕视图显示器控制等多个功能。网域控制器100a和网域控制器100b各自具有多个ECU的功能。
网域控制器100a和网域控制器100b例如是包括数字电路、模拟电路、以及通信电路等的装置,该数字电路包含处理器(微处理机)以及存储器等。存储器包括ROM(Read OnlyMemory:只读存储器)以及RAM(Random Access Memory:随机存取存储器),并且能够存储由处理器执行的控制程序(计算机程序)。
网域控制器100a和网域控制器100b的各功能通过虚拟机监控器上的独立的虚拟机来实现。网域控制器100a和网域控制器100b拥有完整性验证功能,该完整性验证功能是对在各虚拟机执行的控制程序的完整性进行验证的功能。网域控制器100a和网域控制器100b是对车载网络中的1个以上的软件的完整性进行验证的完整性验证装置的一个例子。并且,控制程序是软件的一个例子。另外,软件的完整性的验证有时称为完整性验证。
此外,网域控制器100a和网域控制器100b经由车载网络与ECU200a、ECU200b、ECU200c、ECU200d或未图示的其他的网域控制器连接,并进行通信。作为车载网络,可以采用Controller Area Network(控制器局域网,CAN(注册商标))或FlexRay(注册商标)、Ethernet(注册商标)。虽然在图1进行了省略,但是在车载网络中可以包括更多的网域控制器。
ECU200a、ECU200b、ECU200c、以及ECU200d,经由车载网络与网域控制器100a或网域控制器100b连接,与网域控制器100a或网域控制器100b之间进行控制指示、传感器数据等通信,从而实现对车辆10的控制。虽然在图1中进行了省略,但是在车载网络中可以包括更多的ECU。
ECU200a、ECU200b、ECU200c、以及ECU200d与未图示的传感器、执行器等连接,进行由传感器检测到的传感器信息的获得、以及执行器的控制等。
ECU200a、ECU200b、ECU200c以及ECU200d例如是包括数字电路、模拟电路、通信电路等的装置,该数字电路包含处理器(微处理机)以及存储器等。存储器包括ROM以及RAM,并且能够存储由处理器执行的控制程序(计算机程序)。另外,控制程序是软件的一个例子。
例如处理器按照控制程序来运行,从而ECU200a、ECU200b、ECU200c、ECU200d实现各种功能。计算机程序是为了实现规定的功能,将多个针对执行器的命令代码进行组合而构成的。
如上所述,车载网络系统中的1个以上的软件的每一个,由与车载网络连接的网域控制器100a、网域控制器100b、ECU200a、ECU200b、ECU200c、以及ECU200d的任一个来执行。
[1.2网域控制器100a的构成]
图2是本实施方式中的网域控制器100a的构成图。另外,网域控制器100b也具有同样的构成,因此省略说明。
如图2所示,网域控制器100a具备:通信部101、安全OS(Operating System:操作系统)部102、虚拟机监控器部103、信息处理VM(Virtual Machine:虚拟机)部104a、车辆控制VM部104b、以及车外通信VM部104c。另外,在网域控制器100b中虽然VM部的功能或数量有可能不同,但是同样运行多个VM部。另外,网域控制器100a具备的多个VM部例如是信息处理VM(Virtual Machine)部104a、车辆控制VM部104b、以及车外通信VM部104c。
通信部101是与被连接在车载网络的设备之间进行通信的通信接口。通信部101具体而言是与其他的网域控制器或ECU之间进行通信。通信部101从虚拟机监控器部103或安全OS部102接收消息,将接收的消息发送给车载网络。并且,通信部101将从车载网络接收的消息发送给虚拟机监控器部103或安全OS部102。
安全OS部102是独立于虚拟机监控器部103而运行的安全性级别高的处理部。例如由于设置了只有安全OS部102才能访问的安全的存储空间,因此从在虚拟机监控器部103上的虚拟机运行的软件来侵害安全OS部102是比较困难的。安全OS部102拥有对在虚拟机监控器部103上的虚拟机运行的软件的正当性进行验证的功能。例如,安全OS部102拥有对在虚拟机监控器部103上的虚拟机运行的软件的完整性进行验证的功能、以及对该虚拟机的运行的异常状态进行检测的功能。
虚拟机监控器部103执行程序,该程序实现用于使虚拟机运行的虚拟化。虚拟机监控器部103使由信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c来实现的多个虚拟机运行。此外,虚拟机监控器部103对各VM部之间或通信部101的通信进行中介。另外,实现用于使虚拟机运行的虚拟化的程序是软件的一个例子。
信息处理VM部104a是与信息娱乐相关的软件运行的虚拟机。关于信息处理,作为一个例子是进行导航系统的显示器显示等。
车辆控制VM部104b是与车辆控制有关的软件运行的虚拟机。关于车辆控制,作为一个例子是为了空调的设定温度的操作、门锁的控制、座椅的控制、以及电动车窗的控制等而进行的车体类的控制信号的发送。
车外通信VM部104c是与车外进行通信的软件运行的虚拟机。关于车外的通信,作为一个例子是进行与智能手机之间的通信、车车通信、OTA(Over-The-Air:空中)服务器之间的通信、以及向互联网的通信等。
另外,信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c各自不是必需的构成,也可以是实现其他功能的虚拟机。换言之,网域控制器100a可以具有将信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c的至少其中一个与实现其他的功能的虚拟机进行了调换的1个以上的虚拟机,也可以是网域控制器100a具有信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c之外还添加了实现其他的功能的虚拟机的1个以上的虚拟机,也可以是网域控制器100a具有除去了信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c的一部分的1个以上的虚拟机。
[1.3安全OS部的构成]
图3是本实施方式中的网域控制器100a的安全OS部102的构成图。
如图3所示,安全OS部102具备:通信部1021、通信异常监视部1022、验证优先级决定部1023、完整性验证部1024、验证结果保持部1025、完整性信息保持部1026、车辆状态保持部1027、验证优先级保持部1028、以及验证计划表保持部1029。
通信部1021是与通信部101之间收发消息的通信接口。并且,通信部1021是与虚拟机监控器部103、信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c之间收发消息的通信接口。并且,通信部1021在接收了示出车辆状态的变化的消息的情况下,将存放在车辆状态保持部1027的与该消息对应的车辆状态进行更新,向验证优先级决定部1023通知存放在车辆状态保持部1027的车辆状态已被更新。
通信异常监视部1022对由通信部1021收发的消息进行监视,对是否发生了异常的通信进行检测。具体而言通信异常监视部1022拥有对规定间隔中的各虚拟机的消息的通信量进行了规定的规则。通信异常监视部1022在被观测的通信量与拥有的规则相差规定的阈值以上的情况下,检测到对应的虚拟机发生了通信异常。通信异常监视部1022在检测到虚拟机发生了通信异常时,对存放在车辆状态保持部1027的车辆状态进行更新,并且向验证优先级决定部1023通知存放在车辆状态保持部1027的车辆状态已被更新。
验证优先级决定部1023基于存放在车辆状态保持部1027中的车辆状态,决定用于各虚拟机的完整性验证的验证优先级,对存放在验证优先级保持部1028的验证优先级进行更新。验证优先级例如被设定为“高”、“中”、以及“低”这三个等级。以验证优先级越高则完整性验证的频度就越高的方式来决定验证定时。换言之,验证优先级是对决定完整性验证的验证定时产生影响的指标。
完整性验证部1024基于被存放在完整性信息保持部1026的各虚拟机的完整性信息,对虚拟机的完整性进行验证。完整性验证部1024在完整性的验证定时,参照执行成为对象的虚拟机的软件的存储空间,通过散列函数算法来计算散列值。而且,完整性验证部1024对计算出的散列值是否与作为完整性信息而存放在完整性信息保持部1026的与该软件对应的虚拟机的散列值一致进行确认。完整性验证部1024在散列值一致的情况下,判断为成为对象的虚拟机的软件没有被窜改。完整性验证部1024在散列值不一致的情况下,判断为成为对象的虚拟机的软件已被窜改。
在此,被存放在完整性信息保持部1026的各虚拟机的完整性信息是用于保证软件的完整性的第一完整性信息的一个例子。第一完整性信息是针对没有被窜改的每一个软件或软件的每一部分,通过散列函数算法而预先计算出的散列值。例如,第一完整性信息可以在软件被生成的时刻,针对该软件的全部或一部分通过散列函数算法来算出,也可以在软件最初被启动时针对该软件的全部或一部分通过散列函数算法来算出。
此外,在完整性的验证定时,根据参照了执行成为对象的虚拟机的软件的存储空间的数据,通过散列函数算法来计算出的散列值是第二完整性信息的一个例子。另外,为了算出第一完整性信息而使用的散列函数算法,与为了算出第二完整性信息而使用的散列函数算法彼此相同。
这样,完整性验证部1024对第一完整性信息与第二完整性信息是否一致进行判断,该第一完整性信息是用于保证验证对象的软件的完整性的信息,并且是与相当于该验证范围的该软件的至少一部分对应的信息,该第二完整性信息是根据在验证定时的该软件的一部分而被算出的信息。完整性验证部1024在第一完整性信息与第二完整性信息一致的情况下,判断为该软件的完整性得到满足。
完整性验证部1024与验证时刻一起更新完整性验证结果,该完整性验证结果是按每一个整个软件或软件的每一部分而被验证的完整性验证结果,并且是将存放在验证结果保持部1025中的每一个整个软件或软件的每一部分的完整性验证结果。并且,完整性验证部1024基于存放在验证计划表保持部1029的计划表来决定在哪个定时,对哪个虚拟机的完整性进行验证。具体而言,完整性验证部1024判断现在时刻是否符合存放在验证计划表保持部1029的1个以上的计划表中的任一个,在有符合的计划表的情况下,对与该计划表建立了对应的虚拟机的完整性进行验证。
此外,完整性验证部1024基于存放在验证优先级保持部1028的各虚拟机的验证优先级,来决定对多个虚拟机各自的完整性进行验证的验证定时。并且,完整性验证部1024在存放在验证优先级保持部1028的虚拟机的验证优先级发生了变化的情况下,基于变化后的验证优先级,来决定与变化后的验证优先级对应的虚拟机的验证计划表。而且,完整性验证部1024以被决定的验证计划表,对存放在验证计划表保持部1029中的所对应的虚拟机的验证计划表进行更新。完整性验证部1024是实现验证计划表决定部的功能的处理部的一个例子。
验证结果保持部1025保持由完整性验证部1024进行了验证的结果。
在完整性信息保持部1026中存放有各虚拟机的完整性信息。完整性信息是执行各虚拟机的软件的存储空间的值的散列值。
在车辆状态保持部1027中存放有示出车辆的状态的值。车辆的状态可以包括例如与车外网络的连接状况、车辆的行驶状态、异常的通信的发生状况等。
在验证优先级保持部1028中存放有各虚拟机的完整性的验证优先级。
在验证计划表保持部1029中存放有验证计划表,该验证计划表包括完整性验证部1024进行完整性的验证的对象的多个虚拟机、以及与各虚拟机对应的验证定时。验证计划表是针对多个虚拟机的每一个,将识别该虚拟机的信息与该虚拟机的验证定时建立了对应的信息。
[1.4ECU的构成]
图4是本实施方式中的ECU200a的构成图。另外,由于ECU200b、ECU200c、以及ECU200d也是同样的构成,因此省略对这些的说明。
如图4所示,ECU200a具有通信部201和应用部202。
通信部201是与被连接在车载网络的设备之间进行通信的通信接口。通信部201具体而言与网域控制器100a、网域控制器100b以及其他的ECU之间进行通信。通信部201与车载网络进行通信连接,与车载网络之间收发消息。
在应用部202中运行实现ECU的功能的软件。应用部202例如执行按照从通信部201被通知的消息的控制。并且,应用部202为了将由被连接于ECU的传感器检测到的传感器信息通知给其他的ECU,将包括该传感器信息的消息发送给其他的ECU。
[1.5验证结果的一个例子]
图5是示出本实施方式中的完整性验证的验证信息的一个例子的图。完整性验证的验证结果被存放在验证结果保持部1025。在图5中示出了1个行与针对1个虚拟机的验证结果相对应,按每个虚拟机(验证对象)保持验证结果和最终验证时刻的例子。
验证对象示出了实现成为完整性验证的对象的虚拟机的软件。在图5中作为验证对象的虚拟机,以符号来示出了信息处理VM部104a、车辆控制VM部104b、以及车外通信VM部104c。
验证结果示出了完整性验证成功或者失败。在图5中当完整性验证成功的情况下示出“OK”,完整性验证失败的情况下示出“NG”。
最终验证时刻记载了针对验证对象的完整性验证中的最终(换言之最新)的完整性验证被进行的时刻。时刻可以以秒为单位的时刻来表示,也可以以其他的时间间隔为单位的时刻来表示。换言之,图5的1个行示出了最终的完整性验证的验证结果。另外,完整性验证的验证结果,不仅包括最终的验证结果,而且可以包括所有验证结果的履历,也可以包括最近的规定期间中进行的验证结果的履历。
第1行的虚拟机(信息处理VM部104a)的验证结果示出了验证结果为“OK”换言之完整性验证成功,以及最终验证时刻为“100(秒)”。
第2行的虚拟机(车辆控制VM部104b)的验证结果示出了验证结果为“OK”,以及最终验证时刻为“102(秒)”。
第3行的虚拟机(车外通信VM部104c)的验证结果示出了验证结果为“OK”,以及最终验证时刻为“103(秒)”。
[1.6完整性信息的一个例子]
图6是本实施方式中的完整性信息的一个例子。完整性信息被存放在完整性信息保持部1026中。在图6中示出了按照成为验证对象的每个虚拟机来保持散列值的例子,散列值是完整性信息的一个例子。
验证对象与图5相同。
散列值是用于保证软件的完整性的第一完整性信息的一个例子,该软件是实现验证对象的虚拟机的软件。
图6示出了针对第1行的虚拟机(信息处理VM部104a)的散列值是“XXXXXXXX”。
并且示出了针对第2行的虚拟机(车辆控制VM部104b)的散列值是“YYYYYYYY”。
并且示出了针对第3行的虚拟机(车外通信VM部104c)的散列值是“ZZZZZZZZ”。
[1.7车辆状态的一个例子]
图7是本实施方式中的车辆状态的一个例子。车辆状态被存放在车辆状态保持部1027中。在图7的例子中,车辆状态包括车辆的行驶状态、外部网络连接、以及通信异常的状态。
在车辆的行驶状态中保持有示出车辆10的行驶的状态值。车辆的行驶状态例如可以是停车中、行驶中、自动驾驶行驶中等的状态。在图7中示出了行驶状态为“停车中”的情况。
在外部NW连接中保持有外部NW连接状态,该外部NW连接状态示出是否与车外的网络例如互联网等连接的状态。在图7中示出了外部NW连接的状态为“有”,换言之车辆10与车外的网络连接。并且,车辆10没有与车外的网络连接时,表示为“无”。另外,外部NW连接的状态不仅可以示出为“有”和“无”这二值,也可以示出连接目的地的种类或连接目的地的地址。连接目的地的种类例如可以是互联网或车联网、专用服务器。
在通信异常中保持有由通信异常监视部1022检测到的通信异常的结果。作为通信异常可以包括检测区域例如成为消息的发送源的虚拟机的信息。在图7中示出了通信异常的状态为“无”,这表示没有发生通信异常。
[1.8验证优先级的一个例子]
图8是本实施方式中的验证优先级的一个例子。验证优先级存放在验证优先级保持部1028。在图8中示出了按照成为验证对象的每个虚拟机来保持验证优先级的例子。
验证对象与图5相同。
验证优先级示出进行完整性验证的优先级。以验证优先级越高的验证对象就越即时或越高频度地进行完整性验证的方式来决定验证计划表。例如,在验证优先级为“高”时以10秒为间隔来进行完整性验证,在验证优先级为“中”时以30秒为间隔来进行完整性验证,在验证优先级为“低”时以60秒为间隔来进行完整性验证。
图8示出了第1行的虚拟机(信息处理VM部104a)的验证优先级为“低”。
并且示出了第2行的虚拟机(车辆控制VM部104b)的验证优先级为“中”。
并且示出了最后一行的虚拟机(车外通信VM部104c)的验证优先级为“高”。
[1.9验证计划表的一个例子]
图9是本实施方式中的验证计划表的一个例子。验证计划表被存放在验证计划表保持部1029。在图9中示出了按照成为验证对象的每个虚拟机,保持有下一次验证定时即验证时刻的例子。换言之,验证计划表以如下方式而被决定,按照成为验证对象的每个虚拟机,针对该虚拟机上一次进行了完整性验证的时刻加上与验证优先级对应的验证频度的时间间隔,从而决定验证计划表。
图9示出了第1行的虚拟机(信息处理VM部104a)的下一次的完整性验证时刻是“160(秒)”。
并且示出了第2行的虚拟机(车辆控制VM部104b)的下一次的完整性验证时刻是“130”。
并且示出了第3行的虚拟机(车外通信VM部104c)的下一次的完整性验证时刻是“110”。
另外,可以在上一次的完整性验证结束的时刻决定完整性验证时刻,也可以在优先级被变更的时刻决定完整性验证时刻。并且,完整性验证时刻可以针对1个虚拟机(软件)设定多次的时刻。在这种情况下,在优先级被变更的时刻,可以将下次以后的完整性验证时刻进行更新。
[1.10安全OS部的动作序列1]
图10是本实施方式中的安全OS部102的外部NW连接发生了变化时的动作序列。
车外通信VM部104c将外部NW连接为“无”的情况通知给安全OS部102(S100)。
安全OS部102根据存放在验证计划表保持部1029的验证计划表,以车辆控制VM部104b、信息处理VM部104a、车辆控制VM部104b、车外通信VM部104c的顺序进行完整性验证(S101、S102、S103、S104)。
车外通信VM部104c将外部NW连接从“无”变为“有”的情况通知给安全OS部102(S105)。
安全OS部102随着外部NW连接发生了变化,将车外通信VM部104c的完整性验证的验证优先级变更为“高”(S106)。安全OS部102在变更了验证优先级时,决定与验证优先级对应的验证频度,根据所决定的验证频度,决定车外通信VM部104c的验证计划表。安全OS部102以所决定的验证计划表,来更新车外通信VM部104c的验证计划表。
安全OS部102根据更新后的验证计划表,以车外通信VM部104c、车辆控制VM部104b、信息处理VM部104a、车外通信VM部104c的顺序来进行完整性验证(S107、S108、S109、S110)。这样与车外通信VM部104c的验证优先级变为“高”相应地以高频度执行完整性验证的方式来变更验证计划表,因此与外部NW连接为“无”时相比,能够以高频度执行车外通信VM部104c的完整性验证。
[1.11安全OS部的动作序列2]
图11是本实施方式中的安全OS部102的车辆状态的行驶状态发生了变化时的动作序列。
车辆控制VM部104b将车辆状态的行驶状态为“停车中”的情况通知给安全OS部102(S200)。
安全OS部102根据存放在验证计划表保持部1029的验证计划表,以信息处理VM部104a、车外通信VM部104c的顺序进行完整性验证(S201,S202)。
车辆控制VM部104b将车辆状态的行驶状态变为“自动驾驶行驶中”的情况通知给安全OS部102(S203)。
安全OS部102随着车辆状态的行驶状态发生了变化,将车辆控制VM部104b的完整性验证的验证优先级变更为“高”(S204)。安全OS部102在变更了验证优先级时,决定与验证优先级对应的验证频度,根据所决定的验证频度,决定车辆控制VM部104b的验证计划表。安全OS部102以所决定的验证计划表,来更新车辆控制VM部104b的验证计划表。
安全OS部102根据更新后的验证计划表,即时执行车辆控制VM部104b的完整性验证(S205)。
[1.12安全OS部的动作序列3]
图12是本实施方式中的安全OS部102的车辆状态的通信异常发生了变化时的动作序列。
安全OS部102根据存放在验证计划表保持部1029的验证计划表,以车辆控制VM部104b、信息处理VM部104a、车外通信VM部104c的顺序进行完整性验证(S300、S301、S302)。
信息处理VM部104a与其他的虚拟机进行通信(S303)。
安全OS部102对信息处理VM部104a的通信进行观测,对发生了异常的通信进行检测(S304)。
安全OS部102随着检测到异常的通信,将对应的信息处理VM部104a的完整性验证的验证优先级变更为“高”(S305)。安全OS部102在变更了验证优先级时,决定与验证优先级对应的验证频度,根据所决定的验证频度,决定信息处理VM部104a的验证计划表。安全OS部102以所决定的验证计划表,对信息处理VM部104a的验证计划表进行更新。
安全OS部102根据更新后的验证计划表,即时执行信息处理VM部104a的完整性验证(S306)。
[1.13安全OS部的处理流程图]
图13是示出安全OS部102进行的处理的一个例子的流程图。
安全OS部102参照存放在验证计划表保持部1029的验证计划表,对成为完整性验证的对象的虚拟机的有无进行确认(S400)。具体而言,安全OS部102判断是否存在具有在现在时刻执行完整性验证的验证计划表的验证对象的虚拟机。安全OS部102在完整性验证的验证对象的虚拟机存在的情况下(S400中的“是”)执行步骤S401,在不存在的情况下(S400中的“否”)执行步骤S405。
安全OS部102参照验证对象的虚拟机被执行的存储器,针对包括在存储器中的数据值适用散列函数算法,从而算出散列值(S401)。
安全OS部102对在步骤S401算出的散列值与保持在完整性信息保持部1026的验证对象的虚拟机的完整性信息是否一致进行判断,从而进行完整性验证(S402)。在散列值与完整性信息一致的情况下,换言之验证成功的情况下(S402中的“是”),对存放在验证结果保持部1025的验证结果与存放在验证计划表保持部1029的完整性的验证计划表进行更新(S403),并结束处理。安全OS部102在完整性验证失败的情况下(S402中的“否”),将验证对象的虚拟机重新启动(S404),并结束处理。
安全OS部102对保持在车辆状态保持部1027的车辆状态是否有变更进行判断(S405)。安全OS部102在有变更的情况下(S405中的“是”),执行步骤S406。安全OS部102在没有变更的情况下(S405中的“否”),结束处理。
安全OS部102按照车辆状态的变化,对成为对象的虚拟机的完整性验证的验证优先级进行变更(S406)。另外,关于验证优先级的变更方法的细节处理,利用图14进行详细说明。
安全OS部102随着验证优先级的变化,来更新存放在验证计划表保持部1029的完整性验证的验证计划表(S407),并结束处理。
[1.14安全OS部的验证优先级变更流程图]
图14是安全OS部102的完整性验证的验证优先级的变更处理的流程图。完整性验证的验证优先级的变更处理是图13的步骤S406的细节处理的流程图。
安全OS部102对存放在车辆状态保持部1027的车辆状态中,发生了变化的是否为行驶状态进行判断(S500)。换言之,安全OS部102对行驶状态是否发生了变化进行判断。安全OS部102在车辆状态的变化是行驶状态的情况下(S500中的“是”),执行步骤S501。安全OS部102在车辆状态的变化不是行驶状态的情况下(S500中的“否”),执行步骤S505。
安全OS部102在行驶状态发生了变化的情况下(S500中的“是”),执行与行驶状态对应的处理(S501)。安全OS部102在行驶状态从其他的状态变为“停车中”的情况下(S501中的“停车中”、车辆控制VM部104b的完整性验证的验证优先级设定为“低”,将验证优先级保持部1028的验证优先级更新为“低”(S502)。安全OS部102在行驶状态从其他的状态变为“行驶中”的情况下(S501中的“行驶中”)、车辆控制VM部104b的完整性验证的验证优先级设定为“中”,将验证优先级更新为“中”(S503)。安全OS部102在行驶状态从其他的状态变为“自动驾驶中”的情况下(S501中的“自动驾驶中”),车辆控制VM部104b的完整性验证的验证优先级设定为“高”,将验证优先级更新为“高”(S504)。安全OS部102在更新了优先级之后结束处理。
安全OS部102在车辆状态中发生了变化的并不是行驶状态的变化的情况下(S500中的“否”),判断车辆状态中发生了变化的是否为外部NW连接状态(S505)。安全OS部102在车辆状态的变化是外部NW连接状态的情况下(S505中的“是”),执行步骤S506,在不是外部NW连接状态的情况下(S505中的“否”),执行步骤S509。
安全OS部102对外部NW连接状态是否从“无”变为“有”进行确认(S506)。安全OS部102在外部NW连接状态变为“有”的情况下(S506中的“是”),将车外通信VM部104c的完整性验证的验证优先级设定为“高”(S507),将验证优先级更新为“高”,并结束处理。安全OS部102在外部NW连接状态从“有”变为“无”的情况下(S506中的“否”),将车外通信VM部104c的完整性验证的验证优先级设定为“低”(S508),将验证优先级更新为“低”,并结束处理。
安全OS部102在车辆状态中发生了变化的并不是外部NW连接状态的情况下(S505中的“否”),判断车辆状态中发生了变化的是否为通信异常(S509)。安全OS部102在车辆状态的变化是通信异常的情况下(S509中的“是”),将与被检测到的通信异常的内容对应的虚拟机的验证优先级设定为“高”(S510),将该虚拟机的验证优先级更新为“高”,并结束处理。安全OS部102在车辆状态的变化不是通信异常的情况下(S509中的“否”),处理结束。
[1.15实施方式的效果]
本实施方式所涉及的网域控制器100a是对车载网络系统中的虚拟机的软件的完整性进行验证的完整性验证装置的一个例子。与多个虚拟机对应的多个软件的每一个,由与车载网络系统连接的网域控制器100a来执行。网域控制器100a决定对多个软件的每一个的完整性进行验证的验证定时。网域控制器100a对多个软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件对应的信息,所述第二完整性信息是根据在验证定时的该软件而被算出的信息。网域控制器100a决定验证优先级,该验证优先级是对决定验证定时产生影响的优先级。
据此,基于按照验证优先级而被决定的验证定时,能够对被适应性地决定的验证对象的软件的完整性进行验证。换言之,具有能够对风险高的软件的完整性优先进行验证的可能性。因此,即便减少风险小的软件的完整性的验证的频度,也能够抑制多个软件的完整性的验证的效果减少。从而,在要求实时性的系统中,能够减少对软件的完整性进行验证时所需要的处理负荷。
此外,网域控制器100a以多个软件中的一个软件的验证优先级越高则一个软件的验证频度就越高的方式,来决定一个软件的验证定时。据此,能够在优先级越高时就以越高的频度来验证软件的完整性,对提高安全性有效果。
进而,网域控制器100a根据虚拟机的验证优先级来更新该虚拟机的验证计划表。据此,网域控制器100a对风险高的虚拟机分配高的验证优先级,从而能够以高频度来验证虚拟机的完整性。
此外,网域控制器100a按照搭载车载网络系统的车辆状态,来更新软件的验证优先级。据此,能够与按照车辆状态而变化的虚拟机的风险对应地决定验证优先级,能够适应性地验证虚拟机的完整性。
此外,车辆状态包括停车中、行驶中、自动驾驶中、诊断模式中、充电中、更新中、有车外网络通信、无车外网络通信的至少其中一个。据此,能够针对软件的功能或风险发生变化的车辆状态,适应性地决定优先级,对高效地进行验证有效果。
此外,网域控制器100a按照车辆状态来变更软件的验证优先级,该软件是处理内容按照车辆状态而变化的软件。据此,例如能够针对功能或风险按照车辆状态而变化的软件变更验证优先级,对高效地进行完整性验证有效果。
此外,多个软件包括各自实现多个虚拟机的多个软件。据此,能够对实现多个虚拟机的多个软件变更验证优先级,对高效地进行完整性验证有效果。
此外,网域控制器100a还检测异常状态,该异常状态示出与多个软件有关的通信异常、网域控制器100a具有的存储器以及处理器利用量异常的至少其中一个异常。网域控制器100a将与多个软件中被检测到异常状态的软件对应的验证优先级变更为更高。据此,按照车载网络系统中的异常状态来变更软件的完整性验证的优先级成为可能,对在风险高的状况下提高安全性有效果。
这样,本实施方式所涉及的网域控制器100a,在车载网络系统中,针对功能或安全性级别(风险)不同的虚拟机,通过按照车辆状态来变更验证优先级从而能够适应性地验证完整性。
[其他变形例]
另外,以上基于上述的各实施方式对本公开进行了说明,但是本公开当然不限定于上述的各实施方式。以下的情况也包括在本公开中。
(1)在上述实施方式中,没有特别限定车载网络的物理层或数据链路层,但是也可以使用Ethernet(注册商标),也可以不限定于此,也可以是CAN(注册商标)、CAN-FD(Flexible-Datarate:灵活数据速率)、Ethernet、以及LIN、FlexRay(注册商标)中的任一个,也可以是组合了这些车载网络的物理层或数据链路层的多个具体例子的构成。
(2)在上述实施方式中,完整性的验证优先级决定部1023存在于网域控制器100a内的安全OS部102,但是验证优先级决定部1023也可以不存在于安全OS部102中。并且,验证优先级决定部1023可以存在于网域控制器100a的外部,将验证优先级向网域控制器100a经由网络来进行通知。从而,验证优先级能够通过外部通信而被设定,能够更加灵活地决定验证优先级。
(3)在上述实施方式中,示出了验证优先级为“高”、“中”、以及“低”这三个等级的例子,但是验证优先级的表现方法并不限于此。验证优先级例如可以由数值来表示,也可以由数值的大小关系来表示优先关系。从而,能够细致地表现验证优先级,能够更加灵活地实现完整性的验证处理。
(4)在上述实施方式中,完整性信息保持部1026作为完整性信息保持有包括在虚拟机的执行存储器中的值的散列值,但是完整性信息不限于此。完整性信息保持部1026可以是例如以虚拟机上的应用或配置文件的单位来保持散列值,也可以保持根据应用或配置文件的一部分的值而被算出的散列值。换言之,成为完整性验证的验证对象的软件,可以不是实现1个功能的软件单位,也可以是该软件的一部分。从而能够限定进行完整性验证的对象,能够使验证时间缩短,起到良好的效果。
(5)在上述实施方式中,虽然对用于算出完整性信息的散列函数算法没有进行限定,但是作为散列函数算法,可以使用例如SHA(Secure Hash Algorithm:安全散列算法)-1或SHA-2、SHA-3,也可以使用其他密码学上的散列函数或附带密钥的散列函数。
(6)在上述实施方式中,被存放在完整性信息保持部1026中的完整性信息,可以存放在难以被篡改的存储区域。并且完整性信息的更新,可以由具有特别的权限的功能(或者具有特别的权限的虚拟机或ECU等)来实施。并且可以是完整性信息通过数字签名来保护完整性,在启动时通过数字签名的验证来验证完整性信息的完整性。从而能够防止通过窜改完整性信息而躲过不正当软件被检测到的情况。
(7)在上述实施方式中,虽然通信异常监视部1022存在于安全OS部102中,但是也可以不存在于安全OS部102或网域控制器100a内,也可以存在于网域控制器的外部。在这种情况下可以是网域控制器100a接收存在于外部的通信异常监视部1022的结果,并且更新车辆状态保持部1027的车辆状态。
(8)在上述实施方式中,虽然验证结果保持部1025作为验证结果,保持验证结果和最终验证时刻,但是除此之外还可以保持验证时的散列值。
(9)在上述实施方式中,作为车辆状态示出了行驶状态、外部NW连接状态、以及通信异常的发生状态这三个种类,但是可以不包括全部。此外,也可以包括这些以外的车辆状态。车辆状态可以包括例如充电状态、诊断模式状态、车辆更新状态。从而与车辆的安全性风险高的状态、相关的虚拟机或软件对应地更恰当地算出优先级,起到良好的效果。
(10)在上述实施方式中,通信异常监视部1022根据虚拟机的通信量是否偏离了规定的规则,来检测对应的虚拟机的通信异常,但是也可以观测网络,来检测通信异常。通信异常监视部1022可以是例如针对与网域控制器100a连接的车载网络来检测通信异常。此时,验证优先级决定部1023判断为向利用该车载网络的信息的虚拟机的攻击风险增大,可以实施使对应的虚拟机的优先级上升的处理。作为一个例子,在网域控制器100a与CAN连接,车辆控制VM部104b利用CAN的信息时,当检测到CAN的通信异常时,可以使车辆控制VM部104b的验证优先级上升。
(11)在上述实施方式中,示出了由通信异常监视部1022检测虚拟机的通信异常的例子,但是也可以不是通信异常监视部1022,而由主机监视来检测虚拟机的异常。例如,在主机监视中可以基于虚拟机或应用的文件存取、存储器或CPU利用率等资源使用量来检测异常的举动。进而在检测到异常的举动的情况下,以对应的虚拟机的验证优先级上升的方式来决定验证优先级。从而能够掌握虚拟机或应用的异常,并设定验证优先级,能够高效地进行完整性验证。
(12)在上述实施方式中,示出了以验证优先级越高则完整性的验证频度就越高的方式进行变更的例子,但是不限于此。例如,在验证优先级变化很大的情况下,即时对软件的完整性进行验证,在完整性验证之后,使变高的验证优先级变低。此外也可以按照验证优先级,将成为对象的软件的验证范围扩大。在图15中示出了完整性验证时的变形的流程图。
安全OS部102在完整性验证的验证定时,对成为对象的软件的验证优先级进行判断(S600)。在验证优先级为“高”的情况下,根据虚拟机整体换言之虚拟机的执行存储器整体的值来计算散列值,确认是否符合于预先保持的与虚拟机整体对应的完整性信息(S601)。安全OS部102在验证优先级为“中”的情况下,选择虚拟机的多个区域,换言之选择虚拟机的执行存储器中的多个区域,分别计算散列值,并且与预先保持的与该多个区域对应的完整性信息进行比较(S602)。另外,虚拟机的多个区域是虚拟机的一部分。安全OS部102在验证优先级为“低”的情况下,选择虚拟机的规定区域,换言之选择虚拟机的执行存储器中的规定的1个区域,计算其散列值,并且与预先保持的与规定的1个区域对应的完整性信息进行比较(S603)。此时,完整性信息保持部1026除了保持有根据执行虚拟机的存储空间整体所算出的散列值以外,还一起保持有规定的存储空间的地址和与该规定的存储空间的数据值对应的散列值。从而,在优先级低的情况下,由于仅对实现虚拟机的软件中的一部分即规定的存储空间的完整性进行验证,因此能够高效率地验证软件的完整性。
另外,虚拟机的执行存储器中的多个区域以及规定的1个区域可以是预先设定的固定的验证范围。并且,虚拟机的执行存储器中的多个区域以及规定的1个区域,也可以按照车辆状态的变化而变动。例如可以是验证范围包括多个验证区域,在多个验证区域中选择受到车辆状态的变化的影响的验证区域,仅对被选择的验证区域执行完整性验证。例如可以是在行驶状态发生了变化的情况下,对第一验证区域执行完整性验证,在外部NW连接发生了变化的情况下,对第二验证区域执行完整性验证,在通信异常发生了变化的情况下,对第三验证区域执行完整性验证。
安全OS部102在结束了完整性验证的情况下,更新验证结果(S604),并且结束。
这样,网域控制器100a可以按照验证优先级来变更软件的验证范围。从而,能够基于按照验证优先级而被决定的验证范围,对被适应性地决定的验证对象的软件的一部分的完整性进行验证。换言之,具有能够对风险高的软件的一部分的完整性优先进行验证的可能性。因此,即便缩小对风险小的软件的完整性进行验证的验证范围,也能够抑制软件的完整性的验证的效果减少。因而,在要求实时性的系统中,能够减少对软件的完整性进行验证时所需要的处理负荷。
此外,网域控制器100a以软件的验证优先级越高,则软件的验证范围就越大的方式来决定软件的验证范围。因此能够在优先级越高时就在越大的验证范围对软件的完整性进行验证,对提高安全性有效果。
另外,不管验证范围是软件的一部分还是全部,成为验证对象的软件可以是多个,也可以是1个。
(13)在上述实施方式中,虽然示出了在完整性验证失败时将验证对象重新启动的例子,但是验证失败时的处理并不限定于验证对象的重新启动。例如,也可以使与验证对象进行通信的其他的虚拟机的验证优先级上升,该其他的虚拟机是向在日志中保存验证对象的散列值的外部网络的监视服务器、车内的其他的ECU、或车内的其他网域控制器通知异常的虚拟机。图16示出了由外部网络的监视服务器确认完整性的验证结果时的用户界面的例子。在图16中在显示器上显示了框500,该框500示出成为对象的装置(网域控制器)的完整性信息。在框500中示出了网域控制器的每个构成要素的验证结果(501a、501b、501c、501d)。在验证结果中示出了验证优先级、最终验证时刻、以及验证结果。
(14)在上述实施方式中,虽然按照网域控制器内包含的每个虚拟机而设定了验证优先级,但是验证优先级的设定对象,不限于虚拟机。设定对象例如可以是虚拟机监控器部103或安全OS部102。此外,验证优先级可以按照虚拟机上运行的每个应用、或每个进程、每个文件而被设定,也可以按照ECU或网域控制器、车辆的单位而被设定。这样,成为完整性验证的验证对象的1个以上的软件可以是在电子控制装置上执行的软件整体、在电子控制装置上执行的成为虚拟化基础的虚拟机监控器、操作系统、虚拟机、应用、进程、文件中的任一个。从而,能够对成为验证对象的软件进行详细地分类,对高效地进行完整性验证有效果。
(15)在上述实施方式中,虽然作为完整性验证对象的VM,分为车辆控制、信息处理、车外通信这3个种类,但是分类方法不限于此,可以按照软件实现的功能、安全性级别、功能安全级别、进行处理的机密信息级别来进行分类。例如,车辆控制可以与发动机控制、转向控制、制动器控制等相关的执行器建立关联而被分类,也可以与自动驾驶、巡航定速、自动停车、碰撞缓解制动器等所实现的功能建立关联而被分类。从而,随着车辆状态的变化,相关的软件的优先级的变更变得容易。
此外,验证优先级也可以与对象硬件/软件的功能安全等级,例如ASIL(Automotive Safety Integrity Level:车辆安全完整性等级)的适合等级建立关联而被设定。从而,能够对信息安全性风险连接于车辆行驶安全风险的对象,着重地进行验证。并且,验证优先级也可以与软件或硬件的通信接口建立关联而被设定。例如,按照车外网络连接的状况,拥有车外网络连接接口的软件的安全性风险增大,因此可以使拥有车外网络连接接口的软件的优先级设定为上升。从而,能够结合按照车辆以及软件的通信状况而变化的风险,来设定优先级。
(16)在上述实施方式中,网域控制器100a的安全OS部102决定完整性验证的验证定时,执行完整性验证,决定验证优先级,但是不限于此,这些处理可以由其他的网域控制器100b来执行,也可以由其他的ECU来执行。此外,成为验证对象的软件,不仅可以是网域控制器100a执行的软件,也可以是其他的ECU执行的软件。
(17)上述实施方式中的各装置具体而言可以是由微处理机、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在上述RAM或硬盘单元中存储有计算机程序。上述微处理机按照上述计算机程序来运行,从而各装置达成该功能。在此,计算机程序是为了达成规定的功能,对多个命令代码进行组合而构成的,该命令代码示出对计算机进行的指令。
(18)构成上述实施方式的各装置的构成要素的一部分或全部,可以由1个系统LSI(Large Scale Integration:大规模集成电路)来构成。系统LSI是将多个构成部集成在1个芯片上来制造的超多功能LSI,具体而言是包括微处理机、ROM、RAM等构成的计算机系统。在上述RAM中记录有计算机程序。上述微处理机按照上述计算机程序来运行,从而系统LSI达成其功能。
此外,构成上述各装置的构成要素的各部可以被分别制成一个芯片,也可以是其中的一部分或全部包括在一个芯片中。
此外,虽然这里称为系统LSI,但是根据集成度的不同,还称为IC、LSI、超大LSI、特大LSI。此外,集成电路化的方法不限于LSI,也可以由专用电路或通用处理器来实现。也可以利用在LSI制造后可编程的FPGA(Field Programmable Gate Array:现场可编程门阵列)、或可重建LSI内部的电路单元的连接或设定的可重构处理器。
进而,随着半导体技术的进步或者派生出的别的技术,出现能够替代LSI的集成电路化技术时,当然可以使用该技术进行功能块的集成化。有可能适用生物技术等。
(19)构成上述各装置的构成要素的一部分或者全部,可以由能够在各装置进行装拆的IC卡或单体的模块构成。上述IC卡或上述模块是由微处理机、ROM、RAM等构成的计算机系统。上述IC卡或上述模块,可以包括上述的超多功能LSI。微处理机按照计算机程序来运行,从而上述IC卡或上述模块达成其功能。该IC卡或者该模块可以具有防篡改性。
(20)本公开可以是上述示出的方法。此外,这些方法可以是由计算机实现的计算机程序,也可以是由上述计算机程序构成的数字信号。例如,本公开的一个方式可以是使计算机执行图7~图9、图11、图13的任一个示出的通信日志聚合方法所包括的有特征性的各步骤的计算机程序。
此外,本公开可以是将上述计算机程序或者上述数字信号记录在能够由计算机读取的记录介质,例如软磁盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(注册商标)Disc)、半导体存储器等。此外,也可以是在这些记录介质中记录的上述数字信号。
此外,本公开可以是将上述计算机程序或上述数字信号,经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传输。
此外,本公开可以是具备微处理机和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理机按照上述计算机程序来运行。
此外,也可以是通过将上述程序或上述数字信号记录在上述记录介质并移送,或者将上述程序或上述数字信号经由上述网络等移送,从而由独立的其他的计算机系统来实施。
(21)在上述实施方式示出的流程图中的各步骤被执行的顺序是为了具体说明本公开而示出的例子,但是也可以是上述以外的顺序。此外,上述步骤的一部分可以与其他的步骤同时(并行)地执行,也可以不执行上述步骤的一部分。
此外,在上述实施方式示出的方框图中的功能块的分割为一个例子,多个功能块可以作为一个功能块来实现,或者一个功能块也可以分割为多个,或者将一部分功能转移到其他的功能块。此外,具有类似的功能的多个功能块的功能,可以由单一硬件或者软件并行或者分时地处理。
(22)在上述实施方式中,虽然以控制网络系统为车载网络监视系统的例子进行了说明,但是不限于此,也可以是住宅内网络系统、设施内(例如医院内)网络系统、工厂内网络系统等。
(23)也可以将上述实施方式以及上述变形例分别进行组合。
工业实用性
本公开对车载网络系统等控制网络系统中的通信日志聚合装置等有效。
符号说明
10车辆
100a,100b网域控制器
101通信部
102安全OS部
103虚拟机监控器部
104a信息处理VM部
104b车辆控制VM部
104c车外通信VM部
1021 通信部
1022 通信异常监视部
1023 验证优先级决定部
1024 完整性验证部
1025 验证结果保持部
1026 完整性信息保持部
1027 车辆状态保持部
1028 验证优先级保持部
1029 验证计划表保持部
200a,200b,200c,200d ECU
201 通信部
202 应用部

Claims (10)

1.一种完整性验证装置,对车载网络系统中的一个以上的软件的完整性进行验证,
所述一个以上的软件的每一个,由与所述车载网络系统连接的一个以上的电子控制装置的任一个来执行,
所述完整性验证装置具备:
验证计划表决定部,决定对所述一个以上的软件的每一个的完整性进行验证的验证定时;
完整性验证部,对所述一个以上的软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在所述验证定时的该软件的至少一部分而被算出的信息;以及
验证优先级决定部,决定验证优先级,该验证优先级是对决定所述验证定时或决定所述验证范围产生影响的优先级。
2.如权利要求1所述的完整性验证装置,
所述验证计划表决定部,以所述一个以上的软件中的一个软件的所述验证优先级越高则所述一个软件的验证频度就越高的方式来决定所述一个软件的验证定时。
3.如权利要求1或2所述的完整性验证装置,
所述完整性验证部,以所述一个以上的软件中的一个软件的所述验证优先级越高则所述一个软件的验证范围就越大的方式来决定所述一个软件的验证范围。
4.如权利要求1至3的任一项所述的完整性验证装置,
所述验证优先级决定部,按照搭载所述车载网络系统的车辆的车辆状态,来变更所述软件的验证优先级。
5.如权利要求4所述的完整性验证装置,
所述车辆状态包括停车中、行驶中、自动驾驶中、诊断模式中、充电中、更新中、有车外网络通信、无车外网络通信的至少其中一个。
6.如权利要求5所述的完整性验证装置,
所述验证优先级决定部,按照所述车辆状态来变更软件的所述验证优先级,所述软件是处理内容按照所述车辆状态而变化的软件。
7.如权利要求1至6的任一项所述的完整性验证装置,
所述一个以上的软件是在所述电子控制装置上执行的软件整体、在所述电子控制装置上执行的成为虚拟化基础的虚拟机监控器、操作系统、虚拟机、应用、进程、文件中的任一个。
8.如权利要求1至7的任一项所述的完整性验证装置,
所述一个以上的软件包括多个软件,该多个软件的每一个实现多个虚拟机的每一个。
9.如权利要求1至7的任一项所述的完整性验证装置,
所述完整性验证装置还具备:
异常监视部,检测异常状态,该异常状态示出与所述一个以上的软件有关的通信异常、存储器利用量异常以及处理器利用量异常的至少其中一个异常,所述存储器以及所述处理器是由所述一个以上的电子控制装置所具备的,
所述验证优先级决定部,将与所述一个以上的软件中被检测到所述异常状态的软件对应的所述验证优先级变更为更高。
10.一种完整性验证方法,是对车载网络系统中的一个以上的软件的完整性进行验证的方法,
所述一个以上的软件的每一个,由与所述车载网络系统连接的一个以上的电子控制装置的任一个来执行,
在所述完整性验证方法中,
决定对所述一个以上的软件的每一个的完整性进行验证的验证定时,
对所述一个以上的软件的每一个,在针对该软件所决定的验证定时,判断第一完整性信息与第二完整性信息是否一致,在一致的情况下,判断为该软件的完整性得到满足,所述第一完整性信息是用于保证该软件的完整性的信息,并且是与相当于验证范围的该软件的至少一部分对应的信息,所述第二完整性信息是根据在所述验证定时的该软件的至少一部分而被算出的信息,
决定验证优先级,该验证优先级是对决定所述验证定时或决定所述验证范围产生影响的优先级。
CN202280037248.8A 2021-05-31 2022-05-27 完整性验证装置以及完整性验证方法 Pending CN117355833A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2021/020679 2021-05-31
PCT/JP2021/020679 WO2022254520A1 (ja) 2021-05-31 2021-05-31 インテグリティ検証装置およびインテグリティ検証方法
PCT/JP2022/021723 WO2022255245A1 (ja) 2021-05-31 2022-05-27 インテグリティ検証装置及びインテグリティ検証方法

Publications (1)

Publication Number Publication Date
CN117355833A true CN117355833A (zh) 2024-01-05

Family

ID=84323957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280037248.8A Pending CN117355833A (zh) 2021-05-31 2022-05-27 完整性验证装置以及完整性验证方法

Country Status (5)

Country Link
US (1) US20240086541A1 (zh)
EP (1) EP4350551A1 (zh)
JP (1) JPWO2022255245A1 (zh)
CN (1) CN117355833A (zh)
WO (2) WO2022254520A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003344227A (ja) * 2002-05-24 2003-12-03 Kawasaki Heavy Ind Ltd 列車の自動検査システム
JP4388292B2 (ja) 2003-03-12 2009-12-24 新日本製鐵株式会社 廃棄物の熱分解処理方法
US8832454B2 (en) 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification
JP6263437B2 (ja) * 2014-05-07 2018-01-17 日立オートモティブシステムズ株式会社 検査装置、検査システム及び検査方法
JP6342281B2 (ja) * 2014-09-26 2018-06-13 国立大学法人名古屋大学 書換検出システム及び情報処理装置
JP6918067B2 (ja) * 2019-10-07 2021-08-11 三菱電機株式会社 制御装置および制御方法

Also Published As

Publication number Publication date
EP4350551A1 (en) 2024-04-10
US20240086541A1 (en) 2024-03-14
WO2022254520A1 (ja) 2022-12-08
WO2022255245A1 (ja) 2022-12-08
JPWO2022255245A1 (zh) 2022-12-08

Similar Documents

Publication Publication Date Title
JP7492622B2 (ja) 車両異常検知サーバ、車両異常検知システム及び車両異常検知方法
EP3621246B1 (en) Security processing method and server
JP7496404B2 (ja) セキュリティ処理方法及びサーバ
US11861951B2 (en) Driving management system, vehicle, and information processing method
US10268557B2 (en) Network monitoring device, network system, and computer program product
US11962605B2 (en) Information processing apparatus, data analysis method and program
WO2019159615A1 (ja) 車両監視システム
WO2021111681A1 (ja) 情報処理装置、制御方法及びプログラム
CN112199439A (zh) 数据存储设备和非暂态有形计算机可读存储介质
JP2023115229A (ja) モビリティ制御システム、方法、および、プログラム
US11971982B2 (en) Log analysis device
US20230336356A1 (en) Data storage device, data storage method, and non-transitory computer readable storage medium
CN117355833A (zh) 完整性验证装置以及完整性验证方法
US20230052852A1 (en) Method for Authentic Data Transmission Between Control Devices of a Vehicle, Arrangement with Control Devices, Computer Program, and Vehicle
US20230376588A1 (en) Vehicle control system and method for controlling vehicle control system
JP2023144496A (ja) システム、車両及び方法
CN115883125A (zh) 用于探测对总线系统的入侵的技术
CN116639142A (zh) 减轻对车辆软件的操纵

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination