用于车内网络入侵检测的系统和方法与流程

文档序号:17158640发布日期:2019-03-20 00:20阅读:343来源:国知局
用于车内网络入侵检测的系统和方法与流程

本公开涉及于2017年9月11日提交的美国专利号15/700,605。上文提及的申请的整个公开内容以引用并入本文。

引言

这里提供的引言是为了总体上呈现本公开的背景。当前署名的发明人的工作就其在该引言部分中所描述的以及在本说明书的其它方面的描述而言既不明确地也不隐含地被认可为是针对本公开的现有技术。

本公开涉及用于监视潜在恶意活动的网络的系统和方法,并且更具体地,涉及用于检测和响应车内网络内的潜在入侵的系统和方法。

入侵检测系统(ids)是用于基于策略违反来监视异常或恶意活动的网络流量的装置或应用软件。该系统可以向管理员报告任何检测到的活动,该管理员可以基于该报告来决定是否采取动作。



技术实现要素:

在一个特征中,提供了一种系统。该系统可以包括异常检测模块、驻留日志产生模块以及传输日志产生模块。异常检测模块可以被配置为从车辆的一个或多个通信总线获取一个或多个网络消息。一个或多个网络消息可以描述与车辆相关联的一个或多个事件。异常检测模块可以进一步被配置为基于预定义规则检测一个或多个事件中的至少一些事件是否构成异常以提供检测到的异常事件数据。驻留日志产生模块可以被配置为获取检测到的异常事件数据,并且基于检测到的异常事件数据来产生一个或多个驻留事件日志。一个或多个驻留事件日志可以包括与一个或多个检测到的异常事件相关联的元数据。传输日志产生模块可以被配置为获取一个或多个驻留日志,并且基于一个或多个驻留事件日志来产生一个或多个传输事件日志。一个或多个传输事件日志中的每一个传输事件日志都可以对应于驻留事件日志。另外,传输日志产生模块可以被配置为将一个或多个传输事件日志传输到远离车辆的计算机系统。

在一个特征中,该系统还可以包括电子控制单元(ecu)。ecu可以包括存储器。存储器可以包括一个或多个驻留事件日志中的至少一些驻留事件日志。在前述特征的一个示例中,ecu可以进一步被配置为从远离车辆的计算机系统获取日志控制命令。响应于获取日志控制命令,ecu可以执行以下至少一个动作:(i)擦除一个或多个驻留事件日志的至少一个驻留事件日志;和/或(ii)调整一个或多个驻留事件日志中的至少一个驻留事件日志的存储器分配。

在一个示例中,该系统的传输日志产生模块进一步被配置为从远离车辆的计算机系统获取日志控制命令。响应于获取日志控制命令,传输日志产生模块可以执行以下至少一个动作:(i)将一个或多个驻留事件日志中的至少一个驻留事件日志传输到远离车辆的计算机系统;(ii)在传输之前调整一个或多个驻留事件日志中的至少一个驻留事件日志的内容;(iii)调整与传输日志产生模块相关联的日志传输速率,其中日志传输速率描述将传输事件日志从传输日志产生模块传输到远离车辆的计算机系统的频率;和/或(iv)限制一个或多个传输事件日志的数据大小。

在另一个特征中,该系统可以包括补救动作模块。补救动作模块可以被配置为从远离车辆的计算机系统获取入侵响应命令。响应于获取入侵响应命令,补救动作模块可以执行以下至少一个动作:(i)限制来自一个或多个通信总线中的至少一个通信总线的通信;和/或(ii)点亮车辆的故障指示灯(mil)。

在一个特征中,一个或多个驻留事件日志的每一个驻留事件日志可以包括清单和一个或多个事件日志条目。一个或多个事件日志条目中的每一个事件日志条目可以对应于违反一个或多个预定义规则。在前述特征的一个示例中,该清单可以包括(i)软部件参考标号,其识别给定的驻留事件日志所对应的预定义规则的规则集;以及(ii)总规则违反简要,其描述针对由软部件参考标号定义的给定规则集内的所有规则违反所记录的事件总数。在前述特征的另一个示例中,一个或多个事件日志条目中的每一个事件日志条目都可以包括以下一个或多个:(i)所违反的预定义规则;(ii)违反预定义规则的次数;(iii)违反预定义规则的时间帧;(iv)违反规则的网络消息;和/或(v)关于事件的历史数据,其中历史数据可以包括描述违反规则的特定时间的时间戳和违反规则时的车辆状态中的一个或多个。

在另一个特征中,一个或多个网络消息可以包括以下一个或多个:(i)来自车辆的一个或多个can总线的控制器局域网(can)消息;和/或(ii)来自车辆的一个或多个以太网总线的以太网消息。

在一个特征中,预定义规则可以至少部分地基于车辆的操作状态参数。在前述特征的一个示例中,车辆的操作状态参数可以包括以下至少一些参数:(i)车辆的速度;(ii)车辆的操作模式;(iii)车辆的动力模式;(iv)车辆的变速器挡位选择器的状态;和/或(v)与车辆结合的测试工具的存在。

在另一个特征中,该系统可以包括远离车辆的计算机系统。在前述特征的一个示例中,远离车辆的计算机系统可以被配置为响应于从传输日志产生模块接收传输事件日志而产生确认信号,并且通过无线通信信道将确认信号传输到车辆。

在一个特征中,异常检测模块可以被配置为通过确定与给定事件相关联的给定网络消息是否在车辆网络上可见来基于预定义规则检测一个或多个事件中的至少一些事件是否构成异常。在前述特征的一个示例中,异常检测模块可以被配置为当确定消息在车辆网络上可见时检测到异常。在前述特征的一个示例中,异常检测模块可以被配置为当确定消息在车辆网络上不可见时检测到没有异常。

在另一个特征中,一个或多个网络消息中的每一个网络消息与相应的消息id相关联。在该特征中,异常检测模块可以被配置为通过确定任何预定义规则是否对应于给定消息id并且响应于确定预定义规则对应于给定消息id而将与预定义规则相关联的允许状态与车辆的当前状态进行比较来基于预定义规则检测一个或多个事件中的至少一些事件是否构成异常。在前述特征的一个示例中,异常检测模块可以被配置为当车辆的当前状态不对应于预定义规则的允许状态时检测到异常。在前述特征的另一个示例中,异常检测模块可以被配置为当车辆的当前状态对应于预定义规则的允许状态时检测到没有异常。

