用于车辆通信系统中的安全漏洞检测的系统和方法与流程

文档序号:15232943发布日期:2018-08-21 19:53阅读:231来源:国知局

本申请大体涉及用于车辆中通信安全的方法和系统,尤其是检测通讯地联接到总线或其他通讯路径的一个或多个车辆中系统的安全漏洞(breaches)、黑客入侵(hacking)或恶意篡改的方法和系统。



背景技术:

现代车辆系统越来越依赖于电子通信。不同发动机子系统、传感器、致动器、电子控制单元(ecu)和其他系统之间的通信可以使车辆控制得到改善,然而这样的系统会易受到黑客入侵或恶意篡改形式的攻击。该问题由于以下事实而更为复杂:许多车辆系统可以通过一个或多个总线,例如通过控制器局域网(can)总线(bus),被通讯地联接到彼此。在如现代车辆中常见的许多ecu或车辆子系统彼此经由总线通讯接触的情况下,即使小的数字安全漏洞也会为车辆操作者造成显著问题。例如,黑客或其他恶意实体会能够使用经由无线网络连接或蓝牙访问的多媒体系统中的小的安全漏洞,以获得在车辆的can总线上通信的权限。黑客接着可能会经由can总线将控制消息散布到其他车辆系统,从而达到控制许多车辆子系统。不言而喻,这种类型的恶意干扰对于车辆操作者的安全性并且对于车辆的可靠操作是不期望的。因此,需要能够在发生恶意篡改时检测这种类型的恶意篡改并且采取补偿措施的车辆通信系统。

车辆内通信,诸如can消息(也称为can帧),通常以传统方式具有校验和(checksum)或循环冗余校验(cyclicredundancycheck),以检测传输错误(error)。例如,校验和可以是一个消息中的每个字节的简单和。一旦接收到消息,接受器就可以通过计算所述消息的每个字节的和并将其与随之包括的校验和进行比较来核实该消息的完整性。如果二者相等,则消息被假定为被完整地传送,否则可能已经发生传输错误。虽然传统校验和是用于检测传输错误的有效手段,但是由于其可以假定黑客已经知晓校验和的存在并且能够生成通过该测试的消息,所以可能不能提供检测仅使用传统校验和系统的系统中的黑客入侵或篡改。

因此,本文的发明者已经意识到在车辆内通信消息中除任选校验和或其他通信核实校验之外还提供由动态数学算子(dynamicmathematicaloperator,dmo)生成的数据字段(datafield)可以提供一种简单且稳健的方法来检测黑客入侵的存在。根据已知的和可公开访问的方法,校验和可以是常规和或循环冗余校验,而动态数学算子可以包括使用不是公知的参数的数学函数。根据常规方法,校验和仍可以被采用以检测传输错误,而dmo可以被采用用于检测黑客入侵。例如,由于用在计算dmo中的参数可能不是公知的,所以黑客正确地推测可以被提供作为can总线消息的一部分的dmo的输出会是困难的或者是不可能的。因此,由于具有正确校验和与不正确dmo输出的消息可以指示可能的黑客入侵,所以可以提供一种用于区分传输错误与黑客攻击的方法。



技术实现要素:

本文描述的系统和方法可以具有根据密钥(key)索引的用于计算dmo的参数的表格。密钥和对应参数可以以定期间隔、在事件驱动的基础上和/或者响应于dmo错误而被改变,以便防止潜在的黑客推测或获悉用在dmo中的数学运算。本文公开的系统和方法也可以使用各种发动机操作参数以及车辆内通信消息的内容来确定是否在参数值的预期改变的基础上发生黑客入侵。在一个示例中,可以通过一种方法来确定黑客入侵并且/或者区分黑客入侵与传输错误。该方法可以包括:接收包括第一参数和第二参数的消息;基于第一数学运算评估(evaluate)所述第一参数并且基于第二数学运算评估所述第二参数;响应于所述第一参数中的错误,指示传输错误;并且响应于所述第二参数中的错误,指示安全漏洞。在另一示例中,上述目的可以通过一种方法来实现,该方法包括:响应于参数中的错误,请求包括所述参数的消息被重新发送并且使错误计数递增;并且响应于所述错误计数超过阈值,向操作者发出指示可能黑客入侵的警示并且进入车辆安全模式。在又一个示例中,这些目的可以通过一种系统来实现。该系统可以包括:控制器局域网(can)总线;被连接到所述can总线、致动器和传感器的ecu;处理器,其被连接到所述can总线并且包括存储在非暂时性存储器中的计算机可读指令,以用于:从所述ecu接收消息,所述消息包括第一字段和第二字段;响应于所述第一字段中的错误,请求所述消息的重新传输;响应于所述第二字段中的错误,请求所述消息的重新传输并且使错误计数递增;并且响应于所述错误计数超过阈值,向车辆操作者发出警示并且调整发动机的操作参数。

应当理解,提供以上概述是为了以简化的形式介绍一些概念,这些概念在具体实施方式中被进一步描述。这并不意味着确定所要求保护的主题的关键或基本特征,要求保护的主题的范围由随附的权利要求唯一地限定。此外,要求保护的主题不限于解决在上面或在本公开的任何部分中提及的任何缺点的实施方式。

附图说明

图1示意性地描述作为示例性技术环境的发动机系统;

图2示意性地描述can总线和相关联的系统;

图3a描述包括校验和和动态数学算子的示例can帧;

图3b描述根据一个或多个实施例的用于计算并核实动态数学算子的示例方法;

图4示出用于在第一实施例中检测安全漏洞的示例方法;

图5示出用于在第二实施例中检测安全漏洞的示例方法;以及

图6示出用于使动态数学算子密钥同步(synchronize)的示例方法。

具体实施方式

