基于瞬态的CAN总线安全鉴定方法与流程

文档序号:18226362发布日期:2019-07-19 23:29阅读:495来源:国知局
基于瞬态的CAN总线安全鉴定方法与流程

本发明涉及一种瞬态与时间戳相结合的传输认证方法对can(controllerareanetwork)汽车总线传输异常进行鉴方法,具体是一种基于瞬态的can总线安全鉴定方法。



背景技术:

控制器局域网络协议即can协议是由德国bosch公司开发的一种串行通信总线协议,使用总线型连接方式连接汽车内的多个电控单元,相较传统协议大大减少了车载所需的通信线路数量,并提供了更高的数据传输可靠性。但该总线协议在安全方面考虑不多,由于车辆在行驶过程中处于一种连续高速状态,车内的电控单元的通信控制着车辆的行驶状态,若在车辆行驶过程中黑客对车辆实施攻击,可能会引发严重交通事故,对驾驶员的生命安全造成严重威胁。

为了有效增强can总线传输的安全性,研究学者提出一系列安全传输协议,目前研究主要使用以下三种手段保证通信过程的安全。

(1)使用对称加密算法。

(2)使用认证标记。

(3)使用非对称加密算法。

对称加密算法对数据进行加密和解密时使用同一个密钥,目前的can安全鉴定协议中使用的加密算法一般为汽车出厂后的预置密钥,所有电控单元均持有同一个密钥。由于汽车出厂后预置密钥难以更换,因此该密钥会被长久使用,导致密钥被破解的可能性大大增加。同时当汽车损坏更换部件时,丢弃掉的电控单元存在密钥泄漏的风险,新更换的电控单元的预置密钥也要与车上其他单元保持一致,这在一定程度上也提高了复杂度。

认证标记是一种通过传输额外的认证信息来保证消息的真实性和有效性,如使用mac算法计算消息认证码并连同消息一起发送出去,接收方在收到消息后使用相同的mac算法计算消息认证码并与收到的消息认证码进行比对,从而验证消息的真实性。该方法需要额外传输认证信息,由图1所示的can数据帧结构图可知,can数据域的实时约束仅为64bits,即使使用can+技术扩大数据帧传输量,最多能扩展至64bits+f*64bits=(1+f)*64bits,其中f最大可以为16,也就是说最大传输比特位为1088bits=136bytes,这也是远远不够的,因此要传输额外的认证信息势必要增加数据帧数量,从而带来更高的数据延迟和更高的丢包率,造成安全隐患。

非对称加密算法存在公钥和私钥两把密钥,公钥公开,消息的加密使用公钥加密,接收者收到该公钥加密的消息后使用自身持有的私钥对消息进行解密。由于私钥独自持有,因此该方法相较于对称加密算法安全性更高,但遗憾的是,该方法的复杂度也更高,该方法为了保证公钥的真实性和有效性,需要有第三方机构进行证书认证,同时该方法的加密和解密更加复杂,因此该方法实际上并不适用于can通信加密。



技术实现要素:

为了解决现有技术中存在的上述技术问题,本发明的目的是为了提高密钥的安全性,避免长期固定密钥被破解的情况发生,保护can总线传输安全。具体技术方案如下:

一种基于瞬态的can总线安全鉴定方法,包括如下步骤:

步骤1.汽车出厂时,由厂家进行出厂设置,对各ecu进行上电启动,各ecu获得自身的瞬态值vts,并将vts发给其他ecu,出厂设置结束后,各ecu均存储有其他ecu的瞬态值vts;

步骤2.每次汽车启动时,ecu获取启动时间戳ti,每个ecu获取的ti在经过误差消除后一致;

步骤3.各ecu生成动态密钥k,该密钥k仅在本次汽车行驶期间有效,当汽车熄火后k作废,下次汽车启动时会重新生成新的密钥k;

步骤4.ecu发送消息时使用自身的动态密钥k对消息data进行加密处理得到data,无需额外的认证标记并将其发送出去;接收方ecui收到消息后在自身存储的瞬态值中找到发送方的瞬态值,并根据ti计算出解密密钥k’,若k’=k,对加密后的消息data进行解密获取到消息data。

进一步的,所述瞬态值vts的幅度a(t)和相位θ(t)按公式(1)和公式(2)计算,其中i(t)和q(t)分别为复数信号的同相和正交分量:

把公式(2)计算得到的信号瞬时相位θ(t)展开以消除t=2π·n(n=1.2,...,n)造成的不连续性,将展开向量中每个元素的绝对值记为av,为了放大信号的噪声和瞬态部分之间的变化,再针对av的每个连续部分计算相位特征方差,将这些特征存储在长度为n/s的临时矢量tv中获得相位方差之间的差异以便创建分形轨迹ft:

tv(i)=var(av(d+1),av(d+2),......av(g))(3)

其中n为样本总数,i=1,2,…,n/s,g=i×s,d=g-s,s为滑动系数,var表示幅值的方差;

之后使用如下的两步过程来执行瞬态的检测:

