CN113138775B - 车载诊断系统固件保护方法及系统 - Google Patents

车载诊断系统固件保护方法及系统 Download PDF

Info

Publication number
CN113138775B
CN113138775B CN202010064511.5A CN202010064511A CN113138775B CN 113138775 B CN113138775 B CN 113138775B CN 202010064511 A CN202010064511 A CN 202010064511A CN 113138775 B CN113138775 B CN 113138775B
Authority
CN
China
Prior art keywords
vehicle
firmware
equipment
burning
diagnosis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010064511.5A
Other languages
English (en)
Other versions
CN113138775A (zh
Inventor
程帆
蔡洤朴
李昶蔚
张媛媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202010064511.5A priority Critical patent/CN113138775B/zh
Publication of CN113138775A publication Critical patent/CN113138775A/zh
Application granted granted Critical
Publication of CN113138775B publication Critical patent/CN113138775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Abstract

一种车载诊断系统固件保护方法及系统,包括:用于暂时存储设备升级数据、和车载诊断设备通信来完成设备固件升级的车载系统烧录设备端、车载诊断设备端、车内控制器局域网络以及用于与车载诊断设备端通信以提供操作接口的车辆诊断人员电脑设备,其中:车载诊断设备端通过与烧录设备、电脑设备和车内控制器局域网络通信来分别完成固件升级和车辆诊断、车内控制器局域网络。本发明通过车厂或官方车辆维修店持有的固件管理设备端与固件接收方车载诊断设备之间的加密和校验、设备自身对固件的加密保护、以及使用时车内网络、电脑设备对OBD上运行的软件验证,从根本上避免由于固件篡改、窃听或伪造导致的对车辆诊断和行车安全的影响。

Description

车载诊断系统固件保护方法及系统
技术领域
本发明涉及的是一种车载诊断系统的固件安全领域的技术,具体是一种车载诊断系统固件保护方法及系统。其从车载诊断系统的固件升级、固件加载以及设备应用三个方面对车载诊断系统固件的完整性、机密性和可用性进行保护。
背景技术
在现代汽车中,车体控制和车载服务两大电子系统组成了汽车的电子系统,其中车载诊断系统(On-Board Diagnosis System,OBD)设备能够接入车内控制器局域网络,并通过诊断会话对车内控制器发起信息获取或状态控制,从而帮助维修人员快速定位、修复车辆内的故障。由于OBD的广泛运用,对设备固件进行破坏将对汽车维修甚至是行车安全构成影响,加之OBD自身结构复杂又与整车在通信和控制上有紧密联系,因此对其固件保护既困难,又重要。
现有的车载诊断设备为一个独立于车体的低端嵌入式设备,一般为车载诊断人员在进行车辆检修时的手持小型设备,具备串口通信功能和车内CAN总线通信功能,不支持网络通信及高计算能力。其可以向车内控制器(如车门、发动机等含微型控制器的设备)发起诊断会话,实现对车内控制器的信息收集、动作控制,因此其固件安全往往将影响到车辆安全。
目前在车载诊断系统固件保护上主要存在如下一些问题:
1.车载诊断系统一般为较低级的嵌入式系统设备,其一般不支持通过无线的通信方式进行固件升级而一般只能选择通过串口通信进行升级,因此在进行固件升级时往往面临固件完整性和机密性上的问题,同时也缺乏对烧录设备身份的验证。
2.由于OBD是小型轻量嵌入式设备,其往往容易被意外丢失或有意窃取,攻击者可以通过对OBD设备上存储设备固件的Flash存储器进行固件提取,来窃取车载诊断系统运行的固件内容,导致当下大量盗版车载诊断设备泛滥。
3.由于车载诊断系统可以直接接入车内控制器局域网络(ControllerAreaNetwork,CAN)总线并发起对车内控制器的诊断控制请求,其往往可以在一定程度上操控车辆的行为,如车窗、雨刮器甚至是刹车片、发动机等等,因此如果在使用时缺乏对OBD设备的软件验证,往往可以导致对车辆安全的严重后果。
发明内容
本发明针对现有技术存在的上述不足,提出一种车载诊断系统固件保护方法及系统,通过车厂或官方车辆维修店持有的固件管理设备端与固件接收方车载诊断设备之间的加密和校验、设备自身对固件的加密保护、以及使用时车内网络、电脑设备对OBD上运行的软件验证,从根本上避免由于固件篡改、窃听或伪造导致的对车辆诊断和行车安全的影响。
本发明是通过以下技术方案实现的:
本发明涉及一种车载诊断系统固件保护系统,包括:用于暂时存储设备升级数据、和车载诊断设备通信来完成设备固件升级的车载系统烧录设备、车载诊断设备、车内控制器局域网络以及用于与车载诊断设备通信以提供维修人员操作接口的车辆诊断人员电脑设备,其中:车载诊断设备通过与烧录设备、电脑设备和车内控制器局域网络通信来分别完成固件升级和车辆诊断、车内控制器局域网络。
所述的车载系统烧录设备包括:依次相连的第一数据存储模块、第一串口通信模块和第一固件升级反馈模块,其中:第一数据存储模块存储烧录设备公私钥在内的烧录设备证书及待更新的车载诊断设备固件升级数据,以传输接收到的输入信号和待升级的设备固件原始数据包,固件包通过第一串口通信模块将固件升级包传输至车载诊断设备,第一固件升级反馈模块与车载诊断设备相连以接收验证和升级的响应信息。
所述的车载诊断设备包括:依次相连的第二串口通信数据接收模块、专用数据加密芯片模块、第二数据存储模块、接入车内控制器局域网络通信模块固件处理器模块和第二固件升级反馈模块,其中:第二串口通信数据接收模块与第二数据存储模块相连以接收设备运行固件及其他数据,固件处理器模块与第二固件升级反馈及专用数据加密芯片模块相连以接收固件包并加密烧录至Flash存储模块,发送模块发送的验证和升级的响应信息。
所述的车内控制器局域网络为局域网络网关、车内电子控制单元及内部互联的CAN总线通信网络。
所述的车辆诊断人员电脑设备内置车辆诊断模块,该车辆诊断模块通过蓝牙或串口同车载诊断设备连接,并通过该车载诊断设备来随时监控并记录车辆发动机的运行状况和汽车运行的一些工作状态,并在适当时情况下对车辆进行控制。
本发明涉及上述系统的车载诊断系统固件保护方法,包括固件升级、固件加载和设备应用三个阶段。
所述的固件升级阶段包括:烧录设备验证、固件传输以及固件烧录,其中:
烧录设备验证是指:烧录设备以串口通信方式接入车载诊断设备,成功建立串口通信后。车载诊断设备首先向烧录设备发送一串随机数字作为挑战,烧录设备接收到挑战后使用自带证书中的私钥加密烧录启动消息和挑战并发送给车载诊断设备。车载诊断设备使用加密芯片中存储的信任的烧录设备证书公钥解密并验证烧录启动消息及接受的挑战是否准确。消息确认后车载诊断设备生成随机会话密钥并再使用烧录设备证书公钥加密后发送给烧录设备。烧录设备再使用自带证书中的私钥解密消息,获得与车载诊断设备通信用的会话密钥,完成烧录设备的单向验证过程。
固件传输是指:烧录设备读取暂时存储在自身Flash中的车载诊断设备待升级数据。计算数据的消息摘要值并使用烧录设备私钥对该摘要加密,从而生成对待升级数据的数字签名。将数字签名和待升级数据一起使用会话密钥加密再通过串口通信发送给车载诊断设备。车载诊断设备通过串口接收数据包,使用会话密钥解密数据包得到升级原始数据。再使用烧录设备公钥解密数字签名得到升级原始数据密码摘要,同自己得到的升级数据包计算得到的密码摘要进行比对,验证固件的数字签名,当设备端验证成功,则将新接收到的固件进行硬件烧录,当主机端验证失败,则丢弃接收的固件升级包并向固件管理设备发送升级失败的信息。
所述的待升级数据包包括如下几个部分:第一是必需的车载诊断设备固件二进制文件数据;第二是可有的更新的车载诊断设备公私钥证书;第三是可能的更新的烧录设备公钥证书。
固件烧录是指:首先对升级数据包中含有的可能的证书信息进行提取并更新存储在专用数据加密芯片模块中的证书信息。然后对车载诊断设备固件二进制文件进行:车载诊断设备计算设备固件的密码摘要,生成新的随机对称加密密钥并将二者存储在设备的加密芯片当中。使用对称密钥加密待升级的固件数据并替换设备原有的固件内容。完成固件烧录过程。向烧录设备返回升级成功消息,完成固件升级过程。
所述的加密芯片内设有对称与非对称密码算法,来实现自身的高安全等级,从而保证内部存储的密钥和信息数据不会被非法读取与篡改的一类安全芯片。
所述的固件加载过程包括:固件解密及完整性校验,其中:
固件解密是指:车载诊断设备bootloader读取加密的固件内容和加密芯片中的对称密钥,将固件内容解密,得到原始的固件数据。
完整性校验是指:对原始固件数据计算密码摘要,将其与存储在加密芯片中的密码摘要进行比较校验固件完整性。当通过则正常加载固件运行,否则打印错误消息,中止设备启动。
所述的设备应用阶段包括:车内控制器局域网络接入验证及车辆诊断人员电脑设备验证,其中:
车内控制器局域网络接入验证是指:车载诊断设备接入车内控制器局域网络后,网络网关向车载诊断设备发送一串随机数字作为挑战,车载诊断设备随后向网络网关发送包含诊断消息标示符、诊断目标设备ID以及挑战数字的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送。网关接收到消息后首先使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据,然后提取消息中的诊断目标设备ID并通过CAN总线连接的车内局域网确认诊断目标设备的状态。当符合诊断要求,网关生成通信用的会话密钥,连同可以诊断消息标示符一同返回给车载诊断设备,该返回消息使用车载诊断设备公钥证书进行加密后传输。车载诊断设备使用自身私钥证书解密确认可以诊断后使用消息中的会话密钥接入车内局域网同目标诊断设备进行加密通信。
车辆诊断人员电脑设备验证是指:车载诊断设备接入车辆诊断人员的电脑设备后,电脑设备发送一串随机数字作为挑战,车载诊断设备接收后通过串口发送包含诊断设备标示符及挑战数据的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送。电脑设备接收到消息后使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据。验证通过后生成通信的会话密钥使用设备公钥证书加密后返回给车载诊断设备并在用户界面上显示设备初始化验证成功字样。
具体地,在固件升级阶段的烧录设备验证过程中,所述的车载诊断设备向烧录设备首先发送消息为:M=chall1||TS1,其中:chall1为车载诊断设备生成的随机挑战数,TS1为消息时间戳。
具体地,在固件升级阶段的烧录设备验证过程中,所述的烧录设备接收挑战后回复消息为:M=EA(PRB,MS||chall1||TS2),其中:EA为RSA-1024非对称密码加密算法,PRB为烧录设备证书私钥,MS为固件升级过程烧录设备消息标示符,chall1为上一步接收到的随机挑战数,TS2为消息时间戳。
具体地,在固件升级阶段的烧录设备验证过程中,所述的车载诊断设备验证通过后回复消息为:M=EA(PUB,MA||KS1||TS3),其中:PUB为烧录设备证书公钥,MA为固件升级过程车载诊断设备消息标示符,KS1为然后通信用的会话对称密钥,TS3为消息时间戳。
具体地,在固件升级阶段的烧录设备验证过程中,所述的烧录设备发送固件升级消息为:M=ES(KS1,X||TS4),X=Binary||EA(PRB,Digest),Digest=Hash(Binary),其中:ES为AES-128对称密码加密算法,TS4为消息时间戳,Binary为固件升级二进制数据文件,Hash为SHA-256消息摘要算法,EA(PRB,Digest)即为烧录设备对待升级固件二进制文件的数字签名。
所述的固件升级二进制数据文件为使用固件开发工具编译设备运行源代码生成设备能够识别执行的汇编指令所构成的二进制可执行文件。
具体地,在固件升级阶段的烧录设备验证过程中,当升级成功时,烧录设备向烧录设备返回成功消息内容为:M=ES(KS1,MF||TS5),其中:MF为固件升级过程车载诊断设备烧录成功消息标示符,TS5为消息时间戳
具体地,在固件烧录阶段的固件烧录过程中,生成的加密固件内容为:C=ES(KE,Binary),其中:KE为烧录过程中车载诊断设备生成的存储在加密芯片中的随机对称加密密钥,车载诊断设备将C存储在自身Flash存储器中。
具体地,在固件加载阶段的固件解密过程中,数据处理过程为:Binary*=DS(KE,C*)Digest*=Hash(Binary*),其中:Binary*为车载诊断设备启动时从自身Flash存储器中读取的内容解密后得到的启动时将加载的系统固件,DS为与ES对应的AES-128对称密码解密算法,C*为系统启动固件加载时存储在自身Flash存储器中的加密设备固件,由于设备可能受外部物理环境的影响导致存储在Flash上的数据损坏或篡改,C*与C并非一定一致。因此之后得到的Binary*需要计算Digest*并与烧录时计算的Digest比较确认固件完整性后才能加载运行。
具体地,在设备应用阶段的车内控制器局域网络接入验证过程中,车内控制器局域网络网关首先向车载诊断设备发送的消息内容为:M=chall2||TS6,其中:chall2为车内控制器局域网络网关生成的随机挑战数,TS6为消息时间戳。
具体地,在设备应用阶段的车内控制器局域网络接入验证过程中,车载诊断设备对车内控制器局域网络消息回复内容为:M=EA(PRD,MN||TS7||IDT||chall2),其中:PRD为车载诊断设备证书私钥,MN为设备应用过程车载诊断设备消息标示符,TS7为消息时间戳,IDT为目标车内网络连接的诊断设备ID。
具体地,在设备应用阶段的车内控制器局域网络接入验证过程中,网络网关验证挑战数通过并确认目标设备可以接受诊断时,向车载诊断设备返回消息内容为:M=EA(PBD,MD||TS8||KS2),其中:PBD为车载诊断设备证书公钥,MD为设备验证过程网络网关返回可以进行诊断消息标示符,TS8为消息时间戳,KS2为车载诊断设备后续与目标诊断设备进行通信时使用的会话密钥。
具体地,在设备应用阶段的车内控制器局域网络接入验证过程中,车载诊断设备及对应目标诊断设备后续进行诊断会话时发送的消息内容格式如下:M=ES(KS2,MS||TS9),其中:MS为会话消息,TS9为消息时间戳。
具体地,在设备应用阶段的车辆诊断人员电脑设备验证过程中,车辆诊断人员电脑设备使用相同的消息格式对车载诊断设备进行身份验证及后续的会话密钥生成。与车内网络网关不同的是,当对车载诊断设备的校验失败时车辆诊断人员电脑设备的相关用户接口应及时显示有关可能的盗版及侵权信息,帮助车辆诊断人员尽快向管理人员汇报并销毁该设备。
具体地,在设备应用阶段的车辆诊断人员电脑设备验证过程中,当车载诊断设备段验证烧录设备身份不通过时,烧录设备主动断开串口通信连接,并在一段时间内拒绝所有串口连接;当车载诊断设备验证固件的数字签名的具体验证不通过时,中止固件升级,丢弃升级固件数据并向烧录设备报告升级失败信息;当车载诊断设备固件加载时对固件完整性校验不通过时,中止车载诊断设备系统启动,等待烧录设备重新烧录新固件;当车内控制器局域网络对车载诊断设备身份验证不通过时,不检查目标设备是否处于可诊断状态,直接向车载诊断设备返回明文错误信息,并一段时间内停止该局域网连接;当车辆诊断人员电脑设备对车载诊断设备身份验证不通过时,在用户接口上打印身份验证失败信息,断开与该设备的串口通信连接。
技术效果
本发明整体解决了基于串口通信及车内网络,通过身份验证、数据加密及完整性校验来保证车载诊断系统设备的固件安全的技术难题,
与现有技术相比,本发明针对车载诊断系统这样有一个低端嵌入式设备但又有高安全要求的特殊环境,根据车载诊断系统的使用特征为其定制的固件保护方法及系统。由于涉及到设备本身的限制,串口通信、车内网络以及配套电脑软件的使用环境,以及当下日益严重的针对车载诊断系统的盗版、侵权甚至是攻击问题,车载诊断系统的固件安全对行车安全构成的影响也在日益扩大,其他设备或环境中使用的保护方法或技术都无法很好地对车载诊断系统地固件进行全方位的保护,而本方法及系统能很好地解决这种环境下的车载诊断系统固件安全问题。
与现有技术相比,车载诊断设备固件升级阶段本发明在烧录设备利用自带公钥证书对固件设备进行数字签名,并在经过车载诊断设备身份验证后使用会话密钥对传输的固件内容进行了对称加密,确保了车载诊断设备接收的来自可信任烧录设备的固件内容,同时保证原始的固件数据无法直接通过窃听获取从而造成的原始关键数据泄漏;
与现有技术相比,车载诊断设备固件升级阶段更新固件内容时首先使用存储在加密芯片中的对称密钥对固件进行加密后存储,运行时再在运行内存中解密,从而保证设备在待机或关闭状态下攻击者无法通过直接读取设备Flash存储来获得固件内容;
与现有技术相比,车载诊断设备固件加载阶段对固件的完整性校验能保证运行在车载诊断设备上的固件完整性,防止攻击者通过物理手段对执行的固件内容进行破坏或修改;
与现有技术相比,车载诊断设备设备应用阶段车内控制器局域网络网关对车载诊断设备的身份验证确保了合法设备对车内诊断网络的接入,保证可信设备固件操作对车内局域网的诊断消息注入;
与现有技术相比,车载诊断设备设备应用阶段车辆诊断人员电脑设备对车载诊断设备的身份验证确保了使用的车载诊断设备合法性,防止盗版或侵权设备的市面流行。
附图说明
图1为本发明的系统示意图;
图2为本发明的固件升级流程图;
图3为本发明的固件加载流程图;
图4为本发明的设备应用流程图。
具体实施方式
本实施例涉及一种车载诊断系统固件保护方法,在当今对车载诊断系统的应用当中,由于车载诊断系统可以对车内控制器发起诊断请求并实施诊断操作,因此其固件(即设备内部运行的二进制可执行文件)的安全性缺失将带来一系列问题。下面参照附图来描述本发明的优选实施方式,本领域人员应当理解的是,该实施方式仅用于解释本发明技术原理,并非旨在限制本发明对车载诊断系统这一特殊设备的固件安全保护范围。
如图1所示,图1为本发明对固件安全保护系统三个阶段所涉及的设备结构图。其具体结构包括如下几个部分:
烧录设备,配备为用来暂时存储设备升级数据、以及和车载诊断设备通信来完成设备固件升级,包括:依次相连的第一数据存储模块、第一串口通信模块和第一固件升级反馈模块,其中:第一数据存储模块存储烧录设备公私钥在内的烧录设备证书及待更新的车载诊断系统升级数据,以传输接收到的输入信号和待升级的设备固件原始数据包,固件包通过第一串口通信模块将固件升级包传输至主机端,第一固件升级反馈模块与车载诊断设备相连以接收验证和升级的响应信息。
车载诊断设备,配备为系统核心设备,通过与烧录设备、电脑设备和车内控制器局域网络通信来分别完成固件升级和车辆诊断,包括:依次相连的第二串口通信数据接收模块、专用数据加密芯片模块、第二数据存储模块、接入车内控制器局域网络通信模块固件处理器模块和第二固件升级反馈模块,其中:第二串口通信数据接收模块与第二数据存储模块相连以接收设备运行固件及其他数据,固件处理器模块与第二固件升级反馈及专用数据加密芯片模块相连以接收固件包并加密烧录至Flash存储模块,发送模块发送的验证和升级的响应信息。
车内控制器局域网络,配备为局域网络网关及内部互联的CAN总线通信网络
车辆诊断人员电脑设备,配备为与车辆诊断系统设备通信来提供人工操作车载诊断系统用户接口。其安装有专用车辆诊断系统软件
如图2所示,烧录设备验证过程如下:烧录设备以串口通信方式接入车载诊断设备,成功建立串口通信后。车载诊断设备首先向烧录设备发送一串随机数字作为挑战,烧录设备接收到挑战后使用自带证书中的私钥加密烧录启动消息和挑战并发送给车载诊断设备。车载诊断设备使用加密芯片中存储的信任的烧录设备证书公钥解密并验证烧录启动消息及接受的挑战是否准确。消息确认后车载诊断设备生成随机会话密钥并再使用烧录设备证书公钥加密后发送给烧录设备。烧录设备再使用自带证书中的私钥解密消息,获得与车载诊断设备通信用的会话密钥,完成烧录设备的单向验证过程。
完成烧录设备验证后,进行固件传输。烧录设备读取暂时存储在自身Flash中的车载诊断设备待升级数据。计算数据的消息摘要值并使用烧录设备私钥对该摘要加密,从而生成对待升级数据的数字签名。将数字签名和待升级数据一起使用会话密钥加密再通过串口通信发送给车载诊断设备。车载诊断设备通过串口接收数据包,使用会话密钥解密数据包得到升级原始数据。再使用烧录设备公钥解密数字签名得到升级原始数据密码摘要,同自己得到的升级数据包计算得到的密码摘要进行比对,验证固件的数字签名,当设备端验证成功,则将新接收到的固件进行硬件烧录,当主机端验证失败,则丢弃接收的固件升级包并向固件管理设备发送升级失败的信息。
所述的待升级数据包包括如下几个部分:第一是必需的车载诊断设备固件二进制文件数据;第二是可有的更新的车载诊断设备公私钥证书;第三是可能的更新的烧录设备公钥证书。所述的摘要算法为SHA256摘要算法,该算法对输入的任意数据生成特定的固定长度256比特数字摘要。
完成固件传输后,进行固件烧录。首先对升级数据包中含有的可能的证书信息进行提取并更新存储在自身加密芯片中的证书信息。然后对车载诊断设备固件二进制文件进行:车载诊断设备计算设备固件的密码摘要,生成新的随机对称加密密钥并将二者存储在设备的加密芯片当中。使用对称密钥加密待升级的固件数据并替换设备原有的固件内容。完成固件烧录过程。向烧录设备返回升级成功消息,完成固件升级过程。
如图3所示,所述的固件加载过程分为两步:固件解密及完整性校验。
所述的固件解密过程为:车载诊断设备bootloader读取加密的固件内容和加密芯片中的对称密钥,将固件内容解密,得到原始的固件数据。
所述的完整性校验过程为:对原始固件数据计算密码摘要,将其与存储在加密芯片中的密码摘要进行比较校验固件完整性。当通过则正常加载固件运行,否则打印错误消息,中止设备启动。
如图4所示,所述的设备应用过程分为车内控制器局域网络接入验证及车辆诊断人员电脑设备验证。
所述的车内控制器局域网络接入验证过程如下:车载诊断设备接入车内控制器局域网络后,网络网关向车载诊断设备发送一串随机数字作为挑战,车载诊断设备随后向网络网关发送包含诊断消息标示符、诊断目标设备ID以及挑战数字的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送。网关接收到消息后首先使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据,然后提取消息中的诊断目标设备ID并通过CAN总线连接的车内局域网确认诊断目标设备的状态。当符合诊断要求,网关生成通信用的会话密钥,连同可以诊断消息标示符一同返回给车载诊断设备,该返回消息使用车载诊断设备公钥证书进行加密后传输。车载诊断设备使用自身私钥证书解密确认可以诊断后使用消息中的会话密钥接入车内局域网同目标诊断设备进行加密通信。
所述的车辆诊断人员电脑设备验证过程如下:车载诊断设备接入车辆诊断人员的电脑设备后,电脑设备发送一串随机数字作为挑战,车载诊断设备接收后通过串口发送包含诊断设备标示符及挑战数据的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送。电脑设备接收到消息后使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据。验证通过后生成通信的会话密钥使用设备公钥证书加密后返回给车载诊断设备并在用户界面上显示设备初始化验证成功字样。
上述过程中的对称加密算法为AES256加密算法,加密模式为密文分组链接模式,该算法使用长度256比特的密钥。
上述过程中的非对称密码算法为RSA1024公钥密码算法,该算法包括一组长度1024比特公私钥对。
上述过程中的通信为串口通信及车内CAN总线通信的方式。
目前在车载诊断系统这样一个特殊设备上还没有对其特殊环境固件保护的相关技术,该技术能在车载诊断系统的各个环节对设备固件的安全性进行保护:
固件升级阶段的单向身份验证及固件数字签名能够保证设备获得来自受信方的设备固件来确保设备固件的真实性和完整性;协商得到的会话密钥能保证升级过程中的固件数据不被其他设备以窃听方式所截获,确保了设备固件的保密性;烧录在设备上的固件使用密钥进行加密,避免由攻击者直接对设备进行固件提取导致的固件内容泄漏。
固件加载阶段对固件哈希计算比较的校验能保证设备固件的完整性;烧录在设备上的固件使用密钥在运行时的内存中进行解密,避免由攻击者直接对设备启动过程中进行固件提取导致的固件内容泄漏。
设备应用阶段的单向身份验证能让接收车载诊断设备诊断的目标设备对车载诊断设备的可信身份进行验证,从而能确保连接上的诊断设备为可信设备;诊断设备和网关之间的通信会话密钥防治了攻击者通过监听车内CAN总线来分析诊断消息,保证了通信过程中的保密性。
以上三个阶段所构成的对车载诊断系统各个使用环境下的固件安全保护为本发明独创、未被公开且其工作方式与任何现有文献记载均不相同。
所述的车载诊断设备通过独立于车体的低端嵌入式设备实现,一般为车载诊断人员在进行车辆检修时的手持小型设备,具备串口通信功能和车内CAN总线通信功能,不支持无线网络通信及高计算能力。其可以向车内控制器(如车门、发动机等含微型控制器的设备)发起诊断会话,实现对车内控制器的信息收集、动作控制,因此其固件安全往往将影响到车辆安全。
本实施例技术效果包括:
1.车载诊断系统固件升级时对烧录设备的身份验证,对升级固件数据的加密和签名,对存储的固件内容加密。
2.车载诊断设备启动时对固件的解密及完整性校验。
3.车载诊断设备使用时,车内控制器局域网络及车辆诊断人员电脑设备对接入的车载诊断设备的固件身份验证及通信加密。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (10)

1.一种车载诊断系统固件保护系统,其特征在于,包括:用于暂时存储设备升级数据并和车载诊断设备通信来完成设备固件升级的车载系统烧录设备、车载诊断设备、车内控制器局域网络以及用于与车载诊断设备通信以提供维修人员操作接口的车辆诊断人员电脑设备,其中:车载诊断设备通过车内控制器局域网络分别与烧录设备和电脑设备通信以完成固件升级和车辆诊断;
所述的车载系统烧录设备包括:依次相连的第一数据存储模块、第一串口通信模块和第一固件升级反馈模块,其中:第一数据存储模块存储烧录设备公私钥在内的烧录设备证书及待更新的车载诊断系统升级数据,以传输接收到的输入信号和待升级的设备固件原始数据包,固件包通过第一串口通信模块将固件升级包传输至主机端,第一固件升级反馈模块通过第一串口通信模块与车载诊断设备相连以接收验证和升级的响应信息;
所述的车载诊断设备包括:依次相连的第二串口通信模块、专用数据加密芯片模块、第二数据存储模块、接入车内控制器局域网络通信模块的固件处理器模块和第二固件升级反馈模块,其中:第二串口通信模块与第二数据存储模块相连以接收设备运行固件及其他数据,固件处理器模块与第二串口通信模块相连以接收固件包、发送验证和升级的响应信息,固件处理器模块与专用数据加密芯片模块相连,以将接收到的固件包加密烧录至Flash存储模块。
2.根据权利要求1所述的车载诊断系统固件保护系统,其特征是,所述的车辆诊断人员电脑设备内置车辆诊断模块,该车辆诊断模块通过蓝牙或串口同车载诊断设备连接,并通过该车载诊断设备来随时监控并记录车辆发动机的运行状况和汽车运行的一些工作状态,并在适当时情况下对车辆进行控制。
3.一种基于权利要求1或2所述系统的车载诊断系统固件保护方法,其特征在于,包括:固件升级、固件加载和设备应用三个阶段,其中:
所述的固件升级阶段包括:烧录设备验证、固件传输以及固件烧录;
所述的固件加载过程包括:固件解密及完整性校验;
所述的设备应用阶段包括:车内控制器局域网络接入验证及车辆诊断人员电脑设备验证。
4.根据权利要求3所述的车载诊断系统固件保护方法,其特征是,所述的烧录设备验证是指:烧录设备以串口通信方式接入车载诊断设备,成功建立串口通信后;车载诊断设备首先向烧录设备发送一串随机数字作为挑战,烧录设备接收到挑战后使用自带证书中的私钥加密烧录启动消息和挑战并发送给车载诊断设备;车载诊断设备使用加密芯片中存储的信任的烧录设备证书公钥解密并验证烧录启动消息及接受的挑战是否准确;消息确认后车载诊断设备生成随机会话密钥并再使用烧录设备证书公钥加密后发送给烧录设备;烧录设备再使用自带证书中的私钥解密消息,获得与车载诊断设备通信用的会话密钥,完成烧录设备的单向验证过程;
所述的固件传输是指:烧录设备读取暂时存储在自身Flash中的车载诊断设备待升级数据;计算数据的消息摘要值并使用烧录设备私钥对该摘要加密,从而生成对待升级数据的数字签名;将数字签名和待升级数据一起使用会话密钥加密再通过串口通信发送给车载诊断设备;车载诊断设备通过串口接收数据包,使用会话密钥解密数据包得到升级原始数据;再使用烧录设备公钥解密数字签名得到升级原始数据密码摘要,同自己得到的升级数据包计算得到的密码摘要进行比对,验证固件的数字签名,当设备端验证成功,则将新接收到的固件进行硬件烧录,当主机端验证失败,则丢弃接收的固件升级包并向固件管理设备发送升级失败的信息;
所述的固件烧录是指:首先对升级数据包中含有的可能的证书信息进行提取并更新存储在专用数据加密芯片模块中的证书信息;然后对车载诊断设备固件二进制文件进行:车载诊断设备计算设备固件的密码摘要,生成新的随机对称加密密钥并将二者存储在设备的加密芯片当中;使用对称密钥加密待升级的固件数据并替换设备原有的固件内容;完成固件烧录过程;向烧录设备返回升级成功消息,完成固件升级过程。
5.根据权利要求4所述的车载诊断系统固件保护方法,其特征是,所述的升级数据包包括:车载诊断设备固件二进制文件数据、更新的车载诊断设备公私钥证书、更新的烧录设备公钥证书。
6.根据权利要求3所述的车载诊断系统固件保护方法,其特征是,所述的固件解密是指:车载诊断设备bootloader读取加密的固件内容和加密芯片中的对称密钥,将固件内容解密,得到原始的固件数据;
所述的完整性校验是指:对原始固件数据计算密码摘要,将其与存储在加密芯片中的密码摘要进行比较校验固件完整性,当通过则正常加载固件运行,否则打印错误消息,中止设备启动。
7.根据权利要求3所述的车载诊断系统固件保护方法,其特征是,所述的车内控制器局域网络接入验证是指:车载诊断设备接入车内控制器局域网络后,网络网关向车载诊断设备发送一串随机数字作为挑战,车载诊断设备随后向网络网关发送包含诊断消息标示符、诊断目标设备ID以及挑战数字的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送;网关接收到消息后首先使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据,然后提取消息中的诊断目标设备ID并通过CAN总线连接的车内局域网确认诊断目标设备的状态;当符合诊断要求,网关生成通信用的会话密钥,连同可以诊断消息标示符一同返回给车载诊断设备,该返回消息使用车载诊断设备公钥证书进行加密后传输;车载诊断设备使用自身私钥证书解密确认可以诊断后使用消息中的会话密钥接入车内局域网同目标诊断设备进行加密通信;
所述的车辆诊断人员电脑设备验证是指:车载诊断设备接入车辆诊断人员的电脑设备后,电脑设备发送一串随机数字作为挑战,车载诊断设备接收后通过串口发送包含诊断设备标示符及挑战数据的消息,该消息使用车载诊断设备加密芯片中的私钥证书加密后发送;电脑设备接收到消息后使用车载诊断设备公钥证书验证诊断消息标示符及挑战数据;验证通过后生成通信的会话密钥使用设备公钥证书加密后返回给车载诊断设备并在用户界面上显示设备初始化验证成功字样。
8.根据权利要求4所述的车载诊断系统固件保护方法,其特征是,在固件升级阶段的烧录设备验证过程中,所述的车载诊断设备向烧录设备首先发送消息为:M=chall1||TS1,其中:chall1为车载诊断设备生成的随机挑战数,TS1为消息时间戳;
所述的烧录设备接收挑战后回复消息为:M=EA(PRB,MS||chall1||TS2),其中:EA为RSA-1024非对称密码加密算法,PRB为烧录设备证书私钥,MS为固件升级过程烧录设备消息标示符,chall1为上一步接收到的随机挑战数,TS2为消息时间戳;
所述的车载诊断设备验证通过后回复消息为:M=EA(PUB,MA||KS1||TS3),其中:PUB为烧录设备证书公钥,MA为固件升级过程车载诊断设备消息标示符,KS1为然后通信用的会话对称密钥,TS3为消息时间戳;
所述的烧录设备发送固件升级消息为:M=ES(KS1,X||TS4),X=Binary||EA(PRB,Digest),Digest=Hash(Binary),其中:ES为AES-128对称密码加密算法,TS4为消息时间戳,Binary为固件升级二进制数据文件,Hash为SHA-256消息摘要算法,EA(PRB,Digest)即为烧录设备对待升级固件二进制文件的数字签名;
当升级成功时,烧录设备向烧录设备返回成功消息内容为:M=ES(KS1,MF||TS5),其中:MF为固件升级过程车载诊断设备烧录成功消息标示符,TS5为消息时间戳;
在固件烧录阶段的固件烧录过程中,生成的加密固件内容为:C=ES(KE,Binary),其中:KE为烧录过程中车载诊断设备生成的存储在加密芯片中的随机对称加密密钥,车载诊断设备将C存储在自身Flash存储器中。
9.根据权利要求4所述的车载诊断系统固件保护方法,其特征是,在固件加载阶段的固件解密过程中,数据处理过程为:Binary*=DS(KE,C*)Digest*=Hash(Binary*),其中:Binary*为车载诊断设备启动时从自身Flash存储器中读取的内容解密后得到的启动时将加载的系统固件,DS为与ES对应的AES-128对称密码解密算法,C*为系统启动固件加载时存储在自身Flash存储器中的加密设备固件,之后得到的Binary*需要计算Digest*并与烧录时计算的Digest比较确认固件完整性后才能加载运行。
10.根据权利要求6所述的车载诊断系统固件保护方法,其特征是,具体地,在设备应用阶段的车内控制器局域网络接入验证过程中,车内控制器局域网络网关首先向车载诊断设备发送的消息内容为:M=chall2||TS6,其中:chall2为车内控制器局域网络网关生成的随机挑战数,TS6为消息时间戳;
所述的车载诊断设备对车内控制器局域网络消息回复内容为:M=EA(PRD,MN||TS7||IDT||chall2),其中:PRD为车载诊断设备证书私钥,MN为设备应用过程车载诊断设备消息标示符,TS7为消息时间戳,IDT为目标车内网络连接的诊断设备ID;
所述的网络网关验证挑战数通过并确认目标设备可以接受诊断时,向车载诊断设备返回消息内容为:M=EA(PBD,MD||TS8||KS2),其中:PBD为车载诊断设备证书公钥,MD为设备验证过程网络网关返回可以进行诊断消息标示符,TS8为消息时间戳,KS2为车载诊断设备后续与目标诊断设备进行通信时使用的会话密钥;
所述的车载诊断设备及对应目标诊断设备后续进行诊断会话时发送的消息内容格式如下:M=ES(KS2,MS||TS9),其中:MS为会话消息,TS9为消息时间戳;
在设备应用阶段的车辆诊断人员电脑设备验证过程中,车辆诊断人员电脑设备使用相同的消息格式对车载诊断设备进行身份验证及后续的会话密钥生成,当对车载诊断设备的校验失败时车辆诊断人员电脑设备的相关用户接口应及时显示有关可能的盗版及侵权信息,帮助车辆诊断人员尽快向管理人员汇报并销毁该设备;
当车载诊断设备段验证烧录设备身份不通过时,烧录设备主动断开串口通信连接,并在一段时间内拒绝所有串口连接;当车载诊断设备验证固件的数字签名的具体验证不通过时,中止固件升级,丢弃升级固件数据并向烧录设备报告升级失败信息;当车载诊断设备固件加载时对固件完整性校验不通过时,中止车载诊断设备系统启动,等待烧录设备重新烧录新固件;当车内控制器局域网络对车载诊断设备身份验证不通过时,不检查目标设备是否处于可诊断状态,直接向车载诊断设备返回明文错误信息,并一段时间内停止该局域网连接;当车辆诊断人员电脑设备对车载诊断设备身份验证不通过时,在用户接口上打印身份验证失败信息,断开与该设备的串口通信连接。
CN202010064511.5A 2020-01-20 2020-01-20 车载诊断系统固件保护方法及系统 Active CN113138775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010064511.5A CN113138775B (zh) 2020-01-20 2020-01-20 车载诊断系统固件保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010064511.5A CN113138775B (zh) 2020-01-20 2020-01-20 车载诊断系统固件保护方法及系统

Publications (2)

Publication Number Publication Date
CN113138775A CN113138775A (zh) 2021-07-20
CN113138775B true CN113138775B (zh) 2022-11-18

Family

ID=76809116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010064511.5A Active CN113138775B (zh) 2020-01-20 2020-01-20 车载诊断系统固件保护方法及系统

Country Status (1)

Country Link
CN (1) CN113138775B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091040B (zh) * 2022-01-10 2022-05-06 苏州萨沙迈半导体有限公司 车辆ecu的升级方法、存储介质、客户端
CN114489008B (zh) * 2022-01-24 2024-04-02 深圳市星卡软件技术开发有限公司 车辆系统固件安全保护方法、装置和计算机设备
CN114238035B (zh) * 2022-02-23 2022-06-21 南京芯驰半导体科技有限公司 一种通过运行状态指纹进行错误检测方法及系统
CN115022092B (zh) * 2022-08-05 2022-11-11 中汽数据(天津)有限公司 车辆软件升级方法、设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707979A (zh) * 2012-05-22 2012-10-03 奇瑞汽车股份有限公司 一种汽车控制器软件专用刷新工具及其软件刷新方法
CN106020870A (zh) * 2016-05-12 2016-10-12 浙江中科领航汽车电子有限公司 一种全液晶仪表快速升级固件的系统及方法
CN106850241A (zh) * 2015-12-03 2017-06-13 联车(上海)信息科技有限公司 一种车载obd终端及其远程升级方法
CN107682334A (zh) * 2017-09-30 2018-02-09 郑州信大捷安信息技术股份有限公司 一种obd接口数据安全防护系统及数据安全防护方法
CN109257415A (zh) * 2018-08-15 2019-01-22 国力天(深圳)科技有限公司 一种基于nfc通信的诊断系统及其运行方法
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息系统有限公司 固件安全加载方法、装置、计算机设备及存储介质
CN109697081A (zh) * 2018-12-19 2019-04-30 广州小鹏汽车科技有限公司 固件安全升级方法、装置、车载系统和车辆
CN110225063A (zh) * 2019-07-02 2019-09-10 广州小鹏汽车科技有限公司 汽车车载系统的升级方法、升级系统、服务器及车载终端
CN110336774A (zh) * 2019-04-17 2019-10-15 中国联合网络通信集团有限公司 混合加密解密方法、设备及系统
CN110532735A (zh) * 2018-05-23 2019-12-03 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法
CN110708388A (zh) * 2019-10-15 2020-01-17 大陆投资(中国)有限公司 用于提供安全服务的车身安全锚节点设备、方法以及网络系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150074414A (ko) * 2013-12-24 2015-07-02 현대자동차주식회사 펌웨어 업그레이드 방법 및 그 시스템
US11397801B2 (en) * 2015-09-25 2022-07-26 Argus Cyber Security Ltd. System and method for controlling access to an in-vehicle communication network
KR102368606B1 (ko) * 2017-07-31 2022-03-02 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707979A (zh) * 2012-05-22 2012-10-03 奇瑞汽车股份有限公司 一种汽车控制器软件专用刷新工具及其软件刷新方法
CN106850241A (zh) * 2015-12-03 2017-06-13 联车(上海)信息科技有限公司 一种车载obd终端及其远程升级方法
CN106020870A (zh) * 2016-05-12 2016-10-12 浙江中科领航汽车电子有限公司 一种全液晶仪表快速升级固件的系统及方法
CN107682334A (zh) * 2017-09-30 2018-02-09 郑州信大捷安信息技术股份有限公司 一种obd接口数据安全防护系统及数据安全防护方法
CN110532735A (zh) * 2018-05-23 2019-12-03 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法
CN109257415A (zh) * 2018-08-15 2019-01-22 国力天(深圳)科技有限公司 一种基于nfc通信的诊断系统及其运行方法
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息系统有限公司 固件安全加载方法、装置、计算机设备及存储介质
CN109697081A (zh) * 2018-12-19 2019-04-30 广州小鹏汽车科技有限公司 固件安全升级方法、装置、车载系统和车辆
CN110336774A (zh) * 2019-04-17 2019-10-15 中国联合网络通信集团有限公司 混合加密解密方法、设备及系统
CN110225063A (zh) * 2019-07-02 2019-09-10 广州小鹏汽车科技有限公司 汽车车载系统的升级方法、升级系统、服务器及车载终端
CN110708388A (zh) * 2019-10-15 2020-01-17 大陆投资(中国)有限公司 用于提供安全服务的车身安全锚节点设备、方法以及网络系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于OBD Ⅱ的汽车故障诊断仪的研制;王鱻文;《自动化技术与应用》;20070625;第26卷(第6期);全文 *
面向车联网应用的OBD车载终端的设计与实现;李佩;《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》;20190815(第8期);全文 *

Also Published As

Publication number Publication date
CN113138775A (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
CN113138775B (zh) 车载诊断系统固件保护方法及系统
US10708062B2 (en) In-vehicle information communication system and authentication method
CN106572106B (zh) 一种tbox终端和tsp平台之间报文传输的方法
EP1828931B1 (en) Secure collaborative terminal identity authentication between a wireless communication device and a wireless operator
JP5310761B2 (ja) 車両ネットワークシステム
US11330432B2 (en) Maintenance system and maintenance method
CN110708388B (zh) 用于提供安全服务的车身安全锚节点设备、方法以及网络系统
CN111181928B (zh) 车辆诊断方法、服务器及计算机可读存储介质
JP2010011400A (ja) 共通鍵方式の暗号通信システム
CN111131313A (zh) 智能网联汽车更换ecu的安全保障方法及系统
CN115396121B (zh) 安全芯片ota数据包的安全认证方法及安全芯片装置
TW201735578A (zh) 受控的安全碼認證
CN103269271A (zh) 一种备份电子签名令牌中私钥的方法和系统
CN112396735B (zh) 网联汽车数字钥匙安全认证方法及装置
CN112291201B (zh) 业务请求的传输方法及装置、电子设备
EP4024311A1 (en) Method and apparatus for authenticating biometric payment device, computer device and storage medium
CN111565182A (zh) 一种车辆诊断方法、装置及存储介质
JP2017011491A (ja) 認証システム
CN105187369A (zh) 一种数据访问方法及装置
CN115314253A (zh) 数据处理方法、装置、系统、设备及作业机械
CN111510448A (zh) 汽车ota升级中的通讯加密方法、装置及系统
JP2018082439A (ja) 通信システム、車両、サーバ装置、通信方法、及びコンピュータプログラム
WO2023000313A1 (zh) 一种密钥验证方法及相关装置
CN112887099B (zh) 数据签名方法、电子设备及计算机可读存储介质
US11550932B2 (en) Method for a terminal to acquire and access data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant