一种基于CAN的车载认证及密钥交换方法

文档序号:33189863发布日期:2023-02-04 07:59阅读:208来源:国知局
一种基于CAN的车载认证及密钥交换方法
一种基于can的车载认证及密钥交换方法
技术领域
1.本发明属于汽车电子系统中安全通信协议领域,具体涉及基于can总线的车载认证及密钥交换协议技术。


背景技术:

2.车辆和信息技术的快速融合使得网联汽车快速崛起,汽车由独立封闭走向互联开放。开放接口的增加给车内网络带来了攻击风险。车内的电子控制单元(electronic control unit,ecu)节点间使用不同的总线协议进行网络通信。诸如,can、flexray、lin、most等协议。其中,使用最多的为can协议和以太网协议。can协议作为汽车中最具代表性的车载总线协议,已经成为各国普遍认同的国际标准,并且在未来也将会是车载总线协议的基础。然而其缺乏相应的安全机制,仅有简单的校验并不能保障车内网络的安全,也不能适应联网汽车的发展。
3.为了解决ivn环境下车载网络的信息安全问题,诸多专家学者致力于安全车载网络架构的研究。车辆电子安全入侵检测项目evita定义了车载网络的参考架构,主要包括车载电子组件,如ecu、传感器、执行器等,组件和ecu内部的链接,ecu中的各种软件。evita主要对基于信任的硬件安全模块(hsm)进行了研究。hsm负责执行重要的密码应用,在车载网络中起着至关重要的作用。车辆安全平台项目oversee构建了一个开放式的车载信息平台,通过模块化的运行方式降低了恶意软件运行导致整车系统瘫痪的风险。
4.除了车载网络安全架构的研究之外,针对车载系统架构中具体的协议设计,研究者也展开了不同的方案。对于车内网络的安全防护,ecu之间采用对称密码体制结合固定密钥,主要用于对称加密和消息认证码(mac)机制。虽然对称密码体制具有较高的计算效率,但每个ecu需要存储大量密钥,缺乏有效的密钥管理。同时,制造商需要注册和管理所有的密钥,这更加增加了密钥管理的难度和复杂度。因此,这类方案在现实场景中很难实施。
5.公钥密码体制采用基于数字证书的框架进行身份验证,虽然数字证书具有强大的认证机制,但其需要第三方的基础设施,密钥管理虽然具有极高的安全性,但过程繁琐,导致车载网络的安全机制具有较高的复杂性,且在现实场景中不可行。
6.因此,如何有效保护can总线的安全,构建具有较高安全性的密码协议成为重要的问题。本发明采用基于身份的密码体制,解决了公钥真实性问题,充分体现了公钥的灵活性。利用数字签名方案提供实体间的身份认证,能够抵御欺骗攻击。采用hash函数进行消息完整性验证,能够抵篡改骗攻击。采用随机数和时间戳抵御重放攻击。


技术实现要素:

7.本发明的目的是提供一种基于can的车载认证及密钥交换方法。
8.本发明是一种基于can的车载认证及密钥交换方法,其步骤为:
9.步骤(1)初始化阶段流程为:
10.分步骤(1)mc为每个ecu定义序列号sni,定义有效周期ti,生成ecui的身份标识为
id
ecui
=(ti||sni);
11.分步骤(2)mc定义序列号sn
sm
,生成sm的身份标识为id
sm
=(ti||sn
sm
);
12.分步骤(3)mc选择大素数q,g1、g2是大素数q的两组群,定义双线性映射e:g1
×
g1

g2;
13.分步骤(4)mc选取随机数s∈z
*q
作为主密钥,定义一个随机数生成器p∈g1,生成系统的公钥pk=sp;
14.分步骤(5)m定义哈希函数h1:{0,1}
*
→z*q
,h2:{0,1}
*
×
g1
×
g2
→z*q
,h3:g2

