具有被配置为实现安全锁定的相关设备的特别编程的计算系统及其使用方法与流程

文档序号:17441485发布日期:2019-04-17 04:49阅读:150来源:国知局
具有被配置为实现安全锁定的相关设备的特别编程的计算系统及其使用方法与流程

本申请要求2016年4月12日提交的美国临时申请第62/321,372号的优先权,该申请题为“具有被配置为实现安全通信、配置、和物理隔离锁定的相关设备的特别编程的计算系统及其使用方法”,其全部内容出于所有目的通过引用结合于此。

在一些实施方案中,本发明总体上涉及具有被配置为实现安全通信和配置锁定的相关设备的特别编程的计算系统及其使用方法。



背景技术:

例如,车辆可以包括多个计算机、电子控制单元(ecu)。通常,ecu可以通过各种网络互连,这些网络可以包括外部通信能力,例如蓝牙(tm)、3g、wi-fi等。在一些情况下,这种示例性外部通信能力可用于跟踪、控制和/或更新车辆的ecu和/或操作能力。



技术实现要素:

在一些实施方案中,本发明提供了一种本发明的示例性设备,其至少包括以下组件:至少一个安全锁定组件,其可操作地与至少一个网络的至少一个电子控制单元(ecu)相关联;其中所述至少一个安全锁定组件被配置为使得所述设备在物理上分离以下至少一项:i)所述至少一个网络与任何其他网络,ii)所述至少一个网络与指向所述至少一个网络的外部输入,iii)所述至少一个ecu与至少一个其他ecu,iv)所述至少一个ecu与指向所述至少一个ecu的外部输入,v)所述至少一个ecu内的至少一个存储器组件与所述至少一个ecu内的至少一个处理单元,以及vi)其任何组合;其中所述至少一个安全锁定组件包括至少一个处理器和至少一个非易失性存储器组件,所述至少一个处理器被编程为执行至少一个安全锁定过程,并且所述至少一个非易失性存储器组件存储以下至少一项:i)至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,iii)至少一个预定义状态机,iv)所述至少一个ecu内的至少一个存储器组件的批准内容,以及vii)所述至少一个ecu内至少一个硬件单元的批准配置;其中所述至少一个安全锁定组件的所述至少一个处理器被配置为在运行时执行所述至少一个安全锁定过程,所述至少一个安全锁定过程被配置为:分析具有以下至少一项特征的每条电子消息:i)指向所述至少一个网络,ii)在所述至少一个网络内传输,iii)将从所述至少一个网络被外部传输到至少一个外部计算设备,iv)指向所述至少一个ecu,或者v)将从所述至少一个ecu传输;vi)将被传输到所述至少一个ecu内的所述至少一个存储器组件;vii)将被传输以配置所述至少一个ecu内的至少一个硬件组件;其中所述至少一个安全锁定组件被配置为基于以下至少一项来分析每条电子消息:i)所述至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)所述至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,以及iii)所述至少一个预定义状态机;基于每条电子消息的所述分析,识别至少一条未经授权的电子消息,所述至少一条未经授权的电子消息将导致至少一个未经批准的更改或违反以下至少一项:i)所述至少一个网络的所述至少一个ecu的至少一个操作配置,ii)被所述至少一个ecu用来与以下至少一项通信的至少一个通信模式:1)所述至少一个其他ecu,以及2)位于所述至少一个网络外部的至少一个外部电子计算设备,iii)所述至少一个批准消息字典数据库,iv)所述至少一个批准通信模式数据库,v)所述至少一个预定义状态机,vi)所述至少一个ecu内的所述至少一个存储器组件的所述批准内容;vii)所述至少一个ecu内的所述至少一个硬件单元的所述批准配置;以及阻止所述至少一条未经授权的电子消息通过所述至少一个安全锁定组件。

在一些实施方案中,所述至少一个安全锁定过程是至少一个通信安全锁定过程。

在一些实施方案中,所述至少一个安全锁定过程是至少一个配置安全锁定过程。

在一些实施方案中,本发明提供了一种方法,该方法至少包括将一种本发明的示例性设备结合到车辆中,其中所述本发明的示例性设备至少包括以下组件:至少一个安全锁定组件,其可操作地与至少一个网络的至少一个电子控制单元(ecu)相关联;其中所述至少一个ecu驻留在所述车辆内;其中所述至少一个安全锁定组件被配置为使得所述设备在物理上分离以下至少一项:i)所述至少一个网络与任何其他网络,ii)所述至少一个网络与指向所述至少一个网络的外部输入,iii)所述至少一个ecu与至少一个其他ecu,iv)所述至少一个ecu与指向所述至少一个ecu的外部输入,v)所述至少一个ecu内的至少一个存储器组件与所述至少一个ecu内的至少一个处理单元,以及vi)其任何组合;其中所述至少一个安全锁定组件包括至少一个处理器和至少一个非易失性存储器组件,所述至少一个处理器被编程为执行至少一个安全锁定过程,并且所述至少一个非易失性存储器组件存储以下至少一项:i)至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,iii)至少一个预定义状态机,iv)所述至少一个ecu内的至少一个存储器组件的批准内容,以及vii)所述至少一个ecu内至少一个硬件单元的批准配置;其中所述至少一个安全锁定组件的所述至少一个处理器被配置为在运行时执行所述至少一个安全锁定过程,所述至少一个安全锁定过程被配置为:分析具有以下至少一项特征的每条电子消息:i)指向所述至少一个网络,ii)在所述至少一个网络内传输,iii)将从所述至少一个网络被外部传输到至少一个外部计算设备,iv)指向所述至少一个ecu,或者v)将从所述至少一个ecu传输;vi)将被传输到所述至少一个ecu内的所述至少一个存储器组件;vii)将被传输以配置所述至少一个ecu内的至少一个硬件组件;其中所述至少一个安全锁定组件被配置为基于以下至少一项来分析每条电子消息:i)所述至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)所述至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,以及iii)所述至少一个预定义状态机;基于每条电子消息的所述分析,识别至少一条未经授权的电子消息,所述至少一条未经授权的电子消息将导致至少一个未经批准的更改或违反以下至少一项:i)所述至少一个网络的所述至少一个ecu的至少一个操作配置,ii)被所述至少一个ecu用来与以下至少一项通信的至少一个通信模式:1)所述至少一个其他ecu,以及2)位于所述至少一个网络外部的至少一个外部电子计算设备,iii)所述至少一个批准消息字典数据库,iv)所述至少一个批准通信模式数据库,v)所述至少一个预定义状态机,vi)所述至少一个ecu内的所述至少一个存储器组件的所述批准内容;vii)所述至少一个ecu内的所述至少一个硬件单元的所述批准配置;以及阻止所述至少一条未经授权的电子消息通过所述至少一个安全锁定组件。

附图说明

参考附图可以进一步解释本发明,其中在多个视图中,相同的结构用相同的数字表示。所示出的附图不一定是按比例绘制的,这些附图主要是为了说明本发明的原理。因此,本文中公开的具体结构细节和功能细节不应被解释为是限制性的,而是仅仅作为教导本领域技术人员以不同方式采用本发明的代表性基础。

图1至图29示出了根据本发明的至少一些实施方案的至少一些原理描绘的本发明的一些示例性方面。

具体实施方式

在已经公开的这些益处和改进中,本发明的其他目的和优点可以从下面结合附图的描述中变得显而易见。在此公开了本发明的多个详细实施方案;但应理解的是,所公开的这些实施方案仅仅对本发明进行说明,而本发明可以用各种各样的形式来实施。此外,结合本发明的各种实施方案给出的每个实施例都是说明性的,而不是限制性的。

例如,尽管本文详细说明的各种实施方案的说明性实施例被描述为在汽车工业中实现,例如在各种类型的移动车辆(例如,汽车、轨道车辆、公共汽车等)中实现,但是对于本领域的普通技术人员来说,许多其他实现方式可能变得显而易见,并且本发明的原理、方法、系统和设备可以类似地在利用计算设备的各种其他环境中实现。例如,本发明的原理、方法、系统和设备可以在包括或不包括对本领域普通技术人员来说显而易见的任何修改的情况下在许多行业、环境和计算设备中实现,例如但不限于航空、工业控制、计算机、医疗设备、金融终端、公用事业管理(utilitiesmanagement)、居家安防、关键基础设施计算系统(例如,交通信号灯、电网等)和其他类似的合适应用。

在整个说明书中,除非上下文另有明确规定,否则以下术语采用本文明确关联的含义。本文使用的短语“在一个实施方案中”和“在一些实施方案中”不一定指相同的实施方案,但是它可以指相同的实施方案。此外,本文使用的短语“在另一个实施方案中”和“在一些其他实施方案中”不一定指不同的实施方案,但是它可以指不同的实施方案。因此,如下所述,在不脱离本发明的范围或精神的情况下,可以容易地组合本发明的各种实施方案。

此外,如本文所用,术语“或”是包含性的“或”运算符,并且等同于术语“和/或”,除非上下文另有明确说明。术语“基于”不是排他性的并且允许基于未描述的附加因素,除非上下文另有明确规定。此外,在整个说明书中,“一”、“一个”、和“该”的含义包括复数引用。“在……中”的意思包括“在……中”和“在……上”。

应当理解,本文描述的各种实施方案的至少一个方面/功能可以实时和/或动态地执行。如本文所使用的,术语“实时”指的是当另一事件/动作已经发生时,可以即刻地或几乎即刻地发生的事件/动作。在一些实施方案中,术语“即刻的”、“即刻地”、“瞬时地”和“实时”指的是发送搜索请求的第一时刻与接收对所述请求的响应的第二时刻之间的时间差不超过1秒。在一些实施方案中,请求与响应之间的时间差在小于1秒到几秒(例如,5至10秒)之间。

本文使用的术语“动态(地)”表示事件和/或动作可以在没有任何人为干预的情况下被触发和/或发生。在一些实施方案中,根据本发明的事件和/或动作可以是实时的和/或基于以下至少一个预定周期:每纳秒、几纳秒、每毫秒、几毫秒、每秒、几秒、每分钟、几分钟、每小时、几小时、每天、几天、每周、每月等。

如本文所使用的,术语“通信”和“消息”可以互换地使用,并且应当假设通信可以对应于单个消息或多个消息。

本文使用的术语“运行时”对应于在软件应用程序或软件应用程序的至少一部分的执行期间动态确定的任何行为。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为在分布式网络环境中操作,通过合适的数据通信网络(例如,因特网等)进行通信并利用至少一个合适的数据通信协议(例如,ipx/spx、x.25、ax.25、appletalk(tm)、tcp/ip(例如,http)等)。在一些实施方案中,本发明的具有被配置为实现网络安全锁定的相关设备的特别编程的计算系统被配置为处理/跟踪/管理与至少10个其他电子/计算设备(例如但不限于10~99个)、至少100个其他电子/计算设备(例如但不限于100~999个)、至少1,000个其他电子/计算设备(例如但不限于1,000~9,999个)、至少10,000个其他电子/计算设备(例如但不限于10,000~99,999个)、至少100,000个其他电子/计算设备(例如但不限于100,000~999,999个)、至少1,000,000个其他电子/计算设备(例如但不限于1,000,000~9,999,999个)、至少10,000,000个其他电子/计算设备(例如但不限于10,000,000~99,999,999个)、至少100,000,000个其他电子/计算设备(例如但不限于100,000,000~999,999,999个)、至少1,000,000,000个其他电子/计算设备(例如但不限于1,000,000,000~10,000,000,000个)相关联的交互。