在一个特征中,一个或多个传输事件日志中的每一个传输事件日志都可以包括比其对应的驻留事件日志更少的元数据。

从具体实施方式、权利要求书和附图将会清楚本公开的其它应用领域。应当理解的是,具体实施方式和具体示例仅旨在用于说明目的,而不旨在限制本公开的范围。

附图说明

通过具体实施方式和附图将更完全地理解本公开,其中:

图1是说明入侵检测系统(ids)的示例的功能框图;

图2是说明驻留事件日志和/或传输事件日志的示例性数据结构的图;

图3是说明驻留事件日志的清单的示例性数据结构的图;

图4是说明传输事件日志的清单的示例性数据结构的图;

图5是说明用于产生传输事件日志的示例性方法的流程图;

图6是说明用于控制事件日志的管理的示例性方法的流程图;

图7是说明用于响应于检测到车内网络内的入侵而采取补救动作的示例性方法的流程图;

图8是说明用于执行车内网络入侵检测的系统和对应的通信协议的功能框图;

图9是说明用于在车辆与远程计算系统之间进行通信以执行车内网络入侵检测的示例性方法的流程图;

图10是用于存储车辆操作状态参数的存储器的示例性数据结构;

图11是说明用于执行异常检测的方法的流程图;

图12是说明用于执行结合车辆操作状态参数的异常检测的方法的流程图;

图13是说明用于基于关于控制器局域网(can)分组转发策略的预定义规则来执行异常检测的方法的流程图;

图14是说明用于基于关于允许的车辆状态策略的预定义规则来执行异常检测的方法的流程图;以及

图15是说明入侵检测系统的另一个示例的功能框图。

在附图中,可以重复使用附图标记以标识类似和/或相似的元件。

具体实施方式

可以使用与“不良”行为和潜在威胁相关联的模式或者通过定义或学习统计上有界的“良好”行为来定义网络策略规则。在运输系统的背景下,可以设计入侵检测系统(ids)以识别可能指示性能“微调”或网络攻击的存在的异常车内网络活动。

现在参考图1,示出了ids100。ids100包括车辆102和远程计算系统104。虽然车辆102可以是任何合适类型的车辆,但是在图1的示例中,车辆102构成汽车。车辆102可以经由本领域中已知的任何合适的无线网络无线连接到远程计算系统104。在一个示例中,远程计算系统104可以由一个或多个服务器计算机等来实施。

在图1中所示的示例中,车辆102包括异常检测模块108、驻留日志产生模块110、电子控制单元112、传输日志产生模块114、一个或多个控制器局域网(can)总线106、一个或多个以太网总线142、补救动作模块104以及故障指示灯(mil)150。远程计算系统104包括入侵检测模块116、入侵响应模块118以及日志控制模块120。

在操作中,系统100可以如下运行以检测车辆102的网络内的入侵。车辆102的异常检测模块108被配置为从车辆的一个或多个通信总线(诸如can总线106和/或以太网总线142)获取(即,取得或接收)一个或多个网络消息148。网络消息148可以包括can消息128和/或以太网消息144。网络消息148可以描述与车辆相关联的一个或多个事件。如本文所使用,事件可以包括在车辆的机械、电气或软件系统内发生的任何活动。作为示例而非限制,事件可以包括机械故障、电气故障、消息的产生,或可能潜在地指示车辆102的网络的入侵的任何其它活动。在一个示例中,机械故障可能包括车辆中的错误布线。

另外,异常检测模块108被配置为基于预定义规则122来检测一个或多个事件中的至少一些事件是否构成异常。如果事件发信号通知车辆内发生异常的、独特的和/或意外活动,则可以检测到事件构成异常。异常检测模块108可以通过将描述特定事件的信息与预定义规则122进行比较来检测该事件是否构成异常,该预定义规则建立异常和非异常行为的边界。

根据一些示例,预定义规则122可以至少部分地基于车辆102的操作状态参数。作为示例而非限制,操作状态参数可以包括(i)车辆102的速度;(ii)车辆102的操作模式(例如,青少年驾驶员模式等);(iii)车辆102的动力模式;(iv)车辆102的变速器挡位选择器的状态(机,“prndl”);和/或(v)与车辆102结合的测试工具的存在(例如,诊断工具的存在)。

根据其它示例,预定义规则122可以另外或替代地基于与车辆相关联的一个或多个网络设计参数。网络设计参数可以包括网络id、消息传输速率、分配的网络和/或消息长度。

在一些实施方案中,异常检测模块108被配置为通过确定与给定事件相关联的给定网络消息是否在车辆102的网络上可见来基于预定义规则122检测给定事件是否构成异常。如果确定网络消息确实在车辆的网络上可见,则根据一些示例,异常检测模块108可以检测异常。如果确定网络消息在车辆的网络上不可见,则根据一些示例,异常检测模块108可以检测到没有异常。

在一些示例中,一个或多个网络消息148中的每一个网络消息都与消息id相关联,并且异常检测模块108被配置为通过确定是否任何预定义规则122对应于给定消息id来基于预定义规则122检测给定事件是否构成异常。如果预定义规则确实对应于给定消息id,则异常检测模块108被配置为将与预定义规则相关联的允许状态与车辆102的当前状态进行比较。如果车辆102的当前状态不对应于预定义规则的允许状态,则异常检测模块108可以检测到异常。然而,如果车辆102的当前状态对应于预定义规则的允许状态,则异常检测模块108可以检测到没有异常。

在确定一个或多个事件中的一些事件构成异常时,异常检测模块108可以产生描述异常事件的异常事件数据130。驻留日志产生模块110可以获取异常事件数据130以供进一步处理。更具体地,驻留日志产生模块110可以被配置为基于检测到的异常事件数据130而产生一个或多个驻留事件日志126。驻留事件日志126可以包括与一个或多个检测到的异常事件相关联的元数据。作为给定的驻留事件日志的一部分而包括的特定类型的元数据在图2到3中说明并且在下面进一步详细讨论。

根据一些实施方案,车辆102还可以包括电子控制单元(ecu)112。ecu可以从驻留日志产生模块110获取驻留事件日志126,并且将驻留事件日志126存储在存储器124中。虽然根据一些实施方案示为与异常检测模块108、驻留日志产生模块110、传输日志产生模块1154以及补救动作模块140分离的元件,但是前述模块108、110、114和140中的一个或多个可以被实施为ecu112的一部分。例如,根据一些实施方案,ecu112可以包括一个或多个微控制器,其被配置为执行存储在存储器124中的可执行指令以执行归于模块108、110、114和140的一些或全部功能。