以下描述涉及用于确定车辆内通信系统中的黑客入侵或恶意干扰的存在的系统和方法。在图1中示出车辆发动机系统,其可以包括通讯地联接到ecu的传感器和致动器,ecu与包括威胁评估网关(threatassessmentgateway,tag)的can总线通信/连通。在图2中描述can总线,其包括相关联的诸如tag的can节点和各种ecu。can总线上的通信可以经由诸如图3a中所描述的can帧来实施,该can帧可以包括根据本公开的校验和和dmo,诸如图3b中所描述的那些。根据图4中所示的方法,可以采用dmo以检测黑客入侵的存在,或者区分黑客入侵与传输错误。根据图5中所示的方法,也可以采用发动机操作参数和其他考量来帮助区分黑客入侵引起的错误与非黑客入侵引起的错误。最后,图6示出用于使不同的发动机子系统、ecu和tag同步的示例方法。

图1描述了可以被包括在汽车的推进系统中的发动机10的一个汽缸的示意图。发动机10可以至少部分地由包括控制器12的控制系统和由经由输入装置130来自于车辆操作者132的输入控制。在该示例中,输入装置130包括加速器踏板和用于产生成比例的踏板位置信号(pp)的踏板位置传感器134。发动机10的燃烧室(即汽缸)30可以包括具有定位在其中的活塞36的燃烧室壁32。活塞36可以被联接到曲轴40,使得该活塞的往复运动被转化为曲轴的旋转运动。曲轴40可以经由中间变速器系统联接到车辆的至少一个驱动轮。曲轴40也可以经由飞轮联接到起动器马达,以实现发动机10的起动操作。此外,曲轴扭矩传感器可以被联接到曲轴40用于监测汽缸扭矩。在一个示例中,扭矩传感器可以是激光扭矩传感器或磁性扭矩传感器。可以使用其他扭矩传感器。可以使用来自扭矩传感器的测量的位置信号估计汽缸扭矩。可以使用其他方法来估计汽缸扭矩。

燃烧室30可以经由进气通道42从进气歧管44接收进气空气,并且可以经由排气通道48排放燃烧气体。进气歧管44和排气通道48能够经由相应的进气门52和排气门54与燃烧室30选择性地连通。在一些实施例中,燃烧室30可以包括两个或更多个进气门和/或两个或更多个排气门。在该示例中,进气门52和排气门54可以经由一个或多个凸轮通过凸轮致动控制,并且可以利用可以由控制器12操作的凸轮廓线变换(cps)系统、可变凸轮正时(vct)系统、可变气门正时(vvt)系统和/或可变气门升程(vvl)系统中的一个或多个以改变气门操作。进气门52和排气门54的位置可以分别由位置传感器55和57确定。在替代的实施例中,进气门52和/或排气门54可以通过电动气门致动来控制。例如,汽缸30可以替代地包括经由电动气门致动控制的进气门和经由包括cps系统和/或vct系统的凸轮致动控制的排气门。

在一些实施例中,发动机10的每个汽缸可以被配置有一个或多个燃料喷射器以用于向其提供燃料。作为非限制性示例,示出汽缸30,其包含一个燃料喷射器66,燃料喷射器66由燃料系统172供应燃料。燃料喷射器66被示出为直接联接到汽缸30,用于与经由电子驱动器68从控制器12接收到的信号fpw的脉冲宽度成比例地将燃料直接喷射到汽缸30中。以此方式,燃料喷射器66提供所谓的到燃烧汽缸30中的燃料的直接喷射(后文也称为“di”)。

应当理解的是,在替代实施例中,喷射器66可以是用于将燃料提供到汽缸30上游的进气道中的进气道喷射器。还应当理解的是,汽缸30可以从,诸如多个进气道喷射器、多个直接喷射器或其组合的多个喷射器接收燃料。

继续图1,进气通道42可以包括具有节流板64的节气门62。在该具体的示例中,节流板64的位置可以经由提供给节气门62所包括的电动马达或致动器的信号通过控制器12改变,该配置通常被称为电子节气门控制(etc)。以这种方式,节气门62可以被操作以改变提供到燃烧室30以及其它发动机汽缸中的进气空气。节流板64的位置可以通过节气门位置信号tp被提供到控制器12。进气通道42可以包括质量空气流量(maf)传感器120和歧管空气压力(map)传感器122以用于向控制器12提供相应的信号maf和map。

点火系统88能够在选择的操作模式下响应于来自控制器12的火花提前信号sa经由火花塞92向燃烧室30提供点火火花。虽然示出火花点火部件,但是在一些实施例中,燃烧室30或发动机10的一个或多个其他燃烧室可以在具有或不具有点火火花的情况下以压缩点火模式操作。

压力传感器124可以被联接到排气门54下游和排放控制装置70上游的排气通道48。压力传感器124优选地被定位成靠近排气门54以测量排气歧管压力(emp)。在一个实施例中,压力传感器可以为压力换能器。

上游排气传感器126被示出为联接到排放控制装置70上游的排气通道48。上游传感器126可以是用于提供排气空气-燃料比的指示的任何合适的传感器,诸如线性宽带氧传感器或通用排气氧(uego)传感器、双态窄带氧传感器或ego、加热型排气氧(hego)传感器。在一个实施例中,上游排气传感器126是被配置为提供诸如电压信号的输出的uego传感器,该输出与排气中存在的氧的量成比例。控制器12使用输出确定排气空气-燃料比。

排放控制装置70被示出为沿排气传感器126下游的排气通道48进行布置。装置70可以是三元催化剂(twc),其被配置为还原nox并氧化co和未燃的碳氢化合物。在一些实施例中,装置70可以是nox捕集器、各种其他排放控制装置或其组合。

第二下游排气传感器128被示出为联接到排放控制装置70下游的排气通道48。下游传感器128可以是用于提供排气空气-燃料比的指示的任何合适的传感器,诸如uego、ego、hego等。在一个实施例中,下游传感器128是被配置为指示排气在穿过催化剂之后的相对富化或稀化的uego传感器。因此,hego传感器可以以变换点或者在排气从稀变换到富的点处的电压信号的形式提供输出。