如本文所用,术语“网络安全锁定”、“安全通信锁定”、“网络安全通信锁定”、“配置锁定”以及类似术语标识了本发明的一些实施方案的至少一种创造性方法,所述方法基于以下示例性原理:对可信/批准的配置、通信模式或两者进行锁定并保护其免受任何导致改变和/或修改的企图的影响。本发明的创造性锁定对于网络攻击是不可知的,仅着重于保护在特定的一组互连网络(例如,车辆中的所有网络、发电厂中的所有网络等)内发生的所有通信的至少一个批准的配置。

在一些实施方案中,本发明的示例性特定通信锁定可以在具有上下文通信感知(contextualcommunicationawareness)(例如,仅允许特定序列(例如传输和/或生成顺序)和/或通信消息速率等)的位级(bitlevel)(例如,在一条消息和/或一组消息中考虑每个位)上实现。在一些实施方案中,本发明的锁定的原理包括保持特定计算设备的配置和/或运行时环境的完全静态,使得所述特定计算设备中的任何内容在运行时期间都不会改变。

本发明在汽车工业中操作的一些实施方案的说明性非限制性实施例

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为驻留在车辆内,所述车辆通常包括多个(例如,10个、20个、30个、40个、50个、60个等)被称为电子控制单元(ecu)的计算设备。所述车辆的示例性控制系统的示例性ecu接收用户生成的信号和/或由传感器和/或致动器生成的信号,并且响应于所述信号操作以控制参与执行特定功能的车辆组件。所述示例性控制系统的示例性ecu还可以接收和/或处理与由其他车辆控制系统和/或由其他车辆控制系统中的组件产生的功能的性能相关的信号。例如,替代加速踏板和发动机节气门之间的传统线缆的线控车辆节气门系统可以包括电子加速踏板、也被称为发动机控制模块(ecm)的ecu、以及控制进入发动机的气流从而控制发动机产生的动力的电子节气门。电子加速踏板可以响应于驾驶员踩下踏板的位置产生电子信号。所述示例性ecm可以接收加速踏板信号,此外还可以接收可以由车辆中的其他传感器、致动器和电子控制系统产生的电子信号,这些电子信号经由车载通信网络提供与发动机的安全和有效控制相关的信息。所述示例性ecm然后可以处理驾驶员输入信号和其他相关信号以产生控制节气门的电子控制信号。在可以通过车载网络向ecm提供相关信号的其他传感器致动器和电子控制系统中,包括空气流量传感器、节气门位置传感器、燃料喷射传感器、发动机转速传感器、车速传感器、包括在线控制动系统中的制动力和其他牵引控制传感器、以及巡航控制传感器。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为与所述示例性ecu交互,所述示例性ecu可以通过各种计算网络(例如总线)互连,这些计算网络可以涉及制造商、乘客、保险机构和出于各种目的(例如但不限于远程跟踪、控制和/或更新车辆)的各种其他第三方实体可以使用的的外部通信(例如,蓝牙tm、3g、wi-fi等)。例如,现代车辆的车载通信网络通常需要支持数量相对较大且在不断增加的电子控制系统的通信,这些电子控制系统对车辆的安全和高效运行具有不同程度的重要性。例如,车辆可以包括多达但不限于七十个或更多个彼此通信的控制系统ecu以及通过车载网络监测和控制车辆功能的传感器和致动器。举例来说,除了上述发动机节气门之外,ecu还可用于控制动力转向、变速器、防抱死制动(abs)、气囊展开、巡航控制、电动车窗、车门和后视镜调节。此外,车载网络通常支持车载诊断(obd)系统和通信端口、各种车辆状态报警系统、防撞系统、视听信息和娱乐(信息娱乐)系统以及车载摄像机系统获取的图像的处理。车载网络通常还提供对移动通信网络、wi-fi和蓝牙通信、无线电、tpms(轮胎压力监测系统)、v2x(车辆对车辆和车辆对基础设施通信)、无钥匙进入系统、互联网和gps(全球定位系统)的访问。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为防止网络威胁(例如,第三方的未授权访问、计算机病毒的注入等)。在一些实施方案中,本发明的具有被配置为实现安全配置锁定的相关设备的特别编程的计算系统被配置为将车辆中的各种ecu的配置和运行时环境保持在完全静态状态,这被实施而使得它们中的任何内容在运行时期间都不会改变。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为依赖至少一个“批准消息字典”数据库和至少一个“批准通信模式”数据库来执行所述安全通信锁定。

在一些实施方案中,批准消息字典数据库存储基于制造商的规范和/或来自另一指定权威机构的输入而预定义的所有有效消息的定义。例如,批准消息字典数据库可以存储每个消息结构的“批准”定义以及与每个相应消息的每个参数相关联的批准值。

在一些实施方案中,批准通信模式数据库存储基于制造商的规范和/或来自另一指定权威机构的输入定义的所有通信模式的定义。例如,批准通信模式数据库可以存储以下至少一项的“批准”定义:

-所有批准的消息序列,

-特定消息的批准源-目的地对,

-通信速率(例如,每个特定消息的传输周期),

-根据车辆内部状态(例如,发动机状态、特定速度、亮灯等)和/或外部输入(例如,雨水、湿滑的道路、连接到或试图连接到车辆的至少一个外部系统的状态等)的消息传递逻辑(协议),以及

-其任何组合。

在利用本发明的状态机的一些实施方案中,本发明的示例性状态机可以被定义来管理在特定状态(例如,特定的当前状态)中允许哪个(哪些)消息。例如,本发明的示例性状态机可以被定义为针对每个特定状态管理以下至少一项:

-所有批准的消息序列,

-特定消息的批准源-目的地对,

-通信速率(例如,每个特定消息的传输周期),

-根据车辆内部状态(例如,发动机状态、特定速度、亮灯等)和/或外部输入(例如,雨水、湿滑的道路、连接到或试图连接到车辆的至少一个外部系统的状态等)的消息传递逻辑,以及

-其任何组合。

在一些实施方案中,批准消息字典和批准通信模式可以使用一种三(3)逻辑层模型来表示,其可以包括但不限于例如以下逻辑层:

1.内容(数据)层–表示批准消息字典中包含的所有批准/有效(预定义)消息;

2.路由层–表示特定消息的所有批准的源-目的地对;以及

3.上下文(状态)层–表示以下至少一项:

-所有批准的消息序列,

-通信速率(例如,每个特定消息的传输周期),

-根据车辆内部状态(例如,发动机状态、特定速度、亮灯等)和/或外部输入(例如,雨水、湿滑的道路、连接到或试图连接到车辆的至少一个外部系统的状态等)的消息传递逻辑,以及

-其任何组合。

在一些实施方案中,所有三层一起可以使用本文详细描述的本发明的示例性状态机来实现。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为电子地获得制造规范并自动生成所述至少一个批准消息字典数据库和/或所述至少一个批准通信模式数据库。在一些实施方案中,与批准消息字典相关联的定义和与批准通信模式相关联的定义可以驻留在相同的数据库中。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为包括图1中标识的示例性组件。例如,在一些实施方案中,为了实施安全通信锁定,被配置为实现安全通信锁定的本发明的示例性设备可以包括安装在车辆网络内部的一个或多个ecu,使得各种车辆网络之间的预定部分或所有通信流过被配置为实施安全通信锁定的本发明设备并且不能绕过它们。在一些实施方案中,被配置为实现安全通信锁定的本发明的示例性设备可以被配置为仅控制需要安全通信锁定的一部分车辆网络。在一些实施方案中,被配置为实现安全通信锁定的本发明的示例性设备可以被配置为仅控制到特定网络的单个ecu通信。在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置为对所有其他ecu透明,这些ecu的通信可以通过而不需要对本发明设备的能力和/或功能有任何感知。例如,其他ecu可以继续通信,就好像它不在那里一样。

在一些实施方案中,为了在分布式体系结构中实施安全通信锁定,如图2所示,本发明的示例性特别编程的计算系统可以包括被配置为实现安全通信锁定的许多本发明设备,这些设备被定位成,例如但不限于:

-被配置为实现安全通信锁定的至少一个本发明的设备专用于车辆的特定通信网络并且充当入口/出口点,

-被配置为实现安全通信锁定的至少一个本发明的设备专用于每个外部通信点(例如,在3g调制解调器、wi-fi路由器等之前)(图2),和/或

-被配置为实现安全通信锁定的至少一个本发明的设备专用于网络内的特定ecu(例如远程信息处理ecu、信息娱乐ecu、发动机管理ecu)。

在一些实施方案中,为了在集中式体系结构中实施安全通信锁定,如图3所示,本发明的示例性特别编程的计算系统可以包括中央发明设备,该中央发明设备被配置为实现将车辆的所有网络互连的安全通信锁定。例如,如图3所示,被配置为实现安全通信锁定网络的示例性中央发明设备被定位成使得其不能被旁路(所有进出网络、进出外部接口以及网络之间的通信都将通过所述示例性中央发明设备)。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置为对照批准消息字典数据库和/或批准通信模式数据库来验证所有通信,以确保其确实有效。在一些实施方案中,如图4所示,为了实施安全通信锁定,本发明的示例性设备被配置为丢弃(例如,擦除)由于任何原因未能通过对照批准消息字典数据库和/或批准通信模式数据库的验证的任何通信。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置成决定是允许通信被传送到其预期目的地还是阻止通信,从而防止攻击。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置成记录被阻止的每个通信。在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置成生成指示(例如,警报、报告),以每次或以预定周期为基准批量报告每个失败的通信。在一些实施方案中,指示可以是视觉形式、音频形式或两者都有。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性设备被配置成着重于对批准的通信实施锁定(即,仅允许预定义的允许通信通过),而完全不知道特定的攻击或攻击策略。例如,说明性批准消息字典数据库和/或说明性批准通信模式数据库是完全静态的和确定性的,在运行时期间没有任何可能的修改。在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为不需要更新(只要说明性批准消息字典数据库和/或说明性批准通信模式数据库内的每个批准的消息通信模式保持不变)并且不需要与任何外部实体的连接。在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为依赖于根据说明性批准消息字典数据库和/或说明性批准消息通信模式数据库的静态决策机制。

在一些实施方案中,本发明的具有被配置为实现安全通信锁定的相关设备的特别编程的计算系统被配置为在它们相互连接的所有网络之间提供物理隔离,从而提供额外的安全层来防止网络之间的恶意或意外未授权泄漏。

在一些实施方案中,被配置为实现安全通信锁定的本发明设备被配置为被安装以代替通常存在于车辆中的网关ecu,并且因此在形式、配合和功能上替换网关ecu,同时提供所描述的本发明通信锁定能力。

被配置为实现安全通信锁定的中央发明设备的说明性实施例

