基于预共享密钥的车载CANFD总线通信系统及方法与流程

文档序号:12739395阅读:335来源:国知局
基于预共享密钥的车载CAN FD总线通信系统及方法与流程

本发明涉及一种基CAN FD总线通信系统及方法,尤其是涉及一种基于预共享密钥的车载CAN FD总线通信系统及方法。



背景技术:

随着汽车电子化程度的不断提高,许多和安全相关的功能需要借助电子单元来完成,比如主动刹车、自适应巡航、远程启动等。两位黑客在2013年黑客大会上介绍了如何攻击丰田普锐斯和福特翼虎的控制系统,以实现高速行驶时突然制动、使车辆刹车失灵、猛打方向盘等一系列操作过程,奇虎360公司于2014年7月称发现特斯拉应用程序存在安全漏洞,黑客可借此远程控制车辆,操控开锁、鸣笛、闪灯、开启天窗等。2015年两位信息安全研究员通过入侵克莱斯勒切诺基的车载娱乐系统取得了车辆的控制权,威胁到了汽车的行驶安全。

目前车内ECU(电子控制单元)之间大多采用基于信号的总线通讯方式,一般并不对通讯信息进行加密,报文为明文传输。在无线网络、3G、4G网络引入汽车后,汽车有了对外的信息接口,这个接口一般通过车载娱乐系统作为网关完成。这就意味着,一旦车载网关被黑客攻破,汽车就非常危险,黑客可以通过汽车总线收发报文,从而操纵汽车或是修改汽车的配置。新型CAN FD总线相比传统CAN网络有着更高的速率和数据容量,为使用密码技术提供了空间。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于预共享密钥的车载CAN FD总线通信系统及方法。

本发明的目的可以通过以下技术方案来实现:

一种基于预共享密钥的车载CAN FD总线通信系统,该系统包括多个ECU和主管理节点控制器,所述的主管理节点控制器和ECU分别连接至CAN FD通信总线形成总线结构,所述的ECU内分别存储有彼此相互独立的预共享密钥,所述的主管理节点控制器中存储所有ECU对应的预共享密钥;

系统启动时,主管理节点控制器和ECU分别采用对应的预共享密钥进行安全启动检查、时钟同步和会话密钥分配,进而后续ECU通过分配的会话密钥进行会话。

所述的预共享密钥和会话密钥均包括用于数据加密的加密密钥和用于MAC认证的签注密钥。

一种基于预共享密钥的车载CAN FD总线通信方法,该方法包括如下步骤:

(1)系统启动,主管理节点控制器对每个ECU分别进行安全启动检查,若安全启动完成则执行步骤(2);

(2)主管理节点控制器作将自身作为基准时钟,通过多帧问答方式对各ECU进行时钟同步,同步完成后执行步骤(3);

(3)主管理节点控制器对各ECU随机分配会话密钥,分配成功后执行步骤(4);

(4)各ECU通过分配的会话密钥进行会话;

在上述步骤(1)~(3)中主管理节点控制器和ECU之间分别通过对应的预共享密钥进行数据通信过程中的加密和MAC认证。

步骤(1)~(4)中主管理节点控制器和ECU之间采用CAN FD安全报文,所述的CAN FD安全报文包括64个字节的数据场,所述的数据场第一字节设置为安全级别标识,进而根据不同的安全级别标识将CAN FD安全报文划分为不同的安全等级。

CAN FD安全报文包括3安全等级,分别为等级0、等级1和等级2;

当CAN FD安全报文安全等级为等级0时,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识和63字节的明文数据;

当CAN FD安全报文安全等级为等级1时,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的明文数据和15字节的MAC校验场数据;

当CAN FD安全报文安全等级为等级2时,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据。

步骤(1)对于任一ECU进行安全启动检查具体为:

(1a)主管理节点控制器生成随机数r,主管理节点控制器将包括随机数r的明文数据以及MAC校验值的报文发送至ECU;

(1b)ECU对接收的第一报文进行MAC验证,验证成功后向ECU将随机数r的明文通过预共享密钥进行加密和MAC认证,发回主管理节点控制器;