进一步地,在所公开的实施例中,排气再循环(egr)系统可以经由egr通道140将期望部分的排气从排气通道48传送到进气通道42。提供到进气通道42的egr的量可以经由egr阀142被控制器12改变。进一步地,egr传感器144可以被设置在egr通道内并且可以提供排气的压力、温度和浓度中的一者或多者的指示。在一些状况下,egr系统可以被用来调节燃烧室内的空气和燃料混合物的温度。

控制器12在图1中被示出为微型计算机,其包含:微处理器单元(cpu)102、输入/输出端口(i/o)104、在该特定示例中被示出为只读存储器芯片(rom)106的用于可执行程序和校准值的电子存储媒介、随机存取存储器(ram)108、保活存储器(kam)110和数据总线。控制器12可以从联接到发动机10的传感器接收各种信号,除先前论述的那些信号之外,还包含:来自空气质量流量传感器120的被引入的质量空气流量(maf)的测量值;来自压力传感器124的排气歧管压力(emp);来自联接到冷却套管114的温度传感器112的发动机冷却液温度(ect);来自联接到曲轴40的霍尔效应传感器118(或其它类型的传感器)的表面点火感测信号(pip);来自联接到曲轴40的曲轴扭矩传感器的汽缸扭矩;来自节气门位置传感器的节气门位置(tp);以及来自传感器122的绝对歧管压力(map)信号。发动机转速信号rpm可以通过控制器12从信号pip中产生。控制器12也可以采用图1的各种致动器来基于所接收的信号和存储在控制器的存储器上的指令来调整发动机操作。

存储介质只读存储器106能够用计算机可读数据编程,该计算机可读数据表示由处理器102可执行的非暂时性指令,用于执行以下描述的方法以及预期但未被具体列出的其他变体。

图1中所示的控制器12的架构仅仅是示例性的。在一些示例中,控制器12可以被实施为被通讯地联接到can总线用于彼此通信并与其他车辆子系统通信的多个ecu。这可以进一步包括与can总线通讯接触的tag,用于实时评估can总线通信的安全性。该系统架构在下面参考图2进一步详述。

在操作期间,发动机10内的每个汽缸通常经历四冲程循环,该循环包括:进气冲程、压缩冲程、膨胀冲程和排气冲程。在进气冲程期间,通常,排气门54关闭且进气门52打开。空气经由进气歧管44被引入到燃烧室30中,并且活塞36移动到汽缸的底部,以便增加燃烧室30内的容积。活塞36靠近汽缸底部并且在其冲程结束时(例如,当燃烧室30处于其最大容积时)的位置通常被本领域技术人员称为下止点(bdc)。

在压缩冲程期间,进气门52和排气门54都关闭。活塞36朝向汽缸盖移动,以便于压缩燃烧室30内的空气。活塞36在其冲程结束时且最靠近汽缸盖(例如,当燃烧室30处于其最小容积时)的点通常被本领域技术人员称为上止点(tdc)。在下文被称为喷射的过程中,燃料被引入到燃烧室内。在下文中被称为点火的过程中,喷射的燃料被已知的点火器件(诸如,火花塞92)点燃,从而导致燃烧。

在膨胀冲程期间,膨胀的气体将活塞36推回到bdc。曲轴40将活塞运动转换成旋转轴的旋转扭矩。最后,在排气冲程期间,排气门54打开,以将燃烧的空气燃料混合物释放到排气歧管48,且活塞返回到tdc。注意,上面所述仅仅作为示例示出,且进气门和排气门打开正时和/或关闭正时可以改变,例如,以提供正气门重叠或负气门重叠、延迟进气门关闭或各种其他示例。

如以上所述,图1仅示出多缸发动机的一个汽缸,并且每个汽缸可以类似地包括其自身的一组进气门/排气门、燃料喷射器、火花塞等。图1中所示的系统可以是适于下面更详细描述的威胁评估网关及相关联的方法的使用的技术环境的示例。例如,控制器12可以采用会易于受到恶意干扰的沿can总线的车辆内通信;提供根据本公开的校验和和dmo可以有助于防止这样的黑客入侵,并且/或者可以使车辆系统能够采取恰当的补偿措辞,如下所述。

图2示意性地图示说明用于本文公开的威胁评估系统和方法的示例性技术环境系统200。在一个示例中,系统200可以包括图1中所示的发动机10的与控制器12通讯接触或代替控制器12的部分。系统200包括can总线210,can总线210用于通讯地联接到can总线210的不同节点之间的通信。例如,can总线210上的通信可以包括在不同的电子控制单元(ecu)之间的通信或在ecu和tag之间的通信。微控制器、传感器或致动器的其他示例可以与can总线和与can总线连接的其他部件通信。与can总线通信的控制器、部件、ecu等一般可以被称为can节点。

图2中所描述的第一can节点是威胁评估网关(tag)225。tag225可以包括微控制器或其他合适的处理装置。tag225可以被通讯地联接到can总线210,以便与其他can节点(诸如ecu230a-230d以及联接到ecu的传感器和致动器)通信。tag225可以被配置为发送和接收can总线上的消息,诸如下面进一步详细描述的包含校验和和dmo输出的can帧。tag225可以包括处理器和包括指令的存储装置,该指令被存储在非暂时性存储器中以执行下面描述的方法400、500和600,或者与本公开的教导一致的其他方法中的一个或多个。