在一种情况下,被配置为实现安全通信锁定的示例性中央发明设备(即,本发明的ecu)可以互连车辆的三个网络:基于most(面向媒体的系统传输)协议的信息娱乐网络、基于can(控制局域网络)协议的动力传动系统网络和基于以太网和/或flexray(iso17458-1至17458-5)通信协议的安全网络。在一些实施方案中,如图5所示,被配置为实现安全通信锁定的示例性中央发明设备可以包括至少以下组件:至少一个处理器(例如,微处理器)、存储器单元(例如,闪存、基于ddrram的运行时存储器(runtimememory))、至少一个can收发器、至少一个most收发器和至少一个flexray收发器。

在一些实施方案中,示例性微处理器可以具有基于linux的软件包,该软件包包括为了在特定板上(与处理器和存储器兼容)操作的所有驱动程序、以及所有三个收发器的驱动程序。例如,在被配置为实现安全通信锁定的示例性中央发明设备的示例性linux实现中,可以有四(4)个并行运行的进程:各自处理各自网络上的特定通信的三个进程,以及运行实现安全通信锁定的本发明安全核心的第四处理器。被配置为实现安全通信锁定的示例性中央发明设备被配置为存储批准消息字典数据库和/或批准通信模式数据库,所述批准消息字典数据库可以包含所有批准消息的列表(例如但不限于以xml格式)。例如,数据库中每个批准消息条目可以,例如但不限于,在位级(位级表示)上定义相应消息可以具有的所有字段。

例如,在一些实施方案中,每个消息可以包含唯一消息id。反过来,批准通信模式数据库可以包含相应通信模式的定义,例如但不限于,以被批准相互通信的源ecu-目标ecu对的形式。例如,对于每一对,批准通信模式数据库可以包含对应于批准消息的消息id列表,这些批准消息可以在每一个相应的源ecu-目标ecu对之间传递。例如,对于每一对,批准通信模式数据库还可以定义批准速率,这些消息中的每一条可以以所述批准速率被发送(例如,每秒最多2次)。例如,对于每一对,批准通信模式数据库还可以定义车辆、通信和/或网络的批准上下文或状态,每条消息可以在所述批准上下文或状态中发送(例如,定义在授权发送特定消息之前的可以在特定消息之前的出现的所有消息的组合)。

在一些实施方案中,如图4所示,被配置为实现安全通信锁定的示例性中央发明设备被配置为处理每个接收到的通信,如下所述,但不限于此。被配置为实现安全通信锁定的示例性中央发明设备被配置为接收消息并将消息与批准消息字典数据库进行比较。如果被配置为实现安全通信锁定的示例性中央发明设备没有将消息与批准消息字典数据库中允许的消息的条目匹配,则被配置为实现安全通信锁定的示例性中央发明设备被配置为阻止这样的消息。在一些实施方案中,如果发现匹配,则被配置为实现安全通信锁定的示例性中央发明设备被配置为记录/存储消息的消息id。

在一些实施方案中,被配置为实现安全通信锁定的示例性中央发明设备被配置为执行下一检查,以至少部分地基于批准通信模式数据库来验证源和目的地ecu和/或网络可以彼此通信。在一些实施方案中,如果消息通过针对该源-目的地对和消息id的该检查,则被配置为实现安全通信锁定的示例性中央发明设备被配置为通过验证批准的上下文来进一步执行下一检查。

在一些实施方案中,被配置为实现安全通信锁定的示例性中央发明设备被配置为在其存储器中包含自示例性中央发明设备开启以来被传递的消息的整个历史。在一些实施方案中,被配置为实现安全通信锁定的示例性中央发明设备被配置为通过对照历史进行检查来进一步执行下一检查,以基于批准通信模式数据库来确定消息的上下文是否被批准(例如,记录了该消息通过所需的先决条件消息)。如果任何具体说明的检查失败,则被配置为实现安全通信锁定的示例性中央发明设备被配置为丢弃所述消息。如果所有上述具体说明的检查都通过,则被配置为实现安全通信锁定的示例性中央发明设备被配置为将消息发送到其目标网络,目的地ecu连接到所述目标网络。

例如,可以无线连接到安全网络的轮胎压力监测传感器(tpms)向信息娱乐计算机发送包含右前轮胎压力的消息。如果被配置为实现安全通信锁定的示例性中央发明设备在批准消息字典数据库中找到匹配时,即,存在一个条目定义可能存在来自tpms的带有右前轮胎压力的消息,则确定该消息是系统内的有效消息。此外,批准通信模式数据库定义tpmsecu可以每秒最多1次并且在任何上下文的情况下(没有任何先前的历史要求)向信息娱乐ecu发送消息,因此被配置为实现安全通信锁定的示例性中央发明设备基于这些确定来验证消息,并将消息传递给信息娱乐ecu以显示给驾驶员。

如果tpms传感器被黑客入侵,并且攻击者试图向动力传动系统网络(powertrainnetwork)中的发动机ecu发送发动机停止消息,则被配置为实现安全通信锁定的示例性中央发明设备确定,尽管消息本身是有效的(因为它存在于批准消息字典数据库中),但是tpmsecu和发动机ecu的源-目的地对不存在于批准通信模式数据库中。例如,批准通信模式数据库可以定义车辆的特定上下文和特定状态不允许tpms传感器向发动机发送停止消息。因此,被配置为实现安全通信锁定的示例性中央发明设备被配置为阻止(丢弃/擦除)消息,从而防止攻击。

在一些实施方案中,被配置为实现安全通信锁定的示例性中央发明设备被配置为向消息添加一段元数据(apieceofmeta-data),该元数据指示消息已经被验证,由目的地ecu关于消息的有效性来识别该消息。在一些实施方案中,被配置为实现安全通信锁定的示例性中央发明设备被配置为警告源ecu消息已经通过验证。

ecu的配置锁定的说明性实施例

在一些实施方案中,本发明的特别编程的计算系统被配置为针对被配置为实现安全通信锁定的本发明设备实现配置锁定过程,还针对驻留在车辆内的每个其他ecu实现配置锁定过程。例如,安全通信锁定可以在特定的ecu内实现(例如,将本发明的软件/硬件组件添加到ecu的架构中)。在另一个实施例中,安全通信锁定可以通过将本发明的软件/硬件组件附接到ecu来实现,这将在该ecu和网络之间实现本发明的通信锁定。

例如,如图6所示,通常,ecu在特定时间点/时间段的全局状态由其运行的软件、其存储器的状态和/或其硬件组件来定义。例如,本发明的示例性配置锁定过程可以依赖于操作特定ecu所需的软件和/或固件包(例如,驱动程序)的定义,即可以由权威实体(例如,制造商)设置的“批准的软件包”定义。例如,本发明的示例性配置锁定过程可以进一步依赖于“批准的存储器映射”定义,该定义可以定义需要锁定的存储器的内容(例如,软件代码、配置参数等),该存储器的至少一部分是可写的和/或可读的。例如,本发明的示例性配置锁定过程可以进一步依赖于“批准的硬件配置”定义,该定义至少包括特定ecu中所有硬件的映射,包括虚拟硬件设备(例如,用软件模拟的硬件设备)。例如,批准的硬件配置定义可以包括硬件的配置参数(例如,地址、时钟、引脚设置、操作模式及其任意组合)。

在一些实施方案中,为了实施每个ecu的配置锁定,向每个ecu添加了附加的本发明软件/固件和/或硬件组件(“配置锁定组件”)。在一些实施方案中,配置锁定组件的类型和操作条件可以基于与每个ecu相关的操作和/或环境因素而变化。例如,在一些实施方案中,配置锁定组件被配置为验证由在ecu上运行的每个软件和/或固件和/或由其他硬件组件进行的所有存储器访问。例如,配置锁定组件被配置为执行以下至少一项,但不限于以下至少一项:

1)验证存储在ecu存储器中、并且一旦其被执行就加载的批准软件包未被修改;

2)验证加载到运行时存储器(例如ram)中的批准软件包在运行时期间没有改变;

3)基于批准的存储器映射定义,验证已批准的存储器映射未失效–例如,软件和/或硬件实体仅使用已被批准用于其正在尝试执行的操作的存储器的一部分或某些部分(例如,存储器的只读部分未被写入、锁定部分未被访问、代码和指令存储器未用于数据等);以及

4)基于批准的硬件配置定义,验证存储硬件配置的存储器未失效(例如,硬件地址没有改变,配置参数没有超出批准的范围等)。

例如,硬件配置通常是在ecu初始化期间加载的,因此在典型情况下,硬件配置在运行时期间根本不应该改变。在一些实施方案中,为了实施每个ecu的配置锁定,本发明的配置锁定组件被配置成确保每个硬件组件仅接收其特定配置而不接收任何其他配置。

在一些实施方案中,如图7所示,为了实施每个ecu的配置锁定,本发明的配置锁定组件包括至少一个专用硬件组件,该专用硬件组件在物理上将ecu内的存储器(例如,存贮存储器和运行时存储器两者)分开,并实施批准的配置定义(例如,批准的软件包定义、批准的存储器映射定义、批准的硬件配置定义及其任何组合)。

如本文所引用的,术语“存贮存储器”是指代码和/或数据被静态存储于其中的非易失性计算机存储器(例如,硬盘驱动器、闪存等)。

如本文所引用的,术语“运行时存储器”是指用来存储用于执行当前运行程序的代码和/或数据的操作存储器(例如,ram)。

在一些实施方案中,如图8所示,为了实施每个ecu的配置锁定,本发明的配置锁定组件包括可以调解ecu上的所有存储器访问的一个软件或固件。例如,为了实施每个ecu的配置锁定,本发明的配置锁定组件被配置为串行驻留和/或操作到存储器,因此本发明的配置锁定组件不能被旁路,即,所有需要的存储器访问都将通过本发明的配置锁定组件。

在一些实施方案中,本发明的配置锁定组件,例如图7所示的组件,可以包括至少一个具有内置非易失性存储器的处理器(例如,微处理器)(例如,具有内置闪存的片上系统)。在一些实施方案中,本发明的配置锁定组件直接连接到存贮存储器(storagememory)和/或运行时存储器,并且所有访问都是通过本发明的配置锁定组件进行的。例如,处理器在存储器中具有在存贮存储器和/或运行时存储器中可读和/或可写的所有存储器部分的列表。例如,本发明的配置锁定组件被配置为检查/验证来自特定ecu的主处理器和/或来自特定ecu的另一组件的每个存储器命令。例如,本发明的配置锁定组件被配置为检查以下至少一项,但不限于:

-是读取命令还是写入命令?

-其试图访问存储器的哪一部分?

-其试图访问存储器中的哪个地址?

例如,本发明的配置锁定组件被配置为将这些参数对照本地存储的批准配置定义(例如,批准软件包定义、批准存储器映射定义、批准硬件配置定义及其任何组合)进行比较。例如,如果本发明的配置锁定组件确定所需的存储器地址被列为对于特定操作(例如,读取/写入)可访问,则本发明的配置锁定组件被配置为允许执行这样的命令。例如,如果本发明的配置锁定组件确定所需的存储器地址被列为对于特定操作不可访问,则本发明的配置锁定组件被配置为阻止该命令。在一些实施方案中,本发明的配置锁定组件可以向发送命令的实体报告其存在访问违规。在一些实施方案中,本发明的配置锁定组件记录访问违规的记录。

