基于密钥预分配的汽车ecu完整性验证和加密通信方法

文档序号:10660606阅读:1342来源:国知局
基于密钥预分配的汽车ecu完整性验证和加密通信方法
【专利摘要】本发明公开了一种基于密钥预分配的汽车ECU完整性验证和加密通信方法,使用KPS为每个ECU提供唯一会话密钥,通过比对ECU固件哈希值进行身份验证,判断ECU是否被篡改,采用本地和远程相结合的两步验证机制,安全验证包括汽车出厂初始化、汽车启动自检。本发明采用远程与本地相结合,通信信道安全,ECU之间会话密钥互不相同,具有极高的安全性,预分配给ECU的是加密算法而不是密钥,大大减轻了密钥分配的难度,采用比对哈希值来检测ECU完整性,高效、低成本,核心数据都存放在ECU的安全模块上,能够抵抗物理攻击,更换原厂ECU和更新ECU固件后,仍然可以应用本安全机制来验证和加密通信。
【专利说明】
基于密钥预分配的汽车ECU完整性验证和加密通信方法
技术领域
[0001] 本发明属于汽车智能化领域,尤其涉及一种基于密钥预分配的汽车ECU完整性验 证和加密通信方法。
【背景技术】
[0002] 汽车智能化的同时也带来各种危险。车上安装的各个智能系统是由车内ECU (Electronic Control Unit,电子控制单元)进行控制,每个智能系统都有自己的EOJ,它们 之间通过汽车内部总线进行通信,而现在应用最多的CAN(Control AreaNetwork,控制区域 网络)总线在设计之初并没有考虑信息安全特性,发送/接收数据包没有身份验证和加密机 制,所以数据是以明文传输,黑客只要获得CAN总线权限,就可以向ECU发送伪造数据包,修 改ECU的行为,甚至可以篡改ECU固件(ECU的操作系统),植入病毒。汽车的安全缺陷在于:
[0003] (1)控制命令以明文传输导致容易被截取、伪造;
[0004] (2)ECU固件很容易被篡改。应对这些安全威胁,本发明提出一种安全加密机制,能 够同时解决上面两个问题。

【发明内容】

