CN112555029A - 用于安全地初始化嵌入式系统的设备,系统和方法 - Google Patents

用于安全地初始化嵌入式系统的设备,系统和方法 Download PDF

Info

Publication number
CN112555029A
CN112555029A CN202011026402.0A CN202011026402A CN112555029A CN 112555029 A CN112555029 A CN 112555029A CN 202011026402 A CN202011026402 A CN 202011026402A CN 112555029 A CN112555029 A CN 112555029A
Authority
CN
China
Prior art keywords
boot loader
processors
stage boot
readable instructions
machine
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.)
Pending
Application number
CN202011026402.0A
Other languages
English (en)
Inventor
杰弗里·S·吉尔东
马修·B·彭宁格
道格拉斯·R·尼科尔斯
马克·E·亨斯伯根
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.)
General Electric Co
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of CN112555029A publication Critical patent/CN112555029A/zh
Pending legal-status Critical Current

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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02CGAS-TURBINE PLANTS; AIR INTAKES FOR JET-PROPULSION PLANTS; CONTROLLING FUEL SUPPLY IN AIR-BREATHING JET-PROPULSION PLANTS
    • F02C9/00Controlling gas-turbine plants; Controlling fuel supply in air- breathing jet-propulsion plants
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F01MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
    • F01DNON-POSITIVE DISPLACEMENT MACHINES OR ENGINES, e.g. STEAM TURBINES
    • F01D21/00Shutting-down of machines or engines, e.g. in emergency; Regulating, controlling, or safety means not otherwise provided for
    • F01D21/003Arrangements for testing or measuring
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02CGAS-TURBINE PLANTS; AIR INTAKES FOR JET-PROPULSION PLANTS; CONTROLLING FUEL SUPPLY IN AIR-BREATHING JET-PROPULSION PLANTS
    • F02C7/00Features, components parts, details or accessories, not provided for in, or of interest apart form groups F02C1/00 - F02C6/00; Air intakes for jet-propulsion plants
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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
    • 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
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Abstract

用于安全地初始化嵌入式系统的设备,系统和方法。公开了一种方法,该方法包括认证第一阶段引导加载程序,并响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序。该方法还包括响应于第二阶段引导加载程序的认证,执行第二阶段引导加载程序。执行第二阶段引导加载程序包括将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联。执行第二阶段引导加载程序包括认证操作系统和第一组机器可读指令。执行第二阶段引导加载程序包括响应于操作系统和第一组机器可读指令的认证,执行第一组机器可读指令。

Description