在一些实施方案中,本发明提供了一种本发明的示例性设备,其至少包括以下组件:至少一个安全锁定组件,其可操作地与包含的至少一个网络的至少一个电子控制单元(ecu)相关联;其中所述至少一个安全锁定组件被配置为使得所述设备在物理上分离以下至少一项:i)所述至少一个网络与任何其他网络,ii)所述至少一个网络与指向所述至少一个网络的外部输入,iii)所述至少一个ecu与至少一个其他ecu,iv)所述至少一个ecu与指向所述至少一个ecu的外部输入,v)所述至少一个ecu内的至少一个存储器组件与所述至少一个ecu内的至少一个处理单元,以及vi)其任何组合;其中所述至少一个安全锁定组件包括至少一个处理器和至少一个非易失性存储器组件,所述至少一个处理器被编程为执行至少一个安全锁定过程,并且所述至少一个非易失性存储器组件存储以下至少一项:i)至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目(entry),iii)至少一个预定义状态机,iv)所述至少一个ecu内的至少一个存储器组件的批准内容,以及vii)所述至少一个ecu内至少一个硬件单元的批准配置;其中所述至少一个安全锁定组件的所述至少一个处理器被配置为在运行时执行所述至少一个安全锁定过程,所述至少一个安全锁定过程被配置为:分析每条电子消息,所述每条电子消息具有以下至少一项特征:i)指向所述至少一个网络,ii)在所述至少一个网络内传输,iii)将从所述至少一个网络被外部传输到至少一个外部计算设备,iv)指向所述至少一个ecu,或者v)将从所述至少一个ecu传输;vi)将被传输到所述至少一个ecu内的所述至少一个存储器组件;vii)将被传输以配置所述至少一个ecu内的至少一个硬件组件;其中所述至少一个安全锁定组件被配置为基于以下至少一项来分析每条电子消息:i)所述至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)所述至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,以及iii)所述至少一个预定义状态机;基于对每条电子消息的所述分析,识别至少一条未经授权的电子消息,所述至少一条未经授权的电子消息将导致至少一个未经批准的更改或违反以下至少一项:i)所述至少一个网络的所述至少一个ecu的至少一个操作配置,ii)被所述至少一个ecu用来与以下至少一项通信的至少一个通信模式:1)所述至少一个其他ecu,以及2)位于所述至少一个网络外部的至少一个外部电子计算设备,iii)所述至少一个批准消息字典数据库,iv)所述至少一个批准通信模式数据库,v)所述至少一个预定义状态机,vi)所述至少一个ecu内的所述至少一个存储器组件的所述批准内容;vii)所述至少一个ecu内的所述至少一个硬件单元的所述批准配置;以及阻止所述至少一条未经授权的电子消息通过所述至少一个安全锁定组件。

在一些实施方案中,所述至少一个安全锁定过程是至少一个通信安全锁定过程。

在一些实施方案中,所述至少一个安全锁定过程是至少一个配置安全锁定过程。

在一些实施方案中,所述上下文通信感知分析至少部分地基于以下至少一项:多条电子消息的至少一个预先确定的通信序列,以及所述多条电子消息的至少一个预先确定的通信速率。

在一些实施方案中,所述至少一个安全锁定组件被配置为基于以下至少一项来分析每条电子消息:i)逐位分析,以及ii)上下文通信感知分析。

在一些实施方案中,所述至少一个网络的所述至少一个ecu的至少一个操作配置包括以下至少一项:i)所述至少一个ecu的至少一个批准的硬件配置,以及ii)所述至少一个ecu的至少一个批准的软件配置。

在一些实施方案中,所述至少一个安全锁定组件的所述至少一个处理器被进一步配置为在运行时验证以下至少一项:1)存储在所述至少一个非易失性存储器组件中的所述至少一个批准的软件配置没有被修改;2)加载到运行时存储器中的所述至少一个批准的软件配置在所述运行时期间没有改变;3)批准的存储器映射没有失效;以及4)存储所述至少一个批准的硬件配置的所述至少一个非易失性存储器组件的一部分没有失效。

在一些实施方案中,对会导致至少一个未经批准的更改或违规的所述至少一条未经授权的电子消息的所述确定至少部分地基于以下至少一项:预先确定的所述至少一个ecu的操作配置的静态,以及所述至少一个ecu的运行时环境。

在一些实施方案中,针对所有预定义的有效消息中的每一条,所述至少一个批准消息字典数据库包括至少一个定义以下内容的条目:至少一个批准消息结构定义,以及每个消息参数的至少一个批准值。

在一些实施方案中,针对每个批准的通信模式,所述至少一个批准通信模式数据库包括定义以下至少一项的至少一个条目:i)所有批准的电子消息序列,ii)每条电子消息的所有批准的源-目的地对,iii)所有批准的通信速率,iv)基于所述至少一个网络的内部状态的所有批准的消息传递活动协议,v)基于与所述至少一个网络相关联的至少一个外部输入的所有批准的消息传递活动协议,vi)基于所述至少一个ecu的内部状态的所有批准的消息传递活动协议,vii)基于与所述至少一个ecu相关联的至少一个外部输入的所有批准的消息传递活动协议,以及viii)其任何组合。

在一些实施方案中,所述至少一个预定义状态机被配置为定义以下至少一项:i)所有批准的电子消息序列,ii)每条电子消息的所有批准的源-目的地对,iii)所有批准的通信速率,iv)基于所述至少一个网络的内部状态的所有批准的消息传递活动协议,v)基于与至少一个网络相关联的至少一个外部输入的所有批准的消息传递活动协议,vi)基于所述至少一个ecu的内部状态的所有批准的消息传递活动协议,vii)基于与所述至少一个ecu相关联的至少一个外部输入的所有批准的消息传递活动协议,以及viii)其任何组合。

在一些实施方案中,所述至少一个安全锁定组件被配置为具有以下逻辑层中的至少一个:1)内容逻辑层,其表示所有预定义有效消息,2)路由逻辑层,其表示每个电子消息的所有批准的源-目的地对,以及3)状态逻辑层,其表示以下至少一项:i)所有批准的电子消息序列,ii)每条电子消息的所有批准的源-目的地对,iii)所有批准的通信速率,iv)基于所述至少一个网络的内部状态的所有批准的消息传递活动协议,v)基于与至少一个网络相关联的至少一个外部输入的所有批准的消息传递活动协议,vi)基于所述至少一个ecu的内部状态的所有批准的消息传递活动协议,vii)基于与所述至少一个ecu相关联的至少一个外部输入的所有批准的消息传递活动协议,以及viii)其任何组合。

在一些实施方案中,所述至少一个网络驻留在车辆内。

在一些实施方案中,所述至少一个ecu是至少一个电子计算设备,其被配置为执行或影响所述车辆中的至少一个特定功能。

在一些实施方案中,所述所有预定义的有效消息至少部分地基于车辆制造商的车辆规范或ecu制造商的所述至少一个ecu的ecu规范来预定义。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为:从至少一个可信的电子源电子地获取所述车辆规范,以及基于所述车辆规范,动态地生成以下至少一项:1)所述至少一个批准消息字典数据库,2)所述至少一个批准通信模式数据库,以及3)所述至少一个预定义状态机。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为擦除所述至少一条未经授权的电子消息。

在一些实施方案中,所述至少一个未经批准的变更是至少部分地基于至少一个网络威胁而变更。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为生成所述至少一条未经授权的电子消息的至少一个指示。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为向每条批准的电子消息添加元数据,其中所述元数据被配置为被至少一个目的地ecu识别为被所述设备批准。

在一些实施方案中,所述至少一个网络驻留在车辆外部。

在一些实施方案中,所述至少一条未经授权的电子消息与至少一个网络威胁有关。

在一些实施方案中,所述至少一个安全锁定组件被配置为在以下位置之一处阻止所述至少一条未经授权的电子消息:硬件,沿着软件栈的至少一个位置,或者这两者。

在一些实施方案中,所述至少一个预定义状态机被配置为实现以下至少一项:1)所述内容逻辑层,2)所述路由逻辑层,以及3)所述状态逻辑层。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为执行以下至少一项:记录对所述至少一条未经授权的电子消息的所述至少一个指示,以及将对所述至少一条未经授权的电子消息的所述至少一个指示发送到所述设备外部的至少一个外部电子目的地。

在一些实施方案中,所述至少一个安全锁定组件被进一步配置为执行以下至少一项:生成对至少一条经授权的电子消息的至少一个指示;记录所述至少一条经授权的电子消息、所述至少一个指示或两者;以及将所述至少一条经授权的电子消息的所述至少一个指示发送到所述设备外部的至少一个外部电子目的地。

在一些实施方案中,本发明提供了一种方法,该方法至少包括将一种本发明的示例性设备结合到车辆中,其中所述本发明的示例性设备至少包括以下组件:至少一个安全锁定组件,其可操作地与至少一个网络的至少一个电子控制单元(ecu)相关联;其中所述至少一个ecu驻留在所述车辆内;其中所述至少一个安全锁定组件被配置为使得所述设备在物理上分离以下至少一项:i)所述至少一个网络与任何其他网络,ii)所述至少一个网络与指向所述至少一个网络的外部输入,iii)所述至少一个ecu与至少一个其他ecu,iv)所述至少一个ecu与指向所述至少一个ecu的外部输入,v)所述至少一个ecu内的至少一个存储器组件与所述至少一个ecu内的至少一个处理单元,以及vi)其任何组合;其中所述至少一个安全锁定组件包括至少一个处理器和至少一个非易失性存储器组件,所述至少一个处理器被编程为执行至少一个安全锁定过程,并且所述至少一个非易失性存储器组件存储以下至少一项:i)至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,iii)至少一个预定义状态机,iv)所述至少一个ecu内的至少一个存储器组件的批准内容,以及vii)所述至少一个ecu内至少一个硬件单元的批准配置;其中所述至少一个安全锁定组件的所述至少一个处理器被配置为在运行时执行所述至少一个安全锁定过程,所述至少一个安全锁定过程被配置为:分析每条电子消息,所述每条电子消息具有以下至少一项特征:i)指向所述至少一个网络,ii)在所述至少一个网络内传输,iii)将从所述至少一个网络被外部传输到至少一个外部计算设备,iv)指向所述至少一个ecu,或者v)将从所述至少一个ecu传输;vi)将被传输到所述至少一个ecu内的所述至少一个存储器组件;vii)将被传输以配置所述至少一个ecu内的至少一个硬件组件;其中所述至少一个安全锁定组件被配置为基于以下至少一项来分析每条电子消息:i)所述至少一个批准消息字典数据库,其包括用于所有有效电子消息的条目,ii)所述至少一个批准通信模式数据库,其包括用于至少一个批准通信模式的至少一个条目,以及iii)所述至少一个预定义状态机;基于对每条电子消息的所述分析,识别至少一条未经授权的电子消息,所述至少一条未经授权的电子消息将导致至少一个未经批准的更改或违反以下至少一项:i)所述至少一个网络的所述至少一个ecu的至少一个操作配置,ii)被所述至少一个ecu用来与以下至少一项通信的至少一个通信模式:1)所述至少一个其他ecu,以及2)位于所述至少一个网络外部的至少一个外部电子计算设备,iii)所述至少一个批准消息字典数据库,iv)所述至少一个批准通信模式数据库,v)所述至少一个预定义状态机,vi)所述至少一个ecu内的所述至少一个存储器组件的所述批准内容;vii)所述至少一个ecu内的所述至少一个硬件单元的所述批准配置;以及阻止所述至少一条未经授权的电子消息通过所述至少一个安全锁定组件。

