一种可编程逻辑器件及其启动方法、系统和存储介质与流程

文档序号:16529829发布日期:2019-01-05 10:39阅读:175来源:国知局
一种可编程逻辑器件及其启动方法、系统和存储介质与流程

本申请涉及计算机技术领域,更具体地说,涉及一种可编程逻辑器件启动方法、系统及一种可编程逻辑器件和一种计算机可读存储介质。



背景技术:

cpld(中文全称:复杂可编程逻辑器件,英文全称:complexprogrammablelogicdevice),是从pal(中文全称:可编程阵列逻辑,英文全称:programmablearraylogic)和gal(中文全称:通用阵列逻辑,英文全称:genericarraylogic)器件发展出来的器件,属于大规模集成电路范围,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。服务器中的cpld可以实现主板的上电时序控制,一旦cpld固件被植入恶意代码或者病毒,将导致主板的各器件电压不稳定甚至烧毁器件,从而对服务器造成巨大的威胁。

现有技术中,在服务器上电之后,没有经过安全的验证过程,直接运行cpld,从而启动系统。上述启动方法无法保证在cpld启动时,cpld固件是没有被植入恶意代码的安全可信的固件,因此恶意的cpld固件可能会影响服务器主板的上电时序,从而对整个服务器的安全造成巨大的威胁。

因此,如何提高可编程逻辑器件固件程序的安全性是本领域技术人员需要解决的问题。



技术实现要素:

本申请的目的在于提供一种可编程逻辑器件启动方法、系统及一种可编程逻辑器件和一种计算机可读存储介质,提高了可编程逻辑器件固件程序的安全性。

为实现上述目的,本申请提供了一种可编程逻辑器件启动方法,包括:

当服务器系统上电后,判断所述可编程逻辑器件是否为第一次启动;

若是,则调用哈希算法对所述可编程逻辑器件中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述可编程逻辑器件;

若否,则获取所述可编程逻辑器件中的当前程序,并调用所述哈希算法对所述当前程序进行哈希运算得到当前哈希值;

对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述可编程逻辑器件。

其中,判断所述可编程逻辑器件是否为第一次启动之前,还包括:

所述服务器系统中的bios进行自检操作,自检合格后执行判断所述可编程逻辑器件是否为第一次启动的步骤。

其中,判断所述可编程逻辑器件是否为第一次启动,包括:

判断所述服务器系统中是否存储有所述基准哈希值;

若否,则所述可编程逻辑器件为第一次启动。

其中,所述可编程逻辑器件具体为cpld。

其中,所述哈希算法具体为sm3算法。

为实现上述目的,本申请提供了一种可编程逻辑器件启动系统,包括:

判断模块,用于当服务器系统上电后,判断所述可编程逻辑器件是否为第一次启动;若是,则启动第一计算模块的工作流程,若否,则启动第二计算模块的工作流程;

所述第一计算模块,用于调用哈希算法对所述可编程逻辑器件中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述可编程逻辑器件;

所述第二计算模块,用于获取所述可编程逻辑器件中的当前程序,并调用所述哈希算法对所述当前程序进行哈希运算得到当前哈希值;

对比模块,用于对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述可编程逻辑器件。

其中,还包括:

自检模块,用于所述服务器系统中的bios进行自检操作,自检合格后启动所述判断模块的工作流程。

其中,所述判断模块具体为当所述可编程逻辑器件上电后,判断所述服务器系统中是否存储有所述基准哈希值;若否,则启动第一计算模块的工作流程,若是,则启动第二计算模块的工作流程的模块。

为实现上述目的,本申请提供了一种可编程逻辑器件,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述可编程逻辑器件启动方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述可编程逻辑器件启动方法的步骤。

通过以上方案可知,本申请提供的一种可编程逻辑器件启动方法,包括:当服务器系统上电后,判断所述可编程逻辑器件是否为第一次启动;若是,则调用哈希算法对所述可编程逻辑器件中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述可编程逻辑器件;若否,则获取所述可编程逻辑器件中的当前程序,并调用所述哈希算法对所述当前程序进行哈希运算得到当前哈希值;对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述可编程逻辑器件。

可编程逻辑器件第一次启动时为合法程序,此时计算该合法程序的哈希值作为基准哈希值存储在服务器系统的内部,当该器件不为第一次启动时,计算当前程序的哈希值并与内部存储的基准哈希值比对,若一致,则说明固件程序未被篡改,可启动该可编程逻辑器件,若不一致,则说明固件程序有可能被恶意攻击,此处断电退出系统可保证器件的安全性。由此可见,本申请提供的可编程逻辑器件启动方法,在启动前进行安全性验证,有效提高了可编程逻辑器件固件程序的安全性。本申请还公开了一种可编程逻辑器件启动系统及一种可编程逻辑器件和一种计算机可读存储介质,同样能实现上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种可编程逻辑器件启动方法的流程图;

图2为本申请实施例公开的另一种可编程逻辑器件启动方法的流程图;

图3为本申请实施例公开的一种可编程逻辑器件启动系统的结构图;

图4为本申请实施例公开的一种可编程逻辑器件的结构图;

图5为本申请实施例公开的另一种可编程逻辑器件的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种可编程逻辑器件启动方法,提高了可编程逻辑器件固件程序的安全性。

参见图1,本申请实施例公开的一种可编程逻辑器件启动方法的流程图,如图1所示,包括:

s101:当服务器系统上电后,判断所述可编程逻辑器件是否为第一次启动;若是,则进入s102,若否,则进入s103;

本实施例提供的可编程逻辑器件启动方法可应用于如cpld可编程逻辑器件中。具体的,当可编程逻辑器件上电后,判断该可编程逻辑器件是否为第一次启动,若是,则进入s102,若否,则进入s103。

在具体实施中,可以通过判断服务器系统中是否存储有基准哈希值的方式判断该可编程逻辑器件是否为第一次启动,该服务器系统为该可编程逻辑器件所在的系统。该基准哈希值为可编程逻辑器件第一次启动时对合法程序进行哈希计算得到的。若可编程逻辑器件中存在基准哈希值,则说明该可编程逻辑器件不为第一次启动,相反若不存在,则该可编程逻辑器件为第一次启动。

作为一种优选实施方式,在判断所述可编程逻辑器件是否为第一次启动之前,还包括服务器系统中的bios(中文全称:基本输入输出系统,英文全称:basicinputoutputsystem)进行自检操作的步骤。bios进行post(中文全称:上电自检,英文全称:poweronselftest)操作为本领域技术人员的常用技术手段,在此不进行赘述。自检合格后进入s102或s103.

s102:调用哈希算法对所述可编程逻辑器件中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述可编程逻辑器件;

可以理解的是,可编程逻辑器件第一次启动时为合法程序,此时计算该合法程序的哈希值作为基准哈希值存储在服务器系统的内部,具体可以存储在tcm(中文全称:可信密码模块,英文全称:trustedcryptographymodule)芯片的相应pcr(中文全称:平台配置寄存器,英文全称:platformconfigurationregister)中。本实施例不对具体的哈希算法进行限定,本领域技术人员可以根据实际采用的可编程逻辑器件的不同,选择如sm3算法等合适的哈希算法。

s103:获取所述可编程逻辑器件中的当前程序,并调用所述哈希算法对所述当前程序进行哈希运算得到当前哈希值;

在具体实施中,当可编程逻辑器件不为第一次启动时,获取当前程序并调用与上一步骤相同的哈希算法进行哈希运算得到当前哈希值。当该当前哈希值与基准哈希值一致时,说明固件程序未被篡改,可启动该可编程逻辑器件,不一致时说明固件程序有可能被恶意攻击,此处可以断电退出系统以保证器件的安全性。

s104:对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述可编程逻辑器件。

可编程逻辑器件第一次启动时为合法程序,此时计算该合法程序的哈希值作为基准哈希值存储在服务器系统的内部,当该器件不为第一次启动时,计算当前程序的哈希值并与内部存储的基准哈希值比对,若一致,则说明固件程序未被篡改,可启动该可编程逻辑器件,若不一致,则说明固件程序有可能被恶意攻击,此处断电退出系统可保证器件的安全性。由此可见,本申请实施例提供的可编程逻辑器件启动方法,在启动前进行安全性验证,有效提高了可编程逻辑器件固件程序的安全性。