传输日志产生模块114被配置为从ecu112获取驻留事件日志126,并且基于驻留事件日志而产生一个或多个传输事件日志132。每个单独的传输事件日志可以对应于驻留事件日志。给定的传输事件日志可以对应于给定的驻留事件日志,其中传输事件日志将包括作为驻留事件日志的一部分包括的一些或全部元数据。在一些实施方案中,给定的传输事件日志可以包括比其对应的驻留事件日志更少的元数据。以此方式,可以最小化与将传输事件日志从车辆102传输到远程计算系统104相关联的数据传输成本。根据一些实施方案,传输事件日志与其对应的驻留事件日志共享的公共数据的量可以基于例如从远程计算系统104发出的命令而变化,如下面进一步详细讨论的。在一些示例中,给定的传输事件日志可以包括其对应的驻留事件日志中所包括的所有元数据。

传输事件日志产生模块进一步被配置为将传输事件日志132传输到远程计算系统104以供进一步处理。

远程计算系统104的入侵检测模块116被配置为从车辆102的传输事件日志产生模块114获取传输事件日志132。一旦获取了传输事件日志132,入侵检测模块116被配置为基于传输事件日志132而确定在车辆网络内是否发生了入侵。根据一些示例,入侵检测模块116可以利用基于规则的方法来执行入侵检测,其中根据预定义规则和/或策略来分析传输事件日志132以检测入侵。根据其它示例,入侵检测模块116可以采用监督的或无监督的机器学习技术来基于传输事件日志132检测入侵。

在检测到入侵时,入侵检测模块116被配置为产生入侵检测数据134。入侵检测数据134包括描述入侵本质的数据。入侵检测模块116进一步被配置为将入侵检测数据134传输到入侵响应模块118和日志控制模块120以供进一步处理。

入侵响应模块118被配置为获取入侵检测数据134并且响应于此而产生入侵响应命令118。入侵响应命令136被配置为指示车辆采取一些肯定动作来解决或减轻检测到的入侵的影响。

车辆的补救动作模块140被配置为获取入侵响应命令136并且响应于此而实现一些补救动作。更具体地,补救动作模块140可以例如限制来自一个或多个通信总线(例如,一个或多个can总线或一个或多个以太网总线)的通信或者引起点亮故障指示灯(mil)150。

日志控制模块120被配置为获取入侵检测数据134并且响应于此而产生日志控制命令138。日志控制命令138被配置为指示车辆定义和/或修改驻留事件日志126和/或传输事件日志132被存储、产生、传输等的方式。

根据一些实施方案,ecu112被配置为获取日志控制命令138并且作为响应而采取以下一个或多个动作:(i)从存储器124中擦除一个或多个驻留事件日志126中的至少一个驻留事件日志和/或(ii)针对一个或多个驻留事件日志126中的至少一个驻留事件日志来调整存储器124内的存储器分配。

根据一些示例,传输日志产生模块114被配置为获取日志控制命令138并且作为响应而采取以下一个或多个动作:(i)将一个或多个驻留事件日志126中的至少一个驻留事件日志传输到远程计算系统104;(ii)在传输到远程计算系统104之前调整一个或多个驻留事件日志126中的至少一个驻留事件日志的内容;(iii)调整与传输日志产生模块114相关联的日志传输速率,其中日志传输速率描述将传输事件日志132从传输日志产生模块114传输到远程计算系统104的频率;和/或(iv)限制一个或多个传输事件日志132的数据大小。

现在参考图2,示出了用于驻留事件日志和/或传输事件日志的示例性数据结构200。根据一些示例,驻留事件日志和传输事件日志通常可以具有相同的数据结构。然而,在许多情况下,除其它原因之外,传输事件日志将包括比其对应的驻留事件日志更少的数据以用于减轻与通过一个或多个无线网络将信息传输到远程计算系统相关联的费用。数据结构200包括具有循环冗余校验(crc)204的清单202和包括一个或多个事件日志条目的事件日志206。清单202可以包括数据结构200的细节以及关于是否发生新事件的细节。crc204可以包括基于其内容的多项式除法的余数而附加的校验值,从而允许在数据结构200的传输期间引入误差时恢复一些或全部数据结构200。每个事件日志条目都可以包括关于违反一个或多个预定义规则(例如,图1的预定义规则122)的细节。

每个事件日志条目都可以包括违反规则id208、总违反计数器210、发生违反的时间帧212、违反规则的网络消息214,以及历史数据216。给定事件日志条目的违反规则id208部分可以包括共同构成规则策略的多个规则中被违反的特定规则的标识。给定事件日志条目的总违反计数器210部分可以包括表示已经违反正讨论的规则的次数的计数器。给定事件日志条目的发生违反的时间帧212部分可以包括(i)指示发生规则违反的第一时间的第一时间戳(例如,协调世界时(utc)格式)和(ii)指示发生规则违反的最近时间的第二时间戳(例如,utc格式)。违反给定事件日志条目的规则214部分的网络消息可以包括指示违反正讨论的规则的特定网络消息的标识(例如,消息id)。最后,给定事件日志条目的历史数据216部分可以包括提供正讨论的规则违反的历史时间线的信息,包括但不限于:(1)网络消息时间戳,其提供违反正讨论的规则的时间的指示,(2)识别在车辆网络上得到正讨论的消息的网络id的消息id,以及(3)包括在违反正讨论的规则时的车辆状态参数的消息车辆状态信息。

图3说明了驻留事件日志清单300的数据结构的一个示例。驻留事件日志清单300包括规则集302和新记录的事件突出显示306。规则集302包括软部件参考标号304。软部件参考标号304识别驻留事件日志所对应的规则集。在规则集构成基于校准的规则集的示例中,软部件参考标号304可以包括相关校准文件的部件标号。在规则集构成符合基于应用程序代码的规则集的数据的示例中,软部件参考标号304可以包括对相关应用程序代码的部件标号的引用。新记录的事件突出显示306包括总规则违反308部分。总规则违反308包括针对由软部件参考标号304定义的给定规则集内的所有规则违反所记录的事件总数的简要。

图4说明了传输事件日志清单400的数据结构的一个示例。传输事件日志清单400包括日志类型标识符402、规则集410、时间窗口412、车辆标识符422以及crc424。