(1c)主管理节点控制器对ECU发来的数据通过主管理节点控制器中存储的对应的预共享密钥进行解密,如果随机数解密值和步骤(1a)中主管理节点控制器最初发送的随机数r一致且MAC有效,安全启动完成。

步骤(2)对任一ECU进行时钟同步具体为:

(2a)主管理节点控制器通过预共享密钥向ECU发起时钟同步请求,时钟同步请求中包含主管理节点控制器生成的随机数R1;

(2b)ECU验证时钟同步请求,验证通过后ECU生成随机数R2附在R1后发给主管理节点控制器;

(2c)主管理节点控制器进行消息验证,验证通过后,主管理节点控制器发送包含随机数R1、随机数R2和当前时间T1的报文给ECU;

(2d)ECU接收到主管理节点控制器发送的报文,记录主管理节点控制器发送的当前时间T1以及本地接收时间T2;

(2e)ECU发送包含随机数R1、随机数R2和本地时间T3的报文给主管理节点控制器;

(2f)主管理节点控制器接收ECU发送的报文并将本地接收时间T4并发回给ECU;

(2g)ECU接收到主管理节点控制器发送的本地接收时间T4后根据T1、T2、T3和T4按照IEEE 1588时间同步原理进行时钟同步更新,ECU将更新后的时间发送至主管理节点控制器,结束时钟同步;

上述过程中主管理节点控制器和ECU通信过程中报文采用第2安全等级的CAN FD安全报文,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据,所述的密文数据通过预共享密钥中的加密秘钥进行加密,MAC校验场数据通过预共享密钥中的签注秘钥对密文数据进行认证生成。

步骤(3)对任一ECU进行分配会话密钥具体为:

(3a)主管理节点控制器生成会话密钥和随机数R1,所述的会话密钥包括会话加密密钥和会话签注密钥;

(3b)主管理节点控制器向ECU发送会话密钥更新请求,该请求包括生成的随机数R1;

(3c)ECU在接到请求后进行验证,如果通过,ECU生成随机数R2并和R1一并发送给主管理节点控制器;

(3d)主管理节点控制器依次通过预共享密钥发送会话加密密钥和会话签注密钥给ECU,如果ECU接受对应的会话加密密钥和会话签注密钥并成功载入,则返回对应的会话加密密钥或会话签注密钥的MAC给主管理节点控制器;

上述过程中主管理节点控制器和ECU通信过程中报文采用第2安全等级的CAN FD安全报文,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据,所述的密文数据通过预共享密钥中的加密秘钥进行加密,MAC校验场数据通过预共享密钥中的签注秘钥对密文数据进行认证生成。

与现有技术相比,本发明具有如下优点:

(1)本发明设置主管理节点控制器和多个ECU,并在对应的ECU内设置独立的预共享密钥,同时在主管理节点控制器内存储每个ECU对应的预共享密钥,在汽车每次启动时进行安全启动检查、时钟同步和会话密钥分配,最后ECU通过分配的会话密钥进行安全会话,保证通信安全性;

(2)本发明通信过程的报文采用CAN FD报文,通过设置安全级别标识,进而根据不同的安全级别标识将CAN FD安全报文划分为不同的安全等级,能够根据报文安全级别合理利用报文空间达到安全性和通信效率的平衡,可以针对不同安全应用场景,实现最高效的利用总线带宽;

(3)本发明CAN FD报文使接入总线的攻击者无法伪造报文,获取加密前的明文信息,并可以检测出攻击者对报文的篡改;

(4)本发明方法简单,便于对现有的CAN通讯协议进行改造,使其具备抵抗信息安全攻击的能力。

附图说明

图1为本发明基于预共享密钥的车载CAN FD总线通信系统的结构框图;

图2为本发明基于预共享密钥的车载CAN FD总线通信方法的流程框图;

图3为本发明CAN FD安全报文的组成结构图;

图4为本发明安全启动检查的具体流程图;