{0,1}n;
15.分步骤(6)mc生成系统参数p={q,g1,g2,e,n,g,pk,h1,h2};
16.分步骤(7)mc生成每个ecui的私钥s
ecui
=h1(id
ecui
)s;
17.分步骤(8)mc生成sm的私钥s
sm
=h1(id
sm
)s;
18.步骤(2)协议交互阶段流程为:
19.分步骤(1)sm选择一个随机数n0,生成消息m1=(n0||t
sm
||m
sm
),选择一个随机数r,生成u、w。利用公钥计算生成密文计算哈希值h1=h2(m1),利用私钥计算签名sm将密文c1、签名v1、u封装成消息request,并发送给ecui;
20.分步骤(2)ecui利用私钥计算计算计算哈希值h1'=h2(m1'),利用公钥验证签名
21.分步骤(3)ecui选择一个随机数n1和密钥k
sym
,生成消息m2=(n1||t
ecui
||m
ecui
||k
sym
),利用公钥计算生成密文计算哈希值h2=h2(m2),利用私钥计算签名ecui将密文c2、签名v2、u封装成消息respond,并发送给sm;
22.分步骤(4)sm利用私钥计算计算计算哈希值h2'=h2(m2'),利用公钥验证签名
23.分步骤(5)sm选择要发送的消息data,计算哈希值h2(data),利用密钥k
sym
加密,并生成消息并将其发送给ecui:
24.分步骤(6)ecui利用密钥k
sym
解密,得到消息data’,计算哈希值h2(data')并验证data。
25.本发明的有益之处在于:1、基于身份密码体制:用户不需要申请和交换证书,无需额外的实体标识与公钥间的映射管理,而是直接使用身份信息进行密码运算,保证了公钥真实性,极大地简化了密钥系统管理和使用的复杂性。2、防止重放攻击:本发明在协议交互流程中使用了时间戳和随机数的安全机制,保证消息在一段时间内有效,能够有效防止重放攻击。3、防止欺骗攻击:本发明使用数字签名的安全机制,保证了实体交互流程中的身份认证,能够有效防止欺骗攻击。4、防止篡改攻击:本发明在整体协议流程中使用hash函数进行数据完整性校验,保证了can总线数据帧传输过程中的正确性,能够有效防止篡改攻击。
附图说明
26.图1是基于can的车内通信协议安全改进方案的消息流模型。
具体实施方式
27.本发明是一种基于can的车载认证及密钥交换方法,其步骤为:
28.步骤(1)初始化阶段流程为:
29.分步骤(1)mc为每个ecu定义序列号sni,定义有效周期ti,生成ecui的身份标识为id
ecui
=(ti||sni);
30.分步骤(2)mc定义序列号sn
sm
,生成sm的身份标识为id
sm
=(ti||sn
sm
);
31.分步骤(3)mc选择大素数q,g1、g2是大素数q的两组群,定义双线性映射e:g1
×
g1

g2;
32.分步骤(4)mc选取随机数s∈z
*q
作为主密钥,定义一个随机数生成器p∈g1,生成系统的公钥pk=sp;
33.分步骤(5)m定义哈希函数h1:{0,1}
*
→z*q
,h2:{0,1}
*
×
g1
×
g2
→z*q
,h3:g2

{0,1}n;
34.分步骤(6)mc生成系统参数p={q,g1,g2,e,n,g,pk,h1,h2};
35.分步骤(7)mc生成每个ecui的私钥s
ecui
=h1(id
ecui
)s;
36.分步骤(8)mc生成sm的私钥s
sm
=h1(id
sm
)s;
37.步骤(2)协议交互阶段流程为:
38.分步骤(1)sm选择一个随机数n0,生成消息m1=(n0||t
sm
||m
sm
),选择一个随机数r,生成u、w。利用公钥计算生成密文计算哈希值h1=h2(m1),利用私钥计算签名sm将密文c1、签名v1、u封装成消息request,并发送给ecui;
39.分步骤(2)ecui利用私钥计算计算计算哈希值h1'=h2(m1'),利用公钥验证签名
40.分步骤(3)ecui选择一个随机数n1和密钥k
sym
,生成消息m2=(n1||t
ecui
||m
ecui
||k
sym
),利用公钥计算生成密文计算哈希值h2=h2(m2),利用私钥计算签名ecui将密文c2、签名v2、u封装成消息respond,并发送给sm;
41.分步骤(4)sm利用私钥计算计算计算哈希值h2'=h2(m2'),利用公钥验证签名
42.分步骤(5)sm选择要发送的消息data,计算哈希值h2(data),利用密钥k
sym
加密,并生成消息并将其发送给ecui:
43.分步骤(6)ecui利用密钥k
sym
解密,得到消息data’,计算哈希值h2(data')并验证data。
44.下面用实施例进一步展开本发明的内容。
45.如图1所示,本发明是一种基于can的车载认证及密钥交换方法,基于身份的加密
机制的无证书框架,框架包括初始化阶段和协议交互阶段。sm(安全模块)是ecu的集中密钥管理器。sm是车辆网络ivn内每个ecu的密钥管理的集中点,通过使用安全模块(sm)或网关作为密钥管理的集中点可简化密钥分发。
46.符号说明:id:身份标识,sm的公钥,ecui的公钥,sm的私钥,ecui的私钥,k
sym
:会话密钥,h
x
():哈希函数,n
x
:随机数,t
x
:时间戳,m
x
:车辆附加消息,s:主密钥,pk:系统公钥,m:明文,c:密文。
47.1.初始化阶段:
48.mc生成sm和n个ecu的身份信息id
ecui
和id
sm
,这些身份信息由mc管理,有效周期ti表明身份信息的有效性,方便制造商进行维护和更新设备。
49.(1)mc生成sm和n个ecu的id,为ecui生成id
ecui
,为sm生成id
sm

50.1)mc为每个ecu定义序列号sni,定义有效周期ti,生成ecui的身份标识为id
ecui
=(ti||sni)。
51.2)mc定义序列号sn
sm
,生成sm的身份标识为id
sm
=(ti||sn
sm
)。
52.(2)mc生成主密钥s和系统参数p,定义双线性映射和哈希函数,为后续协议流程阶段奠定了基础:
53.1)mc选择大素数q,g1、g2是大素数q的两组群,定义双线性映射e:g1
×
g1