日志类型标识符402包括消息类型信息404和日志格式信息406。消息类型信息404包括给定消息的功能的标识。根据一些示例,消息类型404可以将正讨论的消息指示为(i)保留,(ii)反映来自特定微控制器的特定核心的事件日志,(iii)反映来自特定微控制器的特定核心的非事件日志(例如,消息),或者更广泛地,指示为仅仅从特定微控制器发出,(iv)反映来自远离车辆的远程计算系统的非事件日志(例如,消息),以及(v)反映健康状态日志。日志格式信息406定义消息中所包括的数据的格式。

规则集410包括软部件的部件标号408。软部件的部件标号408识别传输事件日志所对应的规则集。在规则集构成基于校准的规则集的示例中,软部件的部件标号408可以包括相关校准文件的部件标号。在规则集构成符合基于应用程序代码的规则集的数据的示例中,软部件的部件标号408可以包括对相关应用程序代码的部件标号的引用。

时间窗口412包括startrecord时间414和nextstartrecord时间416。startrecord时间414可以包括提供传输事件日志的起始点的指示的时间戳(例如,utc格式)。nextstartrecord时间416可以包括提供针对传输到远程计算系统调度的下一个传输事件日志的起始点的指示的时间戳(例如,utc格式)。

车辆标识符422包括vin标号418和唯一id标号420。vin标号418识别传输清单400所属的传输事件日志的车辆。唯一id标号420识别传输清单400所属的传输事件日志的车辆的ecu。

最后,crc424可以包括基于其内容的多项式除法的余数而附加的校验值,从而允许在传输事件日志清单400的传输期间引入误差时恢复一些或全部清单。

现在参考图5,提供了说明根据本文提供的示例的用于产生传输事件日志的方法500的流程图。方法500开始于502,其中从车辆的一个或多个通信总线获取一个或多个消息。一个或多个消息可以描述与车辆相关联的一个或多个事件。在504处,方法500涉及基于预定义规则检测至少一些事件是否构成异常以便提供检测到的异常事件数据。在506处,基于检测到的异常事件数据而产生一个或多个驻留事件日志。一个或多个驻留日志可以包括与检测到的异常事件相关联的元数据。最后,在508处,基于驻留事件日志而产生一个或多个传输事件日志。每个传输事件日志都可以对应于驻留事件日志。另外,根据一些实施方案,一个或多个传输事件日志中的每一个传输事件日志都可以包括比其对应的驻留事件日志更少的元数据。在508之后,该方法结束。

现在参考图6,提供了说明用于控制事件日志的管理的方法600的流程图。方法600开始于502。以与关于图5所述的大致上同的方式执行步骤502到508。因此,从步骤602开始,方法600包括确定是否已获取日志控制命令。根据一个示例,可以将日志控制命令从远程计算系统传输到车辆以控制事件日志的管理。如果尚未获取日志控制命令,则方法600返回到502并且可以重复步骤502到508。然而,如果已经获取了日志控制命令,则方法600可以进行到604、606、608、610、612和614中的一个或多个以供进一步处理。

在602之后,可以执行在604、606、608、610、612和614处阐述的一个或多个动作。另外,可以串行地或并行地执行一个或多个动作。在604、606、608、610、612和614处阐述的动作可以表示例如在车辆从远程计算系统获取控制命令时该车辆可用的各种选项。在604处,可以从存储器(例如,车辆的易失性或非易失性存储器)中擦除一个或多个驻留事件日志。在606处,可以针对一个或多个驻留事件日志来调整存储器分配。根据一个示例,调整存储器分配可以包括改变一个或多个驻留事件日志存储在物理或虚拟存储器中的位置。在608处,可以将一个或多个驻留事件日志或传输事件日志从车辆传输到远程计算系统。在610处,可以在从车辆传输到远程计算系统之前调整一个或多个驻留事件日志或传输事件日志的内容。在612处,可以调整日志传输速率。日志传输速率可以描述将传输事件日志从车辆传输到远程计算系统的频率。最后,在614处,可以限制一个或多个传输事件日志的数据大小。在执行604、606、608、610、612和614中的任何一个、一些或全部之后,方法600结束。

现在参考图7,提供了说明用于响应于检测到车内网络内的入侵而采取补救动作的方法700的流程图。方法700开始于502。以与关于图5所述的大致上同的方式执行步骤502到508。因此,从步骤702开始,方法700包括确定是否已经例如通过远离远程计算系统的车辆来获取入侵响应命令。如果尚未获取入侵响应命令,则方法700返回到502并且可以重复步骤502到508。然而,如果已经获取入侵响应命令,则方法700可以进行到704和/或706以供进一步处理。

在702之后,可以串行地或并行地执行在704和706处阐述的一个或多个动作。在704和706处阐述的动作可以表示例如在车辆从远程计算系统获取入侵响应命令时该车辆可用的各种选项。在704处,可以限制来自车辆的一个或多个通信总线(例如,can总线和/或以太网总线)的通信。在706处,可以点亮故障指示灯(mil)。被点亮的mil灯可以例如向车辆乘员发信号通知需要注意车辆(例如,网络入侵者)存在问题。在704和/或706之后,方法700结束。

现在转到图8,示出了用于在车辆102与远程计算系统104之间进行通信的系统800和相关通信协议。车辆102和远程计算系统104可以大致上类似于关于上面在图1示出和描述的车辆102和远程计算系统104。图8的示例性车辆102与图1的示例的不同之处在于图8的车辆102被示为包括中央网关模块(cgm)802和无线传输器804。cgm802可以包括第一微控制器806和第二微控制器808。另外,cgm802的第一微控制器806可以包括第二核心810和第一核心812。根据一些示例性实施方案,第二核心810和第一核心812可以访问共享的、安全的存储器(未示出),其尤其用于驻留事件日志和/或传输事件日志的产生、存储和传输等。

第二微控制器808可以经由一个或多个合适的有线或无线通信信道通信地连接到无线传输器804。类似地,第二微控制器808可以经由一个或多个合适的有线或无线通信信道通信地连接到第一微控制器806。无线传输器804被配置为使用一个或多个合适的通信协议(例如,vcp/tcp等)通过一个或多个无线通信网络与远程计算系统104进行通信。