用于安全地初始化嵌入式系统的设备,系统和方法
技术领域
本说明书大体涉及用于安全地初始化发动机控制系统的设备,系统和方法,并且更具体地涉及,用于分阶段安全地初始化飞行器系统的发动机控制系统,以防止篡改并最小化对发动机操作的影响的设备,系统和方法。
背景技术
飞行器系统可以包括感测与飞行器部件有关的各种状况的多个传感器,即使飞行器正在操作(例如,飞行),软件程序也可以使用这些传感器实时检测,诊断或预测问题和/或故障。当飞行器系统的部件被重置或加电时,软件程序可以被加载到存储器设备上,并且一旦软件程序被加载到存储器设备上,飞行器系统的处理设备就可以随后执行软件程序。
在将软件程序加载到存储器设备上之前,以及在执行软件程序之前,可以执行初始化协议。在初始化协议期间,可以使用各种密码认证方法对软件程序进行认证,以便例如确认该软件未受到篡改。一旦软件程序被认证,就可以将软件程序加载到存储器设备上以随后由处理设备执行。
然而,当飞行器系统重置时,飞行器的发动机可能仍在操作。由于直到完成初始化协议之后才执行用于控制和监视发动机的软件程序,因此如果初始化协议在一定时间内未完成,则可能会对发动机的操作产生负面影响。因此,需要防止飞行器系统被篡改并且最小化对发动机操作的负面影响的初始化协议。
发明内容
在一个实施例中,一种用于启动飞行器的发动机控制系统的方法,该方法包括由一个或多个处理器认证第一阶段引导加载程序。该方法包括响应于第一阶段引导加载程序的认证,由一个或多个处理器认证第二阶段引导加载程序。该方法包括响应于第二阶段引导加载程序的认证,由一个或多个处理器执行第二阶段引导加载程序。执行第二阶段引导加载程序包括由一个或多个处理器将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联。执行第二阶段引导加载程序包括由一个或多个处理器认证操作系统和第一组机器可读指令。执行第二阶段引导加载程序包括响应于操作系统和第一组机器可读指令的认证,由一个或多个处理器执行第一组机器可读指令。
在一个实施例中,一种用于启动飞行器的发动机控制系统的设备,该设备包括一个或多个处理器和一个或多个非暂时性存储器模块,该一个或多个非暂时性存储器模块通信地联接到一个或多个处理器并存储机器可读指令,当该机器可读指令被执行时,使一个或多个处理器认证第一阶段引导加载程序。当被执行时,机器可读指令使一个或多个处理器响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序。当被执行时,机器可读指令使一个或多个处理器响应于第二阶段引导加载程序的认证来执行第二阶段引导加载程序。执行第二阶段引导加载程序使一个或多个处理器将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联。执行第二阶段引导加载程序使一个或多个处理器认证操作系统和第一组机器可读指令。执行第二阶段引导加载程序使一个或多个处理器响应于操作系统和第一组机器可读指令的认证来执行第一组机器可读指令。
在一个实施例中,一种包括飞行器系统的系统。该系统还包括一个或多个处理器和一个或多个非暂时性存储器模块,该一个或多个非暂时性存储器模块通信地联接到一个或多个处理器并存储机器可读指令,当该机器可读指令被执行时,使一个或多个处理器认证第一阶段引导加载程序。当被执行时,机器可读指令使一个或多个处理器响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序。当被执行时,机器可读指令使一个或多个处理器响应于第二阶段引导加载程序的认证来执行第二阶段引导加载程序。执行第二阶段引导加载程序使一个或多个处理器将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联。执行第二阶段引导加载程序使一个或多个处理器认证操作系统和第一组机器可读指令。执行第二阶段引导加载程序使一个或多个处理器响应于操作系统和第一组机器可读指令的认证来执行第一组机器可读指令。
在参考附图考虑以下描述和所附权利要求时,本技术的这些和其他特征、特性,以及操作方法、结构的相关元件的功能、部件的组合、制造的经济性,将变得更加显而易见,所有这些形成本说明书的一部分,其中,在各个附图中,相同的附图标记表示相应的部件。然而,应当明确地理解,附图仅出于说明和描述的目的,并且不旨在作为对本公开的界限的限定。如说明书和权利要求书中所使用的,除非上下文另外明确指出,否则单数形式的“一”,“一种”和“该”包括复数指代。
附图说明
在附图中阐述的实施例本质上是说明性和示例性的,并且不旨在限制由权利要求书限定的主题。当结合以下附图阅读时,可以理解说明性实施例的以下详细描述,在以下附图中相同的结构用相同的附图标记表示,并且其中:
图1示意性地描绘了根据本文示出和描述的一个或多个实施例的示例飞行器系统;
图2示意性地描绘了根据本文示出和描述的一个或多个实施例的飞行器系统的说明性内部部件的功能框图;
图3示意性地示出了根据本文示出和描述的一个或多个实施例的发动机控制系统内包含的说明性模块的功能框图;
图4描绘了根据本文示出和描述的一个或多个实施例的认证发动机控制系统的第一阶段引导加载程序模块的说明性方法的流程图;
图5描绘了根据本文示出和描述的一个或多个实施例的认证与发动机控制系统通信的存储器加载器模块的说明性方法的流程图;
图6描绘了根据本文示出和描述的一个或多个实施例的认证发动机控制系统的第二阶段引导加载程序模块的说明性方法的流程图;和
图7描绘了根据本文示出和描述的一个或多个实施例的执行发动机控制系统的第二阶段引导加载程序模块的说明性方法的流程图。
具体实施方式
参考附图,本公开的实施例大体涉及用于分阶段安全地初始化(例如,引导)飞行器系统(和/或一个或多个其他嵌入式系统)的发动机控制系统,以防止篡改和/或最小化对发动机操作的影响的设备,系统和方法。如以下进一步详细描述的,为了安全地初始化飞行器系统的发动机控制系统,初始化协议可以使用各种密码认证技术来认证软件程序,从而防止软件程序受到例如恶意篡改。
尽管本公开主要涉及发动机控制系统,但是应当理解,本文描述的设备,系统和方法可以用于飞行器中的其他嵌入式系统。此外,在一些实施例中,本文所述的发动机控制系统可包括嵌入式系统或作为嵌入式系统的一部分。其他说明性嵌入式系统包括但不限于包括一个或多个中央处理单元(CPU)的微控制器。
此外,通过分阶段初始化飞行器系统的发动机控制系统,发动机控制系统可以在预定时间段内执行与飞行器的发动机的操作和控制有关的优先软件程序。作为非限制性示例并且如以下进一步详细描述的,优先软件程序可以包括用于控制发动机的操作(例如,使发动机返回正常操作)的机器可读指令。此外,当处理设备从重置状态释放时,可能需要在预定时间段内执行用于控制发动机的操作的某些软件程序,以防止损坏飞行器的发动机。因此,一旦处理设备从重置状态释放,就可以在预定时间段内对优先软件程序进行认证,将其加载到指定的存储器上并进行初始化。
一旦优先软件程序被初始化,与发动机的操作和控制无关的非优先软件程序可以被认证,被加载到指定的存储器上,然后被初始化。本文将描述关于非优先软件程序的附加细节。通过执行分阶段初始化协议,软件程序可以识别可疑活动和/或篡改的证据,同时最小化初始化协议期间对发动机操作的负面影响。
执行本文所述的分阶段初始化协议提高了用于控制发动机的操作的优先软件程序被加载到指定的存储器上并随后被执行的速度,从而改善了飞行器的发动机控制系统的操作。此外,执行本文所述的分阶段初始化协议防止在未对优先软件程序进行密码认证时执行优先软件程序,从而提高了飞行器的发动机控制系统的安全性。
现在参考图1,示意性地示出了说明性飞行器系统100。在图1所示的实施例中,飞行器系统100通常包括飞行器102,该飞行器102可以包括机身104,机翼组件106和一个或多个发动机108。尽管图1将飞行器102描绘为具有两个机翼组件106的固定翼飞行器,每个机翼组件106上安装有一个发动机108(总共两个发动机108),但是可以设想其他构造。例如,其他构造可以包括多于两个机翼组件106,多于两个发动机108(例如,三喷气发动机,四喷气发动机等),不是安装至机翼组件106(例如,安装至机身104,安装至机尾,安装至机头等)的发动机108,非固定翼飞行器(例如,旋翼飞行器)等。
如图1所示,飞行器102可以包括联接至机翼组件106和/或机身104的发动机108,定位在机身104中的驾驶舱110,以及从机身104向外延伸的机翼组件106。用于控制飞行器102的控制机构112包括在驾驶舱110中,并且可以由位于其中的飞行员操作。应当理解,本文所使用的术语“控制机构”是用于包含所有飞行器控制部件,特别是通常在驾驶舱110中发现的那些控制部件的通用术语。
在一些实施例中,使飞行器102能够正确操作的多个飞行器控制系统114,以及发动机控制系统116也可以包括在飞行器102中。飞行器控制系统114通常可以是实现对飞行器102的一个或多个部件的控制(例如,机舱压力控制,升降机控制,方向舵控制,襟翼控制,扰流板控制,起落架控制,热交换器控制等)的任何系统。在一些实施例中,飞行器102的航空电子设备可以被飞行器控制系统114中的一个或多个包围。在各种实施例中,发动机控制系统116可以可操作地联接到飞行器102的其他控制器,多个飞行器控制系统114,以及发动机108。尽管图1中描绘的实施例具体地涉及控制发动机108的发动机控制系统116,但是应该理解,其他控制器也可以包括在飞行器102内,以控制与发动机108不特别相关的各种其他系统。
如图1示出的实施例所示,发动机控制系统116可以包括一个或多个处理设备118和/或一个或多个存储器120。在一些实施例中,一个或多个存储器120可以包括非暂时性计算机可读介质,例如随机存取存储器(RAM),只读存储器(ROM),闪存或一种或多种不同类型的便携式电子存储器,例如光盘,DVD,CD-ROM等,或这些类型的存储器的任何适当组合。一个或多个处理设备118可以执行存储在一个或多个存储器120上的编程指令,从而引起发动机控制系统116的操作。也就是说,发动机控制系统116内的一个或多个处理设备118和一个或多个存储器120可以可操作,以执行本文关于发动机控制系统116描述的各种处理。
非限制性示例处理包括但不限于操作飞行器102的各种部件(例如,发动机108和/或其部件),监视飞行器102的各种部件(例如,发动机108和/或其部件)的健康状况,监视飞行器102和/或其部件的操作,安装软件程序,安装软件更新等。作为另一非限制性示例,处理可以包括诊断和/或预测飞行器102中的一个或多个发动机系统故障。诊断和/或预测的故障可以包括但不限于部件的不正确操作,部件的故障,部件的未来故障的标志等。
由发动机控制系统116运行(例如,由一个或多个处理设备118执行并存储在一个或多个存储器120中)的编程指令可以包括计算机程序产品,该计算机程序产品包括用于承载或具有机器可执行指令或数据结构的机器可读介质。这种机器可读介质可以是任何可用的介质,其可以由通用或专用计算机或具有处理器的其他机器访问。通常,这种计算机程序可以包括具有进行特定任务或实施特定抽象数据类型的技术效果的例程,程序,对象,部件,数据结构,算法等。机器可执行指令,相关联的数据结构和程序表示用于执行如本文所公开的信息交换的程序代码的示例。机器可执行指令可以包括例如指令和数据,其使通用计算机,专用计算机或专用处理机器进行某些功能或一组功能。在一些实施例中,计算机程序产品可以由发动机控制系统116外部的部件提供并且被安装,以供发动机控制系统116使用。计算机程序产品通常可以经由从飞行器系统100的一个或多个部件(例如,远程计算设备122)接收的软件更新来更新。发动机控制系统116通常通过安装更新来更新软件,使得该更新补充和/或覆盖用于计算机程序产品的现有程序代码的一个或多个部分。该软件更新可以允许计算机程序产品更准确地诊断和/或预测故障,提供最初未提供的附加功能等。
在一些实施例中,每个发动机108可包括风扇144和用于在发动机108的操作期间感测风扇144和发动机108的各种特性的一个或多个发动机传感器130。一个或多个发动机传感器130的说明性示例包括但不限于风扇速度传感器132,温度传感器134和压力传感器136。风扇速度传感器132通常是测量发动机108内的风扇144的转速的传感器。温度传感器134可以是测量发动机108内的流体温度(例如,发动机空气温度)、发动机进气口位置处的流体(例如空气)的温度、压缩机内的流体(例如空气)的温度、涡轮内的流体(例如空气)的温度、燃烧室内的流体(例如空气)的温度、发动机排气口位置处的流体(例如空气)的温度、发动机108内或周围的热交换器中使用的冷却流体和/或加热流体的温度等的传感器。压力传感器136可以是测量发动机108内和/或周围的各个位置中的流体压力(例如,空气压力)(例如发动机进气口处的流体压力(例如,空气压力),压缩机内的流体压力(例如,空气压力),涡轮内的流体压力(例如,空气压力),燃烧室内的流体压力(例如,空气压力),发动机排气口位置处的流体压力(例如,空气压力)等)的传感器。
在一些实施例中,每个发动机108可具有与其相关联的多个发动机传感器130(包括一个或多个风扇速度传感器132,一个或多个温度传感器134,和/或一个或多个压力传感器136)。即,可以使用多于一种的相同类型的发动机传感器130来感测发动机108的特性(例如,用于同一发动机108的每个不同区域的发动机传感器130)。在一些实施例中,一个或多个发动机传感器130可用于感测多于一个的发动机108的特性(例如,单个发动机传感器130可用于感测两个发动机108的特性)。在一些实施例中,发动机108可进一步包括本文未具体描述的附加部件,并且可包括与这种附加部件结合或构造成感测这种附加部件的一个或多个附加发动机传感器130。
在实施例中,每个发动机传感器130(包括但不限于风扇速度传感器132,温度传感器134和压力传感器136)可以通信地联接至飞行器102的一个或多个部件,使得为了确定,检测和/或预测故障,以及根据需要传感器信息的软件编程而完成一个或多个其他动作的目的,从发动机传感器130传输与一个或多个感测到的特性有关的信号和/或数据。在图1所示的实施例中,如在各种发动机传感器130(例如,风扇速度传感器132,温度传感器134和压力传感器136)与飞行器控制系统114以及发动机控制系统116之间延伸的虚线所示,在一些实施例中,各种发动机传感器130可以通信地联接到飞行器控制系统114和/或发动机控制系统116。这样,各种发动机传感器130可以经由有线或无线通信地联接到飞行器控制系统114和/或发动机控制系统116,以将信号和/或数据传输到飞行器控制系统114和/或发动机控制系统116。
作为非限制性示例,在飞行器102正在操作时,控制机构112可用于操作飞行器控制系统114中的一个或多个。各种发动机传感器130,包括但不限于风扇速度传感器132,温度传感器134和/或压力传感器136,可以输出与发动机108和/或其他飞行器控制系统114的各种特性有关的数据。发动机控制系统116可以利用来自控制机构112,风扇速度传感器132,温度传感器134,压力传感器136,各种飞行器控制系统114,一个或多个数据库的输入,和/或来自航空公司控制的信息、飞行操作等,来诊断,检测和/或预测故障。一旦已经诊断,检测和/或预测了故障,就可以在飞行器102上提供指示和/或向地面系统160提供指示。
在所示的实施例中,飞行器系统100可以包括经由网络170联接的部件的互连性,网络170可以包括广域网(诸如因特网),局域网,移动通信网络,公共服务电话网络(PSTN)和/或其他网络,并且可以被构造为以电子方式连接部件。可以经由网络170连接的说明性部件包括但不限于(例如,经由地面无线通信链路142和飞行器无线通信链路140)与飞行器102通信的地面系统160,并且被构造为例如向飞行器系统100的各个部件提供软件更新的远程计算设备122可以传输数据,使得与故障有关的数据和/或信息可以从飞行器102传输出去。飞行器无线通信链路140通常可以是现在已知或以后开发的任何空对地通信系统。飞行器无线通信链路140的说明性示例包括但不限于应答器,超高频(VHF)通信系统,飞行器通信寻址和报告系统(ACARS),控制器-飞行员数据链路通信(CPDLC)系统,未来空中导航系统(FANS)等。
在一些实施例中,地面系统160可以是位于地面上的传输系统,其能够向飞行器102传输信号和/或从飞行器102接收信号。也就是说,地面系统160可以包括无线地通信联接至飞行器无线通信链路140的地面无线通信链路142,以传输和/或接收信号和/或数据。作为非限制性示例,地面系统160可以是空中交通管制(ATC)塔和/或其一个或多个部件或系统。因此,地面无线通信链路142可以是VHF通信系统,ACARS单元,CPDLC系统,FANS等。使用地面系统160和飞行器无线通信链路140,即使在飞行器102是空中飞行的情况下,图1的实施例中所描绘的各种非飞行器部件也可以通信地联接到飞行器102,从而当可能需要这种软件和/或软件更新时,允许传送由发动机控制系统116检测到的故障并按需传输软件和/或软件更新。然而,应理解,图1中描绘的实施例仅是说明性的。在其他实施例中,当在地面上时飞行器102可以通信地联接到飞行器系统100的各种其他部件,并且物理地联接到飞行器系统100的部件中的一个。
虽然已经在图1中描述和示出了示例飞行器102,但是在其他实施例中,飞行器102可以具有其他构造和/或可以是其他飞行器。作为非限制性示例,飞行器102可以是具有补充平移推力系统的高速复合旋翼飞行器,具有双反向旋转螺旋桨的飞行器,具有同轴转子系统的飞行器,具有涡轮螺旋桨发动机的飞行器,倾斜转子飞行器,倾斜翼飞行器,常规起降飞行器,以及其他实施例中的涡轮驱动的机器。
尽管图1的实施例具体地涉及飞行器102内的部件,但是本公开不限于此。即,关于飞行器102描绘的各种部件可以被结合在各种其他类型的飞行器内。例如,在不脱离本公开的范围的情况下,本文关于飞行器102所描述的各种部件可以存在于水运工具,航天器等中。
参考图2,示意性地示出了包括发动机控制系统116的功能框图。如图2所示,发动机控制系统116可以是但不限于全权限数字发动机控制(FADEC)系统。FADEC系统通常具有对发动机108的操作参数的完全权限,并且不能被手动覆盖。可以通过安装和/或更新软件来修改FADEC系统的操作参数。这样,可以以编程方式控制FADEC系统以确定发动机限制,接收发动机健康状况报告,以及接收发动机维护报告等,以在某些状况下采取某些措施和/或动作。
在一些实施例中,发动机控制系统116包括电子发动机控制器模块(EECM)200,以及被构造为控制发动机108的性能的各个方面的一个或多个分布式控制模块(DCM)210。尽管所示实施例描绘了两个DCM 210,但是应当理解,在其他实施例中,发动机控制系统116内可以包括任何数量的DCM 210。
如上所述,发动机传感器130可以输出与发动机108的各种特性有关的数据。发动机控制系统116可以利用来自风扇速度传感器132,温度传感器134,压力传感器136等的输入来诊断,检测和/或预测故障。作为非限制性示例,发动机控制系统116可以在一段时间内分析由发动机传感器130(例如,风扇速度传感器132,温度传感器134,压力传感器136等)输出的数据,以确定发动机108的操作中的漂移,趋势,步骤或峰值。
在一些实施例中,发动机控制系统116可以从飞行器控制系统114接收当前飞行状况的多个输入变量,包括但不限于空气密度,油门杆位置等。输入被接收,分析并用于确定操作参数,例如但不限于燃料流量,定子轮叶位置,引气阀位置等。作为非限制性示例,响应于接收到指示油门杆位置变化的信号,发动机控制系统116可以输出使一个或多个致动器220相应地调节发动机108的参数的信号。作为另一个非限制性示例,响应于接收到与打开或关闭发动机108相对应的输入变量,发动机控制系统116可以通过控制点火装置230来激活或停用发动机108。作为又一个非限制性示例,发动机控制系统116可以响应于接收到与调节提供给发动机108的燃料量相对应的输入变量而输出信号,以控制液压机械燃料单元240。
尽管未在图2中示出,但是应该理解,发动机控制系统116可以与飞行器102的其他部件通信。作为非限制性示例,在一些实施例中,发动机控制系统116可以通信地联接至交流发电机,换向器螺线管和开关,发动机状况监视信号等。
现在参考图3,示意性地示出了发动机控制系统116的示例实施例,示出了包含在其中的附加硬件部件。发动机控制系统116通常包括一个或多个处理设备118,一个或多个存储器120中的第一存储器120-1、第二存储器120-2,通信接口310,网络接口硬件320和数据存储设备330。发动机控制系统116的部件可以通过通信接口310物理地和/或通信地联接。尽管图3所示的实施例示出了第一存储器120-1和第二存储器120-2,但是应当理解,发动机控制系统116可以具有任何数量的存储器部件。作为非限制性示例,在一些实施例中,第一存储器120-1和第二存储器120-2可以由单个存储器部件代替。
通信接口310由被构造为传输信号的任何介质形成。作为非限制性示例,通信接口310由导线,导电迹线,光波导等形成。通信接口310还可以指电磁辐射及其对应的电磁波在其中传播的空间。此外,通信接口310可以由被构造为传输信号的介质的组合形成。在一个实施例中,通信接口310包括导电迹线,导线,连接器和总线的组合,这些导电迹线,导线,连接器和总线协作以允许向发动机控制系统116的各个部件传输电数据信号,并传输来自发动机控制系统116的各个部件的电数据信号。另外,应注意,术语“信号”是指被构造为通过介质(诸如DC,AC,正弦波,三角波,方波,振动等)传播的波形(例如,电,光,磁,机械或电磁)。
网络接口硬件320可以包括和/或被构造为与任何有线或无线网络硬件(包括天线,调制解调器,LAN端口,无线保真(Wi-Fi)卡,WiMax卡,长期演进(LTE)卡,ZigBee卡,蓝牙芯片,USB卡,移动通信硬件,和/或用于与其他网络和/或设备进行通信的其他硬件)通信。作为非限制性示例,网络接口硬件320可以包括使发动机控制系统116能够与地面支持装置(GSE)340和/或GSE 340的存储器加载器350通信的硬件。如本文所使用的,GSE 340是指用于支持和测试发动机控制系统116和/或飞行器102的其他部件的外部装置。作为非限制性示例,GSE 340的存储器加载器350可以被构造为在飞行期间向发动机控制系统116提供软件更新,并下载由发动机控制系统116获得的数据。作为另一个非限制性示例,GSE 340可以包括用于受限数据监视的生产支持装置,用于全面数据监视和更改可调参数的测试支持装置,以及用于系统和软件测试的集成测试平台。在一些实施例中,GSE 340可以经由地面系统160和飞行器无线通信链路140连接到发动机控制系统116。
包括密钥数据库355的数据存储设备330通信地联接到一个或多个处理设备118。作为非限制性示例,数据存储设备330可以包括支持NoSQL,MySQL,Oracle,SQL Server,NewSQL等的一个或多个数据库服务器。如下面参考图4-7进一步详细描述的,密钥数据库355可以包括用于在初始化协议期间对发动机控制系统116进行密码认证的多个私有密钥和/或公共密钥。
如上所述,一个或多个处理设备118中的每一个可以是计算机处理单元(CPU),可以接收并执行存储在第一存储器120-1和第二存储器120-2中的机器可读指令。作为非限制性示例,一个或多个处理设备118可以是共享处理器电路,专用处理器电路或组处理器电路中的一个。如本文所述,术语“共享处理器电路”是指执行来自多个模块的一些或全部机器可读指令的单个处理器电路。如本文所述,术语“组处理器电路”是指与附加处理器电路结合执行来自存储器120的多个模块的一些或全部机器可执行指令的处理器电路。参考多个处理器电路包括离散模具上的多个处理器电路,单模具上的多个处理器电路,单个处理器电路的多个核,单个处理器电路的多个线程或上述的组合。
第一存储器120-1和第二存储器120-2通信地联接到一个或多个处理设备118。作为非限制性示例,第一存储器120-1和第二存储器120-2中的每一个可以是共享存储器电路,专用存储器电路或组存储器电路中的一个。如本文所述,术语“共享存储器电路”是指存储来自多个模块的一些或全部机器可读指令的单个存储器电路,这将在下面进一步详细描述。如本文所述,术语“组存储器电路”是指与附加存储器组合地存储来自多个模块的一些或全部机器可读指令的存储器电路。第一存储器120-1和第二存储器120-2的非限制性示例包括随机存取存储器(包括SRAM,DRAM和/或其他类型的随机存取存储器),只读存储器(ROM),闪存,寄存器,光盘(CD),数字多功能盘(DVD)和/或其他类型的存储部件。
如图3所示,第一存储器120-1包括多个逻辑模块。作为示例,每个逻辑模块可以体现为计算机程序,固件或硬件。逻辑模块的说明性示例包括但不限于初始化模块360。在一些实施例中,初始化模块360包括多个引导阶段加载程序361,第一阶段引导加载程序备份映像362,操作系统(OS)内核364,配置模块366,认证模块368和验证模块370。逻辑模块的附加说明性示例包括一个或多个DCM 210和EECM 200。每个逻辑模块可以包括可由一个或多个处理设备118执行的一个或多个编程指令,例如图4-7中描述的处理。
继续参考图3,发动机控制系统116示出为被关闭或紧接在经由硬件或软件命令来重置发动机控制系统116之后。最初,第一存储器120-1存储初始化模块360,一个或多个DCM210和EECM 200。一旦发动机控制系统116被打开和/或从重置被释放,则发动机控制系统116可以初始化分阶段初始化协议,以便将一个或多个DCM 210和EECM 200加载到第二存储器120-2上,用于由一个或多个处理设备118随后执行。如下面参考图4至图7更详细描述的,当执行初始化模块360时,一个或多个处理设备118可以在将第一组机器可读指令加载到第二存储器120-2上之前,分别密码认证和/或验证与DCM 210和EECM 200的优先分区380-1、380-2(统称为优先分区380)相关联的第一组机器可读指令。另外并且如下面进一步详细描述的,当执行初始化模块360时,一个或多个处理设备118可以密码认证和/或验证与第一组机器可读指令相关联的配置信息。
一旦第一组机器可读指令被初始化,一个或多个处理设备118就可以在将第二组机器可读指令加载到第二存储器120-2上之前,分别密码认证和/或验证与DCM 210和EECM200的非优先分区390-1、390-2(统称为非优先分区390)相关联的第二组机器可读指令。同样,当执行初始化模块360时,一个或多个处理设备118可以密码认证和/或验证与第二组机器可读指令相关联的配置信息。通过执行分阶段初始化协议,初始化模块360可以识别可疑活动和/或篡改的证据,同时最小化在初始化协议期间对发动机108的操作的负面影响。
尽管以上实施例描述了将机器可读指令从第一存储器120-1加载到第二存储器120-2,但是应当理解,在其他实施例中,可以将机器可读指令从第一存储器120-1的第一部分加载到第一存储器120-1的第二部分(即,第一存储器120-1是组存储器电路)。
参考图4-7,示出了执行分阶段初始化协议的说明性方法400的流程图。参考图3至图4,在框405处,发动机控制系统116经由硬件或软件命令使一个或多个处理设备118从重置释放(例如,一旦发动机控制系统116的电源和时钟源(未示出)在硬件或软件重置命令之后稳定,就使发动机控制系统116从重置释放)。在框410处,一个或多个处理设备118通过执行认证模块368的编程指令来开始认证第一阶段引导加载程序361-1。此外,在框415处,一个或多个处理设备118通过执行认证模块368的编程指令来确定第一阶段引导加载程序361-1是否被认证。
通过在框410和框415处执行认证模块368的编程指令,一个或多个处理设备118进行各种密码认证算法,包括但不限于对称密钥加密(例如,256位对称加密,3DES,AES等),非对称密钥加密(例如,4096位非对称加密,RSA,ECDSA等),和/或哈希算法(384位哈希,HMAC-SHA256等)。
作为非限制性示例,一个或多个处理设备118可以生成公共密钥(即,任意位字符串),利用公共密钥加密第一阶段引导加载程序361-1,并且如果第一阶段引导加载程序361-1对应于存储在密钥数据库355中的私有密钥,则认证第一阶段引导加载程序361-1。在一些实施例中,如果一个或多个处理设备118可以使用私有密钥来解密第一阶段引导加载程序361-1的内容,则公共密钥可以对应于私有密钥。如果公共密钥对应于存储在密钥数据库355中的私有密钥,则一个或多个处理设备118可以确定第一阶段引导加载程序361-1已被认证并且尚未受到篡改,并且一个或多个处理设备118可以继续分阶段初始化协议。否则,如果公共密钥不对应于存储在密钥数据库355中的私有密钥,则一个或多个处理设备118将不能解密第一阶段引导加载程序361-1,从而导致一个或多个处理设备118确定第一阶段引导加载程序361-1未被认证。此外,一个或多个处理设备118可以响应于公共密钥不与私有密钥相对应而确定第一阶段引导加载程序361-1受到篡改。
作为另一非限制性示例,一个或多个处理设备118可以生成公共密钥(即,任意位字符串),并将该公共密钥传输到密钥数据库355。此外,一个或多个处理设备118可以利用公共密钥对第一阶段引导加载程序361-1进行加密,并确定公共密钥是否对应于密钥数据库355中的条目(即,确定公共密钥是否已成功传输至密钥数据库355)。如果公共密钥对应于密钥数据库355中的条目,则一个或多个处理设备118可以解密第一阶段引导加载程序361-1。因此,一个或多个处理设备118然后可以确定第一阶段引导加载程序361-1已被认证并且尚未受到篡改,并且一个或多个处理设备118可以继续分阶段初始化协议。否则,如果所生成的公共密钥不对应于密钥数据库355中的条目,则一个或多个处理设备118将不能解密第一阶段引导加载程序361-1,从而导致一个或多个处理设备118确定第一阶段引导加载程序361-1未被认证。此外,一个或多个处理设备118可以响应于公共密钥不与密钥数据库355中的条目相对应而确定第一阶段引导加载程序361-1受到篡改。
如果在框415处一个或多个处理设备118确定第一阶段引导加载程序361-1未被认证,则方法400进行到框420;否则,方法400进行到框435。在框420处,一个或多个处理设备118确定初始化模块360是否包括第一阶段引导加载程序备份映像362(即,第一阶段引导加载程序361-1的副本)。如果是,则方法400进行到框430;否则,方法400进行到框425,在框425处,发动机控制系统116被重置,并且然后进行到框405。在一些实施例中,当发动机控制系统116被重置时,发动机控制系统116暂时中止从电源(未示出)接收电力,并且去除存储在第二存储器120-2上的任何机器可读指令。
在框430处,一个或多个处理设备118通过执行认证模块368的编程指令来确定第一阶段引导加载程序备份映像362是否被认证。如上所述,一个或多个处理设备118进行各种密码认证算法,包括但不限于对称密钥加密,非对称密钥加密和/或散列算法,以认证第一阶段引导加载程序备份映像362。如果在框430处认证了第一阶段引导加载程序备份映像362,则方法400进行到框435;否则,方法400进行到框425。
在框435处,一个或多个处理设备118开始执行第一阶段引导加载程序361-1。在所示实施例中,执行第一阶段引导加载程序361-1包括确定发动机控制系统116是否处于存储器加载器模式。如本文所述,当发动机控制系统116经由网络接口硬件320连接到GSE340的存储器加载器350时,发动机控制系统116处于存储器加载器模式。如果发动机控制系统116处于存储器加载器模式,则方法400进行到图5所示的框505;否则,方法400进行到图6所示的框605。
应该理解,在其他实施例中,开始执行第一阶段引导加载程序361-1(即,图4中的框435)可以包括和/或在其他功能之前。作为非限制性示例,可以在发动机控制系统116的开机自检(POST)之前执行第一阶段引导加载程序361-1。
参考图3和图5,在框505处(即,当图4中的框435确定发动机控制系统116处于存储器加载器模式时),一个或多个处理设备118开始通过执行认证模块368的编程指令来认证存储器加载器350。此外,在框510处,一个或多个处理设备118通过执行认证模块368的编程指令来确定存储器加载器350是否被认证。通过在框505和框510处执行认证模块368的编程指令,一个或多个处理设备118进行各种密码认证算法,包括但不限于对称密钥加密,非对称密钥加密和/或散列算法。
如果在框510对存储器加载器350进行了认证,则方法400进行到框530,在框530处,一个或多个处理设备118执行存储器加载器350。方法400然后结束。仍参考图3和图5,如果在框510处未对存储器加载器350进行认证,则方法400进行到框515。在框515处,一个或多个处理设备118记录指示存储器加载器350的认证失败的安全日志,然后在框520处生成对应的输出。在一些实施例中,对应的输出可以是与FADEC标准和/或协议一致的硬件输出。在其他实施例中,对应的输出可以是其他硬件输出,例如发光二极管(LED)电路和/或发动机控制系统116的其他类似电路的激活。
在框525处,一个或多个处理设备118重新引导第一阶段引导加载程序361-1,然后方法400进行到框505。作为非限制性示例,重新引导第一阶段引导加载程序361-1可以包括执行机器可读指令,该机器可读指令使一个或多个处理设备118重复在框505和框510处描述的存储器加载器350的认证。因此,在一些实施例中,如果存储器加载器350未被认证,则方法400可能不完成分阶段初始化协议,从而通过防止未认证的外部设备初始化和/或操纵发动机控制系统116来增强发动机控制系统116的安全性。
现在参考图3和图6,在框605处(即,当图4中的框435确定发动机控制系统116不处于存储器加载器模式时),一个或多个处理设备118开始通过执行认证模块368的编程指令来认证第二阶段引导加载程序361-2。通过在框605处执行认证模块368的编程指令,一个或多个处理设备118进行各种密码认证算法,包括但不限于对称密钥加密,非对称密钥加密和/或哈希算法。
作为非限制性示例,一个或多个处理设备118可以生成公共密钥(即,任意位字符串),利用公共密钥加密第二阶段引导加载程序361-2,并且如果第二阶段引导加载程序361-2对应于存储在密钥数据库355中的私有密钥,则认证第二阶段引导加载程序361-2。在一些实施例中,如果一个或多个处理设备118可以使用私有密钥解密第二阶段引导加载程序361-2的内容,则公共密钥可以对应于私有密钥。如果公共密钥对应于存储在密钥数据库355中的私有密钥,则一个或多个处理设备118可以确定第二阶段引导加载程序361-2被认证并且未受到篡改,并且一个或多个处理设备118可以继续分阶段初始化协议。否则,如果公共密钥不对应于存储在密钥数据库355中的私有密钥,则一个或多个处理设备118将不能解密第二阶段引导加载程序361-2,从而导致一个或多个处理设备118确定第二阶段引导加载程序361-2未被认证。此外,一个或多个处理设备118可以响应于公共密钥不与私有密钥相对应而确定第二阶段引导加载程序361-2受到篡改。
作为另一个非限制性示例,一个或多个处理设备118可以生成公共密钥(即,任意位字符串),将公共密钥传输到密钥数据库355,利用公共密钥加密第二阶段引导加载程序361-2,并确定公共密钥是否对应于密钥数据库355中的条目(即,确定公共密钥是否已成功传输到密钥数据库355)。如果公共密钥对应于密钥数据库355中的条目,则一个或多个处理设备118可以解密第二阶段引导加载程序361-2。因此,一个或多个处理设备118然后可以确定第二阶段引导加载程序361-2被认证并且尚未受到篡改,并且一个或多个处理设备118可以继续分阶段初始化协议。否则,如果生成的公共密钥不对应于密钥数据库355中的条目,则一个或多个处理设备118将不能解密第二阶段引导加载程序361-2,从而导致一个或多个处理设备118确定第二阶段引导加载程序361-2未被认证。此外,一个或多个处理设备118可以响应于公共密钥不与密钥数据库355中的条目相对应而确定第二阶段引导加载程序361-2受到篡改。
在框610处,一个或多个处理设备118记录在框605处获得的认证结果。在框615处,一个或多个处理设备118确定第二阶段引导加载程序361-2是否被认证。如果是,则方法400进行到框620,在框620处,一个或多个处理设备118记录指示第二阶段引导加载程序361-2的认证失败的安全日志。在框625处,一个或多个处理设备118在框625处生成指示潜在可疑活动的输出(例如,硬件输出,诸如LED电路和/或发动机控制系统116的其他类似电路的激活),然后进行到图7中的框705。因此,在一些实施例中,当第二阶段引导加载程序361-2未被认证时,可以完成分阶段初始化协议,并且可以基于框625处的硬件输出,将失败的认证通知给飞行器102的操作者。在一些实施例中,发动机控制系统116可以利用图6中所示的第二阶段引导加载程序361-2的认证结果来确定发动机控制系统116的信道健康状况,这可以指示发动机控制系统116冗余性。
参考图3和7,示出了执行第二阶段引导加载程序361-2的说明性概述。如上所述,响应于认证第一阶段引导加载程序361-1(如图3和图4所示)和认证存储器加载器350(如图3和图5所示),开始执行第二阶段引导加载程序361-2。此外,响应于认证第一阶段引导加载程序361-1(如图3和图4所示)和认证第二阶段引导加载程序361-2(如图3和图6所示),开始执行第二阶段引导加载程序361-2。
现在参考图3和图7,在图7所示的框705处,一个或多个处理设备118通过执行OS内核364将操作系统加载到第二存储器120-2上。此外,在框705处,一个或多个处理设备118将与优先分区380相关联的第一组机器可读指令加载到第二存储器120-2上。如本文中所使用的,与优先分区380相关联的第一组机器可读指令是指与控制发动机108(诸如当一个或多个处理设备118从重置释放时使发动机108恢复正常操作)有关的机器可读指令。
另外,在框705处,一个或多个处理设备118通过执行配置模块366来加载与第一组机器可读指令相关联的配置信息。如本文中所使用的,配置信息是指与机器可读指令相关联的数字签名,以及用于验证机器可读指令利用的数据和存储在数据存储设备330中的数据的验证方法。
在框710处,一个或多个处理设备118认证操作系统,配置信息和第一组机器可读指令。作为非限制性示例,一个或多个处理设备118可以使用各种密码认证算法(包括但不限于,对称密钥加密,非对称密钥加密,哈希算法等)来进行认证。在框715处,一个或多个处理设备118记录认证结果并生成对应的输出。
在框720处,一个或多个处理设备118通过执行验证模块370来验证第一组机器可读指令利用的数据。作为非限制性示例,验证模块370可以包括与数据类型确认,范围和约束确认,代码和交叉引用确认,结构化确认,和/或任何其他合适的数据验证方法相对应的指令。在框725处,一个或多个处理设备118初始化第一组机器可读指令,然后在框730处在分配的时间内执行第一组机器可读指令。通过在分配的时间段(即,预定的时间段)内执行第一组机器可读指令,在分阶段初始化协议期间,发动机108不太容易损坏,因为关键的发动机控制软件可以在分阶段初始化协议期间执行。
响应于分配的时间段流逝,在框735处,一个或多个处理设备118将与非优先分区390相关联的第二组机器可读指令加载到第二存储器120-2上。如本文中所使用的,与非优先分区390相关联的第二组机器可读指令是指与控制发动机108(例如,监视发动机健康状况,计算最大可用动力和部件健康状况)不相关的机器可读指令。另外,在框735处,一个或多个处理设备118通过执行配置模块366,将与第二组机器可读指令相关联的配置信息加载到第二存储器120-2上。
在框740处,一个或多个处理设备118认证第二组机器可读指令。作为非限制性示例,一个或多个处理设备118可以使用各种密码认证算法(包括但不限于,对称密钥加密,非对称密钥加密,哈希算法等)来进行认证。此外,在框740处,一个或多个处理设备118通过执行验证模块370来验证第二组机器可读指令利用的数据。
在框745处,一个或多个处理设备118生成与验证和认证结果相对应的输出。在一些实施例中,对应的输出可以是与FADEC标准和/或协议一致的硬件输出。在其他实施例中,对应的输出可以是其他硬件输出,例如发光二极管(LED)电路和/或发动机控制系统116的其他类似电路的激活。
在框750处,一个或多个处理设备118初始化第二组机器可读指令,然后在框755处,在分配的时间内执行第二组机器可读指令。通过在分配的预定时间段内执行第二组机器可读指令,可以在合适的时间段内完成分阶段初始化协议,从而使发动机控制系统116能够进行本文所述的功能。
在框760处,一个或多个处理设备118确定附加引导加载程序361(例如,第三引导加载程序)是否在第一存储器120-1上。如果是,则方法400进行到框765,在框765处,一个或多个处理设备118将附加组机器可读指令加载到第二存储器120-2上,并将与附加组机器可读指令相关联的配置信息加载到第二存储器120-2上。在框770处,一个或多个处理设备118认证附加组机器可读指令。作为非限制性示例,一个或多个处理设备118可以使用各种密码认证算法(包括但不限于,对称密钥加密,非对称密钥加密,哈希算法等)来进行认证。此外,在框775处,一个或多个处理设备118通过执行验证模块370来验证附加组机器可读指令利用的数据。然后,方法400进行到框760。
仍参考图3和图7,如果一个或多个处理设备118确定没有附加引导加载程序361在第一存储器120-1上,则方法400进行到框780,在框780处,一个或多个处理设备118确定分阶段初始化协议已完成,并将发动机控制系统116的控制委托给操作系统。
通过执行以上参考图4-7描述的分阶段初始化协议,在认证,加载和执行非优先软件程序之前,认证,加载和执行与发动机的控制有关的优先软件程序。通过执行本文所述的分阶段初始化协议,软件程序可以快速识别可疑活动和/或篡改的证据,同时最小化在分阶段初始化协议期间对发动机的操作的负面影响。
本文描述的功能框和/或流程图元件可以被翻译成机器可读指令。作为非限制性示例,可以使用任何编程协议来编写机器可读指令,例如:要解析的描述性文本(例如,超文本标记语言,可扩展标记语言等),(ii)汇编语言,(iii)编译器从源代码生成的目标代码,(iv)使用来自解释器执行的任何合适的编程语言的语法编写的源代码,(v)即时编译器编译和执行的源代码等。替代地,可以以硬件描述语言(HDL)来编写机器可读指令,诸如经由现场可编程门阵列(FPGA)构造或专用集成电路(ASIC)或其等效物实施的逻辑。因此,本文描述的功能可以以任何常规的计算机编程语言,作为预编程的硬件元件或作为硬件和软件部件的组合来实施。
对于本领域技术人员将显而易见的是,在不脱离本公开的精神或范围的情况下,可以进行各种修改和变型。由于本领域技术人员可以想到包含本公开的精神和实质的所公开的实施例的修改,组合,子组合和变型,因此本公开应被解释为包括所附权利要求及其等同物的范围内的所有内容。
本发明的进一步方面由以下条项的主题提供:
一种用于启动飞行器的发动机控制系统的方法,该方法包括:由一个或多个处理器认证第一阶段引导加载程序;响应于第一阶段引导加载程序的认证,由一个或多个处理器认证第二阶段引导加载程序;响应于第二阶段引导加载程序的认证,由一个或多个处理器执行第二阶段引导加载程序,其中,执行第二阶段引导加载程序包括:由一个或多个处理器将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联;由一个或多个处理器认证操作系统和第一组机器可读指令;响应于操作系统和第一组机器可读指令的认证,由一个或多个处理器执行第一组机器可读指令。
根据任何前述条项所述的方法,其中,响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序进一步包括:由一个或多个处理器确定发动机控制系统是否处于存储器加载器模式;响应于确定发动机控制系统处于存储器加载器模式,由一个或多个处理器认证通信地联接到一个或多个处理器的存储器加载器。
根据任何前述条项所述的方法,其中,响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序进一步包括,响应于存储器加载器的认证,由一个或多个处理器认证第二阶段引导加载程序。
根据任何前述条项所述的方法,其中,响应于所述第一阶段引导加载程序的认证来认证所述第二阶段引导加载程序进一步包括,响应于所述第二阶段引导加载程序的认证,由所述一个或多个处理器认证所述存储器加载器。
根据任何前述条项所述的方法,进一步包括:由一个或多个处理器确定第一阶段引导加载程序未被认证;由一个或多个处理器加载第一阶段引导加载程序的备份映像;由一个或多个处理器认证第一阶段引导加载程序的备份映像;响应于第一阶段引导加载程序的备份映像的认证,由一个或多个处理器认证第二阶段引导加载程序。
根据任何前述条项所述的方法,进一步包括:由一个或多个处理器在预定时间段内执行第一组机器可读指令;响应于预定时间段流逝,由一个或多个处理器将第二组机器可读指令和与第二组机器可读指令相关联的第二配置信息加载到非暂时性计算机可读介质上,其中,第二组机器可读指令和第二配置信息与一个或多个非优先分区相关联;由一个或多个处理器认证第二组机器可读指令;响应于第二组机器可读指令的认证,由一个或多个处理器执行第二组机器可读指令。
根据任何前述条项所述的方法,其中:一个或多个优先分区与控制飞行器的发动机的应用分区相关联;一个或多个非优先分区与不控制飞行器的发动机的应用分区相关联。
根据任何前述条项所述的方法,进一步包含由一个或多个处理器密码验证与一个或多个优先分区相关联的信息,其中,信息存储在通信地联接到一个或多个处理器的数据库上。
根据任何前述条项所述的方法,其中,第一阶段引导加载程序的认证进一步包括:由一个或多个处理器生成公共密钥;由一个或多个处理器确定第一阶段引导加载程序的私有密钥对应于公共密钥;由一个或多个处理器认证第一阶段引导加载程序。
根据任何前述条项所述的方法,其中,第一阶段引导加载程序的认证进一步包括:由一个或多个处理器生成公共密钥;由一个或多个处理器利用公共密钥来加密第一阶段引导加载程序;响应于公共密钥与密钥数据库中的条目相对应,由一个或多个处理器认证第一阶段引导加载程序。
根据任何前述条项所述的方法,其中,第二阶段引导加载程序的认证进一步包括:由一个或多个处理器生成公共密钥;由一个或多个处理器确定第二阶段引导加载程序的私有密钥对应于公共密钥;由一个或多个处理器认证第二阶段引导加载程序。
根据任何前述条项所述的方法,其中,第二阶段引导加载程序的认证进一步包括:由一个或多个处理器生成公共密钥;由一个或多个处理器利用公共密钥来加密第二阶段引导加载程序;响应于公共密钥与密钥数据库中的条目相对应,由一个或多个处理器认证第二阶段引导加载程序。
根据任何前述条项所述的方法,进一步包括响应于第二阶段引导加载程序的认证,由一个或多个处理器认证第三阶段引导加载程序。
根据任何前述条项所述的方法,进一步包括:由所述一个或多个处理器确定所述第二阶段引导加载程序未被认证;和由所述一个或多个处理器生成指示所述第二阶段引导加载程序未被认证的输出。
一种用于启动飞行器的发动机控制系统的设备,该设备包括:一个或多个处理器;一个或多个非暂时性存储器模块,该一个或多个非暂时性存储器模块通信地联接到一个或多个处理器并存储机器可读指令,当该机器可读指令被执行时,使一个或多个处理器至少进行以下操作:认证第一阶段引导加载程序;响应于第一阶段引导加载程序的认证,认证第二阶段引导加载程序;响应于第二阶段引导加载程序的认证,执行第二阶段引导加载程序,其中,执行第二阶段引导加载程序包括:将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联;认证操作系统和第一组机器可读指令;响应于操作系统和第一组机器可读指令的认证,执行第一组机器可读指令。
根据任何前述条项所述的设备,其中,响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序,使一个或多个处理器至少进行以下操作:确定发动机控制系统是否处于存储器加载器模式;响应于确定发动机控制系统处于存储器加载器模式,认证通信地联接到一个或多个处理器的存储器加载器。
根据任何前述条项所述的设备,其中,响应于第一阶段引导加载程序的认证来认证第二阶段引导加载程序,使得一个或多个处理器响应于存储器加载器的认证来认证第二阶段引导加载程序。
根据任何前述条项所述的设备,其中,响应于所述第一阶段引导加载程序的认证来认证所述第二阶段引导加载程序,使得所述一个或多个处理器响应于所述第二阶段引导加载程序的认证来认证所述存储器加载器。
根据任何前述条项所述的设备,进一步包含机器可读指令,当该机器可读指令被执行时,使一个或多个处理器至少进行以下操作:确定第一阶段引导加载程序未被认证;加载第一阶段引导加载程序的备份映像;认证第一阶段引导加载程序的备份映像;响应于第一阶段引导加载程序的备份映像的认证,认证第二阶段引导加载程序。
根据任何前述条项所述的设备,进一步包含机器可读指令,当该机器可读指令被执行时,使一个或多个处理器至少进行以下操作:在预定时间段内执行第一组机器可读指令;响应于预定时间段流逝,将第二组机器可读指令和与第二组机器可读指令相关联的第二配置信息加载到非暂时性计算机可读介质上,其中,第二组机器可读指令和第二配置信息与一个或多个非优先分区相关联;认证第二组机器可读指令;响应于第二组机器可读指令的认证,执行第二组机器可读指令。
根据任何前述条项所述的设备,其中一个或多个优先分区与控制飞行器的发动机的应用分区相关联;一个或多个非优先分区与不控制飞行器的发动机的应用分区相关联。
根据任何前述条项所述的设备,进一步包含机器可读指令,当该机器可读指令被执行时,使一个或多个处理器至少进行以下操作:密码验证与一个或多个优先分区相关联的信息,其中,信息存储在通信地联接到一个或多个处理器的数据库上。
一种系统,包括:飞行器系统;一个或多个处理器;一个或多个非暂时性存储器模块,该一个或多个非暂时性存储器模块通信地联接到一个或多个处理器并存储机器可读指令,当该机器可读指令被执行时,使一个或多个处理器至少进行以下操作:认证第一阶段引导加载程序;响应于第一阶段引导加载程序的认证,认证第二阶段引导加载程序;响应于第二阶段引导加载程序的认证,执行第二阶段引导加载程序,其中,执行第二阶段引导加载程序包括:将操作系统,第一组机器可读指令,以及与第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,第一组机器可读指令和第一配置信息与一个或多个优先分区相关联;认证操作系统和第一组机器可读指令;响应于操作系统和第一组机器可读指令的认证,执行第一组机器可读指令。