g2。
54.2)mc选取随机数s∈z
*q
作为主密钥,定义一个随机数生成器p∈g1,生成系统的公钥pk=sp。
55.3)m定义哈希函数h1:{0,1}
*
→z*q
,h2:{0,1}
*
×
g1
×
g2
→z*q
,h3:g2

{0,1}n。
56.4)mc生成系统参数p={q,g1,g2,e,n,g,pk,h1,h2}。
57.(3)mc计算每个ecui的私钥secui和sm的私钥ssm,向每个ecu发送身份信息idecui、idsm、参数p和私钥secui,向sm发送身份信息idsm、idecui、参数p和私钥ssm:
58.1)mc生成每个ecui的私钥s
ecui
=h1(id
ecui
)s。
59.2)mc生成sm的私钥s
sm
=h1(id
sm
)s。
60.2.协议流程阶段:
61.车辆运行此阶段以验证每个ecu的身份,主要为ecu和sm间定期进行相互验证或维护。因此在协议的设计时,为了有效抵御重放攻击,加入了随机数和时间戳。为了有效抵御欺骗攻击,引入了数字签名技术,保证了实体交互流程中双向身份认证。为了有效抵御篡改攻击,引入了hash函数,保证了协议交互流程的安全性。
62.(1)ecui对sm的身份进行验证的过程,利用双线性加密的方法,引入了时间戳、随机数、hash函数,数字签名等安全机制。
63.1)sm选择一个随机数n0,生成消息m1=(n0||t
sm
||m
sm
),选择一个随机数r,生成u、w。利用公钥计算生成密文计算哈希值h1=h2(m1),利用私钥计算签名sm将密文c1、签名v1、u封装成消息request,并发送给ecui。
64.2)ecui利用私钥计算计算计算哈希值h1'=h2(m1'),利用公钥验证签名若验证不通过,则重置,若验
证通过,则进行下一步。
65.(2)sm对ecui的身份进行验证,若验证成功,则ecui共享会话密钥进行数据帧的传输过程。
66.1)ecui选择一个随机数n1和密钥k
sym
,生成消息m2=(n1||t
ecui
||m
ecui
||k
sym
),利用公钥计算生成密文计算哈希值h2=h2(m2),利用私钥计算签名ecui将密文c2、签名v2、u封装成消息respond,并发送给sm。
67.2)sm利用私钥计算计算计算哈希值h2'=h2(m2'),利用公钥验证签名
68.(3)sm作为网关,选择要发送的数据data,向ecui发送数据,利用hash函数的安全机制可以保证数据的正确性和完整性。
69.1)sm选择要发送的消息data,计算哈希值h2(data),利用密钥k
sym
加密,并生成消息并将其发送给ecui。
70.2)ecui利用密钥k
sym
解密,得到消息data’,计算哈希值h2(data')并验证data。
71.本发明引入了基于身份的密码体制,相较于传统公钥基础设施pki具有巨大的灵活性、扩展性、简洁性。ibe的一个集中密钥管理器,称为私钥生成器(pkg),允许在不依赖于第三方的情况下实现公钥机制。因为系统加密过程直接使用应用涉及的标识作为公钥,无需分发、查询证书、无需申请策略证书等,充分体现了加密操作的便捷性。针对欺骗攻击,本发明引入了数字签名技术,保证了身份认证的可靠性。针对篡改攻击,本发明利用hash值进行消息校验。针对重放攻击,本发明使用了随机数和时间戳的安全机制,保证了消息的有效性。
72.本发明所提出的基于can的车载认证及密钥交换协议具有较高的安全性,协议的安全机制可以抵御重放、欺骗、篡改等3类中间人攻击,可用于车载can通信sm和ecu之间的安全通信,保证了车内网络ecu间数据帧的安全传输。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1