[0005] 本发明的目的在于提供一种基于密钥预分配的汽车ECU完整性验证和加密通信方 法,旨在解决现有汽车控制系统控制命令容易被截取伪造,ECU固件容易被篡改,存在安全 缺陷的问题。
[0006] 本发明是这样实现的,一种基于密钥预分配的汽车ECU完整性验证和加密通信方 法使用KPS为每个ECU提供唯一会话密钥,通过比对ECU固件哈希值进行身份验证,判断ECU 是否被篡改,采用本地和远程相结合的两步验证机制,安全验证包括汽车出厂初始化、汽车 开机自检。
[0007] 进一步,基于密钥预分配的汽车ECU完整性验证和加密通信方法的安全框架由管 理员、主E⑶、普通E⑶组成;
[0008] TSP作为管理员,负责对汽车ECU进行远程验证,并分发KPS密钥算法给每个E⑶,厂 商预定一个高性能ECU作为主ECU,用它对其他ECU进行本地验证,通过比对ECU固件哈希值 来判断其是否被篡改,通信过程用对称加密算法加密,密钥由KPS生成;
[0009] TSP保存着:各型号汽车拥有的固件版本列表及其对应的固件哈希值,存储为 (type,version)和(version,H(R0M));加密初始化验证ECU的密钥K y;KPS密钥矩阵Aij生成 器,为每辆车生成随机矩阵;
[0010] 主ECU保存着:主ECU的序列号SM;TSP的序列号S。;与TSP的共享密钥的K m;本汽车所 有合法E⑶固件哈希值列表;KPS密钥生成算法Fm(y)。
[0011] 普通ECU保存着:E⑶的序列号Sx; TSP的序列号S。;与TSP的共享密钥Kx;合法的主 ECU固件各版本哈希值列表(代^1〇11,!1(1?(^));1^密钥生成算法?々)。
[0012] 进一步,每个普通ECU的安全模块里存有序列号S、密钥K(ECU与TSP共同的密钥,不 同的ECU和TSP共同密钥是不一样的。)、TSP的序列号,汽车出厂前,TSP将对ECU进行初始化, 分发密钥算法,步骤如下:
[0013] (1)主或普通E⑶发送序列号S给TSP,TSP查询数据库,取出对应密钥K(若查不到记 录,则验证失败),同时生成随机数R,用作会话密钥。
[0014] (2)TSP产生随机数R和自己的序列号Sc合并加密后的密文Ek(R| |SC)发给EdECU 解密后将Sc和预存的进行比对,若符合则通过验证。至此,通信双方身份验证完成。
[0015] (3)ECU将固件哈希值与车辆序列号Sv合并加密后的密文Ek(Sv| |H(R0M))发送给 TSP〇
[0016] (4)TSP解密消息,将H(ROM)和预存进行比对,若符合则通过验证。之后,TSP计算 KPS矩阵Aij,代入密钥算法F,将其与该型号车辆所有ECU固件哈希值列表合并加密后的密文 Er(F(y) | | H(ROM))发给ECU JCU解密消息后保存至安全模块。至此,TSP对E⑶初始化完成。
[0017] 进一步,汽车开机自检时,主E⑶对其他E⑶进行本地验证,检测固件是否被篡改, 验证步骤如下:
[0018] 步骤一、主E⑶发送质询信号:生成随机数n、r2,广播η给每个普通EOT;
[0019]步骤二、普通ECU回答质询,返回固件哈希值:普通ECU生成随机数r,计算固件哈希 值,用Fx(Sm)计算会话密钥,将合并加密后的密文|H(R0M)x| |n| |r)发送给主 ECU;
[0020]步骤三、主E⑶检测固件是否被篡改,返回检测结果:主E⑶用Fm(Sx)计算解密密钥, 将解密得到的H(R0M)x与预存比对,若符合则固件未被篡改,之后主ECU将r、r2合并加密后的 密文|r)发送给普通ECU,普通ECU解密消息,由返回r可得知验证通过。
[0021 ] 进一步,经过初始化,E⑶获得密钥生成算法Fx(y),通过主E⑶验证后,E⑶获得随机 数?,每个通信消息都附上时间戳,最终在CAN总线上传送的密文为%,和
[0022] 本发明的有益效果如下:
[0023] (1)采用远程与本地相结合的验证方式,远程验证保护数据安全,本地验证提高验 证速度。
[0024] (2)Ε⑶与TSP、E⑶之间的通信都是加密的。TSP对ECU初始化是在车厂,通信信道安 全,E⑶之间会话密钥互不相同,具有极高的安全性。
[0025] (3)预分配给ECU的是加密算法而不是密钥,大大减轻了密钥分配的难度。
[0026] (4)采用比对哈希值来检测E⑶完整性,高效、低成本。
[0027] (5)核心数据都存放在E⑶的安全模块上,能够抵抗物理攻击。
[0028] (6)更换原厂E⑶和更新E⑶固件后,仍然可以应用本安全机制来验证和加密通信。
【附图说明】
[0029]图1是本发明实施例提供的基于密钥预分配的汽车ECU完整性验证和加密通信框 架图。
[0030]图2、TSP对主E⑶的验证和初始化操作流程图。
[0031 ]图3、TSP对主E⑶的验证和初始化操作流程图。
[0032] 图4、主E⑶与普通E⑶相互验证操作流程图。
【具体实施方式】
[0033] 为能进一步了解本发明的
【发明内容】
、特点及功效,兹例举以下实施例,并配合附图 详细说明如下。
[0034] 请参阅图1:
[0035] 一种基于密钥预分配的汽车ECU完整性验证和加密通信方法,使用KPS为每个ECU 提供唯一会话密钥,通过比对ECU固件哈希值进行身份验证,判断ECU是否被篡改,采用本地 和远程相结合的两步验证机制,安全验证包括汽车出厂初始化、汽车开机自检。
[0036]进一步,基于密钥预分配的汽车ECU完整性验证和加密通信方法的安全框架由管 理员、主E⑶、普通E⑶组成;
[0037] TSP(Telematics Service Provider:汽车远程服务提供商)作为管理员,负责对 汽车ECU进行远程验证,并分发KPS密钥算法给每个ECU,厂商预定一个高频ECU作为主ECU, 用它对其他ECU进行本地验证,通过比对ECU固件哈希值来判断其是否被篡改,通信过程用 对称加密算法(如AES)加密,密钥由KPS生成;
[0038] TSP保存着:各型号汽车拥有的固件版本列表及其对应的固件哈希值,存储为 (type,version)和(version,H(R0M));加密初始化验证ECU的密钥Ky;KPS密钥矩阵Aij生成 器,为每辆车生成随机矩阵;
[0039]主ECU保存着:加密初始化验证的Km;本汽车所有合法ECU固件哈希值列表;KPS密 钥生成算法Fm(y)。
[0040]表1各组件保存信息列表
[0042]下面的描述步骤中,E表示用加密算法加密,Ex(y)表示用密钥x对消息y进行加密, Ex(y| |z)表示将消息y和z合并加密。
[0043] 每个普通ECU的安全模块里存有序列号S、密钥K、TSP的序列号,汽车出厂前,TSP将 对ECU进行初始化,分发密钥算法,步骤如下:
[0044] (l)ECU(主或普通)发送序列号S给TSP,TSP查询数据库,取出对应密钥K(若查不到 记录,则验证失败),同时生成随机数R,用作会话密钥。
[0045] (2)TSP产生随机数R和自己的序列号Sc合并加密后的密文Ek(R| |SC)发给EdECU 解密后将Sc和预存的进行比对,若符合则通过验证。至此,通信双方身份验证完成。
[0046] (3)ECU将固件哈希值与车辆序列号Sv合并加密后的密文Ek(Sv| |H(R0M))发送给 TSP〇
[0047] (4)TSP解密消息,将H(ROM)和预存进行比对,若符合则通过验证。之后,TSP计算 KPS矩阵Aij,代入密钥算法F,将其与该型号车辆所有ECU固件哈希值列表合并加密后的密文 Er(F(y) | | H(ROM))发给ECU JCU解密消息后保存至安全模块。至此,TSP对E⑶初始化完成。 [0048] TSP对主E⑶和普通E⑶初始化步骤相同,只是传递数据不同。
[0049] 进一步,汽车开机自检时,主E⑶对其他E⑶进行本地验证,检测固件是否被篡改, 验证步骤如下:
[0050] 步骤一、主E⑶发送质询信号:生成随机数η、r2,广播η给每个普通E⑶;
[0051 ]步骤二、普通ECU回答质询,返回固件哈希值:普通ECU生成随机数r,计算固件哈希 值,用Fx(Sm)计算会话密钥,将合并加密后的密文|H(R0M)x| |n| |r)发送给主 ECU;
[0052] 步骤三、主ECU检测固件是否被篡改,返回检测结果:主ECU用Fm(Sx)计算解密密钥 (由前文KPS的定义中,可知Fx(Sm)=FM(Sx)),将解密得到的H(R0M) x与预存比对,若符合则固 件未被篡改,之后主ECU将r、r2合并加密后的密文…(r 21 | r)发送给普通ECU,普通ECU解 密消息,由返回r可得知验证通过。至此,主E⑶对其他E⑶的本地验证完成。
[0053] 进一步,经过初始化,E⑶获得密钥生成算法Fx(y),通过主ECU验证后,E⑶获得随 机数r2,为了抵抗重放攻击,每个通信消息都附上时间戳,最终在CAN总线上传送的密文为 r?.j| timestamp) 〇
[0054] 本发明的有益效果如下:
[0055] (1)采用远程与本地相结合的验证方式,远程验证保护数据安全,本地验证提高验 证速度。
[0056] (2)E⑶与TSP、E⑶之间的通信都是加密的。TSP对ECU初始化是在车厂,通信信道安 全,E⑶之间会话密钥互不相同,具有极高的安全性。
[0057] (3)预分配给ECU的是加密算法而不是密钥,大大减轻了密钥分配的难度。
[0058] (4)采用比对哈希值来检测E⑶完整性,高效、低成本。
[0059] (5)核心数据都存放在ECU的安全模块上,能够抵抗物理攻击。
[0060] (6)更换原厂E⑶和更新E⑶固件后,仍然可以应用本安全机制来验证和加密通信。
[0061]以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制, 凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于 本发明技术方案的范围内。
【主权项】
1. 一种基于密钥预分配的汽车ECU完整性验证和加密通信方法,其特征在于,所述基于 密钥预分配的汽车ECU完整性验证和加密通信方法使用KPS为每个ECU提供唯一会话密钥, 通过比对ECU固件哈希值进行身份验证,判断ECU是否被篡改,采用本地和远程相结合的两 步验证机制,安全验证包括汽车出厂初始化、汽车开机自检。2. 如权利要求1所述的基于密钥预分配的汽车ECU完整性验证和加密通信方法,其特征 在于,基于密钥预分配的汽车ECU完整性验证和加密通信方法的安全框架由管理员、主ECU、 普通E⑶组成; TSP作为管理员,负责对汽车ECU进行远程验证,并分发KPS密钥算法给每个ECU,厂商预 定一个高性能ECU作为主ECU,用它对其他ECU进行本地验证,通过比对ECU固件哈希值来判 断其是否被篡改,通信过程用对称加密算法加密,密钥由KPS生成; TSP保存着:各型号汽车拥有的固件版本列表及其对应的固件哈希值,存储为(type, version)和(version, H(ROM));与主和普通ECU的共享密钥Ky;KPS密钥矩阵Aij生成器,为每 辆车生成随机矩阵; 主ECU保存着:主ECU的序列号Sm;TSP的序列号Sc;与TSP的共享密钥的Km;本汽车所有合 法E⑶固件哈希值列表;KPS密钥生成算法Fm(y); 普通ECU保存着:E⑶的序列号Sx; TSP的序列号S。;与TSP的共享密钥Kx;合法的主ECU固 件各版本哈希值列表卜6^1〇11,!1(1?(^));1^密钥生成算法?心)。3. 如权利要求1所述的基于密钥预分配的汽车ECU完整性验证和加密通信方法,其特征 在于,每个新ECU的安全模块里存有序列号S、密钥K、TSP的序列号,汽车出厂前,TSP将对ECU 进行初始化,分发密钥算法,步骤如下: (1) 主或普通E⑶发送序列号S给TSP,TSP查询数据库,取出对应密钥K,同时生成随机数 R,用作会话密钥; (2) TSP产生随机数R和自己的序列号S。合并加密后的密文Ek(R| |S。)发给ECU,ECU解密 后将Sc和预存的进行比对,若符合则通过验证,通信双方身份验证完成; (3) ECU将固件哈希值与车辆序列号Sv合并加密后的密文Ek(Sv| |!1(1^))发送给15?; (4) TSP解密消息,将H(ROM)和预存进行比对,若符合则通过验证;之后,TSP计算KPS矩 阵Aij,代入密钥算法F,将其与该型号车辆所有ECU固件哈希值列表合并加密后的密文Er(F (y) I IH(ROM))发给E⑶;E⑶解密消息后保存至安全模块,TSP对E⑶初始化完成。4. 如权利要求1所述的基于密钥预分配的汽车ECU完整性验证和加密通信方法,其特征 在于,汽车开机自检时,主ECU对其他ECU进行本地验证,检测固件是否被篡改,验证步骤如 下: 步骤一、主E⑶发送质询信号:生成随机数ri、r2,广播ri给每个普通E⑶; 步骤二、普通ECU回答质询,返回固件哈希值:普通ECU生成随机数r,计算固件哈希值, 用?)((5?)计算会话密钥,将合并加密后的密文£^(。(5;||//0〇¥)』/、||/〇发送给主^^; 步骤三、主ECU检测固件是否被篡改,返回检测结果:主ECU用Fm(Sx)计算解密密钥,将解 密得到的H(ROM)x与预存比对,若符合则固件未被篡改,之后主ECU将r、r2合并加密后的密文 私1卜)发送给普通E⑶,普通E⑶解密消息,由返回r可得知验证通过。5. 如权利要求1所述的基于密钥预分配的汽车ECU完整性验证和加密通信方法,其特征 在于,经过初始化,E⑶获得密钥生成算法Fx(y),通过主ECU验证后,E⑶获得随机数r2,每个 通信消息都附上时间戳,最终在CAN总线上传送的密文为心.((η丨| -ieito??炉)。
【文档编号】H04L9/32GK106027260SQ201610316972
【公开日】2016年10月12日
【申请日】2016年5月12日
【发明人】李飞, 覃周
【申请人】成都信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1