Claims (10)

1.一种用于启动飞行器的发动机控制系统的方法,其特征在于,所述方法包括:
由一个或多个处理器认证第一阶段引导加载程序;
响应于所述第一阶段引导加载程序的认证,由所述一个或多个处理器认证第二阶段引导加载程序;和
响应于所述第二阶段引导加载程序的认证,由所述一个或多个处理器执行所述第二阶段引导加载程序,其中,执行所述第二阶段引导加载程序包括:
由所述一个或多个处理器将操作系统,第一组机器可读指令,以及与所述第一组机器可读指令相关联的第一配置信息加载到非暂时性计算机可读介质上,其中,所述第一组机器可读指令和所述第一配置信息与一个或多个优先分区相关联;
由所述一个或多个处理器认证所述操作系统和所述第一组机器可读指令;和
响应于所述操作系统和所述第一组机器可读指令的认证,由所述一个或多个处理器执行所述第一组机器可读指令。
2.根据权利要求1所述的方法,其特征在于,其中,响应于所述第一阶段引导加载程序的认证来认证所述第二阶段引导加载程序进一步包括:
由所述一个或多个处理器确定所述发动机控制系统是否处于存储器加载器模式;和
响应于确定所述发动机控制系统处于所述存储器加载器模式,由所述一个或多个处理器认证通信地联接到所述一个或多个处理器的存储器加载器。
3.根据权利要求2所述的方法,其特征在于,其中,响应于所述第一阶段引导加载程序的认证来认证所述第二阶段引导加载程序进一步包括,响应于所述第二阶段引导加载程序的认证,由所述一个或多个处理器认证所述存储器加载器。
4.根据权利要求1所述的方法,其特征在于,进一步包括:
由所述一个或多个处理器确定所述第一阶段引导加载程序未被认证;
由所述一个或多个处理器加载所述第一阶段引导加载程序的备份映像;
由所述一个或多个处理器认证所述第一阶段引导加载程序的所述备份映像;和
响应于所述第一阶段引导加载程序的所述备份映像的认证,由所述一个或多个处理器认证所述第二阶段引导加载程序。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
由所述一个或多个处理器在预定时间段内执行所述第一组机器可读指令;
响应于所述预定时间段的流逝,由所述一个或多个处理器将第二组机器可读指令和与所述第二组机器可读指令相关联的第二配置信息加载到所述非暂时性计算机可读介质上,其中,所述第二组机器可读指令和所述第二配置信息与一个或多个非优先分区相关联;
由所述一个或多个处理器认证所述第二组机器可读指令;和
响应于所述第二组机器可读指令的认证,由所述一个或多个处理器执行所述第二组机器可读指令。
6.根据权利要求5所述的方法,其特征在于,其中:
所述一个或多个优先分区与控制所述飞行器的发动机的应用分区相关联;和
所述一个或多个非优先分区与不控制所述飞行器的所述发动机的所述应用分区相关联。
7.根据权利要求1所述的方法,其特征在于,进一步包含由所述一个或多个处理器密码验证与所述一个或多个优先分区相关联的信息,其中,所述信息存储在通信地联接到所述一个或多个处理器的数据库上。
8.根据权利要求1所述的方法,其特征在于,其中,所述第一阶段引导加载程序的认证进一步包括:
由所述一个或多个处理器生成公共密钥;
由所述一个或多个处理器确定所述第一阶段引导加载程序的私有密钥对应于所述公共密钥;和
由所述一个或多个处理器认证所述第一阶段引导加载程序。
9.根据权利要求1所述的方法,其特征在于,其中,所述第一阶段引导加载程序的认证进一步包括:
由所述一个或多个处理器生成公共密钥;
由所述一个或多个处理器利用所述公共密钥来加密所述第一阶段引导加载程序;和
响应于所述公共密钥与密钥数据库中的条目相对应,由所述一个或多个处理器认证所述第一阶段引导加载程序。
10.根据权利要求1所述的方法,其特征在于,其中,所述第二阶段引导加载程序的认证进一步包括:
由所述一个或多个处理器生成公共密钥;
由所述一个或多个处理器确定所述第二阶段引导加载程序的私有密钥对应于所述公共密钥;和
由所述一个或多个处理器认证所述第二阶段引导加载程序。
CN202011026402.0A 2019-09-26 2020-09-25 用于安全地初始化嵌入式系统的设备,系统和方法 Pending CN112555029A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962906348P 2019-09-26 2019-09-26
US62/906,348 2019-09-26

