掌桥专利:专业的专利平台
掌桥专利
首页

基于双向身份认证的网联汽车安全远程更新方法

文献发布时间:2023-06-19 10:44:55


基于双向身份认证的网联汽车安全远程更新方法

技术领域

本发明涉及智能网联汽车信息安全领域,具体涉及基于双向身份认证的网联汽车安全远程更新方法。

背景技术

车联网、自动驾驶技术发展给汽车带来便利,如汽车应用可以向支付、社交、娱乐等更多场景扩展,但同时也增加相应的信息安全威胁。车与外部的每一个接口都可能被利用,每一个控制单元都可能被攻击。究其原因,智能网联汽车相对于传统汽车,涉及更多的车载软件代码(上亿行代码)、更多的联网电子控制单元(70+ECU)、更多的传感器,硬件及软件功能扩展过程中增加了相应的信息安全威胁。攻击者可以远程地对汽车发起网络攻击,造成个人隐私数据的泄漏甚至车辆被攻击者控制,存在非常严重的安全隐患。

电子控制单元(ECU)逐渐取代了车辆中的许多机械和气动控制系统,软件的数量越来越多,使得软件系统非常复杂,不可能由单一公司开发。目前的OTA更新系统,借鉴传统计算机领域的更新机制,建立中心化的软件仓库,由汽车制造商(OEM)负责管理和发布更新包,车辆从OEM设立的软件仓库获取更新包进行更新。但是这种方法没有考虑到汽车软件的特殊性,不能很好地满足汽车OTA更新的安全需求。汽车行业的供应链是非常复杂的,每一辆汽车的软件可能由多级供应商提供,供应商的数量也非常多,如果OTA更新系统没有把软件供应商考虑进来,软件更新的发布和传送过程将不会受到完整的保护,使得攻击者有机可乘,因此现有汽车更新方法以及系统,不符合汽车现有的产业结构和安全需求,不能对汽车软件更新的全生命周期进行安全防护。

发明内容

解决的技术问题

针对现有技术的不足,本发明提供了基于双向身份认证的网联汽车安全远程更新方法,解决现有汽车更新方法不符合汽车现有的产业结构和安全需求,不能对汽车软件更新的全生命周期进行安全防护的问题。

技术方案

为实现以上目的,本发明通过以下技术方案予以实现:

本发明的一个方面提供了基于双向身份认证的网联汽车安全远程更新方法,应用于汽车OTA系统,所述汽车OTA系统包括云端系统和车载端系统,所述云端系统包括OEM服务器和软件供应商服务器,所述车载端系统包括更新网关和电子控制单元;

所述OEM服务器完成对车辆的身份认证以及下发各个电子控制单元的更新权限给对应的软件供应商,在完成对车辆的身份认证之后给车辆指定相应的软件供应商和身份口令;

更新网关从OEM服务器获取软件更新信息,并进行身份验证,获取到身份口令和软件供应商的信息之后从对应的软件供应商服务器下载不同电子控制单元ECU的软件更新包,对获取的软件更新包进行安全性校验,验证成功之后再向车内的电子控制单元下发软件更新包;

电子控制单元获取到软件更新包后对自身的软件进行安装,并运行新版本的软件。

进一步地,所述软件供应商用于软件更新包的制作,并利用其私钥对软件包进行签名,在车辆请求更新包时,对车辆的身份口令进行验证,只有身份口令有效的情况下才给车辆下发软件更新包。

进一步地,所述OEM服务器生成并注册车辆的身份密钥,在车辆的HSM中写入身份密钥,并根据该密钥在更新的过程中完成对车辆的身份认证。

更进一步地,所述更新方法包括查询更新的过程:车载端系统的更新网关以固定的频率向OEM服务器查询最新的版本软件更新的时间,如果云端系统提供的版本大于自身软件的版本,说明需要进行软件更新,则启动软件更新流程。