(1)将该元素中的每个元素与阈值进行比较,直到元素的值以及接下来的4个元素的值满足公式(4):

ft(i),ft(i+1),......,ft(i+4)≤5(4)

(2)sv代表幅度总和,ft代表分形轨迹

|sv(i)-sv(i-1)|≤0.25×ft(i)(5)

满足上述两步骤后获取到瞬态值vts。

进一步的,步骤2中通过公式(6)消除误差:

ti=f(ti)(6)

f函数为误差消除函数,该函数对ti进行模糊处理。

进一步的,步骤3中根据公式(7)生成动态密钥k:

其中hash1和hash2为单向散列函数,输出固定长度的散列值。

本发明与现有技术相比使用电控单元的物理属性瞬态来生成各电控单元的初始密钥,瞬态对于每个物理器件是唯一的,可以作为一种电子指纹标识物理器件,同时引入汽车启动时的时间戳动态生成通信密钥,保证汽车在每次启动时生成密钥的新鲜度,实现密钥的动态变化,提高密钥的安全性。

附图说明

图1是can数据帧结构图;

图2是瞬态值获取示意图;

图3是本发明的鉴定方法流程图。

具体实施方式

下面结合附图对本发明作进一步说明。

瞬态是电子器件在上电启动时的瞬时电压,对于任意一个电子器件而言,其瞬态值均是唯一的,因此该值可以唯一的代表该器件,起到电子指纹的作用并对器件进行身份认证保护了各ecu的独特性,使用瞬态就无需额外引入认证标记,保护了消息数据完整,避免不必要的数据冗余导致消息丢失。目前已有研究给出了瞬态值测量的方法,信号的相位不易受噪声和干扰的影响可以表现出不同程度的波动,再加上与瞬态相关的相位斜率呈线性,本发明可以采用相位特征检测瞬态以及指纹提取的射频指纹识别(rff)技术对瞬态信号进行高效检测。瞬态幅度a(t)和相位θ(t)按公式(1)和公式(2)计算,其中i(t)和q(t)分别为复数信号的同相和正交分量:

把公式(2)计算得到的信号瞬时相位θ(t)展开以消除t=2π·n(n=1,2,...,n)造成的不连续性,将展开向量中每个元素的绝对值记为av,为了放大信号的噪声和瞬态部分之间的变化,再针对av的每个连续部分计算相位特征方差,将这些特征存储在长度为n/s的临时矢量tv中获得相位方差之间的差异以便创建分形轨迹ft:

tv(i)=var(av(d+1),av(d+2),......av(g))(3)

其中n为样本总数,i=1,2,…,n/s,g=i×s,d=g-s,s为滑动系数(推进窗口的样本数),var表示幅值的方差;

之后使用如下的两步过程来执行瞬态的检测:

(1)将该元素中的每个元素与阈值进行比较,直到元素的值以及接下来的4个元素的值满足公式(4):

ft(i),ft(i+1),......,ft(i+4)≤5(4)

(2)sv代表幅度总和,ft代表分形轨迹

|sv(i)-sv(i-1)|≤0.25×ft(i)(5)

满足上述两步骤后就可以获取到瞬态值vts,如图2所示。

在汽车进行出厂时,由厂家对汽车电控单元进行初始化设置,各电控单元测量出自身的瞬态值vts并将其发送给其他电控单元,各电控单元内部存储有其他电控单元的瞬态值。为了防止静态密钥的长期使用带来的泄露风险,使用时间戳对密钥进行动态化处理。将汽车启动时的时间戳ti作为密钥生成因子,每次汽车启动时,所有电控单元均能获得相同的ti并对其进行时间戳转换得到ti,使用瞬态值和ti生成本次启动使用的密钥。

密钥的生成与各ecu的vts和汽车启动的时间戳ti得到,公式为

ti=f(ti)(6)

其中hash1和hash2为单向散列函数,输出固定长度的散列值。f函数为误差消除函数,该函数能够对ti进行模糊处理,消除由于时钟偏移等问题带来的各ecu获取的ti存在细微差别的问题。

实施例

如图3所示,本发明的基于瞬态的can总线安全鉴定方法具体如下:

1.汽车出厂时,由厂家进行出厂设置,该设置主要为对各ecu进行上电启动,各ecu获得自身的瞬态值vts,并将vts发给其他ecu,出厂设置结束后,各ecu均存储有其他ecu的瞬态值vts。

2.每次汽车启动时,ecu获取启动时间戳ti,每个ecu获取的ti在经过公式(6)进行误差消除后是一致的。

3.各ecu根据公式(7)生成动态密钥k,该密钥k仅在本次汽车行驶期间有效,当汽车熄火后k作废,下次汽车启动时会重新生成新的密钥k。

4.ecu发送消息时使用自身的密钥对消息data进行加密处理得到data,无需额外的认证标记并将其发送出去;接收方ecui收到消息后在自身存储的瞬态值中找到发送方的瞬态值,并根据ti计算出解密密钥k',若k'=k,对加密后的消息data进行解密获取到消息data。

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