Publications (1)

Publication Number Publication Date
CN112555029A true CN112555029A (zh) 2021-03-26

Family

ID=72473449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011026402.0A Pending CN112555029A (zh) 2019-09-26 2020-09-25 用于安全地初始化嵌入式系统的设备,系统和方法

Country Status (3)

Country Link
US (1) US11934527B2 (zh)
EP (1) EP3798886A1 (zh)
CN (1) CN112555029A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230073884A1 (en) * 2021-09-09 2023-03-09 GM Global Technology Operations LLC Method and system to perform a secure boot procedure using a multi-stage security verification in a microcontroller of a vehicle
US20240111872A1 (en) * 2022-09-30 2024-04-04 General Electric Company Devices, systems, and methods for securely loading embedded software using a manifest

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028235A1 (en) * 2006-07-18 2008-01-31 Keelan Smith System and method for authenticating a gaming device
CN104238491A (zh) * 2013-06-20 2014-12-24 洛克威尔自动控制技术股份有限公司 用于基于工业自动化流的数据处理的信息平台
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US20160021486A1 (en) * 2014-07-18 2016-01-21 The Boeing Company Close proximity vehicular data transmission
CN110131050A (zh) * 2018-02-02 2019-08-16 通用电气公司 用于交通工具控制系统的虚拟化数据
US20190258251A1 (en) * 2017-11-10 2019-08-22 Nvidia Corporation Systems and methods for safe and reliable autonomous vehicles

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
US6894611B2 (en) 2002-09-23 2005-05-17 General Electric Company Method and system for uploading and downloading engine control data
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7664836B2 (en) * 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
DE102005043043A1 (de) * 2005-09-09 2007-03-22 Fujitsu Siemens Computers Gmbh Computer mit mindestens einer Anschlussmöglichkeit für ein Wechselspeichermedium und Verfahren zum Starten und Betreiben eines Computers mit einem Wechselspeichermedium
US20140075567A1 (en) * 2009-01-28 2014-03-13 Headwater Partners I Llc Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device
US20120011354A1 (en) * 2010-07-02 2012-01-12 Encryptakey, Inc. Boot loading of secure operating system from external device
US20120095662A1 (en) 2010-10-14 2012-04-19 Hamilton Sundstrand Corporation Electronic engine control software reconfiguration for distributed eec operation
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US9141802B2 (en) 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication
US9881161B2 (en) * 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US9826039B2 (en) 2014-02-04 2017-11-21 Honeywell International Inc. Configurable communication systems and methods for communication
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems
US9678760B2 (en) * 2014-08-01 2017-06-13 Samsung Electronics Co., Ltd. Memory card and storage system having authentication program and method for operating thereof
CN108701192B (zh) * 2016-02-12 2022-05-31 汉阳大学校产学协力团 安全半导体芯片及其工作方法
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
KR101887974B1 (ko) 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
US10467416B2 (en) 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10796004B1 (en) * 2017-06-16 2020-10-06 Sequitur Labs Inc. Split boot for computing devices with secure and insecure states
US11218324B2 (en) * 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
FR3084500B1 (fr) 2018-07-26 2020-07-03 Thales Procede et dispositif electronique d'installation logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et systeme electronique associes
US11238160B2 (en) * 2018-09-28 2022-02-01 Apple Inc. Boot firmware sandboxing
US20200341746A1 (en) * 2019-04-29 2020-10-29 Microsoft Technology Licensing, Llc Snapshot recovery states
CN111241552B (zh) 2020-01-20 2023-06-09 上海大学 一种自主无人系统安全辅助系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028235A1 (en) * 2006-07-18 2008-01-31 Keelan Smith System and method for authenticating a gaming device
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
CN104238491A (zh) * 2013-06-20 2014-12-24 洛克威尔自动控制技术股份有限公司 用于基于工业自动化流的数据处理的信息平台
US20160021486A1 (en) * 2014-07-18 2016-01-21 The Boeing Company Close proximity vehicular data transmission
US20190258251A1 (en) * 2017-11-10 2019-08-22 Nvidia Corporation Systems and methods for safe and reliable autonomous vehicles
CN110131050A (zh) * 2018-02-02 2019-08-16 通用电气公司 用于交通工具控制系统的虚拟化数据