更进一步地,所述更新方法还包括请求更新的过程:在检测到有新的软件版本需要更新时,车载端系统向OEM服务器发送更新请求,并且利用车辆的身份密钥生成HMAC签名,如果认证成功,OEM服务器会返回如下信息:a)软件更新包的下载地址即软件供应商服务器的URL,以及软件更新包的版本号、尺寸;b)软件更新包对应的下载口令,下载口令是汽车制造商为每一次下载请求生成的一个密码口令;c)上述a)项和b)项的所有信息的签名值。

更进一步地,所述签名值的计算方法为:

通过公式

更进一步地,所述更新方法还包括下载更新包的过程:

车载端系统从OEM服务器获取了软件包的下载地址和下载口令之后,对OEM服务器返回的信息进行签名校验,校验成功则继续更新流程,否则中止更新流程,并通过用户界面发送安全警告信息,校验成功之后根据软件包下载地址和下载口令,通过https协议从软件供应商服务器下载软件更新包;

车载端系统从软件供应商服务器请求下载软件更新包时,需要将车辆的VIN码发送给软件供应商服务器,软件供应商服务器通过查询汽车制造商的授权车辆列表来验证车辆是否有下载软件包的权限,完成更新认证。

更进一步地,所述更新认证的过程为:

步骤101:软件供应商服务器接收到车载端系统的下载软件更新包的请求时,软件供应商服务器对没有认证的车载端系统返回一个http回复,所述http回复包括一个认证域或者一个字符编码的参数,所述http回复用于提醒车载端系统使用认证域或字符编码的参数限定的编码方案来编码用户名和密码;

步骤102:车载端系统使用认证域发送认证信息给软件供应商服务器,所述认证域的规则包括:用户名和密码使用冒号连接,用户名和密码中不能包含冒号,具体采用VIN码作为用户名,OEM服务器返回的下载口令作为密码,得到字符串;将字符串编码成字节序列;得到的字节序列使用Base64的变种进行编码得到新的字符串,新的字符串前面加上认证方式和一个空格,作为认证信息;

步骤103:软件供应商服务器接收到车载端系统的认证信息以后,从汽车制造商的授权车辆列表中查找是否存在该车辆提供的VIN码和口令,如果VIN码和口令与认证信息验证一致,则通过验证并返回状态码A,否则验证失败并返回验证码B,其中,状态码A和验证码B均为预设的数字码值。

进一步地,所述电子控制单元获取到软件更新包后对自身的软件进行安装,并运行新版本的软件,包括:

步骤201:电子控制单元连接更新网关的本地服务器,等待电子控制单元下发更新指令;

步骤202:接收到更新网关开始更新指令,检查自身状态,如果处于空闲状态则回复电子控制单元准备就绪指令,否则发送失败指令;

步骤203:接收电子控制单元下发的软件更新包的元信息,该元信息以json格式发送;

步骤204:向更新网关发送接收完成指令,请求下发软件更新包;

步骤205:更新网关下发软件更新包;

步骤206:校验软件更新包和元信息的正确性,并返回校验的结果;

步骤207:更新网关最后向电子控制单元发送确认消息,如果发送更新成功消息,电子控制单元则安装运行软件更新包,否则丢弃所有的数据,更新失败。

有益效果

本发明提供了基于双向身份认证的网联汽车安全远程更新方法,与现有公知技术相比,本发明的具有如下有益效果:

(1)由OEM服务器对软件供应商进行授权,由软件供应商直接分发软件更新包的软件更新方法,并且在软件更新时,OEM服务器会对车辆的身份进行认证,只有已经注册的车辆可以通过身份认证从而进行软件更新。同时,车载端系统也可以对软件供应商的身份进行认证,只有经过OEM服务器授权的软件供应商才能给车辆下发软件更新包,通过双向认证机制,可以保证软件更新包的真实性,防止恶意攻击者通过中间人攻击、伪装攻击等方式发布恶意的软件更新包,同时也可以防止恶意攻击者伪装成车辆终端从软件服务器获取软件更新包等信息,对软件更新的内容的机密性进行防护,保护企业的商业机密,对汽车软件更新的全生命周期进行安全防护。

(2)汽车制造商OEM主导软件更新过程,可以将不同的电子控制单元的软件更新分发权限委托给不同的软件供应商服务器,为软件更新提供全生命周期的安全防护。