本申请实施例公开了一种可编程逻辑器件启动方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

参见图2,本申请实施例提供的另一种可编程逻辑器件启动方法的流程图,如图2所示,包括:

s211:当服务器系统上电后,服务器系统的bios进行自检操作;

s212:自检合格后判断tcm的pcr中是否存储有所述基准哈希值;若是,则进入s203,若否,则进入s202;

s202:调用sm3算法对所述cpld中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述cpld;

s203:获取所述cpld中的当前程序,并调用sm3算法对所述当前程序进行哈希运算得到当前哈希值;

s204:对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述cpld。

下面对本申请实施例提供的一种可编程逻辑器件启动系统进行介绍,下文描述的一种可编程逻辑器件启动系统与上文描述的一种可编程逻辑器件启动方法可以相互参照。

参见图3,本申请实施例提供的一种可编程逻辑器件启动系统的结构图,如图3所示,包括:

判断模块301,用于当服务器系统上电后,判断所述可编程逻辑器件是否为第一次启动;若是,则启动第一计算模块的工作流程,若否,则启动第二计算模块的工作流程;

所述第一计算模块302,用于调用哈希算法对所述可编程逻辑器件中的合法程序进行哈希运算得到基准哈希值,存储所述基准哈希值并启动所述可编程逻辑器件;

所述第二计算模块303,用于获取所述可编程逻辑器件中的当前程序,并调用所述哈希算法对所述当前程序进行哈希运算得到当前哈希值;

对比模块304,用于对比所述当前哈希值与所述基准哈希值,若对比结果一致,则启动所述可编程逻辑器件。

可编程逻辑器件第一次启动时为合法程序,此时计算该合法程序的哈希值作为基准哈希值存储在服务器系统的内部,当该器件不为第一次启动时,计算当前程序的哈希值并与内部存储的基准哈希值比对,若一致,则说明固件程序未被篡改,可启动该可编程逻辑器件,若不一致,则说明固件程序有可能被恶意攻击,此处断电退出系统可保证器件的安全性。由此可见,本申请实施例提供的可编程逻辑器件启动系统,在启动前进行安全性验证,有效提高了可编程逻辑器件固件程序的安全性。

在上述实施例的基础上,作为一种优选实施方式,还包括:

自检模块,用于所述服务器系统中的bios进行自检操作,自检合格后启动所述判断模块的工作流程。

在上述实施例的基础上,作为一种优选实施方式,所述判断模块具体为当所述服务器系统上电后,判断所述服务器系统中是否存储有所述基准哈希值;若否,则启动第一计算模块的工作流程,若是,则启动第二计算模块的工作流程的模块。

在上述实施例的基础上,作为一种优选实施方式,所述可编程逻辑器件具体为cpld。

在上述实施例的基础上,作为一种优选实施方式,所述哈希算法具体为sm3算法。

本申请还提供了一种可编程逻辑器件,参见图4,本申请实施例提供的一种可编程逻辑器件的结构图,如图4所示,包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现上述任一实施例所提供的可编程逻辑器件启动方法的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为可编程逻辑器件提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现上述任一实施例所提供的可编程逻辑器件启动方法的步骤。

可编程逻辑器件第一次启动时为合法程序,此时计算该合法程序的哈希值作为基准哈希值存储在服务器系统内部,当该器件不为第一次启动时,计算当前程序的哈希值并与内部存储的基准哈希值比对,若一致,则说明固件程序未被篡改,可启动该可编程逻辑器件,若不一致,则说明固件程序有可能被恶意攻击,此处断电退出系统可保证器件的安全性。由此可见,本申请实施例提供的可编程逻辑器件,在启动前进行安全性验证,有效提高了可编程逻辑器件固件程序的安全性。

在上述实施例的基础上,作为优选实施方式,参见图5,所述可编程逻辑器件还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200发送的数据。该显示单元400可以为pc机上的显示屏、液晶显示屏或者电子墨水显示屏等。具体的,在本实施例中,可以通过显示单元400显示可编程逻辑器件的安全性验证结果等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所提供的可编程逻辑器件启动方法的步骤。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1