Also Published As

Publication number Publication date
US20210097185A1 (en) 2021-04-01
US11934527B2 (en) 2024-03-19
EP3798886A1 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
CA2903634C (en) Software aircraft part installation system
US11711206B2 (en) Communicating securely with devices in a distributed control system
EP3825840B1 (en) Devices, systems, and methods for providing on-demand engine software using a distributed ledger
US11934527B2 (en) Devices, systems, and methods for securely initializing an embedded system
US20230014326A1 (en) Method and system for remote load of on-board certified software
US20210273947A1 (en) Devices, systems, and methods for modifying an access permission level
US20220123957A1 (en) Devices, systems, and methods for routing data to distributed devices in aircraft
US11561873B2 (en) Test equipment interface add-on having a production support equipment module and a selectively removable test support equipment module
EP4345667A1 (en) Devices, systems, and methods for securely loading embedded software using a manifest
US11968309B2 (en) Systems and methods for multi-factor digital authentication of aircraft operations
US11755737B2 (en) Reporting and configuration enhancements of on-board certified software
US11753187B2 (en) System and method for performing enhanced maintenance of aircraft
US11727118B2 (en) Vehicle vulnerability testing
EP3958529A1 (en) Systems and methods for multi-factor digital authentication of aircraft operations
KR102075031B1 (ko) 컴퓨팅 자원 및 상기 컴퓨팅 자원에 의해 수행되는 비행체 진동 제어 소프트웨어 업데이트 처리 방법
WO2023220588A1 (en) Systems for and methods of a using a secure dataloader

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