根据一些示例性实施方案,系统800的部件可以如下彼此通信。在814处,第一微控制器806的第二核心810可以产生传输事件日志并且将其传输到第一微控制器806的第一核心812。然后,第一微控制器806的第一核心812可以将传输事件日志814转发到第二微控制器808。在接收到传输事件日志814时,第二微控制器808可以(i)产生确认816,其确认成功接收到传输事件报告814;(ii)将确认816传输到第一微控制器806的第一核心812;以及(iii)将传输事故报告814转发到无线传输器804。在接收到确认816时,第一核心812可以将确认816转发到第一微控制器806的第二核心810。

无线传输器804可以从第二微控制器808接收传输事件日志814,并且通过一个或多个无线网络将相同的传输事件日志814转发到远程计算系统104。在从车辆102的无线传输器804接收到传输事件日志814时,远程计算系统104可以(i)产生确认818,其确认成功接收到传输事故报告814;(ii)将确认818传输到车辆102的无线传输器804;(iii)产生命令820;以及将命令820传输到车辆102的无线传输器804。命令820可以包括日志控制命令和入侵响应命令中的至少一个。确认818和命令820都可以经由包括无线传输器804、第二微控制器808以及第一微控制器806的第一核心812的中间设备从远程计算系统104上游转发回到第二核心810。

在接收到命令820时,第一微控制器的第二核心810可以(i)产生确认822,其确认成功接收到命令820,以及(ii)将确认822传输到第一核心812。然后,第一核心812可以经由包括第二微控制器808和无线传输器804的中间设备将确认822转发到远程计算机系统104。

上门关于图8讨论的系统800和通信协议在车内网络入侵检测的背景中提供了几个优点。首先,系统800的架构允许从将某些入侵检测功能(诸如异常检测)与网络连接隔离以降低直接远程攻击的可能性。例如,根据一个实施方案,异常检测和驻留事件日志/传输事件日志产生可以由第二核心810完成,该第二核心可以通过诸如第二微控制器808和无线传输器804等中间设备部件与直接车外通信来通信地隔离。另外,根据一些示例性实施方案,第一微控制器806未被设置有能够将事件日志(例如,传输事件日志)直接传输到远程计算系统104的网络堆栈。这可以降低第一微控制器806的复杂性和费用。相反地,第二微控制器804可以是作为cgm802的一部分包括的单独微控制器,其包括能够(例如,经由无线传输器804)将事件日志传输到远程计算系统104的网络堆栈。未能隔离第一微控制器806可能潜在地针对直接远程攻击的可能性打开门控和异常检测功能。另外,确认(例如,确认818、818、822等)的使用通过确保通信(例如,传输事件日志)到达其预期目的地来提高系统的可靠性。因此,关于图8公开的架构和通信协议可以提供端对端通信系统800,根据一些示例,该端对端通信系统确保在开放系统互连(osi)模型的第4层使用特定通信路径,而其它系统可能仅确保可靠路径从各种选项中使用(通常在osi模型的第2层进行处理)。

现在参考图9,提供了说明用于在车辆与远程计算系统之间进行通信以执行车内网络入侵检测的方法900的流程图。方法900开始于902,其中在第一微控制器中产生传输事件。在904处,将传输事件日志从第一微控制器传输到第二微控制器。在906处,第一微控制器等待来自第二微控制器的接收到传输事件日志的确认。在908处,确定第一微控制器是否从第二微控制器接收到确认。

如果没有接收到确认,则方法900进行到910并且确定是否已经发生超时(即,在从传输事件日志传输从第一微控制器传输到第二微控制器之后是否已经经过了预定时间量)。如果发生超时,则方法900返回到904,并且将传输事件日志从第一微控制器重新传输到第二微控制器。如果没有发生超时,则方法900返回到906,并且第一微控制器等待来自第二微控制器的确认。

在908处,如果第一微控制器从第二微控制器接收到确认,则方法900进行到912。在912处,第二微控制器等待来自远程计算系统的确认(例如,远程计算系统接收到从第二微控制器传输到第一微控制器的传输事件日志(未在图9中示出的步骤)的确认)。在914处,确定第二微控制器是否从远程计算系统接收到确认。

如果没有接收到确认,则方法900进行到916并且确定是否已经发生超时(即,在从传输事件日志传输从第二微控制器传输到远程计算系统之后是否已经经过了预定时间量)。如果发生超时,则方法900返回到904,并且将传输事件日志从第一微控制器重新传输到第二微控制器。如果没有发生超时,则方法900返回到912,并且第二微控制器等待来自远程计算系统的确认。在914之后,该方法900结束。

图10说明了用于存储车辆操作状态参数的存储器的示例性数据结构1000。根据一些示例,数据结构1000可以存储在可由执行异常检测的入侵检测系统的部件(例如,图1的异常检测模块108、图8的第一微控制器806等)访问的一个或多个寄存器中。以此方式,可以在确定是否已经违反被视为异常检测的一部分的任何预定义规则时考虑车辆操作状态参数。如所示,数据结构1000可以保留多个位和/或字节的数据以表达关于车辆状态的以下类型的信息:(i)呈现能力是否有效;(ii)驾驶员模式a或驾驶员模式b是否有效;(iii)青少年驾驶员模式是否有效;(iv)测试工具目前是否连接到车辆;(v)cgm安全访问状态;(vi)车速;(vii)车辆动力模式;以及(viii)变速器挡位选择器的状态(即“prndl”状态)。

对前述车辆操作状态参数的考虑可以通过提供围绕潜在规则违反的背景来帮助异常检测,从而允许改进的网络事件分类。根据一些实施方案,异常检测可以结合布尔运算(例如,and/or运算)以定义灵活的逻辑表达式,其能够将网络消息与性能设计参数、消息有效载荷、车辆操作状态条件、发生频率以及具有在定义完整逻辑表达式中的适当符号所忽略的表达式时不需要的元素的网络响应结合。

除了其它优点之外,在执行异常检测时结合车辆的操作状态参数可以包括(i)减少可能产生的误报数量的能力(即,在事件实际上并不是异常或者实际上并不表示入侵时的异常事件的检测)和(ii)网络入侵规则的产生,其能够在异常使用的背景中设置正常行为以支持反车辆盗窃和欺诈动机。

图11到12提供了如何考虑车辆操作状态参数可以提高异常和入侵检测的示例。更具体地,图11是说明用于在不利用车辆操作状态参数的情况下执行异常检测的方法的流程图,而图12是利用车辆操作状态参数执行异常检测的方法。