can节点可以进一步包括一个或多个ecu,诸如ecu230a-230d。这些ecu可以控制车辆的操作的不同方面,并且可以布置在车辆的不同部位处,或者在一些示例中可以被实例化为存储在中央控制器或计算机的非暂时性存储器中的指令。ecu230a-230d可以包括处理器、包括用于调整车辆操作的一个或多个方面的指令的非暂时性存储器和用于与can总线以及与一个或多个传感器或输入装置(例如传感器232a-232d和致动器234a-234d)通信的通信接口。

传感器232a-232d可以包括布置在车辆上的许多不同传感器,诸如以上关于图1所讨论的那些。传感器的一些示例可以包括用于检测氧气、质量空气流量、排气成分、不同发动机部件的温度、扭矩、发动机转速、爆震/提前点火、踏板位置、节气门位置、不同部位处的压力、空气-燃料比、egr的传感器或其它常规或众所周知的传感器。ecu可以接收来自传感器的输入并且基于此采取措施。例如,ecu可以选择基于接收自传感器的数据调整发动机操作参数,或者经由can总线将接收自传感器的数据传达到其他部件。传感器232a-232d可以包括踏板位置传感器134、进气和排气位置传感器55、maf传感器120、压力传感器124、排气传感器126和128、egr传感器144、温度传感器112、霍尔效应传感器118和/或map传感器122。也可以采用其他传感器。在一些实施例中,传感器232a-232d可以被采用以协助确定恶意篡改或其他安全漏洞的存在,如下面参考方法500所讨论的。

ecu230a-230d也可以被通讯地连接到致动器234a-234d。致动器可以被联接到一个或多个车辆部件,以便根据ecu指令调整操作参数。可以被联接到ecu的示例致动器包括用于节流阀、废气门、egr阀、格栅百叶窗、风扇、空气-调节/hvac系统、制动器、转向系统、照明设备、燃料泵、燃料喷射器、变速器的致动器或者其他常规或众所周知的致动器。致动器234a-234d可以根据ecu指令、基于接收自传感器的数据来调整。在一些实施例中,可以响应于确定黑客入侵的存在(如下面参考方法400、方法500和方法600所讨论的),采用致动器234a-234d来调整一个或多个发动机操作参数。致动器234a-234d可以包括伺服机械装置、电磁阀、电或机械操作的泵或者联接到车辆部件且可操作以调整它们的操作参数的其他这样的装置。例如,致动器234a-234d可以包括或可操作地联接到进气门52、排气门54、燃料喷射器66、节气门62、点火系统88或egr阀42中的一个或多个。其他致动器有可能在本公开的范围内。

如本领域的普通技术人员将理解的,图2中所描述的示意性示例是说明性的,并且不意在限制性。例如,虽然示例系统200被描述为包括四个ecu,但是在不脱离本公开的范围的情况下,系统可以具有更多或更少的ecu。进一步地,can总线可以与也可采用本文教导的方法的微处理器或其他部件通信。进一步地,虽然每个ecu被描述为与单个传感器和单个致动器接触,但是在不脱离本公开的范围的情况下,各个部件可以与更多或更少的传感器或致动器接触。本领域的技术人员将容易想到的其他变体是可能的。

在一个示例中,ecu230a-230d可以被实施为常规ecu,诸如车身控制模块(bcm)、动力传动系统控制模块(pcm)、防抱死制动系统(abs)、约束控制模块(rcm)、多媒体ecu或其他ecu。因此,包括pcm的示例ecu可以包括到监测动力传动系统的操作的多个不同传感器(包括氧传感器、maf传感器、排气传感器、扭矩传感器、爆震传感器等)的通信联接。ecu可以从这些传感器中的每个接收输入,并且使用所述输入来执行存储在非暂时性存储器中的指令,诸如通过调整一个或多个致动器。继续pcm的示例,致动器可以包括进气门和排气门、节流阀、燃料喷射器、点火系统、自动变速器离合器等。pcm也可以与can总线和can总线上的其他节点通讯接触,并且pcm可以发送和接收与动力传动系统的操作相关的can帧。若干其他类型的ecu和其他can节点也可以被设想到。

在can总线上的通信通常经由can帧发生。在图3a中示出用于在下面描述的方法中使用的一个示例can帧。can帧310可以包括串在一起的一系列字节。在该示例中,can帧包括被称为b1、b2、b3、b4、b5、b6和c的七个字节。因此,整个can帧可以通过将这些字节串在一起来表示,因此为:b1b2b3b4b5b6c。该can帧仅仅是示例性的;在不脱离本公开的范围的情况下,can帧可以具有更大或更少数量的字节。进一步地,虽然为了简洁起见本文的字节将使用十进制进行描述,但是应当理解字节可以其他进制,诸如二进制、八进制或十六进制表示。

图3a中所示的can帧310被表示为具有三个基本字段:消息312、校验和314和动态数学算子输出316。例如,消息312可以包括意在通过can总线进行通信的数据,该数据包括:传感器读数、期望的致动器位置或者其他恰当的通信。校验和314可以包括用于确定传输错误的存在的循环冗余校验(crc)值。dmo输出316可以根据下面更详细描述的私密数学函数(privatemathematicalfunction)通过tag进行计算。can帧也可以包括图3a中未表示的附加数据字段。例如,can帧可以包括帧起始位、唯一标识符、优先级、远程传输请求、标识符扩展位、保留位、数据长度码(指示消息中的字节的数量)、crc分隔符、确认槽(acknowledgementslot)、确认分隔符和帧结束字段。本领域的普通技术人员将很好地理解这些附加字段。

图3b示出如何根据本文公开的方法计算和校验dmo输出的示例。在该示例中,线350示出一系列字节07392561148094,它们分别对应can帧的字节b1b2b3b4b5b6c。字节c表示dmo输出,其基于字节b1-b6根据具体数学函数按照dmo进行计算。线360示出样本dmo,例如用于计算dmo输出的数学函数,在这种情况下为字节b1-b6的加权和模数mod100。假定没有传输错误且没有黑客入侵,则加权和模数mod100应该评估为94,其为字节c的值,其指示没有发生黑客入侵。线360包括表示字节b1-b6和对应的权重参数a1-a6的变量,它们取自dmo密钥表格380。