基于静态状态机的安全通信锁定的说明性实施例–安全网络协调器(sno)

在一些实施方案中,为了实施安全通信锁定,被配置为实现安全通信锁定的本发明的示例性设备被配置为作为静态(有限)状态机操作的sno组件(例如,基于状态/事件的机器、统一建模语言(uml)状态机、规范和描述语言(sdl)状态机、漫游机(touringmachine),其具有的输入/输出磁带(tape)是通过通信接口进出sno组件设备的消息的形式)。例如,如本文详细说明的,可以基于外部来源、内部来源或两者的安全威胁要求安全通信锁定。在一些实施方案中,为了实施安全通信锁定,本发明的示例性sno组件可以是物理ecu或已经存在的ecu内的软件组件,用于实施至少一个批准消息字典数据库和/或至少一个批准通信模式数据库。在一些实施方案中,为了实施安全通信锁定,本发明的示例性sno组件被配置为自身安全并且抵抗可能修改其操作原理的攻击。例如,本发明的示例性sno组件被配置为包括并保护批准消息字典数据库和/或批准通信模式数据库,防止在运行时期间发生修改,从而维护本文定义的静态锁定原理。例如,本发明的示例性sno组件的完整性被配置为使用合适的方法和标准(例如iso/iec15408)来验证和认证。

例如,本发明的示例性sno组件(例如,snoecu)可以至少包含一个或多个处理器(例如,微处理器)、存贮存储器、运行时存储器和硬件(例如,硬件收发器),它们通常需要与通过本发明的示例性sno组件互连的网络通信。例如,如图9所示,本发明的示例性sno组件可以互连基于most协议的信息娱乐网络、基于can协议的动力传动系统网络和/或基于flexray协议的安全网络。

在一些实施方案中,本发明的示例性sno组件可以是软件组件的形式或者软件和硬件组件的组合。例如,本发明的示例性sno组件可以包括安全分离内核,例如但不限于操作系统内核、或者硬件与运行在硬件之上的应用程序之间的中间件。在一些实施方案中,安全分离内核可以是硬件和/或固件和/或软件机制的形式,其主要功能是建立、隔离和分离多个分区,以及控制对象与分配给这些分区的导出资源(exportedresource)之间的信息流。在一些实施方案中,安全分离内核根据美国国家安全局(nsa)(2007)建立的分离内核保护配置文件(skpp)来实现,其具体描述通过引用结合于此。例如,本发明的示例性sno组件的安全分离内核可以是或是特定修改版本(根据本发明的原理修改)的一个或多个以下分离内核,但不限于,包括greenhills的integritytm内核,windriver的vxworksmilstm内核和lynxsoftware的lynxsecuretm内核。

在一些实施方案中,安全分离内核的功能可以包括以下中的至少一个:

-将评估安全功能目标(tsf)使用的内部资源与向对象提供的导出资源分开,

-导出资源的分区和隔离,

-分区之间和导出资源之间信息流的调解,

-审计服务及其任何组合。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性sno组件的安全分离内核被用来提供“应用程序分区”,允许几个应用程序(例如,进程)在它们自己的虚拟“隔间”中运行,其中每个应用程序(例如,进程)可以具有专用资源,例如但不限于处理器时间和存储器分配。例如,本发明安全分离内核形式的本发明的示例性sno组件在几个应用程序或应用程序分区(例如,线程)之间分离处理器和存储器资源,和/或分离其使用。在一些实施方案中,本发明的示例性sno组件的安全分离内核可以在至少两个级别上提供应用程序分区之间的分离:

1.处理器时隙的分离--每个应用程序分区应有自己的静态分配的时隙,该时隙将由本发明的安全分离内核实施(即,当时隙结束时,下一个分区将根据静态调度器被切换);以及

2.存储器地址空间的分离–每个应用程序分区都应有自己的存储器地址空间,并且本发明的安全分离内核被配置为强制每个分区只访问其被分配的区段(例如,存储器地址范围)。

在一些实施方案中,本发明的示例性sno组件中使用的安全分离内核提供了应用程序或应用程序分区之间的安全隔离,因此防止了它们可能相互影响的情况(例如,一个受感染的程序可能感染另一个程序,或者一个崩溃的程序使另一个程序崩溃)。例如,由于处理器和存储器资源都是分开的,所以不能将来自一个分区的代码读取或写入到不同分区的存储器。例如,由于处理器时间分离,本发明的示例性sno组件的安全分离内核可以促进这样的场景,即来自一个分区的第一代码可以拒绝来自不同分区的第二代码的执行,因为它们是由本发明的安全分离内核调度的,因此本发明的安全分离内核的操作防止了一个分区对另一个分区的拒绝服务攻击。例如,即使恶意代码进入一个分区,该恶意代码也不会传播或影响其他分区。在一些实施方案中,本发明的示例性sno组件的安全分离内核可以提供足够的安全保护,而无需进行硬件分离(例如,针对一组应用程序分区或一组应用程序而分离处理器、存储器和其他组件)。

在一些实施方案中,本发明的示例性sno组件的安全分离内核被配置为将在其控制下的所有导出资源分配到分区中。在一些实施方案中,本发明的示例性sno组件的安全分离内核可以保持分区隔离,除了明确允许的信息流。在一些实施方案中,本发明的示例性sno组件的安全分离内核被配置为将一个分区中的对象的动作与另一个分区中的对象的动作隔离(即,不能被另一个分区中的对象检测到或传送到另一个分区中的对象),除非该流已经被允许。在一些实施方案中,术语“分区”和“对象”是正交抽象概念(orthogonalabstraction)。例如,如其数学起源所指示的,术语“分区”可以提供系统实体的集合论分组(set-theoreticgrouping),而术语“对象”可以用来描述和实现系统的各个活动实体。例如,分区(包含零个或更多个元素的集合)不是对象(活动元素),而是可以包含零个或更多个对象。

在一些实施方案中,为了管理分区和流,本发明的示例性sno组件的安全分离内核被配置成至少部分依赖于本发明的状态机和/或批准消息字典数据库和/或批准通信模式数据库,它们是图10中被指定为“安全核心”的项目的一部分。例如,本发明的示例性sno组件的安全分离内核可以被配置成直接在硬件(例如,处理器、存储器等)之上运行,和/或作为向各种硬件组件提供驱动程序和低级软件接口的固件包(本文称为“板支持包”或“bsp”)的一部分,和/或直接在bsp之上(如图10所示),在bsp和用于各种通信网络/程序的软件接口之间运行。

例如,本发明的示例性sno组件的安全分离内核可以是armintegrator920t板的windrivertm板支持包(bsp)的一部分或可以在其上运行,除其他外,该安全分离内核可以包含至少以下元素:

-config.h文件,其定义常量,如rom_size和ram_high_adrs-makefile,其定义用于编程到闪存中的vxworksrom映像的二进制版本

-bootrom文件,其定义板的引导线(bootline)参数

-target.ref文件,其描述板专用的信息,如开关和跳线设置、中断电平和偏移偏置

-vxworks图像

-各种c文件,包括:

--flashmem.c—用于板的闪存的设备驱动程序

--pciiomapshow.c—pci总线的映射文件

--primecellsio.c.—tty驱动程序

--syslib.c—此板专用的系统相关例程

--rominit.s—板的rom初始化模块;包含用于从rom开始运行的映像的条目代码。

例如,本发明修改的bsp被配置为执行至少以下操作:

-初始化处理器

-初始化总线

-初始化中断控制器

-初始化时钟

-初始化ram设置

-配置区段

-从闪存加载并运行引导加载程序。

在一些实施方案中,为了实施安全通信锁定,本发明的示例性sno组件的安全分离内核被配置为微内核的一部分,该微内核至少包括运行应用程序所必需的元素(例如,存储器管理例程和进程调度器)。在一些实施方案中,本发明的示例性sno组件被配置成使得用户可以在用户空间添加非安全组件。

在一些实施方案中,本发明的示例性sno组件的安全分离内核可以允许每个通信接口具有单独的分区,该分区管理其与被配置为实施安全通信锁定的本发明的示例性sno组件的交互。例如,通信接口可以是软件(例如,守护程序[unix服务]和/或服务),其实现经由对应硬件接口发送和接收数据所需的必要逻辑。

在一些实施方案中,本发明的示例性sno组件的安全分离内核被配置为包含必要的功能和驱动程序,以通过操作系统向低级固件bsp发送命令,后者将命令中继到硬件。例如,本发明的示例性sno组件的安全分离内核被配置为处理来自软件接口的消息,例如但不限于unix套接口和unixtcp/ip栈、以及低级固件bsp。例如,本发明的示例性sno组件的安全分离内核被配置为防止例如1)通过unix套接口和/或unixtcp/ip栈注入未经授权的代码或数据以影响/操纵/改变bsp和/或硬件,以及2)unix套接口和/或unixtcp/ip栈与操作系统之间未经授权的数据泄漏。

在一些实施方案中,本发明的示例性sno组件的安全分离内核允许本发明的示例性sno组件处理单个分区中所有的通信接口而不是每个分区的单独分区。在一些实施方案中,本发明的示例性sno组件的安全分离内核被配置为在至少一个专用分区中运行。

在一些实施方案中,除了安全分离内核之外,本发明的示例性sno组件还被配置为包含本发明的示例性有限状态机,如图11所示,该状态机根据本文详细描述的本发明的原理被配置为确定性地和静态地管理通过的任何通信。

在一些实施方案中,如图11所示,本发明的示例性sno组件被进一步配置为包括批准消息字典数据库和/或批准通信模式数据库,以实施安全通信锁定并验证可以被配置为但不限于本文所描述的三个逻辑层模型的每个通信。例如,接收到的每个通信要么被阻止(丢弃),要么被允许继续到达目的地。例如,本发明的示例性sno组件的有限状态机定义了由本发明的示例性sno组件接收特定通信的每个当前上下文(例如,车辆网络内的车辆/ecu的状态)。例如,本发明的示例性sno组件被配置为通过将接收到的通信与用于这种相应通信的批准消息字典数据库和/或批准通信模式数据库进行比较来执行初始验证。例如,批准消息字典可以存储在至少一个本地数据库中,该数据库包含每个批准的消息的条目,例如但不限于在位级上(例如,消息的所有字段及其批准值的按位表示(bitwiserepresentation))。例如,本发明的示例性sno组件被配置为通过使用有限状态机和批准通信模式数据库来进一步验证通信模式。例如,为了对照批准通信模式数据库验证所接收消息的通信模式,本发明的示例性sno组件检查在状态机的当前状态下(其可以表示特定环境(例如车辆)内所有相关ecu的上下文和/或当前状态),是否允许所接收消息从源ecu传输到目标ecu。如果状态指示允许,则本发明的示例性sno组件被配置成完成验证并将消息发送到目标ecu;否则,本发明的示例性sno组件被配置为阻止(丢弃)消息,从而防止攻击。