关于图11的流程图,方法1100开始于1102,其中模式0x28在功能上从can总线6广播。模式0x28是指限制车辆的一个或多个网络总线上的通信的统一诊断服务(uds)状态。在1104处,车辆的cgm将can通信传递到异常检测模块。在1106处,异常检测模块基于例如预定义规则来检测can通信是否是对抗性的。在1008处,作为异常检测过程的一部分,确定模式0x28是否源自诊断总线(诸如can总线6或can总线7)。如果模式0x28确实源自诊断总线,则方法1100进行到1110,其中确定模式0x28可以反映服务例程并且没有检测到异常行为。在1110之后,方法1100可以结束。然而,如果模式0x28不是源自诊断总线,则方法1100进行到1112,其中确定模式0x28源自can1并且检测到异常行为。在1112之后,方法1100可以结束。

现在转向图12,提供了另一种方法1200。步骤1102到1112大致上根据上面关于图11所阐述的那些步骤的描述来进行。然而,方法1200结合使用从1202开始的车辆操作状态参数以提高异常检测的准确性。具体地,在1108处确定模式0x28确实源自诊断总线之后,方法1200进行到1202,其中确定模式0x28可以反映服务例程并且没有检测到异常行为。

然而,代替在该步骤之后结束(如图11的方法1100中的情况)的是,方法1200进行到1204,其中确定在车辆变速器处于驱动挡时是否发生0x28。如果是,则方法1200进行到1206,其中确定0x28应当仅在车辆变速器处于停车挡时发生,并且检测并记录异常行为。如果在车辆变速器未处于驱动挡时确定发生了0x28,则方法1200进行到1208,其中确定在车速超过每小时3千米(kph)时是否发生0x28。(虽然3kph是在该示例中使用的阈值,但是本领域一般技术人员将明白的是,可以结合任何合适的速度阈值作为该步骤的一部分而不偏离本文的教导)。

如果在车速超过3kph时发生0x28,则方法1200进行到1210,其中确定0x28应当仅在车辆静止时发生,并且检测并记录异常行为。如果在车速不超过3kph时确定发生了0x28,则方法1200进行到1212,其中确定没有检测到异常行为。在1210或1212之后,方法1200结束。

参考图13,提供了说明用于基于关于can分组转发策略的预定义规则来执行异常检测的方法1300的流程图。虽然图13中所示的示例适用于can分组转发策略,但是一般技术人员将认识到方法1300可以同等地适用于其它类型的网络消息,诸如以太网消息等。另外,方法1300假设执行异常检测的系统的部件接收所有网络消息以及cgm具有或将要转发的所有消息。在图13中反映的can分组转发策略反映可以例如确保在不使用cgm的情况下在车辆网络内路由的任何消息都将被检测为异常。

方法1300开始于1302,其中获取can消息。在1304处,确定can消息是否被成功传输。如果是,则方法1300进行到1306,其中检测到没有违反任何预定义规则并且系统等待下一个can消息。然而,如果在1304处确定can消息未被成功传输,则方法1300进行到1308。在1308处,确定是否在车内网络中得到can消息。如果否,则方法1300返回到1304。然而,如果在车内网络上得到can消息,则方法1300进行到1310,其中确定违反了预定义规则(这可能导致检测到异常)。在1310之后,该方法结束。

现在参考图14,提供了说明用于基于关于允许的车辆状态策略的预定义规则来执行异常检测的方法1400的流程图。虽然图14中所示的示例适用于can消息,但是一般技术人员将认识到方法1400可以同等地适用于其它类型的网络消息,诸如以太网消息等。

方法1400开始于1402,其中获取具有can_id的can消息。在1404处,确定can-id是否与预定义规则相关联。如果否,则方法1400进行到1406,其中没有检测到违反,并且系统等待下一个can消息。然而,如果确定can_id与规则相关联,则方法1400进行到1408,其中确定相关规则的允许状态是否与车辆的当前状态匹配。如果是,则方法1400进行到1410,其中没有检测到违反并且系统等待下一个can消息。然而,如果确定相关规则的允许状态与车辆的当前状态不匹配,则方法1400进行到1412,其中检测到规则违反。在1406、1410和1412之后,方法1400结束。

现在参考图15,示出了用于在车内网络中执行入侵检测的系统1500的另一个示例。系统1500包括经由无线网络1510无线连接到远程计算系统104的车辆102。图15的系统1500类似于图1的系统100和图8的系统800。然而,除其它之外,图15的系统1500还说明了关于cgm802的附加细节。更具体地,图15说明了cgm802的架构,其允许受挑战网络中的节点(即,第一微控制器806的第二核心810)监视在功能上与其隔离的网络。另外,图15说明了可以利用第一微控制器806的第二核心810和第一核心812之间共享的共享存储器1502来使网络消息对与网络隔离的节点安全可见的方式。参考图15和以下讨论,其它优点将变得显而易见。

如上所述,车辆102可以包括cgm802和连接到cgm802的无线传输器804。无线传输器804可以被配置为经由无线网络1510向远程计算系统104传输消息、信号、命令等(和从该远程计算系统获取消息、信号、命令等)。

cgm802可以包括第一微控制器806和第二微控制器808。根据一些示例性实施方案,每个微控制器806、808都可以构成32位微控制器。然而,在不偏离本文的教导的情况下,可以在本公开的背景中同等地采用其它合适的微控制器架构。根据一些示例,cgm802可以被实施为一个或多个ecu等。

第一微控制器806可以包括第一核心812、第二核心810以及连接到第一核心812和第二核心810的存储器1502。第一核心812可以连接到一个或多个can总线106和/或一个或多个以太网总线142,以便从其中获取网络消息148。根据一些示例,第一核心812可以被配置为将网络消息148写入存储器1502(例如,共享存储器1506),使得可以由第二核心810访问和分析消息以用于根据本公开的教导执行异常检测。根据一些示例,共享存储器1506可以仅可由第一微控制器806的第一核心812和第二核心810直接访问以保护入侵检测系统1500本身免受网络攻击等的危害。

存储器1502可以包括安全随机存取存储器(ram)1504和安全非易失性存储器(nvm)1512。安全ram1504可以被实施为任何合适类型的ram,包括但不限于sram、dram、fpmdram、edodram、sdram、ddrsdram、rdram、cmosram等。安全ram1504可以包括在第一微控制器806的第一核心812和第二核心810之间共享的共享存储器1506。安全ram1504还可以存储一个或多个驻留事件日志126和/或一个或多个传输事件日志132。驻留事件日志126和/或传输事件日志132可以由第二核心810写入安全ram1504,例如,作为异常检测之后的事件日志产生过程的一部分。