图5为本发明时钟同步的具体流程图;

图6为本发明分配会话密钥的具体流程图。

图中,1为主管理节点控制器,2为ECU,3为预共享密钥。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例

如图1所示,一种基于预共享密钥的车载CAN FD总线通信系统,该系统包括主管理节点控制器1和多个ECU2,所述的主管理节点控制器1和ECU2分别连接至CAN FD通信总线形成总线结构,所述的ECU2内分别存储有彼此相互独立的预共享密钥3,所述的主管理节点控制器1中存储所有ECU2对应的预共享密钥3,本实施例中,ECU2设置5个,进而对应的预共享密钥3为K1、K2……K5;系统启动时,主管理节点控制器1和ECU2分别采用对应的预共享密钥3进行安全启动检查、时钟同步和会话密钥分配,进而后续ECU2通过分配的会话密钥进行会话。所述的预共享密钥3和会话密钥均包括用于数据加密的加密密钥和用于MAC认证的签注密钥。

如图2所示,一种基于预共享密钥3的车载CAN FD总线通信方法,该方法包括如下步骤:

S1:系统启动,主管理节点控制器1对每个ECU2分别进行安全启动检查,若安全启动完成则执行步骤S2;

S2:主管理节点控制器1作将自身作为基准时钟,通过多帧问答方式对各ECU2进行时钟同步,同步完成后执行步骤S3;

S3:主管理节点控制器1对各ECU2随机分配会话密钥,分配成功后执行步骤(4);

S4:各ECU2通过分配的会话密钥进行会话;

在上述步骤S1~S3中主管理节点控制器1和ECU2之间分别通过对应的预共享密钥3进行数据通信过程中的加密和MAC认证。

步骤S1~S4中主管理节点控制器1和ECU2之间采用CAN FD安全报文,所述的CAN FD安全报文包括64个字节的数据场,所述的数据场第一字节设置为安全级别标识,进而根据不同的安全级别标识将CAN FD安全报文划分为不同的安全等级。

如图3所示,CAN ID表示仲裁场,CONTROL表示控制长,后接数据场,数据场中DCC为安全级别标识,根据DCC的不同,CAN FD安全报文包括3安全等级,分别为等级0、等级1和等级2;

当CAN FD安全报文安全等级为等级0时,DCC=0,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识和63字节的明文数据;

当CAN FD安全报文安全等级为等级1时,DCC=1,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的明文数据和15字节的MAC校验场数据,MAC的保护范围包括CAN ID、数据场中第1个字节和48字节的明文数据;

当CAN FD安全报文安全等级为等级2时,DCC=2,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据,MAC的保护范围包括CAN ID、数据场中第1个字节和48字节的密文数据。

数据场后接循环冗余检查(CRC)和确认字符(ACK)。

主流对称加密算法如AES(FIPS 197)自标准化以来已经被国际上广为接受采用并经过多年验证,可以有效抵御针对明文的暴力破解。基于AES的MAC算法(NIST SP800-38)可以有效检测出对数据或MAC的篡改。

如图4所示,步骤S1对于任一ECU2进行安全启动检查具体为:

(1a)主管理节点控制器1生成随机数r,主管理节点控制器1将包括随机数r的明文数据以及MAC校验值的报文发送至ECU2;

(1b)ECU2对接收的第一报文进行MAC验证,验证成功后向ECU2将随机数r的明文通过预共享密钥3进行加密和MAC认证,发回主管理节点控制器1;

(1c)主管理节点控制器1对ECU2发来的数据通过主管理节点控制器1中存储的对应的预共享密钥3进行解密,如果随机数解密值和步骤(1a)中主管理节点控制器1最初发送的随机数r一致且MAC有效,安全启动完成。

如图5所示,步骤S2对任一ECU2进行时钟同步具体为:

(2a)主管理节点控制器1通过预共享密钥3向ECU2发起时钟同步请求,时钟同步请求中包含主管理节点控制器1生成的随机数R1;

(2b)ECU2验证时钟同步请求,验证通过后ECU2生成随机数R2附在R1后发给主管理节点控制器1;

