一种基于临时执行环境的车辆诊断功能动态注入方法与流程

摘要: 本发明涉及汽车电子诊断,更具体地,涉及一种基于临时执行环境的车辆诊断功能动态注入方法。背景技术:1、在当前的车辆电子控制单元(ecu)诊断技术中,诊断功能通常以...
一种基于临时执行环境的车辆诊断功能动态注入方法与流程

本发明涉及汽车电子诊断,更具体地,涉及一种基于临时执行环境的车辆诊断功能动态注入方法。

背景技术:

1、在当前的车辆电子控制单元(ecu)诊断技术中,诊断功能通常以固件形式预置于ecu的只读存储器中,诊断仪通过标准化的诊断协议(如uds)调用预设的服务标识符来执行固定的诊断例程。此种静态预置模式导致诊断功能的更新高度依赖于ecu固件升级,无法灵活应对售后市场中新出现的故障模式或临时性深度诊断需求。为解决这一问题,部分现有技术尝试通过远程刷写或动态加载诊断插件的方式扩展诊断能力,但由于缺乏对注入代码来源的可靠验证机制以及执行过程中的安全隔离手段,存在严重的网络安全风险,例如恶意代码可通过诊断接口侵入车载网络,篡改关键控制参数或窃取车辆数据。

2、此外,现有动态诊断方案在执行过程中缺乏对代码生命周期的有效管控。当诊断代码注入ecu后,通常直接以本地机器码形式在ecu的主处理器上运行,与车辆原有控制任务共享同一内存空间和处理器时间,极易引发资源竞争、内存污染或执行超时等异常,进而影响车辆核心功能的实时性与可靠性。即使部分系统引入了简单的权限校验或超时限制,但未能从硬件层面构建独立的执行环境,也未将执行时效与硬件计时器进行强绑定,导致诊断代码在异常终止或会话结束后无法彻底清除,残留的执行上下文可能被后续恶意利用,形成持续的安全隐患。

3、进一步地,现有诊断功能往往与特定ecu的硬件平台和操作系统紧密耦合,诊断代码的开发和移植成本高昂。不同厂商、不同型号的ecu由于处理器架构、内存布局以及底层驱动接口的差异,需要定制化开发诊断逻辑,无法实现诊断功能的一次编写、多平台复用。此种方案不仅延长了诊断功能的开发周期,也限制了跨车型、跨平台的诊断生态建设。因此,亟需一种能够实现诊断功能安全、灵活、跨平台动态注入,并对注入代码进行全生命周期硬件级隔离与管控的技术方案。

技术实现思路

1、本发明针对现有技术中存在的技术问题,提供一种基于临时执行环境的车辆诊断功能动态注入方法,解决了现有车辆诊断功能固化、无法安全动态注入且缺乏硬件级隔离执行环境的问题。

2、根据本发明的第一方面,提供了一种基于临时执行环境的车辆诊断功能动态注入方法,应用于车辆电子控制单元ecu,方法包括:

3、与诊断仪进行双向能力协商,确定支持的诊断范围与执行环境参数;

4、获取经数字签名认证的硬件无关的诊断中间语言代码包,并对所述代码包进行来源签名校验和完整性校验;

5、在ecu的内存中构建由硬件内存保护单元隔离的诊断沙箱,并从所述代码包中提取执行时效标签配置到与所述诊断沙箱绑定的硬件看门狗定时器;

6、由ecu的内置解释器在所述诊断沙箱内逐条解释执行所述代码包中的诊断逻辑。

7、在上述技术方案的基础上,本发明还可以作出如下改进。

8、可选的,所述与诊断仪进行双向能力协商,确定支持的诊断范围与执行环境参数,包括:

9、接收所述诊断仪发送的能力协商请求,并响应自身支持的诊断功能范围、中间语言解释器版本、沙箱容量上限及加密算法类型;

10、接收所述诊断仪根据所述响应确认本次诊断任务的可执行性并选择的中间语言指令集版本。

11、可选的,获取经数字签名认证的硬件无关的诊断中间语言代码包,包括:

12、接收所述诊断仪从云端或本地诊断数据库获取的代码包,所述代码包包含诊断逻辑的指令序列、所述执行时效标签以及数字签名证书;所述数字签名证书包含签发机构公钥信息。

13、可选的,所述对所述代码包进行来源签名校验和完整性校验,包括;

14、对所述代码包进行循环冗余校验以确认传输完整性;

15、提取所述代码包中的数字签名证书,利用预置在安全存储区中的根证书公钥验证签名的真实性;

16、若校验失败,拒绝执行所述代码包并回传错误码至所述诊断仪。

17、可选的,所述在ecu的内存中构建由硬件内存保护单元隔离的诊断沙箱,包括:

18、在所述ecu的内存中划分出一块连续的物理内存区域作为诊断沙箱,所述物理内存区域的大小由所述双向能力协商结果中的沙箱容量上限决定;

