CN112231710A - Qnx bsp启动验证方法及启动验证模块 - Google Patents

Qnx bsp启动验证方法及启动验证模块 Download PDF

Info

Publication number
CN112231710A
CN112231710A CN202011109210.6A CN202011109210A CN112231710A CN 112231710 A CN112231710 A CN 112231710A CN 202011109210 A CN202011109210 A CN 202011109210A CN 112231710 A CN112231710 A CN 112231710A
Authority
CN
China
Prior art keywords
hardware
safety
software
security
qnx
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.)
Granted
Application number
CN202011109210.6A
Other languages
English (en)
Other versions
CN112231710B (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 Chuangshi Automobile Technology Co ltd
Tongji University
Original Assignee
Shanghai Chuangshi Automobile Technology Co ltd
Tongji 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 Chuangshi Automobile Technology Co ltd, Tongji University filed Critical Shanghai Chuangshi Automobile Technology Co ltd
Priority to CN202011109210.6A priority Critical patent/CN112231710B/zh
Publication of CN112231710A publication Critical patent/CN112231710A/zh
Application granted granted Critical
Publication of CN112231710B publication Critical patent/CN112231710B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种QNX BSP启动验证方法,包括以下步骤:通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;通过对硬件安全机制和软件启动组件的检测判断否异常;若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。本发明还公开了一种QNX BSP启动验证模块。本发明符合功能安全ASIL B能及时的检测出启动过程中功能安全相关模块的状态是否存在异常,及时的避免了以非安全的软件状态进入ASIL D的操作系统中继续运行,避免以非安全软件状态进入操作系统为操作系统正常的初始化提供了保障。

Description

QNX BSP启动验证方法及启动验证模块
技术领域
本发明涉安全功能控制领域,特别是涉及一种符合功能安全ASIL B的QNX BSP启动验证方法。本发明还涉及一种符合功能安全ASIL B的QNX BSP启动验证模块。
背景技术
为了实现智能驾驶的安全性,软件的功能安全技术十分重要。而QNX操作系统因为已经通过ISO26262 ASIL D的功能安全认证,从而被智能驾驶域控制器中SOC系统广泛应用。
由于BSP为QNX系统正常运行提供了硬件的初始化,所以BSP属于当前软件系统中不可或缺的一部分,但是BSP的开发本身是不符合功能安全的标准,为了去除非功能安全的BSP Startup模块对ASIL D的QNX内核正常运行的影响,本发明利用安全检验机制,检测Startup模块中的安全相关组件的状态,从而提升BSP整体的功能安全水平。
如图1所述,传统的QNX平台软件启动执行顺序图,其中启动模块是对硬件的初始化,包含了CPU、内存、时钟、总线、中断等模块。但是这部分软件开发的流程不符合功能安全要求,所以运行完成之后无法确认初始化的状态是否正确。此时直接跳转到功能安全的微内核中运行,则微内核的运行环境是处于不可信任的非安全状态,极大的破坏了系统的安全性和稳定性。
上述软件架构及其启动验证过程至少存在下列问题:
1、QNX BSP STARTUP模块中安全相关组件启动的状态无法确认,存在初始化失败的情况。
2、在QNX BSP STARTUP模块启动后,整体软件运行环境处于非安全的状态,即刻跳转到ASIL D的QNX内核中运行,很有可能会破坏QNX内核的正常初始化,从而导致系统启动之后,整个软件运行环境仍然是非安全的,留下了较大的安全隐患。
发明内容
在发明内容部分中引入了一系列简化形式的概念,该简化形式的概念均为本领域现有技术简化,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
本发明要解决的技术问题是提供一种能基于QNX安全手册和芯片安全手册的功能安全分析,在跳转到ASIL D的QNX内核运行之前,对硬件安全机制和软件启动组件进行验证,根据验证结果执行不同的安全反应,能保证在进入QNX内核初始化之前,系统硬件和软件运行环境和状态为安全的QNX BSP启动验证方法。
本发明要解决的另一技术问题是提供一种能基于QNX安全手册和芯片安全手册的功能安全分析,在跳转到ASIL D的QNX内核运行之前,对硬件安全机制和软件启动组件进行验证,根据验证结果执行不同的安全反应,能保证在进入QNX内核初始化之前,系统硬件和软件运行环境和状态为安全的QNX BSP启动验证模块。
为解决上述技术问题,本发明提供符合功能安全ASIL B的QNX BSP启动验证方法,包括以下步骤:
S1,通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;
S2,通过对硬件安全机制和软件启动组件检测判断否异常;
S3,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNXBSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
可选择的,进一步改进所述的QNX BSP启动验证方法,实施步骤S1时,相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率(0-10),乘以该硬件安全机制和软件启动组件的安全提升率(0-10),获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值60,则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,不同安全等级指定不同的安全提升率。
可选择的,进一步改进所述的QNX BSP启动验证方法,硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
可选择的,进一步改进所述的QNX BSP启动验证方法,内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAM ECC使能寄存器、ECC生效地址范围寄存器和故障注入;
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。
可选择的,进一步改进所述的QNX BSP启动验证方法,硬件安全机制还包括验证网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
可选择的,进一步改进所述的QNX BSP启动验证方法,实施步骤S2时,软件启动组件包括:内存管理页表和系统页表。
可选择的,进一步改进所述的QNX BSP启动验证方法,内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。
可选择的,进一步改进所述的QNX BSP启动验证方法,实施步骤S2时,还包括对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
可选择的,进一步改进所述的QNX BSP启动验证方法,实施步骤S2时,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
可选择的,进一步改进上述任意一项的QNX BSP启动验证方法,实施步骤S3时,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNX BSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
可选择的,进一步改进上述任意一项的QNX BSP启动验证方法,若硬件安全机制和软件启动组件检测中出现任意一项检测用时超过其对应时间阈值,则判断该项检测异常。
本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,包括:
验证对象获取单元,其用于通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件
验证单元,其用于通过对硬件安全机制和软件启动组件检测判断否异常;
启动控制单元,其用于若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
可选择的,进一步改进所述的QNX BSP启动验证模块,验证对象获取单元,相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率(0-10),乘以该硬件安全机制和软件启动组件的安全提升率(0-10),获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值60,则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,不同安全等级指定不同的安全提升率。
可选择的,进一步改进所述的QNX BSP启动验证模块,硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
可选择的,进一步改进所述的QNX BSP启动验证模块,内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAM ECC使能寄存器、ECC生效地址范围寄存器和故障注入;
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。
可选择的,进一步改进所述的QNX BSP启动验证模块,硬件安全机制还包括网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
可选择的,进一步改进所述的QNX BSP启动验证模块,软件启动组件包括:内存管理页表和系统页表。
可选择的,进一步改进所述的QNX BSP启动验证模块,内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。
可选择的,进一步改进所述的QNX BSP启动验证模块,验证单元还对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
可选择的,进一步改进所述的QNX BSP启动验证模块,验证单元还执行以下验证,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
可选择的,进一步改进上述任意一项的QNX BSP启动验证模块,启动控制单元控制方式替换为:若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNX BSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
可选择的,进一步改进上述任意一项的QNX BSP启动验证模块,还包括时间管理单元,若验证单元对硬件安全机制和软件启动组件检测中出现任意一项检测用时超过其对应时间阈值,则时间管理单元判断该项检测异常。
对于时间阈值,可以选择共同时间阈值,即整体对检测过程设置一个共同的时间阈值;也可以选择,独立的时间阈值,比如内存管理页表检测和系统页表检测分别设置独立的时间阈值。
本发明的技术方案相对现有技术至少能实现以下技术效果;
1、开发符合功能安全ASIL B的QNX BSP启动验证模块,能及时的检测出启动过程中功能安全相关模块的状态是否存在异常,及时的避免了以非安全的软件状态进入ASIL D的操作系统中继续运行。
2、在QM的BSP Startup模块和ASIL D的QNX操作系统之间加入ASIL B的启动验证模块,从功能安全角度,将操作系统启动之前的整体软件运行环境的功能安全水平提升至ASIL B,为操作系统正常的初始化提供了保障。
3、该本发明为汽车智能驾驶域控制器中SOC芯片上运行软件的整体功能安全水平能达到ASIL B提供了基础,在提升产品功能安全的同时,为实现整车的Safety Goal(安全目标)提供了底层软件基础。
4、本发明的方案针对安全相关模块的验证范围,进行了采集和故障注入,根据与验证标准的对比结果能够分析出这些安全相关模块当前运行时的状态是否存在异常。因此,能够及时检测出安全相关模块是否异常,避免以非安全软件状态进入操作系统。
5、本发明所包含的作用于自身的功能安全设计,尤其是通过将检测结果存储到安全寄存器中的方案,防止了随机硬件失效,以及通过时间管理单元约束模块的运行时长,都极大地提升了该模块设计本身的兼容性、适用性以及安全性。
附图说明
本发明附图旨在示出根据本发明的特定示例性实施例中所使用的方法、结构和/或材料的一般特性,对说明书中的描述进行补充。然而,本发明附图是未按比例绘制的示意图,因而可能未能够准确反映任何所给出的实施例的精确结构或性能特点,本发明附图不应当被解释为限定或限制由根据本发明的示例性实施例所涵盖的数值或属性的范围。下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是传统的QNX平台软件启动执行顺序图。
图2是硬件安全机制和软件启动组件示意图。
图3是验证范围示意图。
图4是本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所公开的内容充分地了解本发明的其他优点与技术效果。本发明还可以通过不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点加以应用,在没有背离发明总的设计思路下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。本发明下述示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的具体实施例。应当理解的是,提供这些实施例是为了使得本发明的公开彻底且完整,并且将这些示例性具体实施例的技术方案充分传达给本领域技术人员。在全部附图中,相同的附图标记始终表示相同的元件。
第一实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证方法,包括以下步骤:
S1,通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;
S2,通过对硬件安全机制和软件启动组件检测判断否异常;
S3,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNXBSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
上述第一实施例,根据与验证标准的对比结果能够分析出这些安全相关模块当前运行时的状态是否存在异常。因此,能够及时检测出安全相关模块是否异常,避免以非安全软件状态进入操作系统。及时的避免了以非安全的软件状态进入ASIL D的操作系统中继续运行。
第二实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证方法,包括以下步骤:
S1,通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率(0-10),乘以该硬件安全机制和软件启动组件的安全提升率(0-10),获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值(该阈值可指定,例如60),则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,ASIL D对应10,ASIL C对应9,ASIL B对应8,ASIL A对应7,QM对应0-6,如果有多个模块同时使用,安全提升率取其中最大值,不同安全等级指定不同的安全提升率。参考图2所示,示例性的计算得出硬件安全机制和软件启动组件;
硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
可选择的,硬件安全机制还包括验证网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
软件启动组件包括:内存管理页表和系统页表。
其中,参考图3所示,内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAM ECC使能寄存器、ECC生效地址范围寄存器和故障注入;验证标准为,正确使能,ECC覆盖范围为全部RAM,故障检测成功。
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;验证标准为,正确使能,故障检测成功。
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;验证标准为,正确使能,故障检测成功。
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。验证标准为,正确使能,故障检测成功。
内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;验证标准为,起始地址和结束地址正确。
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。验证标准为,大小和偏移量正确,指针变量值正确。
S2,通过对硬件安全机制和软件启动组件检测判断否异常;
S3,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNXBSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
第三实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证方法,在上述第一或第二实施例上进一步改进,相同部分不再赘述;还包括对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
第四实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证方法,在上述第一或第二实施例上进一步改进,相同部分不再赘述;实施步骤S2时,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
第五实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证方法,在上述第一或第二实施例上进一步改进,相同部分不再赘述;实施步骤S3时,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNXBSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
第六实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,其用于QM的BSP Startup模块和ASIL D的QNX操作系统之间加入ASIL B的启动验证模块,从功能安全角度,将操作系统启动之前的整体软件运行环境的功能安全水平提升至ASIL B,为操作系统正常的初始化提供保障,包括:
验证对象获取单元,其用于通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件
验证单元,其用于通过对硬件安全机制和软件启动组件检测判断否异常;
启动控制单元,其用于若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
第七实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,其用于QM的BSP Startup模块和ASIL D的QNX操作系统之间加入ASIL B的启动验证模块,从功能安全角度,将操作系统启动之前的整体软件运行环境的功能安全水平提升至ASIL B,为操作系统正常的初始化提供保障,包括:
验证对象获取单元,其用于通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;验证对象获取单元,相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率,乘以该硬件安全机制和软件启动组件的安全提升率,获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值,则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,不同安全等级指定不同的安全提升率。
硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAM ECC使能寄存器、ECC生效地址范围寄存器和故障注入;
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。
可选择的,硬件安全机制还包括网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
软件启动组件包括:内存管理页表和系统页表。
内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。
验证单元,其用于通过对硬件安全机制和软件启动组件检测判断否异常;
启动控制单元,其用于若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
第八实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,在上述第六或第七实施例上进一步改进,相同部分不再赘述;
验证单元还对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
第九实施例,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,在上述第六或第七实施例上进一步改进,相同部分不再赘述;
验证单元还执行以下验证,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
第十实施例,参考图4所示,本发明提供一种符合功能安全ASIL B的QNX BSP启动验证模块,在上述第六或第七实施例上进一步改进,相同部分不再赘述;启动控制单元控制方式替换为:若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNX BSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
进一步的改进,第十实施例为了避免影响系统的正常启动,对该启动验证模块的运行时间可以选择性的进行约束,只有在规定的时间内完成检测才能判定检测结果为正常,否则为异常。
除非另有定义,否则这里所使用的全部术语(包括技术术语和科学术语)都具有与本发明所属领域的普通技术人员通常理解的意思相同的意思。还将理解的是,除非这里明确定义,否则诸如在通用字典中定义的术语这类术语应当被解释为具有与它们在相关领域语境中的意思相一致的意思,而不以理想的或过于正式的含义加以解释。
以上通过具体实施方式和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

Claims (22)

1.一种QNX BSP启动验证方法,其特征在于,包括以下步骤:
S1,通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件;
S2,通过对硬件安全机制和软件启动组件的检测判断否异常;
S3,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
2.如权利要求1所述的QNX BSP启动验证方法,其特征在于:实施步骤S1时,相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率,乘以该硬件安全机制和软件启动组件的安全提升率,获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值,则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,不同安全等级指定不同的安全提升率。
3.如权利要求1所述的QNX BSP启动验证方法,其特征在于,硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
4.如权利要求3所述的QNX BSP启动验证方法,其特征在于:
内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAMECC使能寄存器、ECC生效地址范围寄存器和故障注入;
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。
5.如权利要求3所述的QNX BSP启动验证方法,其特征在于:硬件安全机制还包括验证网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
6.如权利要求1所述的QNX BSP启动验证方法,其特征在于:实施步骤S2时,软件启动组件包括:内存管理页表和系统页表。
7.如权利要求6所述的QNX BSP启动验证方法,其特征在于:
内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。
8.如权利要求1所述的QNX BSP启动验证方法,其特征在于:实施步骤S2时,还包括对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
9.如权利要求1所述的QNX BSP启动验证方法,其特征在于:实施步骤S2时,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
10.如权利要求1-9任意一项所述的QNX BSP启动验证方法,其特征在于:实施步骤S3时,若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNX BSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
11.如权利要求1-9任意一项所述的QNX BSP启动验证方法,其特征在于:若硬件安全机制和软件启动组件检测中出现任意一项检测用时超过其对应时间阈值,则判断该项检测异常。
12.一种QNX BSP启动验证模块,其特征在于,包括:
验证对象获取单元,其用于通过对芯片安全规则的分析,识别出与当前硬件和/或软件应用场景相关的硬件安全机制和软件启动组件
验证单元,其用于通过对硬件安全机制和软件启动组件检测判断否异常;
启动控制单元,其用于若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则判断QNX BSP启动异常,直接触发安全反应,系统进入无法继续启动的软件死循环。
13.如权利要求12所述的QNX BSP启动验证模块,其特征在于:验证对象获取单元,相关的硬件安全机制和软件启动组件通过以下方式选取;
结合具体的硬件安全机制和软件启动组件的使用率,乘以该硬件安全机制和软件启动组件的安全提升率,获得硬件安全机制和软件启动组件的安全指标,当硬件安全机制和软件启动组件的安全指标大于安全指标阈值,则该硬件安全机制和软件启动组件被选中进行验证;
其中,使用率取决于该硬件安全机制和软件启动组件的生效时长和整体时长的百分比;安全提升率取决于使用该硬件安全机制和软件启动组件的模块在系统FMEA分析中的安全等级,不同安全等级指定不同的安全提升率。
14.如权利要求12所述的QNX BSP启动验证模块,其特征在于,硬件安全机制包括内存和CPU错误校验机制,CPU核奇偶校验机制,硬件冗余机制,总线的ID检测、非法相应检测和超时检测,以及时钟检测机制。
15.如权利要求14所述的QNX BSP启动验证模块,其特征在于:
内存和CPU错误校验机制验证范围包括,ARM ECC使能寄存器、CPU ECC使能寄存器、RAMECC使能寄存器、ECC生效地址范围寄存器和故障注入;
CPU核奇偶校验机制验证范围包括,ARM奇偶校验使能寄存器、CPU奇偶校验使能寄存器和故障注入;
硬件冗余机制验证范围包括,硬件冗余机使能寄存器和故障注入;
总线的ID检测、非法相应检测和超时检测验证范围包括,总线检测使能寄存器和故障注入。
16.如权利要求14所述的QNX BSP启动验证模块,其特征在于:硬件安全机制还包括网络通信平台是否正常和/或网络管理模块的安全状态是否正常。
17.如权利要求12所述的QNX BSP启动验证模块,其特征在于:软件启动组件包括:内存管理页表和系统页表。
18.如权利要求17所述的QNX BSP启动验证模块,其特征在于:
内存管理页表验证范围包括,内存管理页表中每个物理地址段对应的起始地址和结束地址;
系统页表证范围包括,页表中每节的大小、每节的偏移量和每节中固定的指针变量。
19.如权利要求12所述的QNX BSP启动验证模块,其特征在于:验证单元还对软件启动组件自身进行相关性失效分析,包含对外部接口和数据结构的分析,以及对内部使用的硬件资源分析;
若是由非功能安全模块传入的外部接口和数据结构,则判断使用了非安全的外部接口和数据结构,禁止使用该外部接口和数据结构;
对内部使用的硬件资源,若是该硬件资源在系统FMEA分析中是非功能安全的,则禁止使用该硬件资源。
20.如权利要求12所述的QNX BSP启动验证模块,其特征在于:验证单元还执行以下验证,若发生随机硬件失效导致启动验证未被运行或未正常运行,功能层面系统仍然能启动成功,则将硬件安全机制激活状态的检测结果保存在初始化的安全寄存器中,系统启动后对安全寄存器的值进行判断,如果安全寄存器的值为初始值,则判断系统为非安全启动,如果安全寄存器的值为预期的安全值,则判断系统安全启动。
21.如权利要求12-20任意一项所述的QNX BSP启动验证模块,其特征在于:启动控制单元控制方式替换为:若硬件安全机制和软件启动组件检测中出现任意一项启动异常,则重新执行步骤S2,直至N次都发生启QNX BSP启动异常,触发安全反应,系统进入无法继续启动的软件死循环,N≥3。
22.如权利要求12-20任意一项所述的QNX BSP启动验证模块,其特征在于,还包括时间管理单元,若验证单元对硬件安全机制和软件启动组件检测中出现任意一项检测用时超过其对应时间阈值,则时间管理单元判断该项检测异常。
CN202011109210.6A 2020-10-16 2020-10-16 Qnx bsp启动验证方法及启动验证模块 Active CN112231710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011109210.6A CN112231710B (zh) 2020-10-16 2020-10-16 Qnx bsp启动验证方法及启动验证模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011109210.6A CN112231710B (zh) 2020-10-16 2020-10-16 Qnx bsp启动验证方法及启动验证模块

Publications (2)

Publication Number Publication Date
CN112231710A true CN112231710A (zh) 2021-01-15
CN112231710B CN112231710B (zh) 2022-11-01

Family

ID=74117697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011109210.6A Active CN112231710B (zh) 2020-10-16 2020-10-16 Qnx bsp启动验证方法及启动验证模块

Country Status (1)

Country Link
CN (1) CN112231710B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051093B1 (en) * 2001-01-24 2006-05-23 Lockheed Martin Corporation QNX operation system network auto configuration
CN103559105A (zh) * 2013-11-11 2014-02-05 上海航天测控通信研究所 一种基于erc32处理器的星载软件系统及其重入方法
CN103729597A (zh) * 2014-01-16 2014-04-16 宇龙计算机通信科技(深圳)有限公司 系统启动校验方法、系统启动校验装置和终端
CN105389224A (zh) * 2014-09-04 2016-03-09 国家电网公司 一种安全类芯片的测试防护方法和装置
CN106529303A (zh) * 2016-10-25 2017-03-22 北京广利核系统工程有限公司 一种核电厂仪控系统启动装置和方法
CN106897623A (zh) * 2015-12-21 2017-06-27 深圳市中兴微电子技术有限公司 一种支持多安全引导的芯片及其启动方法
CN107291501A (zh) * 2017-06-23 2017-10-24 联想(北京)有限公司 一种系统快速启动方法及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051093B1 (en) * 2001-01-24 2006-05-23 Lockheed Martin Corporation QNX operation system network auto configuration
CN103559105A (zh) * 2013-11-11 2014-02-05 上海航天测控通信研究所 一种基于erc32处理器的星载软件系统及其重入方法
CN103729597A (zh) * 2014-01-16 2014-04-16 宇龙计算机通信科技(深圳)有限公司 系统启动校验方法、系统启动校验装置和终端
CN105389224A (zh) * 2014-09-04 2016-03-09 国家电网公司 一种安全类芯片的测试防护方法和装置
CN106897623A (zh) * 2015-12-21 2017-06-27 深圳市中兴微电子技术有限公司 一种支持多安全引导的芯片及其启动方法
CN106529303A (zh) * 2016-10-25 2017-03-22 北京广利核系统工程有限公司 一种核电厂仪控系统启动装置和方法
CN107291501A (zh) * 2017-06-23 2017-10-24 联想(北京)有限公司 一种系统快速启动方法及电子设备

Also Published As

Publication number Publication date
CN112231710B (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN108399339B (zh) 一种基于安全芯片的可信启动方法
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
CN1993679B (zh) 执行计算机程序的方法、操作系统和计算设备
CN108038021B (zh) 一种计算机程序运行阶段代码内存校验方法
US9262631B2 (en) Embedded device and control method thereof
CN104217139A (zh) 处理系统
US20120011353A1 (en) Information processing apparatus having verification capability of configuration change
CN112651030A (zh) 一种面向bmc固件系统安全的可信启动方法
Teige Universal pattern: Formalization, testing, coverage, verification, and test case generation for safety-critical requirements
CN106951785B (zh) 一种java虚拟机及其中的信任链延伸方法
US20150019852A1 (en) Verification method for system execution environment
US20140143601A1 (en) Debug device and debug method
EP3329377A1 (en) Zero overhead code coverage analysis
CN112231710B (zh) Qnx bsp启动验证方法及启动验证模块
CN116611075A (zh) XIP启动时预防攻击芯片的检测方法、os检测固件及系统
US10846421B2 (en) Method for protecting unauthorized data access from a memory
KR101375656B1 (ko) 프로그램 보호 장치 및 프로그램 보호 방법
CN110781517B (zh) 一种bios与bmc沟通实现数据交互的方法
CN113051581A (zh) 一种高度综合化复杂软件安全性分析方法
Beckschulze et al. Fault handling approaches on dual-core microcontrollers in safety-critical automotive applications
CN112395587A (zh) 计算机系统及强制自行认证方法
CN113127273A (zh) 单片机检测电路及相应的检测的方法
EP3923168B1 (en) Secure boot at shutdown
CN112149801B (zh) 一种gan神经网络可信执行方法及装置
CN105335177A (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