(3)为每一辆汽车注册唯一的身份密钥,并利用HSM(Hardware Security Module)存储身份密钥,防止密钥被破坏或者被窃取。

(4)汽车制造商OEM对车辆进行身份认证管理,只有汽车制造商OEM才拥有车辆的身份密钥信息,软件供应商只需要通过汽车制造商OEM给车辆发布的临时密钥对车辆的身份进行认证。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的基于双向身份认证的网联汽车安全远程更新方法的系统架构框图;

图2为本发明实施例所提供的基于双向身份认证的网联汽车安全远程更新方法中下载软件更新包身份验证流程图;

图3为本发明实施例所提供的基于双向身份认证的网联汽车安全远程更新方法中电子控制单元从更新网关下载软件更新包的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例:

参照图1,本发明提供基于双向身份认证的网联汽车安全远程更新方法,应用于汽车OTA系统,所述汽车OTA系统包括云端系统和车载端系统,所述云端系统包括OEM服务器和软件供应商服务器,所述车载端系统包括更新网关和电子控制单元;图1中云端系统的OEM服务器和软件供应商服务器没有绘出,只是给出了服务器的架构,包括应用接口层、安全服务层以及硬件和操作系统层,其中,应用接口层用于与车载端系统进行交互,图1中更新管理网关即为更新网关,车内ECU即为电子控制单元。

所述OEM服务器完成对车辆的身份认证以及下发各个电子控制单元的更新权限给对应的软件供应商,在完成对车辆的身份认证之后给车辆指定相应的软件供应商和身份口令,使车辆可以从不同的软件供应商获取软件更新包;身份认证的主要过程为:所述OEM服务器生成并注册车辆的身份密钥,在车辆的HSM中写入身份密钥,并根据该密钥在更新的过程中完成对车辆的身份认证。

所述软件供应商用于软件更新包的制作,并利用其私钥对软件包进行签名,在车辆请求更新包时,对车辆的身份口令进行验证,只有身份口令有效的情况下才给车辆下发软件更新包。

车载端系统和云端系统的交互主要由车内的更新网关来完成,更新网关从OEM服务器获取软件更新信息,并进行身份验证,获取到身份口令和软件供应商的信息之后从对应的软件供应商服务器下载不同电子控制单元ECU的软件更新包,对获取的软件更新包进行安全性校验,验证成功之后再向车内的电子控制单元下发软件更新包。

电子控制单元获取到软件更新包后对自身的软件进行安装,并运行新版本的软件。

以下详细介绍所述网联汽车安全远程更新方法的原理过程:

(1)查询更新的过程:车载端系统的更新网关以固定的频率向OEM服务器查询最新的版本软件更新的时间,如果云端系统提供的版本大于自身软件的版本,说明需要进行软件更新,则启动软件更新流程。

(2)请求更新的过程:在检测到有新的软件版本需要更新时,车载端系统向OEM服务器发送更新请求,并且利用车辆的身份密钥生成HMAC签名,如果认证成功,OEM服务器会返回如下信息:a)软件更新包的下载地址即软件供应商服务器的URL,以及软件更新包的版本号、尺寸;b)软件更新包对应的下载口令,下载口令是汽车制造商为每一次下载请求生成的一个密码口令;c)上述a)项和b)项的所有信息的签名值。

其中,所述签名值的计算方法为:

通过公式

(3)下载更新包的过程:

车载端系统从OEM服务器获取了软件包的下载地址和下载口令之后,对OEM服务器返回的信息进行签名校验,校验成功则继续更新流程,否则中止更新流程,并通过用户界面发送安全警告信息,校验成功之后根据软件包下载地址和下载口令,通过https协议从软件供应商服务器下载软件更新包;

软件供应商为车辆分发提供软件更新包时,会对车辆的下载请求进行验证,只有被汽车制造商OEM认证并授权的特定车辆才有下载软件更新包的权限。车辆认证成功之后,汽车制造商OEM会给每一个单独的车辆生成一个口令(token)。车载端系统从软件供应商服务器请求下载软件更新包时,需要将车辆的VIN码发送给软件供应商服务器,软件供应商服务器通过查询汽车制造商的授权车辆列表来验证车辆是否有下载软件包的权限,完成更新认证。