安全nvm1512可以被实施为任何合适类型的nvm,包括但不限于闪存、rom、铁电ram、磁存储装置、光盘等。安全nvm1512可以包括一个或多个驻留事件日志126和/或一个或多个传输事件日志132。根据一些实施方案,驻留事件日志126和/或传输事件日志132可以从安全ram1504传输或备份到安全nvm1512。例如,第二核心810可以被配置为在存储器1502断电之前(例如,响应于车辆点火被关闭等)将驻留事件日志126和/或传输事件日志132写入安全nvm1512。虽然前述示例设想第二核心810在存储器1502断电之前将驻留事件日志126和/或传输事件日志132写入安全nvm1512,但是本公开同样设想其它非断电场景,其中第二核心810将驻留事件日志126和/或传输事件日志132写入安全nvm1512。

第二微控制器808可以经由任何合适的通信信道连接到第一微控制器806,并且可以被配置为促进第一微控制器806与远程计算系统104之间的通信。更具体地,根据一些示例,第一微控制器806不包括网络堆栈(并且因此不能在车内网络外部进行通信),而第二微控制器808确实包括网络堆栈1508。网络堆栈1508允许第二微控制器808通过无线传输器804在车辆102外部的网络(例如,无线网络1510)上进行通信。以此方式,第二微控制器808可以用作第一微控制器806与车辆102外部的网络之间的接口或网关。

在操作中,系统1500可以如下运行以检测车辆102的网络内的入侵。第一微控制器806的第一核心812可以从车辆的一个或多个通信总线(例如,can总线106和/或以太网总线142)获取网络消息148。从通信总线获取的网络消息148可以从车辆中的其它部件(未示出)发出,该部件包括但不限于数据链路连接器(dlc),诸如obd-ii、中央控制台。网络消息148可以描述与车辆相关联的一个或多个事件,如上面关于图1更全面地解释的事件。

第一核心812可以将一个或多个消息148写入存储器1502。更具体地,根据一些示例,第一核心812可以将网络消息写入共享存储器1506,使得消息148可由第二核心810访问(即,可以被读取)。除了将网络消息148写入存储器之外,第一核心812还可以将附加信息写入存储器(例如,共享存储器1506),使得第二核心810可访问附加信息以用于例如执行异常检测和事件日志产生的目的。例如,第一核心812可以将以下附加类型的信息写入存储器1502:(i)路由的网络消息;(ii)诊断信息;和/或(iii)车辆的操作状态参数。根据一些示例,车辆的操作状态参数可以根据图10中所说明并且在上面讨论的数据结构存储在存储器1502中。

第二核心810可以读取存储在存储器1502(例如,安全ram1504的共享存储器1506)中的一个或多个网络消息148,并且基于此而执行异常检测和日志产生。更具体地,第二核心810可以基于预定义规则(例如,预定义规则122)来检测在网络消息148中描述的一个或多个事件中的至少一些事件是否构成异常。另外,第二核心810可以基于检测到的异常数据(例如,图1中所示的检测到的异常数据130)而产生一个或多个驻留事件日志126。

如上所述,一个或多个驻留事件日志126可以包括与一个或多个检测到的异常事件相关联的元数据。另外,第二核心810可以基于一个或多个驻留事件日志126而产生一个或多个传输事件日志132。同样如上所述,传输事件日志132可以对应于相应的驻留事件日志126。根据一些示例,一个或多个传输事件日志132可以包括比其相应的对应的一个或多个驻留事件日志126更少的元数据以尤其用于在传输事件日志132和/或驻留事件日志126经由无线网络1510从车辆102传输到远程计算系统104时降低数据传输成本的目的。

第二核心810可以将任何产生的驻留事件日志126和/或传输事件日志132写入存储器1502,使得日志126、132可以(i)由第一核心812读取;(ii)经由第一微控制器806的第一核心812传输到第二微控制器808;以及(iii)经由无线传输器804通过无线网络1510从第二微控制器808传输到远程计算系统104。更具体地,第二核心810可以将任何产生的驻留事件日志126和/或传输事件日志132写入安全ram1504和/或安全nvm1512。第一核心812可以读取由第二核心810经由安全ram1504(包括共享存储器1506)和/或安全nvm1512写入存储器1502的任何产生的驻留事件日志126和/或传输事件日志132。

除了其它优点之外,cgm802的架构还允许入侵检测系统1500的异常检测和事件日志产生功能在第一微控制器806的第二核心810内被隔离,该第二核心不具有直接访问根据本文描述的实施方案的网络堆栈(例如,网络堆栈1508)权限。以此方式,可以保护入侵检测系统1500的异常检测和日志产生功能免受直接远程网络攻击。

根据某些实施方案,图15的系统1500进一步被配置为大致上在本文根据关于图8描述和说明的协议产生和传输确认信号。例如,在从第一微控制器806成功接收一个或多个传输事件日志132和/或驻留事件日志126之后,第二微控制器808可以产生确认信号(确认成功接收到相关的一个或多个事件日志)并且将该确认信号返回传输到第一微控制器806。根据一些示例,第一微控制器806的第一核心810然后可以将确认信号写入存储器1502,使得例如第二核心810可以读取该确认以确认沿着系统1500的至少一次“跳跃”成功传输给定的事件日志。

类似地,在(经由无线传输器804和无线网络1510)从第二微控制器808成功接收到一个或多个传输事件日志132和/或驻留事件日志126时,远程计算系统104可以产生确认信号并且将该确认信号返回传输到第二微控制器808,该第二微控制器进而可以将确认信号转发回到第一微控制器806的第一核心812,在此该确认信号可以被写入存储器1502等(并且最终由如果需要由第二核心810读取)。

最后,根据一些示例,远程计算系统104可以产生各种命令并且将其传输到车辆以用于在检测到网络入侵的情况下进行事件日志管理和/或补救动作的目的。

例如并且如在上面关于图1的附加细节所讨论,远程计算系统104可以产生并传输日志控制命令。日志控制命令可以从远程计算系统104传输到第二微控制器808,该第二微控制器进而可以将日志控制命令传递到第一微控制器806。在获取日志控制命令时,第一微控制器806可以针对事件日志采取以下一个或多个管理动作:擦除一个或多个驻留事件日志126中的至少一个驻留事件日志;针对一个或多个驻留事件日志126调整存储器分配;将一个或多个驻留事件日志126中的至少一个驻留事件日志传输到远程计算系统104;在传输之前调整一个或多个驻留事件日志126中的至少一个驻留事件日志的内容;调整相关日志传输速率,该日志传输速率描述将传输事件日志132从第一微控制器806传输到远程计算系统104的频率;和/或限制一个或多个传输事件日志132的数据大小。