例如,在一些实施方案中,消息的源和目的地被认为是消息及其上下文的一部分,并且通过与批准消息字典数据库和/或批准通信模式数据库进行比较来验证,以便验证消息。例如,如图11所示,本发明的示例性状态机包括管理可以在给定时刻发送的一组批准消息的任何车辆参数(即,示例性状态机定义车辆的整体状态)。例如,每个状态向量可以包含车辆内所有ecu或所有相关ecu的至少一部分在特定操作时间的状态(例如,运行、空闲、打开、关闭或任何其他类似的可量化的测量)。例如,本发明的示例性状态机还可以包含由预定权威机构(例如,制造商)定义的预配置的逻辑。预配置逻辑的一个实施例可以是:因为ecua被接通,所以ecub必须开始操作,尽管没有通过相关网络发送通信,因为ecua已经通过ecua和ecub之间的专用信号路径接通。

例如,如图12所示,可以使用至少一个状态向量来表示本发明的示例性状态机内的任何状态。在一些实施方案中,每个状态向量可以包含定义给定时间点的车辆状态的车辆参数的全部或至少相关部分以及值的可能组合。例如,状态向量可以包括由发动机ecu报告的当前速度、由踏板专用ecu报告的踏板状态以及可以以可量化的形式传送的任何其他相关附加ecu的状态。

在一些实施方案中,对于每个状态(以及对其进行定义的状态向量),存在一个列表定义了为其批准的所有有效消息(包括作为消息一部分的它们的源和目的地)。在一些实施方案中,列表以状态转变的形式实现,其中每个有效消息引起从当前状态到另一状态的转变。例如,在一些实施方案中,当接收到的消息存在于批准消息字典数据库中,然而本发明的示例性sno组件确定没有对应于接收到的消息的从当前状态的适当转变时,本发明的示例性sno组件被配置为丢弃该消息(根据批准通信模式,其未经验证)。因此,对于这样的实施方案,状态机被配置为起到批准通信模式数据库的作用。例如,批准的状态机可以本地存储在至少一个数据库内的存储器中,该数据库包含每个状态的条目和如本文所述设置的批准转变列表。

例如,在一些实施方案中,每个合法消息对应于一个状态转变,得到许多状态来说明所有批准的消息。因此,未经验证(非法)的消息不会导致状态转变。

例如,在一些实施方案中,每个存储的状态包含和/或关联于允许用于这种状态的所有消息的列表。例如,允许消息列表中的一些消息导致状态转变。

例如,在一些实施方案中,本发明的示例性sno组件被配置为将当前状态存储在运行时存储器中,并且当任何新通信到达时对其进行访问,以便验证这种通信。在一些实施方案中,一旦发生转变(例如,接收的消息已经被验证和发送),本发明的示例性sno组件被配置为更新当前状态。例如,图13示出了本发明的示例性sno组件可以接收的一系列消息的通信实施例,以及它们利用本发明的示例性状态机的验证过程。

在一些实施方案中,根据本发明的原理,通过分析每个ecu规范以确定这种ecu可以处于的各种状态以及哪些参数改变这些状态来生成本发明的示例性状态机。例如,由于车辆正在行驶时发动机无法关闭,因此车辆正在行驶这一事实是一种独立的状态。例如,对状态转变(速度、加速踏板位置等)至关重要的各种车辆参数也可以包括在每个状态向量中。

在一些实施方案中,根据本发明的原理,本发明的示例性状态机因此从多个状态向量中得出,其中特定状态向量中各种状态的每个唯一组合被表示为机器中的单个状态。例如,在一些实施方案中,一些常规的车辆参数(例如,速度等)可以忽略以最小化状态量。例如,如上所述,对于每个状态,基于规范,可以有来自批准消息字典的在该状态下有效的所有批准消息的列表。

在图13中,状态机中的每个状态旁边都显示了对应的状态向量。如图13所示,由本发明的示例性sno组件接收的示例性通信可以指示车辆正在起动(即,从组合仪表ecu发送到发动机ecu的“起动”命令),加速踏板被踩下,并且消息从踏板ecu发送到发动机ecu,然后车辆被组合仪表ecu关闭。如果在图13所示的前进过程中的某个时刻,当本发明的示例性状态机的状态识别出加速踏板被踩下时,本发明的示例性sno组件从电子手制动ecu接收到手制动消息,则本发明的示例性sno组件被配置为阻止手制动消息(从而阻止攻击),这是因为不存在从对应于手制动消息的状态4的转变。

在一些实施方案中,本发明的示例性sno组件被配置成利用图13所示的本发明的示例性状态机作为批准通信模式数据库,并实施它。例如,每当接收到通信并验证为被批准时,本发明的示例性sno组件被配置为根据接收到的消息将其状态机更新为新状态。因此,对本发明的示例性状态机的状态所做的更新的记录表示先前通信的历史。

图14示出了在具有打开和关闭车顶功能的可变换车辆的场景中本发明的示例性sno组件的说明性操作的实施例。例如,由于机械原因,车顶只能在低于30英里每小时(mph)的速度打开和关闭。在该特定实施例中,所涉及的ecu例如是计算当前速度并将当前速度数据的消息发送给车辆中的其他ecu的发动机ecu、控制可伸缩车顶操作的可伸缩车顶ecu、发送加速命令的加速踏板ecu以及具有所有控制以起动和停止发动机并在向驾驶员显示当前速度的同时打开和关闭车顶的组合仪表ecu。此外,对于这个说明性实施例,为了关闭车辆,车顶必须关闭。

在这个说明性实施例中,每个ecu具有一个id(显示在对应ecu旁边的大圆圈中),并且每个消息类型具有一个id(显示在对应消息旁边的小圆圈中)。在该说明性实施例中,如图15所示,示例性批准的通信协议/模式被定义为由每个消息的四个字段组成:源ecu、目的地ecu、消息id和发送的值。每个字段有8位长。对于该说明性实施例,源和目的地ecu值为1~4;消息id值为1~5。

对于该说明性实施例,经批准的权威机构(例如,制造商)可以为相关ecu提供以下规范。发动机ecu用当前速度更新组合仪表和可伸缩车顶ecu,当前速度定义在0~250mph的范围内。可伸缩车顶ecu用车顶的当前状态(0=关闭,1=打开)更新组合仪表。加速踏板ecu用由0~1之间的连续值定义的踏板当前位置来更新发动机ecu,其中1表示被完全踩下,0表示完全没有被踩下。组合仪表ecu分别向发动机和可伸缩车顶ecu发送发动机起动/停止命令和车顶打开/关闭命令。在该实施例中,上述示例性规范被转换成批准消息字典,如图16所示,然后将其存储在至少一个数据库中,该数据库存储在本发明的示例性sno组件内和/或由本发明的示例性sno组件访问。

如图16所示,示例性“发动机起动”命令用值1定义,示例性“发动机停止”用值0定义;分别用值1定义示例性“车顶打开”命令,用值0定义示例性“车顶关闭”命令。对于这个特定的实施例,这个实施例的示例性有限状态机的每个状态向量是通过导出各种ecu可以处于其中的所有相关状态(它们的操作模式根据规范而改变的条件)来生成的。图17显示了这个特定实施例的说明性状态向量。

例如,当速度超过30mph时以及当速度从30mph以上降到30mph以下时,可伸缩车顶ecu会改变状态。因此,状态向量将包含一种状态,该状态辨别车辆是(“低速”状态)否(“高速”状态)处于可以操作车顶的速度。图18示出了用于该特定实施例的本发明的示例性状态机的示意图。图18示出了每个状态都有对应的状态向量。例如,当本发明的示例性sno组件接收到至少一个具有特定值的特定消息时,进行示例性状态转变。本发明的示例性sno组件用每个经过验证的有效消息更新相应的状态向量(即使没有发生状态变化,例如速度从20mph上升到22mph)。

除了实施在上下文中发送的消息之外,利用状态机的本发明的示例性sno组件还可以实施(防止)在没有状态转变的情况下尝试的非法值改变。例如,权威机构(例如,制造商)可以决定只有当变化大于5mph时才可以更新速度值,当本发明的示例性sno组件接收到携带新速度值的消息时,本发明的示例性sno组件基于示例性状态机来分析该消息,以确定新速度值是否与当前状态向量中的当前速度值相差大于5mph。如果新速度值相差不超过5mph,则本发明的示例性sno组件被配置为丢弃该消息。如此,本发明的示例性sno组件使用状态向量来保护当前状态的完整性。

表1示出了若本发明的示例性sno组件接收到在示例性状态机处于图18中标识的“发动机运行车顶关闭”状态时接收到的消息,由本发明的示例性sno组件执行的示例性代码。

在一些实施方案中,本发明的特别编程的计算系统可以包括为互相通信的每对ecu配置的单独的有限状态机,从而产生专用状态机的网络。在一些实施方案中,本发明的特别编程的计算系统可以包括为被共同用于在各种ecu之间交换消息的每对通信网络配置的单独的有限状态机。在一些实施方案中,本发明的特别编程的计算系统可以包括用于车辆中可以使用的每个过程的单独的有限状态机。例如,在具有可伸缩车顶的上述实施例中,为可伸缩车顶的操作定义了单独的有限状态机。在这种情况下,本发明的示例性sno组件可以被配置为针对接收到的每条消息更新几个状态机的状态。

在一些实施方案中,本发明的特别编程的计算系统可以包括自动工具,该自动工具电子地获取例如制造商规范并生成特定批准消息字典、每个特定状态向量和对应的状态机。例如,自动工具可以获取用标记语言(如xml)编码的规范。

在一些实施方案中,被配置为实施安全通信锁定的本发明的特别编程的计算系统和相关联的本发明设备是完全确定性的,可以使用计算机程序进行全面分析,并且容易认证以确保安全性。例如,示例性分析可以验证在每个特定输入下,本发明的特定状态机不会进入未定义的状态和/或未授权的状态,并且本发明的特定状态机和对应的本发明的sno组件根据预定义的规范运行。

在一些实施方案中,被配置为实施安全通信锁定的本发明特别编程的计算系统和相关本发明设备可以包括部分状态机,该部分状态机仅覆盖车辆的所有可能状态的一部分,该部分状态可以基于制造商的规范来定义,并且不匹配任何状态的每个通信要么被锁定设备丢弃,要么被锁定设备允许,只要与通信相关的每个消息可以对照批准消息字典数据库来验证。

表1。

在一些实施方案中,被配置为实施安全通信锁定的本发明的特别编程的计算系统和相关的本发明设备(本发明的锁定设备)被进一步配置为实现协议转换能力,其中它们可以充当连接到它们的通信网络之间的数据解释器。例如,在消息被验证有效之后,本发明的锁定设备可以被配置为基于接收网络和/或ecu的通信协议来转换消息。例如,如果消息有效,则本发明的锁定设备可以将特定消息从most协议转换成can协议。

在一些实施方案中,本发明的锁定设备可以被配置为保持安全存储器,该安全存储器存储至少一个合适类型的加密密钥和/或其他类似的安全相关数据,例如安全证书。在一些实施方案中,本发明的特别编程的计算系统可以被配置为利用加密密钥和/或证书用于内部和/或外部ecu通信或任何其他合适的目的,例如但不限于在线支付的车辆标识、车辆对车辆通信的认证和加密、从制造商接收的更新的认证,有效地用作其他ecu的可信平台模块(tpm)。

