一种控制器可信启动方法和控制器
文献发布时间:2024-04-18 19:58:26
技术领域
本发明涉及自动控制技术领域,具体而言,涉及一种控制器可信启动方法和控制器。
背景技术
随着信息技术的不断发展,自动化控制系统面临的安全威胁层出不穷,由于控制器承载的功能越来越多,其安全性也越来越受到重视。为了避免因控制器Uboot或组态软件被恶意篡改而影响控制器的启动、正常运行和信息安全,控制器的可信启动需求越来越多。
相关技术中,控制器的可信启动采用专用系统级芯片或者片上系统(SOC)或者可信密码模块并搭配专用固件方案,并且需要SOC或者可信密码模块首先验证Uboot和组态软件的安全性,控制器才能正常加载启动。
上述可信启动方式,由于需要采用专用SOC或者可信密码模块并搭配专用固件,使得需要SOC或者可信密码模块首先验证Uboot和组态软件的安全性,导致控制器开发成本高,开发难度大,且操作复杂,时间长。
发明内容
为了解决上述技术问题,提出了一种控制器可信启动方法和控制器。
第一方面,本发明提供了一种控制器可信启动方法,该方法用于所述控制器包括第一处理器、第二处理器、第一存储器及第二存储器,所述第一存储器中存储有待加载程序,所述第二存储器中存储有第一验证数据,所述第一验证数据由可信加载程序运算得到,包括:
所述第二处理器获取第一输出数据及第一验证数据,所述第一输出数据由所述第一处理器加载所述待加载程序时输出;
所述第二处理器对所述第一验证数据和/或第一输出数据进行解析,得到所述解析结果;
所述第二处理器根据所述解析结果确定所述控制器的启动指示信息,所述启动指示信息用于表示是否述执行所述控制器启动操作。
可选地,本发明实施例提供的控制器可信启动方法,所述启动指示信息包括第一指示符及第二指示符,所述第一指示符表示所述执行所述控制器的启动操作,所述第二指示符表示执行所述控制器复位操作。
可选地,本发明实施例提供的控制器可信启动方法,所述第一验证数据通过对所述可信加载程序加密处理得到,所述第二处理器对所述第一验证数据进行解析包括:
所述第二处理器对所述第一验证数据进行解密,得到所述解密数据,所述解密数据作为所述解析结果。
可选地,本发明实施例提供的控制器可信启动方法,所述跟所述解析结果确定所述控制器的启动指示信息包括:
当所述解密数据与所述第一输出数据一致时,确定所述启动指示信息为所述第一指示符。
可选地,本发明实施例提供的控制器可信启动方法,所述第一验证数据通过对所述可信加载程序算术运算处理得到,所述第二处理器对所述第一输出数据进行解析包括:
所述第二处理器对所述第一输出数据进行算术运算处理,得到所述解析结果,对所述第一输出数据的算术运算处理与对所述可信加载程序的算术运算处理方式相同。
可选地,本发明实施例提供的控制器可信启动方法,所述跟所述解析结果确定所述控制器的启动指示信息包括:
当所述运算数据与所述第一输出数据一致时,确定所述启动指示信息为所述第一指示符。
可选地,本发明实施例提供的控制器可信启动方法,还包括:
所述第二处理器获取第二输出数据,所述第二输出数据为所述第一处理器向所述第一存储器传输的新加载程序,所述新加载程序用于更新所述待加载程序;
所述第二处理器对所述新加载程序进行运算处理,得到第二验证数据,并存储至所述第二存储器,所述第二验证数据用于在所述控制器启动时,验证所述第一处理器所加载程序的可信度。
可选地,本发明实施例提供的控制器可信启动方法,还包括:
所述第二处理器接收第一处理器发送的所述新加载程序的更新请求;
所述第二处理器响应所述更新请求,向所述第一处理器发送确认消息,所述确认消息用于指示所述第一处理器向所述第一存储器传输所述新加载程序。
可选地,本发明实施例提供的控制器可信启动方法,所述方法还包括:
所述第二处理器获取烧录器中的初始加载程序,所述初始加载程序为通过所述烧录器烧录至所述第一存储器的数据;
所述第二处理器对所述初始加载程序进行运算处理,得到第三验证数据,并存储至所述第二存储器,所述第三验证数据用于在所述控制器启动时,验证所述第一处理器所加载程序的可信度。
第二方面,本发明提供一种控制器,所述控制器包括第一处理器、第二处理器、第一存储器及第二存储器,所述第二处理器包括存储在其中并可在其上运行的计算机程序指令,所述第二处理器执行所述计算机程序指令时用于实现如第一方面所述的控制器可信启动方法。
本发明的控制器可信启动方法和控制器,通过设置包括第一处理器、第二处理器、第一存储器及第二存储器的控制器,并使得在第一存储器中存储有待加载程序,第二存储器中存储有通过对可信加载程序运算处理得到的第一验证数据。则在该控制器进行启动时,即在控制器中的第一处理器加载第一存储器中的待加载程序进行启动时,第二处理器能够监测第一存储器输出的待加载程序,即第一输出数据,以及第二存储器中的与可信加载程序对应的第一验证数据,进而对第一验证数据和/第一输出数据进行解析处理,得到解析结果,最后根据得到的解析结果确定控制器的启动指示信息,以确定是否对控制器进行正常启动。通过配置的第二处理器,使得第一处理器加载第一存储器中的加载程序进行控制器的启动时,第二处理器能够同时快速便捷的监测加载过程中的输出数据,并将其与预先存储的验证数据一起进行分析处理,以确定当前启动过程中加载的程序是否可信,即实现了启动过程中加载程序的同步验证,降低了控制器的开发难度及可信启动时长,简化了控制器的可信启动过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的控制器的系统架构示意图;
图2为本发明实施例的控制器可信启动方法的流程示意图;
图3为本发明实施例的控制器可信启动原理示意图;
图4为本发明实施例的控制器可信启动原理示意图;
图5为本发明一些实施例的控制器可信启动方法的流程示意图;
图6为本发明一些实施例的控制器的加载程序更新示意图;
图7为本发明实施例的加载程序烧录原理示意图;
图8为本发明实施例的控制器可信启动装置的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”;术语“可选地”表示“可选的实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解,为了避免因控制器的加载程序,即Uboot或组态软件被恶意篡改而影响控制器的启动、正常运行和信息安全,通过对控制器的可信启动来确保安全性。
可信启动是一种通过逐级验证启动过程,实现固件可信加载的技术。
例如,对嵌入式控制器的启动有安全可靠需求的开发设计场景下,为了确保控制器的安全性,需要采用相关技术配置,以实现控制器的可信加载。
如相关技术中,通过专用系统级芯片或者片上系统(SOC)或者可信密码模块并搭配专用固件方案,并且需要SOC或者可信密码模块先验证Uboot和组态软件的安全性。
上述可信启动实现的控制器开发方式,使得控制器开发成本高,开发难度大,时间长。
可以理解,本发明实施例中,为了降低控制器开发成本及开发难度,提高控制器启动效率,通过配置的第二处理器,如复杂可编程逻辑器件(CPLD),与控制器中的第一处理器,如CPU进行信息交互,实现控制器Uboot和组态软件验证与CPU正常启动同时进行,以确保控制器的低成本,有效缩短控制器的可信启动时长。
本发明实施例的控制器可信启动方法,可用于如图1所示的控制器的系统框架中。
如图1所示,该控制器的系统架构中包括第一处理器、第二处理器、第一存储器及第二存储器。
其中,该第一处理器作为控制器的中央处理器,与第二处理器及第一存储器电连接,实现数据交互。该第一处理器与第二处理器可以通过接口进行数据交互,如GPIO接口。
该第二处理器与第一处理器、第一存储器及第二存储器电连接,以实现数据交互。即控制器框架中设置的第二处理器,用于在第一处理器启动控制器时,进行加载程序的可信验证。该第二处理器可以为复杂可编程逻辑器件(CPLD),专用IC器件、FPGA或者MCU等。本发明实施例对此不作限制。
该第一存储器用于存储控制器的加载程序,如系统引导加载程序(Uboot)和组态软件。并且,在控制器上电完成,进行可信启动,第一处理器能够读取并加载该第一存储器中的系统引导加载程序和组态软件时,输出读取的数据。
该第二存储器用于存储可信启动时的验证数据,使得在第一处理器加载上述第一存储器中的系统引导加载程序和组态软件时,其中的该验证数据能够被第二处理器读取。
该第二处理器作为新配置的结构,用于在第一处理器加载第一存储器中的系统引导加载程序和组态软件时,读取第一存储器输出的加载信号,以及第二存储器中的验证数据,并对两者进行分析,以实现对第一处理器当前加载的引导加载程序和组态软件的可信度进行验证。
可以理解,该控制器的系统框架中还可以包括电源、时钟及通信接口等,以实现控制器的各项功能。
还可以理解,本发明实施例的控制器可信启动方法,可以由如图1所示的控制器的系统架构中的第二处理器执行。其中的逻辑编写可使用多种语言编写,本发明实施例对此不做限制。
为了更好的理解和说明本法实施例提供的控制器可信启动方法及系统,下面通过附图详细阐述。
图2为本发明实施例的控制器可信启动方法的流程示意图,如图2所示,该方法具体包括:
S110,第二处理器获取第一输出数据及第一验证数据,该第一输出数据由该第一处理器加载该待加载程序时输出。
S120,第二处理器对该第一验证数据和/或第一输出数据进行解析,得到解析结果。
S130,第二处理器根据该解析结果确定控制器的启动指示信息,该启动指示信息表示是否述执行该控制器启动操作。
具体地,结合图1、图3及图4所示,本发明实施例中的控制器可信启动方法,在确保实现控制器可信启动时,实现低成本开发,及可信启动的时效性,通过在控制器的系统框架中配置用于可信启动过程中,进行安全验证的第二处理器。
即在控制器上电完成后,开始进入可信启动流程时,第一处理器响应启动指令,开始主动加载第一存储器中的待加载程序,即Uboot和组态软件。对应的,配置的该第二处理器可以在线监控该第一存储器的输出信号,即第一输出数据。
该第一输出数据具体为第一存储器中的固件代码。
同时,为了实现启动过程安全验证的并行处理,该第二处理器读取第二存储器中的第一验证数据。
该第一验证数据通过对可信加载程序中的运算处理得到,如预先对可信加载程序中的Uboot和/或组态软件进行运算处理,得到该第一验证数据,进而将得到的该验证数据存储至第二存储器,以供控制器的可信启动。
即该第一验证数据通过对合法加载程序运算处理得到,使得在第一处理器加载当前的待加载程序过程中,第二处理器读取当前加载的程序以及第一验证数据,进而利用第一验证数据与可信加载程序的关联性,来验证当前所加载的程序的合理及合法性。
对可信加载程序中的运算处理,可以为按照预先设置的规则实现。
例如,通过加密机制,对该可信加载程序中的Uboot的数据进行一次取反的加密处理,得到该第一验证数据。或者,通过对可信加载程序中的Uboot的数据进行加法或乘法等算术运算处理,得到该第一验证数据。
进一步,第二处理器在获取上述的第一输出数据及第一验证数据后,可以对获取的数据进行解析处理,如对验证数据进行解密操作,进而得到对应的解析结果。或者,对输出数据进行与上述加法或乘法等算术运算一致的处理。
最后,可以根据解析结果确定控制器的启动指示信息,该启动指示信息表示是否述执行该控制器启动操作。
该启动指示信息可以包括第一指示符及第二指示符,该第一指示符表示执行所述控制器的启动操作,该第二指示符表示执行该控制器复位操作用。
例如,实际中,该启动指示信息可以为复位信号。并且,该复位信号的设置为低电平有效。如,该第一指示符为“1”,该第二指示符为“0”。则根据解析结果确定为“1”,即复位信号为高电平时,则保持复位信号为高电平,控制器正常启动并工作。
否则,第二处理器将第二存储器控制器里存放的验证数据清空,并将复位信号一直拉低,控制器处于复位状态。
如图3及4所示,在确定复位信号后,则该第二处理器可以通过接口,如GPIO将复位信号传输至第一处理器,使得第一处理器响应该复位信号,执行相应的操作,即执行正常启动或复位(Reset)操作。
可以理解,本发明实施例提供的控制器可信启动方法,通过设置包括第一处理器、第二处理器、第一存储器及第二存储器的控制器,并使得在第一存储器中存储有待加载程序,第二存储器中存储有通过对可信加载程序运算处理得到的第一验证数据。则在该控制器进行启动时,即在控制器中的第一处理器加载第一存储器中的待加载程序进行启动时,第二处理器能够监测第一存储器输出的待加载程序,即第一输出数据,以及第二存储器中的与可信加载程序对应的第一验证数据,进而对第一验证数据和/第一输出数据进行解析处理,得到解析结果,最后根据得到的解析结果确定控制器的启动指示信息,以确定是否对控制器进行正常启动。
即该实施例中,通过配置的第二处理器,使得第一处理器加载第一存储器中的加载程序进行控制器的启动时,第二处理器能够同时快速便捷的监测加载过程中的输出数据,并将其与预先存储的验证数据一起进行分析处理,以确定当前启动过程中加载的程序是否可信,即实现了启动过程中加载程序的同步验证,降低了控制器的开发难度及可信启动时长,简化了控制器的可信启动过程。
可选的,本发明的一些实施例中,该第一验证数据可以为可信加载程序的加密数据。即该第一验证数据是通过对可信加载程序中的代码数据进行加密得到。则对该第一验证数据的解析处理,具体可以为对该第一验证数据的解密操作。
对应的,解析结果为对该第一验证数据解密后的数据。
则对应的,如图4所示,在CPLD的全局时钟下,在第二处理器中锁相环(PLL)逻辑模块中,其中的数据输入模块输入第一验证数据及第一输出数据至比较模块,比较模块对第一验证数据的解析,进而根据解析结果确定控制器的启动指示信息,即将解密后的数据与第一输出数据进行对比处理,若解密后的数据与第一输出数据一致,则可以确定该启动指示信息为第一指示符,即该控制器可以正常启动。并将该复位信号向第一处理器,如CPU发送,以使得第一处理器响应该复位信号,执行复位或正常启动操作。
可以理解,可以采用如哈希算法或取反等任意的加密方式,本发明实施例对此不做限制。
对应的,对该第一验证数据的解密操作,即为依照初始的加密方式,对该验证数据进行逆运算操作。
可以理解,本法实施例中,通过对可信加载程序进行加密操作,并存储至第二存储器中,使得在控制器中的第一处理器加载第一存储器中的待加载程序进行启动时,第二处理器能够监测第一存储器输出的传输数据,以及第二存储器中的对可信加载程序加密后得到的第一验证数据,进而对验证数据进行解密处理,最后将解密处理后的解析结果与监测到的第一输出数据进行比较,若两者一致,则表示该待加载程序为合法程序,能够进行正常的启动。
可选地,本发明的一些实施例中,该第一验证数据为通过对可信加载程序进行至少两次的算术运算处理得到。如对可信程序进行两次加法运算处理得到的。
则该实施例中,在获取到第一验证数据及第一输出数据时,可以对该第一验证数据及第一输出数据均进行解析处理,即依照上述的对可信加载程序的加法运算处理得到第一验证数据的处理方式,对该第一输出数据进行一次加法处理,得到该第一输出数据对应的解析结果;对应的,再对该第一验证数据进行一次减法处理,得到第一该验证数据对应的解析结果。
进一步,对于该解析结果,进行分析处理,即当该输出数据与该验证数据对应的解析结果一致,则确定该启动指示信息为第一指示符,即复位信号继续保持高电平,也即该第一处理器从第一存储器读取的待加载程序与可信加载程序一致,能够正常启动。
可以理解,该实施例中,通过对可信加载程序的连续两次算术运算处理,以使得在进行控制器的可信启动时,能够同时对监测到的第一输出数据,以及存储的第一验证数据进行解析处理,实现对待加载程序的合法性更加可靠的验证,即实现了可信启动过程中,对待加载程序的合法验证,提高了控制器可信启动的安全性及时效性。
可选地,本发明的一些实施例中,该第一验证数据为通过对可信加载程序进行算术运算处理得到。如对可信程序进行加法运算处理得到的。
则该实施例中,在获取到第一验证数据及第一输出数据时,可以对该第一输出数据进行解析处理,即依照上述的对可信加载程序的算术运算处理得到第一验证数据的处理方式,对该输出数据进行同样的运算处理,得到对应的解析结果。
进一步,对于该解析结果,进行分析处理,即当该第一输出数据与该第一验证数据对应的解析结果一致,则确定该启动指示信息为第一指示符,也即该第一处理器从第一存储器读取的预加载程序与可信加载程序一致,能够正常启动。
可以理解,该实施例中,通过对可信加载程序的算术运算处理得到验证数据,以使得在进行控制器的可信启动时,通过对监测到的输出数据进行同样的几何处理,实现对待加载程序的合法性更加可靠的验证,即实现了可信启动过程中,对待加载程序的合法验证,提高了控制器可信启动的安全性及时效性。
还可以理解,本发明实施例中,为了实现控制器的正常使用,还可以对于该控制器的第一存储器中的待加载程序进行更新。对应的,当对该第一存储器中的待加载程序进行更新处理时,需要对第二存储器中的用于对第一存储器中的待加载程序的合法性进行验证的第一验证数据进行同步更新。
如图5所示,该方法还包括:
S140,第二处理器接收第一处理器发送的待加载程序的更新请求。
S150,第二处理器响应更新请求,向该第一处理器发送确认消息,该确认消息用于指示该第一处理器向第一存储器传输该新加载程序。
S160,该第二处理器获取第二输出数据,该第二输出数据为该第一处理器向该第一存储器传输的新加载程序,该新加载程序用于更新该待加载程序。
S170,该第二处理器对该新加载程序进行运算处理,得到第二验证数据,并存储至该第二存储器,该第二验证数据用于在该控制器启动时,验证该第一处理器所加载程序的可信度。
具体地,对第一存储器中的待加载程序进行更新时,首先,第一处理器向该第二处理器发送更新请求,如通过GPIO接口向第二处理器发送。该第二处理器接收到该更新请求后,响应该更新请求,可以向该第一处理器回复确认消息,以确定当前可以执行加载程序更新操作。
可以理解,该第一处理器接收到该确认消息后,可以向该第一存储器传输新的加载程序。则该第二处理器可以监测该新加载程序,即能够获取的第二传输数据。
进一步,在第二处理器获取到该第二输出数据后,可以对该第二传输数据进行运算处理,以得到对应的第二验证数据,并存储至该第二存储器,以供加载该新加载程序时,该第二处理器验证新加载程序是否有无篡改。
例如,如图6所示,如可以对该第二传输数据进行加密处理,或者其他方式的运算处理得到该第二验证数据。
可以理解,本发明实施例中,在对第一存储器中的待加载程序进行更新时,通过接口向第二处理器发送更新请求,以使得该第二处理器能够响应该更新请求,并向第一处理器回复确认消息,以使得在第一处理器向第一存储器传输新加载程序时,能够该新加载程序,并对该新加载程序进行运算处理,以将运算处理得到的第二验证数据存储至第二存储器中,实现对待加载程序以及用于加载程序验证的验证数据的更新。
即在该控制器的系统架构下,能够在低成本的实现控制器的可信启动,以及对应的程序更新,有效降低了控制器的开发成本及复杂度。
还可以理解,本发明实施例中,该控制器中,对于第一存储器中的加载程序,以及第二存储器中的验证数据,在初始状态下,需要通过烧录的方式写入,即可以通过离线烧录和在线烧录两种方式实现。
例如,在离线烧录的方式,可以通过设置的工装,首先将初始加载程序,如Uboot及组态软件烧录到第一存储器中,将对应的验证数据烧录到第二存储器中,最后再焊接。
可以理解,通过上述方式烧录完成后,上电后的控制器可以进行启动,并进入工作状态。
另外,对于在线烧录方式下,具体的烧录包括如下步骤:
S01,该第二处理器获取烧录器中的初始加载程序,该初始加载程序为通过该烧录器烧录至该第一存储器的数据;
S02,该第二处理器对该初始加载程序进行运算处理,得到第三验证数据,并存储至该第二存储器,该第三验证数据用于在该控制器启动时,验证该第一处理器所加载程序的可信度。
具体地,如图7所示,在线烧录方式下,首先焊接控制器,然后将控制器上电。此时,控制器处于复位状态。则第二处理器进入工作状态时,烧录器可以通过连接器将初始加载程序,如U-boot及组态软件烧录至第一存储器。同时,实时读取第一存储器中的初始加载程序,并对其进行运算处理,以将处理后得到的第三验证数据存储至第二存储器中。最后,断开烧录器,控制器进入正常工作状态。
可以理解,本发明实施例中,对初始状态下的控制器,通过在线或离线的烧录方式,将初始的加载程序写入第一存储器,将验证数据写入第二存储器,使得控制器在上电后进入工作状态的启动程序时,即在第一处理器读取第一存储器中的加载程序进入启动流程后,第二处理器能够同步监测到第一存储器中被读取的数据,并读取第二存储器中的验证数据,以对当前加载的加载程序的可信度进行验证,最终实现控制器的启动与可信验证的同步进行,降低了控制器的开发难度及开发成本,提高了设计和调试的灵活。
另一发方面,如图8所示,本发明实施例还提供一种控制器可信启动装置,包括:
第一获取模块210,用于该获取第一输出数据及第一验证数据,该第一输出数据由该第一处理器加载该待加载程序时输出;
解析模块220,用于该对该第一验证数据和/或第一输出数据进行解析,得到解析结果;
确定模块230,用于根据该解析结果确定该控制器的启动指示信息,该启动指示信息表示是否述执行该控制器启动操作。
可选地,本发明实施例提供的控制器可信启动装置,该启动指示信息包括第一指示符及第二指示符,该第一指示符表示该执行该控制器的启动操作,该第二指示符表示执行该控制器复位操作。
可选地,本发明实施例提供的控制器可信启动装置,该第一验证数据通过对该可信加载程序加密处理得到,该解析模块具体用于:
该第二处理器对该第一验证数据进行解密,得到该解密数据,该解密数据作为该解析结果。
可选地,本发明实施例提供的控制器可信启动装置,该确定模块具体用于:
当该解密数据与该第一输出数据一致时,确定该启动指示信息为该第一指示符。
可选地,本发明实施例提供的控制器可信启动装置,该第一验证数据通过对该可信加载程序算术运算处理得到,该解析模块具体用于:
所述第二处理器对所述第一输出数据进行算术运算处理,得到所述解析结果,对所述第一输出数据的算术运算处理与对所述可信加载程序的算术运算处理方式相同。
可选地,本发明实施例提供的控制器可信启动装置,该确定模块具体用于:
当该运算数据与该第一输出数据一致时,确定该启动指示信息为该第一指示符。
可选地,本发明实施例提供的控制器可信启动装置,还包括:
第二获取模块240,用于获取第二输出数据,所述第二输出数据为所述第一处理器向所述第一存储器传输的新加载程序,所述新加载程序用于更新所述待加载程序;
第一处理模块250,用于对所述新加载程序进行运算处理,得到第二验证数据,并存储至所述第二存储器,所述第二验证数据用于在所述控制器启动时,验证所述第一处理器所加载程序的可信度。
可选地,本发明实施例提供的控制器可信启动装置,还包括:
接收模块260,用于接收所述第一处理器发送的所述待加载程序的更新请求;
响应模块270,用于响应所述更新请求,向所述第一处理器发送确认消息,所述确认消息用于指示所述第一处理器向所述第一存储器传输所述新加载程序。
可选地,本发明实施例提供的控制器可信启动装置,还包括:
第三获取模块280,用于获取烧录器中的初始加载程序,该初始加载程序为通过该烧录器烧录至该第一存储器的数据;
第二处理模块290,用于对该初始加载程序进行运算处理,得到第三验证数据,并存储至该第二存储器。
另一方面,本发明还提供一种控制器,如图1所示,该控制器包括第一处理器、第二处理器、第一存储器及第二存储器。该第一处理器上存储有可运行的计算机程序,该处理器执行该程序时实现如上所述的控制器可信启动方法。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的电子设备、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行电子设备、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行电子设备、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的电子设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的电子设备来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器,包括:第一获取模块、解析模块及确定模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,确定模块还可以被描述为“用于根据所述解析结果确定所述控制器的启动指示信息,所述启动指示信息表示是否述执行所述控制器启动”。
作为另一方面,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的第二处理器中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个计算机程序,当上述计算机程序被一个或者一个以上的处理器用来执行描述于本发明的控制器可信启动方法:
所述第二处理器获取第一输出数据及第一验证数据,所述第一输出数据由所述第一处理器加载所述待加载程序时输出;
所述第二处理器对所述第一验证数据和/或第一输出数据进行解析,得到解析结果;
根据所述解析结果确定所述控制器的启动指示信息,所述启动指示信息表示是否述执行所述控制器启动。
综上所述,本发明实施例提供的控制器可信启动方法和控制器,通过设置包括第一处理器、第二处理器、第一存储器及第二存储器的控制器,并使得在第一存储器中存储有待加载程序,第二存储器中存储有通过对可信加载程序运算处理得到的第一验证数据。则在该控制器进行启动时,即在控制器中的第一处理器加载第一存储器中的待加载程序进行启动时,第二处理器能够监测第一存储器输出的待加载程序,即第一输出数据,以及第二存储器中的与可信加载程序对应的第一验证数据,进而对第一验证数据和/第一输出数据进行解析处理,得到解析结果,最后根据得到的解析结果确定控制器的启动指示信息,以确定是否对控制器进行正常启动。
即该实施例中,通过配置的第二处理器,使得第一处理器加载第一存储器中的加载程序进行控制器的启动时,第二处理器能够同时快速便捷的监测加载过程中的输出数据,并将其与预先存储的验证数据一起进行分析处理,以确定当前启动过程中加载的程序是否可信,即实现了启动过程中加载程序的同步验证,降低了控制器的开发难度及可信启动时长,简化了控制器的可信启动过程。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
- 一种简捷调用微控制器内部启动程序的方法
- 一种信号控制器的输入方法及信号控制器系统
- 一种基于PID控制器整定降阶自抗扰控制器参数的方法
- 一种可信DCS控制器安全启动度量验证方法及相关装置
- 可信度量方法、可信芯片、逻辑控制器及可信度量系统