另外,远程计算系统104可以产生并传输入侵响应命令。入侵响应命令可以从远程计算系统104传输到第二微控制器808,该第二微控制器进而可以将入侵响应命令传递到第一微控制器806。在获取入侵响应命令时,第一微控制器806可以采取以下一个或多个补救动作:限制来自一个或多个通信总线(例如,can总线106和/或以太网总线142)中的至少一个通信总线的通信和/或点亮车辆102的mil。

以上描述的本质仅仅是说明性的并且决不旨在限制本公开、其应用或用途。本公开的广泛教导可以通过各种形式来实施。因此,虽然本公开包括特定示例,但是本公开的真实范围不应当局限于此,因为当研究图式、说明书和以下权利要求书之后将明白其它修改。应当理解的是,方法内的一个或多个步骤可以不同顺序(或同时)执行且不更改本公开的原理。另外,虽然每个实施例在上文被描述为具有某些特征,但是关于本公开的任何实施例描述的任何一个或多个这样的特征均可在任何其它实施例的特征中和/或结合任何其它实施例的特征来实施,即便该组合没有明确描述。换句话说,所描述实施例并不相互排斥,并且一个或多个实施例彼此的置换保留在本公开的范围内。

元件之间(例如,模块、电路元件、半导体层等之间)的空间和功能关系是使用各种术语来描述,该术语包括“连接”、“接合”、“联接”、“相邻”、“紧靠”、“在……顶部上”、“在……上方”、“在……下方”和“设置”。除非明确描述为“直接”,否则当在上述公开中描述第一元件与第二元件之间的关系时,该关系可为其中第一元件与第二元件之间不存在其它介入元件的直接关系,但是也可为其中第一元件与第二元件之间(空间上或功能上)存在一个或多个介入元件的间接关系。如本文所使用,短语a、b和c中的至少一个应被理解为意味着使用非排他性逻辑or的逻辑(aorborc),且不应被理解为意味着“至少一个a、至少一个b和至少一个c”。

在图式中,如由箭头部指示的箭头的方向总体上表明对关注图示的信息(诸如数据或指令)流。例如,当元件a和元件b交换多种信息但从元件a传输到元件b的信息与图示有关时,箭头可从元件a指向元件b。该单向箭头并未暗示没有其它信息从元件b传输到元件a。另外,对于从元件a发送到元件b的信息,元件b可以向元件a发送对信息的请求或信息的接收确认。

在包括以下定义的本申请中,术语“模块”或术语“控制器”可以用术语“电路”来代替。术语“模块”可以指代以下项或是以下项的部分或包括以下项:专用集成电路(asic);数字、模拟或混合式模拟/数字离散电路;数字、模拟或混合式模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(fpga);执行代码的处理器电路(共享、专用或成组);存储由处理器电路执行的代码的存储器电路(共享、专用或成组);提供所述功能性的其它合适的硬件部件;或一些或所有上述的组合,诸如在片上系统中。

该模块可以包括一个或多个接口电路。在一些示例中,接口电路可以包括连接到局域网(lan)、因特网、广域网(wan)或其组合的有线或无线接口。本公开的任何给定模块的功能性可以分布在经由接口电路连接的多个模块中。例如,多个模块可以允许负载平衡。在进一步示例中,服务器(又称为远程或云服务器)模块可以完成代表客户端模块的一些功能性。

如上文所使用的术语代码可以包括软件、固件和/或微代码,并且可指代程序、例程、函数、类别、数据结构和/或对象。术语共享处理器电路涵盖执行来自多个模块的一些或所有代码的单个处理器电路。术语成组处理器电路涵盖结合另外的处理器电路来执行来自一个或多个模块的一些或所有代码的处理器电路。对多个处理器电路的引用涵盖离散裸片上的多个处理器电路、单个裸片上的多个处理器电路、单个处理器单元的多个核心、单个处理器电路的多个线程或上述组合。术语共享存储器电路涵盖存储来自多个模块的一些或所有代码的单个存储器电路。术语成组存储器电路涵盖结合另外的存储器来存储来自一个或多个模块的一些或所有代码的存储器电路。

术语存储器电路是术语计算机可读介质的子集。如本文所使用的术语计算机可读介质并不涵盖(诸如在载波上)传播通过介质的暂时性电或电磁信号;术语计算机可读介质可因此被视为有形且非暂时性的。非暂时性、有形计算机可读介质的非限制示例是非易失性存储器电路(诸如闪存电路、可擦除可编程只读存储器电路或掩码只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁性存储介质(诸如模拟或数字磁带或硬盘驱动)和光学存储介质(诸如cd、dvd或蓝光光盘)。

本申请中描述的设备和方法可以部分或完全由通过配置通用计算机以执行计算机程序中实施的一个或多个特定功能而创建的专用计算机来实施。上述功能块、流程图部件和其它元件用作软件规范,其可通过本领域技术人员或编程者的常规作业而转译为计算机程序。

计算机程序包括存储在至少一个非暂时性、有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于所存储的数据。计算机程序可以涵盖与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定装置交互的装置驱动器、一个或多个操作系统、用户应用程序、背景服务、背景应用程序等。

计算机程序可包括:(i)待剖析的描述性文本,诸如html(超文本标记语言)、xml(可扩展标记语言)或json(javascript对象表示法)、(ii)汇编代码、(iii)由编译器从源代码产生的目标代码、(iv)由解译器执行的源代码、(v)由即时编译器编译并执行的源代码等。仅作为示例,源代码可使用来自包括以下项的语言的语法写入:c、c++、c#、objectivec、swift、haskell、go、sql、r、lisp、fortran、perl、pascal、curl、ocaml、html5(超文本标记语言第5版)、ada、asp(活动服务器页面)、php(php:超文本预处理器)、scala、eiffel、smalltalk、erlang、ruby、visuallua、matlab、simulink以及

在35u.s.c.§112(f)的含义内,权利要求书中叙述的元件均不旨在是装置加功能元件,除非元件使用短语“用于……的装置”明确叙述或在使用短语“用于……的操作”或“用于……的步骤”的方法权利要求的情况中。

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