应当理解的是,在不知晓权重参数a1-a6的值的情况下,正确地推测出dmo输出c的值的机会是非常小的,参数a1-a6的值因此被存储在私密表格380中且是不可公开访问的。因此,试图将恶意消息散布到can总线上的潜在的黑客将不可能可靠地提供dmo输出c的正确值。dmo密钥表格380包括通过密钥n索引的多组参数a1-a6。tag和各种ecu可以使用公共密钥n来计算并核实dmo。密钥可以按间隔改变或推进(advanced),以便防止黑客有可能获悉用在dmo中的参数的值,因此表格380包括具有不同对应参数的许多密钥。在一些示例中,表格也可以指定数学函数;即,tag系统可以随着参数的改变不受限于仅使用一种类型的函数,而是也可以针对每个密钥采用具有不同参数的不同函数。关于推进密钥的更多细节在下面参照方法400和600进行描述。

为了评估dmo,tag可以将来自当前can帧的b1-b6的实际值以及参数a1-a6的实际值替换到线360中所示的表达式中(替换示意性地用箭头图示说明的)。在该示例中,采用对应于密钥n=1的参数。线370示出已经做出替换之后的dmo。接着执行加权和,模数100,并且结果被发现为94。接着该结果与dmo输出字节c进行比较,如在390处示意性指示的。在这种情况下,由于dmo的计算值匹配实际dmo输出字节c,所以dmo被核实。如果这些数字不匹配,则可以指示潜在的黑客入侵或恶意干扰。这将在下面参照方法400进行更详细地描述。

包括多个密钥和相关联的参数的表格380可以被提供在tag中和经由can总线与tag通讯接触的多个ecu中的非暂时性存储器中。替代地,tag可以具有多个不同的表格,并且每个与tag通讯接触的ecu可以具有一个匹配的dmo参数表格。以此方式,tag可以针对系统中的每个ecu具有唯一dmo。例如,表格可以在工厂处被预先装载到每个can节点中的存储器中,因此不需要任何的tag来将dmo参数散布到各种ecu。这样可以防止黑客通过“嗅探”获悉参数值。参数的表格可以随机或者利用程序生成。进一步地,针对每个车辆,参数表格可以是唯一的,并且在其中使用的参数可以不是公知的。因此,相比于校验和,潜在的黑客会无法访问用于计算dmo的函数。进一步地,针对每个车辆使用唯一表格防止潜在的黑客例如通过对同一产品和型号的车辆中的ecu通信进行反复测试来获悉其他车辆的dmo参数。

在图3b中所示的示例中,dmo被示出为包括can消息的组成字节的加权和模数100的函数。然而,这仅仅作为示例呈现,并且不意在限制。在另一些示例中,dmo可以包括许多不同类型的数学运算,其使用消息(例如can帧)的组成部分(例如字节)以得到唯一确定的数字。即,dmo在本文被理解为包括消息的组成部分(例如字节)的数学函数。因此,根据本公开的dmo可以包括消息的单元的加权和、多项式、指数、三角或其他线性或非线性函数。在另一些示例中,dmo可以被理解为包括例如根据传统公共密钥加密方法的消息的加密。其他示例也是可能的。

tag校验和和dmo系统的进一步优点在于:它利用了现有的车辆内通信架构。即,针对现有的can总线,基本上对tag进行改造,而会对其他车辆部件做出很小的改进。这样允许以最小的成本得到简单且稳健的保护而免受恶意干扰。根据以下方法中的一种或多种,通过使用校验和和dmo方法,tag可以能够有效地区分黑客入侵与普通传输错误,而不需要实质上增加计算资源或大量的专用硬件或软件。

图4示出根据本公开的检测潜在的黑客入侵或恶意篡改车辆can通信的示例方法400。方法400开始于405处,在405处在tag装置处接收消息。消息可以包括can消息,其包括校验和和dmo输出字段,如上面所讨论的。当接收到消息时,方法进行到410。

在410处,方法确定校验和是否正确。这可以根据用于传统can校验和的已知方法(例如循环冗余校验)来执行。由于按照用于can通信的标准,包括校验和是众所周知的,所以预期任何潜在的黑客或恶意威胁将会知晓它的存在并且包括按照公知的can标准的正确计算的校验和。因此,当检测到校验和中的错误时,假定该错误是由于传输错误而不是恶意篡改导致的。在这种情况下,方法400进行到415,其中tag请求消息被重新发送,于是过程返回到405。然而,如果消息的校验和被无误地接收到,则过程进行到420。

在420处,方法确定dmo输出字段是否正确。如以上所讨论的,根据使用私密参数的安全或私密函数计算dmo。可以通过can消息的函数(其不仅仅是其中的各个字节的和)计算dmo。例如,如在以上讨论的示例dmo中讨论的,可以通过can消息中的字节的多项式、指数或非线性函数计算dmo。在另一些示例中,tag例如可以采用公共密钥加密方法而不是简单的数学函数。dmo可以基于当前密钥来计算,该密钥可以被周期性改变或者在事件驱动的基础上改变,如下面更深度讨论的。由于用于确定dmo的参数和/或函数不能公开得到,所以假定dmo中的错误(例如,包括在消息中的dmo输出与如直接应用于消息的dmo函数的那个结果之间的不相符)可以是由于恶意篡改或黑客入侵。然而,也有可能dmo中的错误是由于传输错误(例如,发生仅影响包含dmo输出的字节的传输错误)。因此,如果检测到dmo中的错误,则方法进入到425处的核实子程序,以辨别传输错误与黑客入侵攻击。在另一方面,如果在420处确定dmo是正确的,则方法进行到475。

在425处,方法将错误计数初始化到零并且进行到430。

