[发明专利]基于TrustZone的CAN总线数据防护方法及系统有效
申请号: | 201611040348.9 | 申请日: | 2016-11-23 |
公开(公告)号: | CN108090376B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 刘炯钟;赵国开;涂岩恺;池炜宾 | 申请(专利权)人: | 厦门雅迅网络股份有限公司 |
主分类号: | G06F21/74 | 分类号: | G06F21/74;G06F21/60 |
代理公司: | 厦门市精诚新创知识产权代理有限公司 35218 | 代理人: | 何家富 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 trustzone can 总线 数据 防护 方法 系统 | ||
1.一种基于TrustZone的汽车CAN总线数据防护方法,其特征在于:所述方法是基于具有支持TrustZone技术的设备平台的汽车,设备平台至少包括处理器和CAN设备,所述处理器可运行在安全态和非安全态,所述设备平台可运行安全操作系统和普通操作系统,包括如下过程:
设置汽车安全CAN设备过程:将与汽车CAN总线进行通信的CAN设备设置成安全CAN设备,只有处于安全态的处理器才能访问CAN设备;安全操作系统运行在处理器的安全态,只有运行在安全操作系统的软件才能访问CAN设备;
车辆控制数据传送过程:当运行于普通操作系统的汽车控制客户端程序需要通过CAN设备发送车辆控制数据时,其调用运行于安全操作系统的安全汽车控制服务端程序,使处理器由运行在非安全态模式切换到运行在安全态模式,进而访问CAN设备完成车辆控制数据传送,从而确保数据传送的安全;
其中,车辆控制数据传送过程具体包括如下步骤:
S1.运行于普通操作系统的汽车控制客户端程序把需要发送的CAN数据按数据帧格式写入共享内存中,进入S2步骤;
S2.汽车控制客户端程序调用TrustZone底层驱动程序,并传入一个参数A,然后进入休眠等待,进入S3步骤;
S3.TrustZone底层驱动程序把传入的参数A保存到固定地址,然后调用SMC指令,使处理器进入到监控模式下,进入S4步骤;
S4.监控模式下的监控程序把普通操作系统的上下文保存起来,再把之前保存的安全操作系统的上下文加载进来,从而将当前环境切换到安全态,并跳到安全操作系统,进入S5步骤;
S5.安全操作系统内部通信管理器根据TrustZone底层驱动程序保存的参数A,调用相应的安全汽车控制服务端程序,进入S6步骤;
S6.安全汽车控制服务端程序读取共享内存中的数据帧并进行安全认证,进入S7步骤;
S7.若安全认证通过,则安全汽车控制服务端程序调用CAN总线驱动程序,把CAN数据发送到安全CAN设备上,并产生正确的结果,进入S8步骤;否则产生错误的结果并生成结果数据帧C,进入S9步骤;
S8.安全汽车控制服务端程序接收来自汽车的CAN响应数据,并把S7步骤中正确的结果和CAN响应数据生成结果数据帧D,进入S9步骤;
S9.安全汽车控制服务端程序把结果数据帧C或结果数据帧D写入共享内存中,进入S10步骤;
S10.安全汽车控制服务端程序调用安全操作系统内部通信管理器,并传入一个可确定汽车控制客户端程序的参数B,进入S11步骤;
S11.安全操作系统内部通信管理器调用SMC指令使处理器进入监控模式,进入S12步骤;
S12.监控模式下的监控程序把安全操作系统的上下文保存起来,再把之前保存的普通操作系统的上下文加载进来,从而将当前环境切换到非安全态,并跳到普通操作系统,进入S13步骤;
S13.TrustZone底层驱动程序根据传进来的参数B确定并通知汽车控制客户端程序,进入S14步骤;
S14.汽车控制客户端程序被唤醒,读取共享内存中的数据内容,数据发送完成。
2.如权利要求1所述的一种基于TrustZone的汽车CAN总线数据防护方法,其特征在于:所述处理器为ARM处理器。
3.一种基于TrustZone的汽车CAN总线数据防护系统,其特征在于:包括:
设置汽车安全CAN设备模块:用于将与汽车CAN总线进行通信的CAN设备设置成安全CAN设备,只有处于安全态的处理器才能访问CAN设备;安全操作系统运行在处理器的安全态,只有运行在安全操作系统的软件才能访问CAN设备;
车辆控制数据传送模块:用于当运行于普通操作系统的汽车控制客户端程序需要通过CAN设备发送车辆控制数据时,其调用运行于安全操作系统的安全汽车控制服务端程序,使处理器由运行在非安全态模式切换到运行在安全态模式,进而访问CAN设备完成车辆控制数据传送,从而确保数据传送的安全;
其中,车辆控制数据传送模块的车辆控制数据传送过程具体包括如下步骤:
S1.运行于普通操作系统的汽车控制客户端程序把需要发送的CAN数据按数据帧格式写入共享内存中,进入S2步骤;
S2.汽车控制客户端程序调用TrustZone底层驱动程序,并传入一个参数A,然后进入休眠等待,进入S3步骤;
S3.TrustZone底层驱动程序把传入的参数A保存到固定地址,然后调用SMC指令,使处理器进入到监控模式下,进入S4步骤;
S4.监控模式下的监控程序把普通操作系统的上下文保存起来,再把之前保存的安全操作系统的上下文加载进来,从而将当前环境切换到安全态,并跳到安全操作系统,进入S5步骤;
S5.安全操作系统内部通信管理器根据TrustZone底层驱动程序保存的参数A,调用相应的安全汽车控制服务端程序,进入S6步骤;
S6.安全汽车控制服务端程序读取共享内存中的数据帧并进行安全认证,进入S7步骤;
S7.若安全认证通过,则安全汽车控制服务端程序调用CAN总线驱动程序,把CAN数据发送到安全CAN设备上,并产生正确的结果,进入S8步骤;否则产生错误的结果并生成结果数据帧C,进入S9步骤;
S8.安全汽车控制服务端程序接收来自汽车的CAN响应数据,并把S7步骤中正确的结果和CAN响应数据生成结果数据帧D,进入S9步骤;
S9.安全汽车控制服务端程序把结果数据帧C或结果数据帧D写入共享内存中,进入S10步骤;
S10.安全汽车控制服务端程序调用安全操作系统内部通信管理器,并传入一个可确定汽车控制客户端程序的参数B,进入S11步骤;
S11.安全操作系统内部通信管理器调用SMC指令使处理器进入监控模式,进入S12步骤;
S12.监控模式下的监控程序把安全操作系统的上下文保存起来,再把之前保存的普通操作系统的上下文加载进来,从而将当前环境切换到非安全态,并跳到普通操作系统,进入S13步骤;
S13.TrustZone底层驱动程序根据传进来的参数B确定并通知汽车控制客户端程序,进入S14步骤;
S14.汽车控制客户端程序被唤醒,读取共享内存中的数据内容,数据发送完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611040348.9/1.html,转载请声明来源钻瓜专利网。