在一些实施方案中,本发明的锁定设备可以被配置为在网络级和/或各个ecu级采用加密和/或认证方案,从而允许终止加密通信并启动另一个到目的地的通信,或会话加密和与其连接的认证网络的任何其他组合。

例如,在一些实施方案中,连接到汽车信息娱乐most网络和关键安全lin网络的本发明的示例性锁定设备可以基于制造商的请求来配置,以拒绝most网络和安全lin网络之间的所有通信,即使这两个网络属于同一车辆。在另一个实施例中,本发明的示例性锁定设备可以被配置为允许在连接到发动机管理can网络的特定ecu上生成的由制造商指定的遥测数据被传送到most网络中,以便其在信息娱乐屏幕上以图形方式显示该数据。

在另一个实施例中,本发明的锁定设备可以被配置为保护车辆用户的隐私。例如,车辆可被编程为经由结合到车辆中的无线3g调制解调器发出自动紧急服务呼叫(例如,发送电子报告)。在发生事故的情况下,车辆可以发起自动紧急服务呼叫,在不考虑用户状况的情况下,立即将事故通知给权威机构。例如,这样的报告可以包含通过车载gps接收器确定的车辆位置、用户或所有者的个人信息,例如但不限于年龄、性别、居住地、电话号码和/或用户的医疗状况。例如,这种报告还可以包含关于车辆本身的数据,例如制造、年份、vin(车辆识别号)、牌照、气囊展开状态和/或过去2分钟的遥测数据。例如,报告可以包括足够的信息来确定事故发生的时间和地点、严重程度、受伤者可能的医疗概况、要寻找的车辆和要联系的家属,这将使应急小组能够更高效地履行职责。这种对现场和可能涉及的人的详细描述引起了严重的隐私问题。

例如,如果发生事故,可能会发生以下情况:

1.驻留在“安全网络”(其连接到通信锁定ecu)中的传感器检测到事故,并且分配给该任务的ecu为权威机构准备报告。该报告由锁定ecu接收,并根据批准消息字典和通信模式进行验证。

2.ecu通过can总线接口与包含(或直接连接到)3g调制解调器的通信锁定ecu建立内部通信,并将报告发送给它。

3.通信锁定ecu建立到认证远程紧急通知服务器的新加密连接,并发送报告。

在这种情况下,根据一些实施方案,敏感信息在车载网络上未加密地传播,但是被本发明的锁定设备验证、加密并传输到正确的外部目的地。

在一些实施方案中,本发明锁定设备所在的物理外壳可以包括防篡改措施,该防篡改措施可以检测物理外壳已经被打开或破坏(例如,利用微动开关传感器、光学传感器和其他类似合适的技术/设备),并且安全地擦除存储在本发明锁定设备中的所有软件和数据。

在一些实施方案中,本发明的锁定设备可以被配置为认证和/或验证需要部署在车辆内的外部软件包。例如,本发明的锁定设备可以被配置为验证外部软件包的加密签名,对其进行解密,并仅将它们部署在批准的ecu中。

在一些实施方案中,当ecu使用基于会话的通信协议时,该协议要求确认正在接收的通信,本发明的锁定设备可以被配置成阻止通信,然后向发送ecu发送消息未被接收的通知。

在一些实施方案中,本发明的锁定设备可以被部署来保护(单个ecu与网络之间的)单个通信链路。

在一些实施方案中,本发明的锁定设备和本发明的状态机可以考虑通过外部通信接口(例如,3g蜂窝、wi-fi等)与车辆通信的外部系统的状态。

基于静态运行时环境实施器(sree)的ecu配置锁定的说明性实施例

在一些实施方案中,为了对汽车ecu或任何计算系统实施安全配置锁定,本发明的示例性锁定设备可以包括和/或被配置为本发明的sree组件,该sree组件安全地验证所有存储器访问,以确保在运行时期间不修改批准的软件包、批准的存储器映射和/或批准的硬件配置。