在430处,方法请求密钥推进。如以上所描述的,车辆中的每个模块或控制单元包括具有多个密钥的查询表格,每个密钥包含相应的dmo参数。当tag在430处请求密钥推进时,tag和全部的ecu或与tag通信的其他子系统前进到表格中的下一个密钥。在另一实施例中,每个ecu可以具有不同的表格,并且tag可以具有用于每个ecu的对应表格;在这种情况下,仅相关的ecu和tag中的对应表格前进到相继密钥。过程然后进行到435。

在435处,tag可以请求重新发送先前的消息。然而,应该理解的是对于许多车辆系统,消息可能迅速过时,因此tag可以简单重新请求替代发送一个新消息。例如,如果包含节流请求的消息被发送并且被确定为具有dmo错误,并且如果自发送原始消息以来已经过一些时间,则先前的消息中的节流请求会不再指示实际(当前)节流请求;因此,为了使车辆保持稳健操作,请求包含节流请求的一个新消息而不是请求重新发送先前(过时)节流请求会是更为便利的。一旦完成重新发送先前的消息的请求,或者完成发送新消息的请求,过程进行到440。

在440处,tag从ecu接收正在考虑(inquestion)的新消息。该消息可以是根据之前讨论的先前消息的重新发送的副本或者是新消息。一旦接收到所请求的消息,过程进行到445。

在445处,tag以如以上关于框410所描述的相同方式评估新接收到的消息中的校验和。如果校验和评估正确,则过程进行到450。否则,过程返回到框435,在435处发出重新发送的请求。

在450处,tag以如以上关于框420所描述的相同方式评估新接收到的消息中的dmo。如果dmo评估正确,则指示不可能有黑客入侵、恶意篡改或其他类型的安全漏洞,并且过程进行到475。如果dmo评估不正确,则过程进行到455。

在455处,使错误计数递增,于是过程进行到460。在460处,tag可以评估错误计数是否超过错误阈值。错误阈值可以是预定数量的错误,高于该预定数量的错误则确定安全漏洞有可能是由于黑客入侵或恶意篡改造成的。错误阈值可以在工厂处被预先编程,或者可以根据工况进行确定。例如,tag可以确定潜在的安全漏洞可能导致安全问题的可能性有多大,并且相应地调整错误阈值。在一个示例中,如果车辆在变速器处于泊车(park)时被停止,则tag可以选择较高(更宽松)的错误阈值,并且如果车辆正以高速公路速度(highwayspeed)行进,则tag可以选择较低(更严格)错误阈值,这是因为篡改车辆通信系统更有可能导致在车辆正以高速公路速度行进的状况下碰撞和/或损坏。在另一示例中,错误阈值可能针对与can消息有关的不同ecu或车辆系统而不同。例如,更关键的车辆系统(发动机、转向装置、制动器)可以被赋予较低(更严格)阈值,而不太关键的车辆系统(多媒体、hvac)可以被赋予较高(更宽松)阈值。如果错误计数超过阈值,则可以确定潜在的安全威胁并且过程可以进行到465。如果错误计数不超过阈值,则过程可以返回到430以请求新的密钥推进。

在465处,可能的安全漏洞、恶意篡改或者黑客入侵已经被假定是可能的。因此,方法前进到向车辆的操作者发出警示。警示可以包括视觉或听觉警示,诸如照亮指示器灯、文本消息显示在多媒体装置的屏幕上或者可听见的警示,诸如蜂鸣器或文本到语音生成的消息。警示可以经由扬声器重现或者经由诸如屏幕的显示装置显示。在另一些实施例中,tag可以通过向用户的手机发送sms文本消息或打电话而向用户发出警示,或者可以通过蓝牙或其他通讯联接与用户的智能手机通信。警示可以告知操作者已经(或有可能)检测到恶意篡改车辆。警示可以向操作者发出指令,该指令可以基于检测到的篡改的特性。例如,仅影响不太关键的系统(hvac、多媒体)的篡改可导致操作者尽快寻找服务站的指令,而篡改更关键的系统(发动机、制动器、转向装置)可导致操作者靠边停车并且立即寻求帮助的指令。在一些示例中,警示可以包括针对用户的提示、要求用户授权进入安全模式(下面解释)。一旦向车辆操作者发出警示,过程可以进行到470。

在470处,车辆可以任选地进入安全模式。车辆可以在检测到潜在的黑客入侵时自动进入安全模式,或者可以首先请求操作者授权以进入安全模式。进入安全模式可以包括限制车辆的一些或全部功能。这可以包括使非必要系统停工(shutdown),所述非必要系统诸如多媒体系统、hvac系统、电动窗等。这可以包括将某些发动机操作参数限制成停留在阈值范围内,诸如限制车辆速度小于阈值速度、限制发动机扭矩小于阈值扭矩、限制发动机转速小于阈值发动机转速、限制变速器到某些档位等。这也可以包括(例如,通过调整前述致动器中的一个)调整一个或多个发动机操作参数,诸如发动机转速、节气门、燃料喷射量或正时、点火正时、升压、变速器档位选择和/或离合器位置、转向、制动、照明或其他恰当的参数。在一个示例中,安全模式可以包括禁用自主行驶特征,诸如车道辅助、平行泊车辅助或完全自主行驶,如果车辆被装备有这些特征的话。在另一示例中,车辆可以替代地开启专门的自主行驶特征,其包括以最快的安全时机采取车辆的控制、停靠在路边、停止并使车辆熄火的指令。进入安全模式还可以包括停用无线通信系统,诸如无线网连接、无线lan、蓝牙或其他,以试图阻止黑客继续远程访问车辆系统。进入安全模式可以包括向操作者发出指示车辆处于安全模式以及车辆会不以操作者惯用的方式作出响应的消息。在一些示例中,可以维持安全模式直到操作者找到维修站或者直到操作者发出退出安全模式的请求为止。在车辆进入安全模式之后,过程结束。