19、配置所述硬件内存保护单元,禁止所述诊断沙箱外的任何代码或直接存储器访问操作对所述诊断沙箱进行读写,并禁止所述诊断沙箱内的代码访问所述诊断沙箱外的任何内存地址。

20、可选的,所述从所述代码包中提取执行时效标签配置到与所述诊断沙箱绑定的硬件看门狗定时器,包括:

21、从所述代码包中提取最大执行时长,将所述最大执行时长写入与所述诊断沙箱绑定的独立硬件看门狗定时器的超时寄存器;

22、所述独立硬件看门狗定时器专用于监控所述诊断沙箱的执行寿命,当所述诊断逻辑的执行时间超过所述最大执行时长时触发不可屏蔽的中断或直接复位所述诊断沙箱。

23、可选的,所述由ecu的内置解释器在所述诊断沙箱内逐条解释执行诊断逻辑,包括:

24、所述内置解释器运行在所述诊断沙箱外部的高特权级,其上下文指针指向所述诊断沙箱内存区域的起始地址;

25、所述内置解释器逐条取出中间语言指令,进行语法校验后翻译为所述ecu硬件可执行的本地微操作,所有内存访问均通过所述硬件内存保护单元的地址校验;

26、执行过程中,所述内置解释器维护独立的指令计数器和堆栈指针,中间计算结果暂存于所述诊断沙箱内的临时缓冲区;

27、当诊断逻辑执行完毕或遇到显式的返回结果指令时,所述内置解释器将最终结果数据打包为符合诊断协议的响应报文回传至所述诊断仪。

28、可选的,方法还包括:

29、在解释执行过程中,对所述诊断沙箱内的执行体进行资源超限监控和异常行为监控;

30、当满足预设的终止条件时,触发强制清除流程,释放所述诊断沙箱的内存并硬件复位所述诊断沙箱,生成状态报告回传至所述诊断仪。

31、可选的,所述资源超限监控,包括实时监测以下指标中的至少一项:

32、中央处理器占用率、内存使用量、外设访问频率;

33、当任一指标超过所述双向能力协商时设定的阈值时,标记资源超限异常;

34、所述异常行为监控,包括检测以下行为中的至少一项:

35、指令计数器异常跳转试图访问所述诊断沙箱外地址、出现未定义或已废弃的非法操作码、同一指令地址被连续执行超过预设次数而无状态变化的死循环;

36、当检测到上述行为时,标记行为异常。

37、可选的,所述预设的终止条件,包括以下中的至少一项:

38、诊断逻辑正常执行完毕、所述硬件看门狗定时器溢出、资源超限监控报警、异常行为监控报警、诊断会话断开、执行次数达到所述代码包中指定的上限;

39、所述触发强制清除的流程,包括:

40、停止所述内置解释器执行并销毁解释器上下文;

41、向所述硬件内存保护单元发送指令,撤销对所述诊断沙箱内存区域的访问权限,使该内存区域变为不可访问状态;

42、向所述诊断沙箱对应的物理内存区域写入全零数据或伪随机数据,彻底清除所有执行痕迹;

43、复位与所述诊断沙箱绑定的硬件看门狗定时器至初始状态;

44、所述状态报告,包括以下信息中的至少一项:

45、执行结果为成功、失败或异常终止;

46、清除触发原因为正常完成、超时、资源超限、行为异常、会话断开或次数上限;

47、执行耗时统计;

48、监控到的资源峰值及异常详情。

49、根据本发明的第二方面,提供一种基于临时执行环境的车辆诊断功能动态注入系统,包括电子控制单元ecu;

50、所述ecu被配置为执行上述基于临时执行环境的车辆诊断功能动态注入方法。

51、根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现上述基于临时执行环境的车辆诊断功能动态注入方法的步骤。

52、根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现上述基于临时执行环境的车辆诊断功能动态注入方法的步骤。

53、本发明提供的一种基于临时执行环境的车辆诊断功能动态注入方法、系统、电子设备及存储介质,通过诊断仪与ecu的双向能力协商确定兼容的诊断范围和执行环境参数,使ecu能够接收并验证经数字签名认证的硬件无关诊断中间语言代码包;在通过来源签名校验和完整性校验后,ecu在其内存中划定由硬件内存保护单元隔离的诊断沙箱,并将代码包中的执行时效标签配置到与该沙箱绑定的硬件看门狗定时器,最后由ecu内置解释器在该沙箱内逐条解释执行诊断逻辑。本发明将诊断功能的执行从ecu预置固件中解耦出来,使诊断逻辑能够以硬件无关的中间语言形式动态注入,不再受限于ecu的处理器架构和操作系统差异,降低了诊断功能的开发和移植成本。硬件内存保护单元提供的沙箱隔离确保注入的诊断代码无法干扰ecu原有的控制任务,硬件看门狗定时器对执行时效的强制绑定防止诊断代码无限期占用处理器资源,数字签名校验从源头杜绝了未授权或篡改过的代码进入ecu,从而在实现诊断功能灵活扩展的同时保障了车辆电子系统的运行安全与可靠性。