CN112379898B - 一种用于v2x设备的软件安全启动方法及系统 - Google Patents

一种用于v2x设备的软件安全启动方法及系统 Download PDF

Info

Publication number
CN112379898B
CN112379898B CN202011386193.0A CN202011386193A CN112379898B CN 112379898 B CN112379898 B CN 112379898B CN 202011386193 A CN202011386193 A CN 202011386193A CN 112379898 B CN112379898 B CN 112379898B
Authority
CN
China
Prior art keywords
bootloader
processor
data
signature
verification
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
CN202011386193.0A
Other languages
English (en)
Other versions
CN112379898A (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 Hangxin Electronic Technology Co ltd
Original Assignee
Shanghai Aisinochip Electronic Technology Co ltd
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 Aisinochip Electronic Technology Co ltd filed Critical Shanghai Aisinochip Electronic Technology Co ltd
Priority to CN202011386193.0A priority Critical patent/CN112379898B/zh
Publication of CN112379898A publication Critical patent/CN112379898A/zh
Application granted granted Critical
Publication of CN112379898B publication Critical patent/CN112379898B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及软件安全技术领域,提供了一种用于V2X设备的软件安全启动方法及系统,方法包括:优先启动安全处理器,并控制应用处理器的复位信号;安全处理器读取应用处理器的加密后的Bootloader,解密并对签名数据进行验证,待验证通过后缓存明文的Bootloader,释放应用处理器的复位信号,应用处理器开始启动并从安全处理器读取缓存的明文的Bootloader;在应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据,并对Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核;验证dm‑verity的hash_table签名,待验证通过后继续运行V2X设备。在启动过程逐级签名验证,并且针对软件更新操作也提出签名验证的方法,使得V2X设备能够安全可靠的运行。

Description

一种用于V2X设备的软件安全启动方法及系统
技术领域
本发明涉及软件安全的技术领域,尤其涉及车联网中V2X设备的软件安全启动技术领域。具体为一种用于V2X设备的软件安全启动方法及系统。包含Bootloader、Linux内核和文件系统的安全启动以及更新。
背景技术
随着车联网技术的不断发展,V2X的设备也越来越多。所谓V2X,与流行的B2B、B2C如出一辙,意为vehicle to everything,即车对外界的信息交换。车联网通过整合全球定位系统(GPS)导航技术、车对车交流技术、无线通信及远程感应技术奠定了新的汽车技术发展方向,实现了手动驾驶和自动驾驶的兼容。简单来说,搭配了该系统的车型,在自动驾驶模式下,能够通过对实时交通信息的分析,自动选择路况最佳的行驶路线,从而大大缓解交通堵塞。除此之外,通过使用车载传感器和摄像系统,还可以感知周围环境,做出迅速调整,从而实现“零交通事故”。例如,如果行人突然出现,可以自动减速至安全速度或停车。
基于V2X设备的处理速度和性能的要求,V2X设备一般采用应用处理器加上安全处理器的架构。其中,应用处理器用于运行Linux系统,负责V2X设备的各种业务,安全处理器作为协处理器,负责V2X消息的签名、验签、加密和解密等安全验证工作。应用处理器的软件架构包括Bootloader,Linux内核和文件系统。
在现有技术中,尽管Linux的启动已经具有了一定的完整性检查,如CRC检验,但没有使用签名验证机制。Bootloader存在被读取、恶意纂改、被替换的风险。一旦Bootloader被恶意纂改,Linux系统也就存在被恶意纂改、植入非法应用的风险,严重影响到V2X设备的正常运行。
发明内容
针对上述问题,本发明的目的在于提供一种用于V2X设备的软件安全启动方法及系统,在启动过程逐级签名验证,并且针对软件更新操作也提出签名验证的方法,使得V2X设备能够安全可靠的运行。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种用于V2X设备的软件安全启动方法,其特征在于,包括以下步骤:
S1:当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号;
S2:所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader;
S3:在所述应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据并对所述Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核;
S4:在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。
进一步地,在步骤S4中,当验证通过后,所述V2X设备正常运行时,还包括:
当对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。
进一步地,当对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。
进一步地,所述应用处理器的所述加密后的Bootloader,具体包括密文Bootloader数据起始地址、密文Bootloader数据长度、Bootloader签名数据以及密文Bootloader数据在内的数据;
所述加密后的Bootloader的签名验证密钥以及解密密钥保存于所述安全处理器中。
进一步地,所述安全处理器控制所述应用处理器的所述复位信号,并在验证通过后释放所述复位信号,具体为:
所述应用处理器的所述复位信号接到所述安全处理器上,由所述安全处理器控制;
包含所述应用处理器的执行代码的串行存储设备通过第一数据线经过模拟开关芯片后分别由第二数据线连接到所述安全处理器,由第三数据线连接到所述应用处理器;
所述模拟开关芯片的控制信号连接到所述安全处理器上,同一时刻只有所述第二数据线和所述第一数据线导通,或者所述第三数据线和所述第一数据线导通;
当所述V2X设备上电后,所述安全处理器控制所述应用处理器的所述复位信号,使所述应用处理器处于复位状态;
控制所述模拟开关芯片的所述控制信号,使所述第二数据线和所述第一数据线导通,所述安全处理器从所述串行存储设备读取所述密文Bootloader数据起始地址以及所述密文Bootloader数据长度,根据起始地址和长度信息,读取所述密文Bootloader数据,对所述Bootloader数据进行解密、验证签名;
当Bootloader签名验证通过后,所述安全处理器释放所述应用处理器的所述复位信号,切换所述模拟开关芯片的所述控制信号,使所述第三数据线和所述第一数据线导通,所述应用处理器开始启动,通过串行总线读取所述安全处理器中解密后缓存的明文的Bootloader,并运行Bootloader;
当Bootloader签名验证失败后,所述安全处理器不释放所述应用处理器的所述复位信号,并不切换所述模拟开关芯片的所述控制信号,进行报警处理。
一种用于V2X设备的软件安全启动系统,包括:
复位信号控制模块,用于当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号;
Bootloader签名验证模块,用于提供给所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader;
Linux内核镜像签名验证,用于在所述应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据,并对所述Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核;
dm-verity验证模块,用于在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。
文件系统验证模块,用于当对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。
应用更新验证模块,用于当对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。
一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述在会少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如上述的方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如上述的方法被执行。
与现有技术相比,本发明包括以下至少一种有益效果是:
(1)通过提供了一种用于V2X设备的软件安全启动方法,包括步骤:S1:当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号;S2:所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader;S3:在所述应用处理器的Bootloader中读取Linux内核镜像数据并对所述Linux内核镜像的签名进行验证,待验证通过后启动Linux内核;S4:在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。上述技术方案对V2X系统的启动过程进行了逐级的多次验证,解决了普通的V2X设备启动时,没有采用加密和签名验证,存在被非法读取、纂改、植入非法应用的风险。上述技术方案可以消除V2X设备软件的安全隐患,防止V2X设备的Bootloader和Linux系统被纂改,保证了V2X设备各级执行代码的合法性和完整性,从而保证V2X设备的安全运行。
(2)通过对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。上述技术方案,在访问时,进一步地的对文件系统做Hash校验,确保文件访问时的安全性。
(3)通过在对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。确保了V2X设备的安全更新。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明一种用于V2X设备的软件安全启动方法的整体流程图;
图2为本发明签名加密后的Bootloader数据结构;
图3为本发明V2X设备应用处理器和安全处理器与串行存储设备的连接图;
图4为本发明签名后的Linux镜像数据结构;
图5为本发明Bootloader验证Linux镜像数据签名流程图;
图6为本发明Linux内核验证文件系统数据签名流程图;
图7为本发明V2X设备应用更新处理流程图;
图8为本发明一种用于V2X设备的软件安全启动系统的整体结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
对于V2X设备来说,一般采用应用处理器加上安全处理器的架构。在现有机制中,尽管Linux的启动已经具有了一定的完整性检查,如CRC检验,但没有使用签名验证机制。Bootloader存在被读取、恶意纂改、被替换的风险。一旦Bootloader被恶意纂改,Linux系统也就存在被恶意纂改、植入非法应用的风险,严重影响到V2X设备的正常运行。
本发明的显著特点在于,在V2X启动过程中逐级进行签名认证,并针对软件更新操作也提出签名验证的方法,使得V2X设备能够安全可靠的运行。以下通过具体的实施例进行说明。
第一实施例
如图1所示,本实施例提供了一种用于V2X设备的软件安全启动方法,其特征在于,包括以下步骤:
S1:当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号。
具体地,在V2X设备准备启动时,首先从安全处理器开始启动,通过安全处理器控制应用处理器的复位信号,使得应用处理器在安全处理器的安全验证完成之前,不能启动。
S2:所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader。
其中,如图2所示,所述应用处理器中的所述加密后的Bootloader,具体包括密文Bootloader数据起始地址、密文Bootloader数据长度、Bootloader签名数据以及密文Bootloader数据在内的数据。同时,所述加密后的Bootloader的签名验证密钥以及解密密钥保存于所述安全处理器中。
如图3,通过一个连接图将应用处理器、安全处理器以及串行存储设备的连接关系表述清楚,连接关系具体为:
所述应用处理器1的所述复位信号5接到所述安全处理器2上,由所述安全处理器2控制;
包含所述应用处理器的执行代码的串行存储设备4通过第一数据线10经过模拟开关芯片3后分别由第二数据线8连接到所述安全处理器2,由第三数据线9连接到所述应用处理器1;
所述模拟开关芯片3的控制信号7连接到所述安全处理器2上,同一时刻只有所述第二数据线8和所述第一数据线10导通,或者所述第三数据线9和所述第一数据线10导通。
对于如图3所示的系统,启动的过程,具体为:
当所述V2X设备上电后,所述安全处理器2控制所述应用处理器1的所述复位信号5,使所述应用处理器1处于复位状态;
控制所述模拟开关芯片3的所述控制信号7,使所述第二数据线8和所述第一数据线10导通,所述安全处理器2从所述串行存储设备4读取所述密文Bootloader数据起始地址以及所述密文Bootloader数据长度,根据起始地址和长度信息,读取所述密文Bootloader数据,对所述密文Bootloader数据进行解密、验证签名;
当Bootloader签名验证通过后,所述安全处理器2释放所述应用处理器1的所述复位信号5,切换所述模拟开关芯片3的所述控制信号7,使所述第三数据线9和所述第一数据线10导通,所述应用处理器1开始启动,通过串行总线6读取所述安全处理器中解密后缓存的明文Bootloader,并运行Bootloader;
当Bootloader签名验证失败后,所述安全处理器2不释放所述应用处理器1的所述复位信号5,并不切换所述模拟开关芯片3的所述控制信号7,进行报警处理。
S3:在所述应用处理器的Bootloader中读取Linux内核镜像数据并对所述Linux内核镜像的签名进行验证,待验证通过后启动Linux内核。
在本步骤中,在步骤S2中对Bootloader验证通过后,继续对Linux内核镜像的签名进行验证。其中,如图4所示,应用处理器的Linux镜像数据签名后,包含Linux镜像数据和Linux镜像数据的签名数据。
具体地,如图5所示,V2X设备应用处理器的Bootloader运行后,在读取Linux镜像数据时,同时读取Linux镜像数据的签名数据,然后对该签名数据进行签名验证。若签名验证通过,则加载Linux镜像并启动Linux内核;否则,不加载Linux镜像,进行报警处理。以此保证Linux内核镜像数据的完整性和合法性。
S4:在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。
在本步骤中,在步骤S3中对Linux镜像数据进行验证通过后,继续对Linux的DM_VERITY进行签名验证。
如图6所示,Linux内核运行后,加载dm-verity驱动,然后读取hash_table及其签名,对hash_table进行签名验证。若签名验证通过,则Linux继续运行;否则,Linux停止运行。
进一步地,在步骤S4中,当验证通过后,所述V2X设备正常运行时,还包括:
当对所述V2X设备中的文件系统中的数据块进行访问时,对访问的所述文件系统中各数据块进行Hash校验,若验证通过后则返回该数据块数据;否则,返回访问错误,以防止文件系统内容被纂改,保证文件系统数据的完整性和合法性。
进一步地,如图7所示,当需要更新应用时,应用处理器读取新的应用数据及其签名数据,然后将该应用数据的Hash值和该应用的签名数据发送给安全处理器,安全处理器验证新应用的签名,返回签名结果给应用处理器,若签名验证成功,应用处理器则更新应用;否则,应用处理器删除新的应用及其数据,由此保证新应用的合法性。
第二实施例
如图8所示,本实施例提供了一种用于执行第一实施例中的方法的对应的用于V2X设备的软件安全启动系统,包括:
复位信号控制模块,用于当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号。
Bootloader签名验证模块,用于提供给所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader。
Linux内核镜像签名验证,用于在所述应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据,并对所述Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核。
dm-verity验证模块,用于在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。
文件系统验证模块,用于当对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。
应用更新验证模块,用于当对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。
一种计算机设备,包括存储器和一个或多个处理器,所述存储器中存储有计算机代码,所述计算机代码被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第二实施例中的方法。
一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

Claims (8)

1.一种用于V2X设备的软件安全启动方法,其特征在于,包括以下步骤:
S1:当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号;
S2:所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader;
其中,所述应用处理器的所述加密后的Bootloader,具体包括密文Bootloader数据起始地址、密文Bootloader数据长度、Bootloader签名数据以及密文Bootloader数据在内的数据;
所述加密后的Bootloader的签名验证密钥以及解密密钥保存于所述安全处理器中;
所述安全处理器控制所述应用处理器的所述复位信号,并在验证通过后释放所述复位信号,具体为:
所述应用处理器(1)的所述复位信号(5)接到所述安全处理器(2)上,由所述安全处理器(2)控制;
包含所述应用处理器的执行代码的串行存储设备(4)通过第一数据线(10)经过模拟开关芯片(3)后分别由第二数据线(8)连接到所述安全处理器(2),由第三数据线(9)连接到所述应用处理器(1);
所述模拟开关芯片(3)的控制信号(7)连接到所述安全处理器(2)上,同一时刻只有所述第二数据线(8)和所述第一数据线(10)导通,或者所述第三数据线(9)和所述第一数据线(10)导通;
当所述V2X设备上电后,所述安全处理器(2)控制所述应用处理器(1)的所述复位信号(5),使所述应用处理器(1)处于复位状态;
控制所述模拟开关芯片(3)的所述控制信号(7),使所述第二数据线(8)和所述第一数据线(10)导通,所述安全处理器(2)从所述串行存储设备(4)读取所述密文Bootloader数据起始地址以及所述密文Bootloader数据长度,根据起始地址和长度信息,读取所述密文Bootloader数据,对所述Bootloader数据进行解密、验证签名;
当Bootloader签名验证通过后,所述安全处理器(2)释放所述应用处理器(1)的所述复位信号(5),切换所述模拟开关芯片(3)的所述控制信号(7),使所述第三数据线(9)和所述第一数据线(10)导通,所述应用处理器(1)开始启动,通过串行总线(6)读取所述安全处理器中解密后缓存的明文的Bootloader,并运行Bootloader;
当Bootloader签名验证失败后,所述安全处理器(2)不释放所述应用处理器(1)的所述复位信号(5),并不切换所述模拟开关芯片(3)的所述控制信号(7),进行报警处理;
S3:在所述应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据,并对所述Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核;
S4:在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备。
2.根据权利要求1所述的用于V2X设备的软件安全启动方法,其特征在于,在步骤S4中,当验证通过后,所述V2X设备正常运行时,还包括:
当对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。
3.根据权利要求1所述的用于V2X设备的软件安全启动方法,其特征在于,还包括:
当对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。
4.一种用于V2X设备的软件安全启动系统,其特征在于,包括:
复位信号控制模块,用于当V2X设备启动时,优先启动所述V2X设备中的安全处理器,并通过所述安全处理器控制应用处理器的复位信号;
Bootloader签名验证模块,用于提供给所述安全处理器读取所述应用处理器的加密后的Bootloader,解密所述加密后的Bootloader,并同时对所述加密后的Bootloader的签名数据进行验证,待验证通过后缓存明文的Bootloader,释放所述应用处理器的复位信号,当所述复位信号释放后,所述应用处理器开始启动并从所述安全处理器读取缓存的所述明文的Bootloader;
Linux内核镜像签名验证,用于在所述应用处理器的Bootloader中读取Linux内核镜像数据及其签名数据,并对所述Linux内核镜像的签名数据进行验证,待验证通过后启动Linux内核;
dm-verity验证模块,用于在所述Linux内核的配置中配置CONFIG_DM_VERITY,当所述Linux内核启动后,验证dm-verity的hash_table签名,待验证通过后继续运行所述V2X设备;
其中,所述应用处理器的所述加密后的Bootloader,具体包括密文Bootloader数据起始地址、密文Bootloader数据长度、Bootloader签名数据以及密文Bootloader数据在内的数据;
所述加密后的Bootloader的签名验证密钥以及解密密钥保存于所述安全处理器中;
所述安全处理器控制所述应用处理器的所述复位信号,并在验证通过后释放所述复位信号,具体为:
所述应用处理器(1)的所述复位信号(5)接到所述安全处理器(2)上,由所述安全处理器(2)控制;
包含所述应用处理器的执行代码的串行存储设备(4)通过第一数据线(10)经过模拟开关芯片(3)后分别由第二数据线(8)连接到所述安全处理器(2),由第三数据线(9)连接到所述应用处理器(1);
所述模拟开关芯片(3)的控制信号(7)连接到所述安全处理器(2)上,同一时刻只有所述第二数据线(8)和所述第一数据线(10)导通,或者所述第三数据线(9)和所述第一数据线(10)导通;
当所述V2X设备上电后,所述安全处理器(2)控制所述应用处理器(1)的所述复位信号(5),使所述应用处理器(1)处于复位状态;
控制所述模拟开关芯片(3)的所述控制信号(7),使所述第二数据线(8)和所述第一数据线(10)导通,所述安全处理器(2)从所述串行存储设备(4)读取所述密文Bootloader数据起始地址以及所述密文Bootloader数据长度,根据起始地址和长度信息,读取所述密文Bootloader数据,对所述Bootloader数据进行解密、验证签名;
当Bootloader签名验证通过后,所述安全处理器(2)释放所述应用处理器(1)的所述复位信号(5),切换所述模拟开关芯片(3)的所述控制信号(7),使所述第三数据线(9)和所述第一数据线(10)导通,所述应用处理器(1)开始启动,通过串行总线(6)读取所述安全处理器中解密后缓存的明文的Bootloader,并运行Bootloader;
当Bootloader签名验证失败后,所述安全处理器(2)不释放所述应用处理器(1)的所述复位信号(5),并不切换所述模拟开关芯片(3)的所述控制信号(7),进行报警处理。
5.根据权利要求4所述的用于V2X设备的软件安全启动系统,其特征在于,还包括:
文件系统验证模块,用于当对所述V2X设备中的文件系统进行访问时,对访问的所述文件系统中各数据块进行Hash校验,当校验通过后允许正常访问。
6.根据权利要求4所述的用于V2X设备的软件安全启动系统,其特征在于,还包括:
应用更新验证模块,用于当对所述应用处理器中的应用进行更新时,将新应用的Hash数据和新应用的签名数据发送到所述安全处理器中进行签名验证,当验证通过后进行更新,否则,删除新应用及其数据。
7.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现权利要求1-3中任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,以实现权利要求1-3中任意一项所述的方法被执行。
CN202011386193.0A 2020-12-01 2020-12-01 一种用于v2x设备的软件安全启动方法及系统 Active CN112379898B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011386193.0A CN112379898B (zh) 2020-12-01 2020-12-01 一种用于v2x设备的软件安全启动方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011386193.0A CN112379898B (zh) 2020-12-01 2020-12-01 一种用于v2x设备的软件安全启动方法及系统

Publications (2)

Publication Number Publication Date
CN112379898A CN112379898A (zh) 2021-02-19
CN112379898B true CN112379898B (zh) 2022-08-09

Family

ID=74590121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011386193.0A Active CN112379898B (zh) 2020-12-01 2020-12-01 一种用于v2x设备的软件安全启动方法及系统

Country Status (1)

Country Link
CN (1) CN112379898B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11792645B2 (en) 2021-03-10 2023-10-17 Qualcomm Incorporated Authenticating plaintext and ciphertext in a vehicle-to-everything (V2X) message
CN112989440B (zh) * 2021-04-21 2021-09-14 北京芯愿景软件技术股份有限公司 芯片、处理器驱动方法及电子设备
CN113987547A (zh) * 2021-11-05 2022-01-28 锐凌无线通讯科技(深圳)有限公司 数据校验方法、装置、电子设备和计算机可读存储介质
CN115514498A (zh) * 2022-09-27 2022-12-23 四川长虹电器股份有限公司 快速检测安卓电视系统镜像文件中签名信息的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN108595981A (zh) * 2018-05-09 2018-09-28 深圳市桑格尔科技股份有限公司 加密安卓系统的方法
CN109766134A (zh) * 2019-01-08 2019-05-17 四川虹微技术有限公司 系统启动方法、装置、电子设备及存储介质
CN111597560A (zh) * 2020-05-18 2020-08-28 国网电力科学研究院有限公司 一种安全可信模组启动方法及系统
CN111857756A (zh) * 2020-07-23 2020-10-30 上海世麦智能科技有限公司 一种基于硬件加密的安全刷机方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2605532A1 (en) * 2011-12-16 2013-06-19 Thomson Licensing Apparatus and method for signature verification
US9536094B2 (en) * 2014-01-13 2017-01-03 Raytheon Company Mediated secure boot for single or multicore processors
CN104899480A (zh) * 2015-05-05 2015-09-09 易兴旺 一种基于cpk标识认证技术的软件版权保护管理方法
CN106560830A (zh) * 2016-07-01 2017-04-12 哈尔滨安天科技股份有限公司 一种Linux嵌入式系统中的安全防护方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN108595981A (zh) * 2018-05-09 2018-09-28 深圳市桑格尔科技股份有限公司 加密安卓系统的方法
CN109766134A (zh) * 2019-01-08 2019-05-17 四川虹微技术有限公司 系统启动方法、装置、电子设备及存储介质
CN111597560A (zh) * 2020-05-18 2020-08-28 国网电力科学研究院有限公司 一种安全可信模组启动方法及系统
CN111857756A (zh) * 2020-07-23 2020-10-30 上海世麦智能科技有限公司 一种基于硬件加密的安全刷机方法及系统

Also Published As

Publication number Publication date
CN112379898A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN112379898B (zh) 一种用于v2x设备的软件安全启动方法及系统
EP2210174B1 (en) Progressive boot for a wireless device
EP2901362B1 (en) Method and apparatus for maintaining secure time
US20120117209A1 (en) Location control service
US20080120727A1 (en) System and method of protecting files from unauthorized modification or deletion
US20110107423A1 (en) Providing authenticated anti-virus agents a direct access to scan memory
US9710652B1 (en) Verifying boot process of electronic device
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
CN107092824B (zh) 一种应用程序的运行方法及装置
KR102244465B1 (ko) 불활성 모듈을 포함하는 전자 어셈블리
US20210056207A1 (en) Securing Devices From Unauthorized Software Upgrade
CN113570377A (zh) 一种校验方法、装置以及设备
WO2020010192A1 (en) Vehicular data privacy management systems and methods
CN113268742A (zh) 数据授权方法、装置及电子设备
CN114880011A (zh) Ota升级方法、装置、电子设备及可读存储介质
KR20170102285A (ko) 보안 요소
CN108241798B (zh) 防止刷机的方法、装置及系统
CN109144600B (zh) 一种应用程序的运行方法、设备及计算机可读介质
CN113259910A (zh) 一种车载网联设备的激活方法和装置
CN107924433B (zh) 由受控制的加密密钥管理保护的软件模块的安全进入和退出
US10754931B2 (en) Methods for configuring security restrictions of a data processing system
US20200012820A1 (en) Information processing device, mobile object, information processing method, and computer program product
EP4261713A1 (en) License file management method and apparatus, and device
CN111400726A (zh) 一种数据处理方法、装置、设备和机器可读介质
CN113886899A (zh) 自动驾驶软件使用期限管理方法、装置、设备及介质

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 200233 Room 704, Building 2, No. 2570 Hechuan Road, Minhang District, Shanghai

Patentee after: Shanghai Hangxin Electronic Technology Co.,Ltd.

Address before: 201103 room 704, building 2, 2570 Hechuan Road, Minhang District, Shanghai

Patentee before: SHANGHAI AISINOCHIP ELECTRONIC TECHNOLOGY Co.,Ltd.