在475处,消息可以被认为有可能是安全的,并且可以被允许传播到其预期目的地,诸如ecu、致动器或其他can节点。过程然后结束。

图4中所示的安全漏洞检测的方法依赖于对接收到的can消息中的连续错误计数。在另一些示例中,方法可以不计算相继错误的数量,而是例如可以替代地计算错误率。在这种情况下,方法可以确定如果无错误消息与具有错误的消息的比率下降(sink)到阈值以下,则可能有安全漏洞。例如,如果接收到的消息中的小于95%没有错误,则方法可以确定可能的安全漏洞。与前面一样,该阈值可以取决于消息所涉及的ecu和/或车辆系统,使得更关键的车辆系统(发动机、转向装置、制动器)可以被赋予较小(更严格)阈值,而不太关键的车辆系统(多媒体、hvac)可以被赋予较大(更宽松)阈值。图5示出用于确定可能的安全漏洞的又一示例方法,其可以代替图4的方法或除了图4的方法外被执行。

图5描述用于确定黑客入侵或安全漏洞的存在的另一示例方法500。框505-520对应于框405-420并且将不进行详细描述,但是应当理解的是这些过程框可以实质上类似于方法400中的对应过程框。方法500开始于505,其中在tag处接收到消息。在510处,tag评估校验和。如果校验和包含错误,则过程进行到515,在515处发出消息重新发送请求,于是过程返回到505。如果校验和正确,则过程进行到520。在520处,tag评估dmo。如果dmo不包含错误,则过程进行到575。如果dmo包含错误,则过程进行到525。

在525处,方法包括检索先前的消息。先前的消息可以是对应于与考虑的当前消息是同一ecu或发动机系统的消息。例如,如果当前can消息与节气门位置请求有关,则tag可以试图检索包含当前请求之前的节气门位置请求的最近的can消息。先前的消息可以被存储在短期的暂时性存储器(诸如ram)中。如果先前的消息不可获得,则方法可以试图通过询问相关联的传感器(在本示例中,节气门位置传感器)的输出来估计先前的消息的值。过程然后可以进行到530。

在530处,方法包括将先前的消息与当前消息进行比较。这可以包括将当前消息的命令部分与先前的消息的命令部分进行比较以获得差。继续节气门位置请求的示例,在530处方法可以计算当前节气门位置请求和先前的节气门位置请求之间的差(例如,绝对差)。在另一示例中,方法可以计算比率或者使用其他恰当的比较。过程进行到535。

在535处,方法确定当前消息与先前的消息之间的差是否大于阈值。在替代示例中,方法可以评估当前消息与先前的消息之间的比率是否大于阈值。阈值可以是预先确定的值,其在工厂处被预先编程或者基于发动机工况或其他参数来确定。阈值被选择以确定操作参数(方向盘位置、节气门请求等)的改变何时被突然改变,这可以指示黑客入侵或恶意篡改。因此,如果节气门位置请求从一个can消息改变成随后的can消息达大于阈值的量,则tag可以确定可能有黑客入侵。转向装置位置、制动装置位置或其他参数的突然改变也可以指示黑客入侵。

在框535处可以考虑多个车辆操作参数,并且黑客入侵的确定可能比差与阈值的单一比较更复杂。例如,当车辆正以一定速度行进时泊车制动器的应用或者将变速器换档到泊车或倒挡的请求可能会被tag认为是潜在的黑客入侵事件。类似地,当车体传感器未指示变形和/或当加速计未指示碰撞事件时,展开气囊的请求可以指示黑客入侵。差阈值也可以基于当前操作参数而改变。例如,当车辆被停止或处于非常低的速度时,tag可以允许方向盘位置的相对大的突然改变(例如,用于平行泊车),因此tag可以设置较高的差阈值以用于转向。然而,如果车辆正以高速公路速度行进,则方向盘位置的突然改变可能不是预期的并且因此指示可能的黑客入侵,因此tag可以设置较低的差阈值以用于转向。tag可以采用位置/gps数据来确定恰当的和预期的操作参数范围和变化。tag也可以采用历史驾驶员行为数据来确定操作者是否正以与根据过去的驾驶数据确定的模式相一致的方式驾驶。

如果在532处基于操作参数变化超过阈值或者基于其他操作参数或考量(诸如以上讨论的那些)tag确定可能黑客入侵,则过程进行到565。如果由于操作参数变化小于阈值并且/或者基于其他考量tag确定黑客入侵不可能,则过程进行到575。

框565-框575对应于框465-框475并且将不会详细地描述,但是应当理解的是这些过程框可以实质上类似于方法400中的对应过程框。在565处,方法包括向操作者发出警示,并且进行到570。在570处,车辆任选地进入安全模式,且然后过程结束。在575处,方法允许消息且然后结束。

方法400和500是用于确定车辆系统(诸如通讯联接到can总线的ecu)中的恶意篡改或黑客入侵的可能存在的两种示例方法。在一些示例中,车辆可以仅执行方法400或500中的一种,以便确定黑客入侵的存在,然而这并不是一定的情况。在一些示例中,两种方法可以被同时采用,或者每种方法的某些特征可以被采用以确定是否已经发生篡改。例如,车辆可以采用方法400中公开的重复错误校验以及方法500中教导的操作参数比较这两者,以便增加黑客入侵检测方法的整体可靠性,从而有助于减少误报检测的发生。

本文教导的方法可以使用通过dmo密钥索引的动态数学算子,如以上讨论的。一般地,假设在tag中采用的当前dmo密钥与在ecu中采用的当前dmo密钥将是相同的:即,模块全部利用从例如n=1(例如,参见图3b)开始的同一密钥表格初始化。类似地,ecu和各种模块典型地被一起推进,诸如当车辆开启或当检测到可能的错误时。因此,假定ecu和模块的dmo密钥大体是同步的。然而,由于篡改、传输错误、局部故障等,ecu和模块可能变得不彼此同步是有可能的。为此,提出方法600作为用于使dmo密钥同步的方法。