如图2所示,上述更新认证的过程为:

步骤101:软件供应商服务器接收到车载端系统的下载软件更新包的请求时,软件供应商服务器对没有认证的车载端系统返回一个http回复,所述http回复包括一个认证域或者一个字符编码的参数,所述http回复用于提醒车载端系统使用认证域或字符编码的参数限定的编码方案来编码用户名和密码。例如,在本实施例中,返回的状态码应该为”HTTP401 Unauthorized”,并且包含一个“WWW-Authenticate”域(WWW-Authenticate:Basicrealm=“User Visible Realm”),也可以包含一个字符编码的参数,例如(charset=”UTF-8”),这个参数代表服务器希望客户端使用UTF-8编码方案来编码用户名和密码。

步骤102:车载端系统使用认证域发送认证信息给软件供应商服务器,所述认证域的规则包括:用户名和密码使用冒号连接,用户名和密码中不能包含冒号,具体采用VIN码作为用户名,OEM服务器返回的下载口令作为密码,得到字符串;将字符串编码成字节序列;得到的字节序列使用Base64的变种进行编码得到新的字符串,新的字符串前面加上认证方式和一个空格,作为认证信息;例如,在本实施例中,a)用户名和密码应该使用冒号连接,所以用户名和密码中不能包含冒号,本发明使用的是VIN码作为用户名,汽车制造商OEM返回的口令作为密码;b)上一步得到的字符串应该编码成字节序列。字符编码的方式默认是ASCII,但是可以使用服务器端要求的编码方式;c)再将得到的字节序列使用Base64的变种进行编码形成新的字符串;d)在编码的新的字符串前面加上认证方式和一个空格,例如“Basic”。

步骤103:软件供应商服务器接收到车载端系统的认证信息以后,从汽车制造商的授权车辆列表中查找是否存在该车辆提供的VIN码和口令,如果VIN码和口令与认证信息验证一致,则通过验证并返回状态码A,否则验证失败并返回验证码B,其中,状态码A和验证码B均为预设的数字码值,本实施例中,状态码A为状态码200,验证码B为验证码403,实际应用中可以根据需要设定码值。

(4)如图3所示,所述电子控制单元获取到软件更新包后对自身的软件进行安装,并运行新版本的软件,包括:

步骤201:电子控制单元连接更新网关的本地服务器,等待电子控制单元下发更新指令;

步骤202:接收到更新网关开始更新指令,检查自身状态,如果处于空闲状态则回复电子控制单元准备就绪指令,否则发送失败指令;

步骤203:接收电子控制单元下发的软件更新包的元信息,该元信息以json格式发送;

步骤204:向更新网关发送接收完成指令,请求下发软件更新包;

步骤205:更新网关下发软件更新包;

步骤206:校验软件更新包和元信息的正确性,并返回校验的结果;

步骤207:更新网关最后向电子控制单元发送确认消息,如果发送更新成功消息,电子控制单元则安装运行软件更新包,否则丢弃所有的数据,更新失败。

通过以上技术方案,本发明提供的基于双向身份认证的网联汽车安全远程更新方法,由OEM服务器对软件供应商进行授权,由软件供应商直接分发软件更新包的软件更新方法,并且在软件更新时,OEM服务器会对车辆的身份进行认证,只有已经注册的车辆可以通过身份认证从而进行软件更新。同时,车载端系统也可以对软件供应商的身份进行认证,只有经过OEM服务器授权的软件供应商才能给车辆下发软件更新包,通过双向认证机制,可以保证软件更新包的真实性,防止恶意攻击者通过中间人攻击、伪装攻击等方式发布恶意的软件更新包,同时也可以防止恶意攻击者伪装成车辆终端从软件服务器获取软件更新包等信息,对软件更新的内容的机密性进行防护,保护企业的商业机密,对汽车软件更新的全生命周期进行安全防护。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 基于双向身份认证的网联汽车安全远程更新方法
  • 基于双向身份认证的网联汽车安全远程更新方法
技术分类

06120112667493