(2c)主管理节点控制器1进行消息验证,验证通过后,主管理节点控制器1发送包含随机数R1、随机数R2和当前时间T1的报文给ECU2;

(2d)ECU2接收到主管理节点控制器1发送的报文,记录主管理节点控制器1发送的当前时间T1以及本地接收时间T2;

(2e)ECU2发送包含随机数R1、随机数R2和本地时间T3的报文给主管理节点控制器1;

(2f)主管理节点控制器1接收ECU2发送的报文并将本地接收时间T4并发回给ECU2;

(2g)ECU2接收到主管理节点控制器1发送的本地接收时间T4后根据T1、T2、T3和T4按照IEEE 1588时间同步原理进行时钟同步更新,ECU2将更新后的时间发送至主管理节点控制器1,结束时钟同步;

上述过程中主管理节点控制器1和ECU2通信过程中报文采用第2安全等级的CAN FD安全报文,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据,所述的密文数据通过预共享密钥3中的加密秘钥进行加密,MAC校验场数据通过预共享密钥3中的签注秘钥对密文数据进行认证生成。

如图6所示,步骤S3对任一ECU2进行分配会话密钥具体为:

(3a)主管理节点控制器1生成会话密钥和随机数R1,所述的会话密钥包括会话加密密钥和会话签注密钥;

(3b)主管理节点控制器1向ECU2发送会话密钥更新请求,该请求包括生成的随机数R1;

(3c)ECU2在接到请求后进行验证,如果通过,ECU2生成随机数R2并和R1一并发送给主管理节点控制器1;

(3d)主管理节点控制器1依次通过预共享密钥3发送会话加密密钥和会话签注密钥给ECU2,如果ECU2接受对应的会话加密密钥和会话签注密钥并成功载入,则返回对应的会话加密密钥或会话签注密钥的MAC给主管理节点控制器1;

同理,上述过程中主管理节点控制器1和ECU2通信过程中报文采用第2安全等级的CAN FD安全报文,CAN FD安全报文64个字节的数据场依次配置为:1个字节的安全级别标识、48字节的密文数据和15字节的MAC校验场数据,所述的密文数据通过预共享密钥3中的加密秘钥进行加密,MAC校验场数据通过预共享密钥3中的签注秘钥对密文数据进行认证生成。

具体地,如图6中序号1为第一条报文,其包含随机数R1的密文数据以及MAC值,其中随机数R1的密文数据通过通过预共享密钥3中的加密秘钥进行加密,MAC校验场数据通过预共享密钥3中的签注秘钥对密文数据进行认证生成,同理序号2的报文也如此。随后,序号3的报文中包括随机数R1、随机数R2和应答加密密钥Ek的密文数据,其后紧接为CAN ID、数据场中第1个字节和48密文数据的MAC值,序号4的报文为ECU2的应答报文,其中包括随机数R1、随机数R2和加密密钥Ek的MAC的密文数据,随机数R1、随机数R2和加密密钥Ek的MAC的密文数据组成数据场中的48字节的密文数据,其后紧接为CAN ID、数据场中第1个字节和48密文数据的MAC值,同理序号5报文与序号3报文类似,序号6报文和序号4报文类似。

系统上电后,主管理节点控制器1首先对子网内所有ECU2进行安全启动检查,以确保每个ECU2都能正确使用预共享密钥3。在所有ECU2通过检查后,主管理节点控制器1通过时间更新协议对所有ECU2进行时间更新,实现时钟同步,以保证安全通信中时间戳的准确性。在时钟同步完成后,主管理节点控制器1对所有ECU2分配一个公共会话密钥,该公共会话密钥保证子网内各个ECU2共享一个安全会话密钥,可以进行安全通信。在安全启动过程中,所有的协议都由密钥管理员节点发起,这可以保证主管理节点控制器1对各ECU2状态的掌控。当安全启动流程结束后,ECU2节点仍可通过主管理节点控制器1发起时钟同步和密钥分配请求,以满足安全会话的要求。

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