方法600开始于610处,在610处确定是否满足同步条件。方法可以基于一个规则或周期性调度(例如,每一秒或其他恰当的间隔)使dmo密钥同步。在另一示例中,方法可以响应于检测到的dmo错误指示潜在的黑客入侵(例如,当框420评估为“否”时)使dmo密钥同步。因此,在一些示例中,方法600也可以是方法400的组成部分。在另一些示例中,dmo密钥可以在事件驱动的基础上(诸如响应于钥匙开启或钥匙关闭事件、发动机起动或停止事件或其他恰当的事件)被同步。在又一些示例中,密钥可以响应于未预期的操作参数(例如,当框535评估为“是”时)被同步。因此,在一些示例中,方法600也可以是方法500的组成部分。如果确定同步基于当前状况是必要的,则方法进行到620。如果不需要同步,则方法结束。

在620处,tag发出同步请求。同步请求可以采取标准can帧的形式,或者其他恰当的消息格式。tag可以向can总线上的全部ecu/模块发出同步请求,或者仅向ecu的子集发出同步请求,这取决于是在全部的ecu之间共享dmo密钥表格还是各个ecu接收各个不同的dmo密钥表格。同步请求可以包括校验和(例如,循环冗余校验),而不是dmo输出字段。这可以被执行以确保同步请求被ecu理解,因为ecu密钥可能不与tag同步。同步请求可以包括期望密钥的数目(例如,n=32),这是tag和全部的ecu变换到的目标密钥。目标密钥可以简单地为正在由tag使用的当前密钥、表格中的下一个密钥或者随意选择的密钥。一旦发送请求,tag变换到目标密钥。一旦成功接收到同步请求,ecu也变换到目标密钥,因此tag和ecu变得同步。方法试图核实在随后框630-框650中同步是成功的。一旦发送同步请求,方法进行到630。

在630处,tag请求从ecu向tag发送测试消息。该请求可以作为同步请求消息的一部分被发送,或者可以作为发送同步请求之后的附加消息被发送。如果测试消息请求作为单独的消息被发送,则它可以包括使用在同步请求中指定的新dmo密钥计算的dmo输出字段。一旦接收到测试消息请求,ecu可以发送虚拟(dummy)消息(例如,不发出命令的消息)返回到tag。一旦已经发送测试消息请求,过程进行到640。

在640处,方法核实由ecu返回的测试(虚拟)消息。这可以包括评估来自于连接到can总线的每个ecu的单独的测试消息。核实测试消息可以根据类似方法400的方法来执行,例如通过根据新密钥评估dmo、如果dmo具有错误则请求重新发送消息以及重复直到超过错误阈值。如果测试消息的dmo没被评估正确(例如,阈值次数),则消息会没有被核实。替代地,如果没有接收到消息,则消息没有被核实。相反,如果dmo被评估正确(或者评估不正确仅小于阈值次数),则可以核实该消息。过程进行到650。

在650处,评估消息是否已经在先前的过程框中被核实。如果消息被核实,这可以指示同步请求是成功的,以及tag和ecu被正确地同步。在这种情况下,方法结束。然而,如果消息未被核实,则过程进行到660。

在660处,确定存在可能的黑客入侵或恶意篡改。方法可以向驾驶员发出警示,如以上在框465中所讨论的。然后过程进行到670。

在670处,车辆可以进入安全模式。这可以包括限制车辆的功能或者调整一个或多个操作参数,如以上在框470中讨论的。方法然后结束。

因此,方法600可以提供用于使tag与多个ecu或其他部件之间的dmo密钥同步,以及提供检测黑客入侵或篡改的额外机会。

注意,本文包括的示例控制和估计程序能够与各种发动机和/或车辆系统配置一起使用。本文公开的控制方法和程序可以作为可执行指令存储在非暂时性存储器中,并且可以由包括控制器的控制系统结合各种传感器、致动器以及其他发动机硬件来执行。本文所描述的特定程序可以表示任何数量的处理策略中的一个或多个,诸如事件驱动、中断驱动、多任务、多线程等。因此,所示的各种动作、操作和/或功能可以以所示的顺序执行、并行执行或在某些情况下被省略。同样地,处理的顺序不是实现本文所述的示例实施例的特征和优点所必需的,而是为易于说明和描述提供。可以根据所使用的具体策略重复执行所示出的动作、操作和/或功能中的一个或多个。另外,所描述的动作、操作和/或功能可以图形地表示要编程到发动机控制系统中的计算机可读存储介质的非暂时性存储器中的代码,其中所描述的动作通过在包括各种发动机硬件部件的系统中结合电子控制器执行指令来实行。

应当理解,因为可以有许多变化,所以本文公开的配置和程序本质上是示例性的,并且这些具体实施例不应被认为具有限制意义。例如,上述技术能够应用于v-6、i-4、i-6、v-12、对置4缸以及其他发动机类型。本公开的主题包括本文所公开的各种系统和配置以及其他特征、功能和/或性质的所有新颖且非显而易见的组合和子组合。

所附权利要求特别指出被认为是新颖且非显而易见的某些组合和子组合。这些权利要求可以指“一个”元素或“第一”元素或其等同物。此类权利要求应被理解为包括一个或多个此类元素的结合,既不要求也不排除两个或更多个此类元素。所公开的特征、功能、元素和/或性质的其他组合和子组合可以通过本申请权利要求的修正或通过在本申请或相关申请中提出新的权利要求来要求保护。此类权利要求,无论是宽于、窄于、等于或不同于原始权利要求的范围,也都被视为包括在本公开的主题内。

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