在一些实施方案中,本发明的示例性的sree组件可以被实现为硬件组件(无论是专用集成电路(asic)还是现场可编程门阵列(fpga)),其位于运行时和存贮存储器之前,直接互连到存储器组件(没有任何其他设备直接连接到它们(即,物理上不可旁路),并且验证所有存储器访问。在一些实施方案中,本发明的示例性sree组件可以被实现为固件组件,以安全地实施存储器锁定。在一些实施方案中,本发明的示例性sree组件可以实现为硬件和固件的组合。

在一些实施方案中,本发明的示例性sree组件被配置为保护相关联的计算系统免受运行在操作系统之上作为单独的应用程序和/或将其自身注入作为另一应用程序的一部分的恶意软件的攻击。在一些实施方案中,本发明的示例性sree组件被配置为保护相关联的计算系统免受恶意软件通过称为“权限提升”的过程获得对安全资源的访问的能力的影响。通常,“权限提升”需要攻击操作系统核心(或内核)以获得与操作系统核心相同的访问级别。在一些实施方案中,本发明的示例性的sree组件被配置为驻留在操作系统核心软件之下的bsp(板支持包)固件层的一部分。例如,通常,在嵌入式系统中,它被称为bsp,在pc中被称为bios(基本输入/输出系统)。如这里所引用的,术语“bsp”包括驻留在操作系统和硬件(包括引导加载程序)之间的任何类型的中间件。如上所述,bsp是一组驱动程序,其为操作系统访问计算系统的硬件组件提供接口。如上所述,通常,bsp可以包括用于处理器访问的驱动程序(例如,架构支持包(asp))、用于存储器访问的驱动程序(存储器管理单元、存贮存储器和运行时操作存储器)和/或用于外围设备(例如,网卡、视频卡、usb控制器等)的驱动程序。如上所述,例如,在armintegrator920t板的windriver的bsp中,flashmem.c文件包含板的闪存的设备驱动程序,并且rominit.s文件包含板的rom初始化模块,从rom开始运行的软件映像。在一些实施方案中,本发明的示例性sree组件被配置成相对于任何操作系统独立地并且不可知论地实现本文详述的ecu锁定原理。

例如,如图19所示,本发明的示例性sree组件被实现为bsp的集成组件,使得所有存储器访问操作都通过本发明的示例性sree组件来路由。在一些实施方案中,本发明的示例性的sree组件被配置成决定是允许执行存储器访问操作还是阻止存储器访问操作,从而基本上阻止攻击。在一些实施方案中,本发明的示例性sree组件被配置为至少部分地基于以下标准中的一个或多个来做出其确定:存储器请求的类型(例如,读取或写入)、目标存储器(例如,存贮或运行时)和/或正在被寻求访问的特定存储器地址或存储器地址范围。

在一些实施方案中,本发明的示例性sree组件被配置为通过拒绝对存储器(存贮或运行时两者)中的特定预定义地址范围的访问(无论是写入、读取还是两者)来实现批准的存储器映射的实施。以这种方式,如图20所示,本发明的示例性sree组件被配置成确保批准的存储器映射没有正在被无效,并且受保护的存储器区域没有正在被访问。表2示出了示例性代码,其可以由本发明的示例性sree组件用于根据图20的实施例来执行。

表2。

在一些实施方案中,本发明的示例性sree组件被配置为通过例如存储包含硬件配置并且仅允许读取操作的存储器地址列表来实现示例性批准的硬件配置的实施。例如,如图21所示,在系统引导(systemboot)(或初始化过程)期间,本发明的示例性sree组件被配置为仅在引导过程期间实施对硬件的只读访问,然后防止对这些存储空间的任何访问,从而将该存储器区段变成只读存储器(rom)。在一些实施方案中,一旦成功检索到批准的硬件配置,本发明的示例性sree组件被配置成允许操作系统或任何其他软件/固件来配置硬件组件。表3示出了示例性代码,其可以由本发明的示例性sree组件用于根据图21的实施例来执行。

表3。

在一些实施方案中,本发明的示例性sree组件被配置为通过利用至少两种机制(一种用于存贮存储器,另一种用于运行时存储器)来实现示例性批准软件包硬件配置的实施,如图22所示。在一些实施方案中,为了防止对存储在存贮存储器中的批准软件包的修改,本发明的示例性sree组件被配置成利用存储批准软件包的地址空间列表,并防止对其进行任何修改(例如,将防止所有写入访问)。在一些实施方案中,操作系统被编程为仅从这些安全地址空间加载软件,此外,本发明的示例性的sree组件也可以存储在这些安全地址空间中。例如,这些安全地址空间包括在批准的存储器映射中,并由本发明的示例性sree组件通过它来实施。

在一些实施方案中,本发明的示例性sree组件被配置为通过采用两部分方法来防止运行时存储器中的修改。运行时存储器的第一部分应仅具有读取权限,并包含运行时期间批准的软件包的可执行代码。例如,本发明的示例性sree组件在引导过程中,在没有操作系统干预的情况下,根据批准的软件包规范实施这种代码的加载。操作系统能够从运行时存储器中读取它,以便执行软件。操作系统必须包含所有批准的软件代码的地址空间的静态配置,才能执行它。软件在运行时期间使用的所有数据都应存储在运行时存储器的非受保护部分(第二部分),并对操作系统完全可用。这种分离应该是完全静态的,并且预先配置为批准的存储器映射的一部分。例如,根据批准的存储器映射,为本发明的示例性sree组件保留的存储器部分将被拒绝访问。表4示出了示例性代码,其可以由本发明的示例性sree组件用于根据图22的实施例来执行。

表4。

为了存储批准的存储器映射、批准的硬件配置和批准的软件列表,本发明的示例性sree组件被配置为使用存贮存储器的专用部分,该专用部分将被映射为不可访问的,并且仅由本发明的示例性sree组件使用,如图23所示。

在一些实施方案中,本发明的示例性sree组件被配置为使用操作系统不知道的专用硬件存贮存储器(专用硬件存贮存储器的地址空间未知或者不由存储器控制器向os反映),并且只有本发明的示例性sree组件被配置为访问专用硬件存贮存储器。

在一些实施方案中,例如,当发出存储器访问命令时,本发明的示例性sree组件被配置为根据操作类型、正在访问的存储器和/或正在访问的特定存储器地址(和/或地址范围)中的至少一个,以及通过检查存储器访问命令是否使批准的软件包无效、存储器访问命令是否使批准的存储器映射无效以及存储器访问命令是否使批准的硬件配置无效中的至少一项(或其任何子集),来验证是否执行存储器访问命令。在一些实施方案中,本发明的示例性sree组件被配置为以任何顺序执行验证。在本发明的示例性sree组件使存储器访问命令无效的情况下,本发明的示例性sree组件阻止(不允许执行)存储器访问命令,并且防止了攻击。如果本发明的示例性sree组件批准了存储器访问命令,则该操作将由本发明的示例性sree组件执行,或者被传递给另一个组件(例如,微处理器)以供本发明的示例性sree组件执行,以及由本发明的示例性sree组件或另一组件返回的任何结果(例如,存储器读取操作的结果),如图24所示。表5示出了示例性代码,其可以由本发明的示例性sree组件用于根据图24的实施例来执行。

表5。

例如,图25示出了用于存贮和运行时存储器的示例性批准的存储器映射(地址以字节为单位)。在引导过程中,软件包(或软件映像)会从存贮存储器处理到运行时存储器,以便运行。在引导过程中,访问硬件配置以配置硬件,然后将阻止访问。在引导过程完成之后(引导过程持续到ecu被打开直到操作系统被完全加载和运行之间),所有存储器访问尝试都将经历由本发明的示例性sree组件实施的验证模式,例如,如图24所示。例如,拒绝写入地址128的存贮存储器访问,但是执行从地址228的读取。当允许读取尝试时,拒绝对运行时存储器地址56的写入尝试。存贮存储器中的地址0~99应由本发明的示例性sree组件仅用于读取批准存储器映射和/或批准软件包的配置。表6示出了示例性代码,其可以由本发明的示例性sree组件用于根据图25的实施例来执行。

表6。

在一些实施方案中,本发明的示例性sree组件被配置为通过利用上述实施组件的任何组合(例如,批准存储器映射、批准软件包和批准硬件配置)来实施配置锁定。在一些实施方案中,本发明的示例性sree组件被配置为在上述实施组件之间以任何顺序执行验证。例如,本发明的示例性sree组件被配置为将上述实施组件结合在一起成为单个验证条件(而不是将它们分成三个)。例如,在一些实施方案中,批准的存储器映射和批准的硬件配置也可以在引导期间加载到运行时存储器中,并驻留在那里的受保护的存储器空间内。

例如,通过阻止对包含所有配置和可执行软件代码的存贮存储器的所有访问,本发明的示例性sree组件被配置为在恶意软件设法访问ecu的情况下提供保护。即使恶意软件设法在运行时存储器中未受保护的部分上运行,该恶意软件也无法将自己存贮在存储器中,并且在下次打开ecu时加载。因此,本发明的示例性sree组件被配置成确保,例如,一旦ecu关闭并重新打开,只有批准的软件加载并运行。本发明的示例性的sree组件被配置成确保,例如,一旦ecu被关闭,它将恢复到不包括恶意代码的预定义静态配置。

在一些实施方案中,除了实施批准的软件包和/或其他上述实施组件之外,本发明的示例性sree组件被配置为对操作系统(os)和在os上运行的任何应用程序透明。例如,如果应用程序试图访问受保护的存储器,就好像受保护的存储器不在那里一样,则该应用程序可以接收访问错误,本发明的示例性sree组件可以返回该访问错误,但是不必警告应用程序错误的实际原因。例如,仅在运行时存储器中批准软件包实施的情况下(例如,如果仅使用存贮存储器的实施,则本发明的示例性sree组件也是透明的),os必须知道如上所述的本发明的示例性sree组件。

在一些实施方案中,本发明的示例性的sree组件被配置为具有静态操作逻辑的静态组件。例如,本发明的示例性sree组件被配置为独立于操作系统(操作系统只需要知道其执行的映射,因此依赖于本发明的示例性sree组件,而不是相反)和操作系统运行应用程序的方式。在一些实施方案中,本发明的示例性sree组件被配置为仅通过验证存储器访问来实施锁定配置。

在一些实施方案中,本发明的示例性sree组件被配置成也用作固件存储器管理单元(mmu),其减少了对硬件管理单元的需要,并允许所述实施对os完全透明。os依靠存储器管理单元来提供os可访问的存储器的总地址空间。因此,如果本发明的示例性sree组件也是mmu,则本发明的示例性sree组件仅向os声明未锁定的地址范围。另外,本发明的示例性sree组件被配置为虚拟化os的存储器分配,使得一旦os决定将批准的软件加载到运行时存储器中,本发明的示例性sree组件被配置为通过加载软件、分离其代码和数据存储器来验证其确实在批准的软件中,同时向os传达它们没有分离。因此,本发明的示例性sree组件被配置成虚拟地将os希望的代码所位于的地址转换成代码驻留的实际受保护地址。

在一些实施方案中,本发明的示例性的sree组件被配置为包括至少一个微处理器和/或fpga,其连接在存储器和其余的ecu组件之间,如图26中所描述的。例如,在一些实施方案中,本发明的fpga被实现为具有与上述相同的逻辑(图21至图24),并保持批准的软件配置、批准的存储器映射和批准的硬件配置。在一些实施方案中,实施配置存储在存贮存储器中,并由本发明的fpga保护。在一些实施方案中,本发明的fpga被配置成在运行时期间决定是允许还是拒绝存储器操作,同时保持所需的存储器区段(例如,无访问、只读等)并执行将代码从存贮存储器加载到运行时存储器中的初步任务,如图22所示。

在一些实施方案中,本发明的示例性sree组件被配置为利用管理程序(hypervisor)提供存储器访问实施,以提供固件层,该固件层可以监督os和硬件之间的访问,并决定在运行时期间是允许还是拒绝存储器操作,同时(1)保持所需的存储器区段(memorysegmentation)(例如,无访问、只读等)以及(2)执行将代码从存贮存储器加载到运行时存储器的初步任务。在一些实施方案中,提供管理程序的本发明的示例性sree组件可以被配置为虚拟化os的存储器分配,使得一旦os决定将批准的软件加载到运行时存储器中,则本发明的示例性sree组件被配置为通过加载软件、分离其代码和数据存储器来验证其确实在批准的软件中,同时向os传达它们没有分离。因此,本发明的示例性sree组件可以被配置为虚拟地将os希望的代码驻留的地址转换成代码驻留的实际受保护地址。

ecu中通信网络的安全物理分离的说明性实施例

在一些实施方案中,为了实施安全通信锁定,本发明的锁定设备被配置为实施连接到本发明的锁定设备的不同互连网络之间的分离。例如,如上所述,本发明的锁定设备可以被配置为通过本发明的分离内核来实施软件级分离,强制每个通信接口驻留在其自己的分区中。

在一些实施方案中,为了在例如拒绝服务(dos)攻击的情况下实施安全通信锁定,本发明的锁定设备可以进一步被配置为在攻击者能够进入系统/设备之前实施硬件分离。

在一些实施方案中,为了实施硬件分离,本发明的示例性设备(例如,本发明修改的ecu)被配置成利用例如但不限于特定编程的现场可编程门阵列(fpga)芯片、复杂可编程逻辑设备(cpld)和/或另一类似合适的可编程硬件处理器。具体而言,本发明修改的fpga包含基本逻辑单元的矩阵,这些基本逻辑单元可以以任何方式互连,以实施在运行时期间不能改变的静态配置。例如,在一些实施方案中,本发明修改的fpga可以被配置为对于每个接口具有单独的硬件收发器。例如,用于特定接口的收发器实现通过特定接口(例如,以太网、can、most等)发送和接收数据所需的电气和电子通信协议。针对每个特定接口具有单独的收发器组允许本发明修改的fpga与连接到本发明通信锁定设备的所有不同硬件接口进行通信。例如,在一些实施方案中,收发器可以是外部专用硬件,也可以是fpga内部的片上硬件和/或半导体知识产权(ip)核心(每个核心是fpga上特定功能的逻辑、单元或芯片布局设计实现的可重用单元;要对fpga编程,可以使用定义其内部硬件组件的ip核)。

例如,本发明可以利用专用收发器,该收发器与德克萨斯仪器公司的tcan334gtm芯片相似。例如,本发明可以配置硬件,其类似于具有xilinx公司的zynq7000tm的内置fpga和can收发器的说明性片上系统。例如,本发明可以利用xilinx公司的canip核,其可以在fpga中实现,以允许通信。

本文使用的术语“收发器”是指硬件和软件的组合,其通常将总线上的模拟信号转换成数字位。例如,一些收发器也可以将这些位组装成一个分组(packet)。例如,根据本发明的每个ip核从各自的收发器接收单独的位,并根据特定的通信协议将它们组装成分组和/或消息。在一些实施方案中,通过内置收发器,通常可以同时包括两种功能(即转换和组装)。在一些实施方案中,对于外部收发器,本发明修改的fpga可以被配置为包括每个相应的ip核。例如,图29示出了示例性的外部收发器。

反过来,在一些实施方案中,本发明修改的fpga可以与运行以上详述的本发明通信锁定系统固件和软件的处理器通信,如图27所示。图10示出了组件的放大视图,该组件包括图27中标记为“安全核心”的项目。在一些实施方案中,安全核心可以包括本发明的状态机和/或批准消息字典数据库、和/或批准通信模式数据库。

例如,为了实施安全通信锁定,本发明的锁定设备可以包括本发明修改的硬件组件(例如,本发明修改的fpga)或多个组件,每个接口至少一个,这些组件根据批准消息字典和/或批准通信模式来验证通信完整性和速率;并相应地与所有需要的网络(接口)通信。在一些实施方案中,本发明修改的fpga内的本发明修改的硬件组件被静态地构造成对照批准消息字典和/或批准通信模式而例如在位级上验证通信。在一些实施方案中,为了实施安全通信锁定,本发明修改的硬件组件可以被配置为通过对照批准消息字典数据库和/或批准通信模式数据库而仅验证消息的源和/或目的地来执行所有通信和消息位的完全验证,或者部分验证。在一些实施方案中,批准消息字典数据库和/或批准通信模式数据库可以静态地存储在硬件中,作为本发明修改的fpga的一部分。

在一些实施方案中,为了实施安全通信锁定,批准消息字典被编程为本发明修改的fpga配置的一部分(例如,网络消息验证器组件的一部分),使得本发明修改的fpga在运行时完全静态。在一些实施方案中,为了实施安全通信锁定,本发明修改的fpga被配置为验证例如特定接口上的消息的批准速率、特定类型的消息等。任何不能通过验证的消息都会被丢弃(阻止),因此本发明的改进fpga被配置为阻止攻击。

在一些实施方案中,所有网络接口经由统一通信接口(例如以太网)与主机cpu通信,该统一通信接口还可以将通信转换成统一协议并返回(例如,tcp/ip)。图28示出了基于本发明修改的fpga的本发明硬件网络分离的实施例。例如,基于本发明修改的fpga的本发明硬件网络分离可以允许以下至少一项:

-增加执行速度,因为本发明修改的fpga用作仅用于特定目的的专用硬件组件,

-在物理上与所有其他接口和系统软件分离,

-从cpu上的软件组件卸载一些需要进行更复杂分析的处理(例如,在dos攻击的情况下,攻击消息在到达软件组件之前在本发明的硬件中被停止,从而防止通信溢出的推进),

-以更快的速率对照批准消息字典来实现基本检查,并且可以减少本发明的安全分离内核的负载,以及

-能够抵御各种形式的攻击,例如但不限于缓冲区溢出和代码注入。

应注意,本文描述的实施方案当然可以使用任何适当的硬件和/或计算软件语言来实现。在这方面,本领域的普通技术人员精通可以使用的一类计算机硬件、可以使用的一类计算机编程技术(例如,面向对象的编程)以及可以使用的一类计算机编程语言(例如,c++、basic、ajax、javascript)。当然,上述实施例是说明性的而非限制性的。

虽然已经描述了本发明的多个实施方案,但是应当理解,这些实施方案仅仅是说明性的,而不是限制性的,并且许多修改对于本领域普通技术人员来说是显而易见的,包括本文描述的本发明方法、本发明系统和本发明设备可以彼此任意组合使用。此外,各种步骤可以以任何期望的顺序执行(并且可以添加任何期望的步骤和/或可以消除任何期望的步骤)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1