一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

命令交互的方法、装置、设备和存储介质与流程

2022-06-02 05:01:16 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别是涉及一种命令交互的方法、装置、设备和存储介质。


背景技术:

2.bmc(baseboard management controller,基板控制器)是部署于服务器的具有独立供电、独立i/o接口的控制单元,是服务器的大管家,它通过ipmi(intelligent platform management interface,智能平台管理接口)实现了对服务器的智能管理,如:监视服务器的运作状况、对服务器进行远程管理等。随着服务器的应用场景越来越广泛,那么,对bmc的要求自然也越来越高,如远程控制服务器启动顺序、通过bios(basic input/output system,基本输入输出系统)配置界面设置bmc网络参数、通过os(operating system,操作系统)对bmc进行操作等,这些功能均需要bios或os与bmc之间通过命令交互来协调完成。
3.在此背景下亟需一种安全的命令交互方法,来实现bios或os与bmc之间的命令交互。


技术实现要素:

4.基于此,本技术提供了一种命令交互的方法、装置、设备和存储介质,以提高安全性。
5.第一方面,提供一种命令交互的方法,该方法包括:
6.获取基本输入输出系统bios或操作系统os发往基板控制器bmc的命令;
7.对命令进行安全管控;
8.若命令安全,则将命令转发至bmc;否则,禁止将命令转发至bmc。
9.根据本技术实施例中一种可实现的方式,通过运行在lpc总线上的kcs协议接口执行所述获取基本输入输出系统bios或操作系统os发往基板控制器bmc的命令的步骤和所述将所述命令转发至所述bmc的步骤。
10.根据本技术实施例中一种可实现的方式,对命令进行安全管控,包括:
11.依据预设的控制列表,对命令进行安全管控;其中,控制列表包括白名单和/或黑名单。
12.根据本技术实施例中一种可实现的方式,该方法还包括:
13.控制列表被划分为不同阶段,该阶段包括:启动阶段、设置阶段以及启动完成阶段。
14.根据本技术实施例中一种可实现的方式,该方法还包括:
15.通过i2c总线的通道获取控制列表的配置信息,并依据获取的配置信息更新控制列表。
16.根据本技术实施例中一种可实现的方式,上述对命令进行安全管控之前,还包括:
17.识别bios或os当前所处的阶段;
18.依据识别出的阶段对应的控制列表,执行对命令进行安全管控的步骤。
19.根据本技术实施例中一种可实现的方式,识别bios或os当前所处的阶段,包括:
20.获取经过bios或os操作的gpio的取值;
21.根据gpio的取值,识别bios或os当前所处的阶段。
22.第二方面,提供了一种命令交互的装置,该装置包括:
23.获取模块,用于获取基本输入输出系统bios或操作系统os发往基板控制器bmc的命令;
24.安全管控模块,用于对命令进行安全管控;
25.处理模块,用于若命令安全,则将命令转发至bmc;否则,禁止将命令转发至bmc。
26.第三方面,提供了一种计算机设备,包括:
27.至少一个处理器;以及
28.与至少一个处理器通信连接的存储器;其中,
29.存储器存储有可被至少一个处理器执行的计算机指令,计算机指令被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面中涉及的方法。
30.第四方面,提供了一种计算机可读存储介质,其上存储有计算机指令,其特征在于,计算机指令用于使计算机执行上述第一方面中涉及的方法。
31.根据本技术提供的具体实施例,本技术所提供的技术方案可以具备以下优点:
32.通过对bios或os发往bmc的命令进行安全管控,以达到提高bios或os和bmc之间命令交互的安全性的效果。
附图说明
33.图1为一个实施例中一种命令交互的方法的硬件系统架构图;
34.图2为一个实施例中一种命令交互的方法的流程示意图;
35.图3为一个实施例中一种命令交互的方法的优选流程示意图;
36.图4为一个实施例中一种命令交互的装置的结构框图;
37.图5为一个实施例中计算机设备的示意性结构图。
具体实施方式
38.以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
39.在传统的实现方式中,bios或os与bmc之间可直接进行命令交互,但是,众所周知,带内通信一般有两个发起源,一个为bios,另一个为os。而bios作为服务器固件的一部分,均有签名认证,存在天然的安全性,因此,bios在开机启动阶段过程中发送的命令,基本是安全的。但bios在设置阶段过程中需要提供给用户可以对bmc的信息进行配置的接口,比如:用户对服务器进行设置或者是重启服务器等操作,此过程发送的命令便会有一些非法操作的产生。并且,当服务器对外提供业务时,通常需要连接外网,此时,即进入os操作系统阶段,由于os一般暴露在公网,随时有被入侵的风险,使得此过程的命令基本都不安全。
40.因此,这种传统的实现方式具备以下缺陷:
41.1)在bios系统的设置阶段,可能会有非法指令被操作;
42.2)在os操作系统阶段,随时有被入侵的风险。
43.鉴于此,本技术旨在提供一种新的命令交互的方式。下面结合实施例对本技术提供的技术内容进行描述。
44.为了方便理解,首先对本技术所适用的系统进行描述。本技术提供的一种命令交互的方法,可以应用于如图1所示的硬件系统架构中。该硬件系统包括:pch(platform controller hub,南桥芯片)、cpld(complex programmable logic device,可编程逻辑芯片)以及bmc(baseboard management controller,基板管理控制器)。
45.bios或os可以运行于pch,通过lpc(low pin count bus,总线)与bmc进行通信。
46.可以在pch和bmc之间设置本技术实施例提供的命令交互的装置用以提高bios或os与bmc之间命令交互的安全性。该命令交互的装置可以设置于诸如cpld、fpga等芯片上。在图1中以cpld为例进行描述。
47.pch通过lpc和gpio(general-purpose input/output,输入/输出线)与cpld进行通信,cpld通过lpc和i2c总线与bmc进行通信。各总线的作用将在后续实施例中详细描述。
48.图2为本技术实施例提供的一种命令交互的方法的流程图,该方法可以由如图1所示硬件系统中的cpld执行。如图2所示,该方法可以包括以下步骤:
49.步骤201,获取bios或os发往bmc的命令。
50.具体地,bios或os均为运行在pch上的软件系统,运行所处的阶段不同。bios是一组固化到计算机设备(包括计算机终端、服务器等)内主板上一个rom芯片上的程序,它保存着计算机设备最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。bios的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。通常计算机设备的启动是从bios开始的,bios启动完成后加载并运行os。
51.由于本技术实施例中,在pch和bmc之间设置了cpld,原本bios或os发送给bmc的命令首先发送至cpld。即cpld获取bios或os发往bmc的命令,这里的命令可以包括ipmi命令。bios或os可以通过运行在lpc上的kcs(keyboard controller style)接口协议将命令发往bmc的,即lpc两端通过kcs接口协议驱动实现bios或os与bmc之间的ipmi命令通信。
52.步骤203:对命令进行安全管控。
53.具体地,由于cpld获取bios或os发往bmc的命令可能存在不安全性,因此,需要对该ipmi命令进行安全管控,为bios或os与bmc之间的命令交互提供安全保障。这里关于安全管控的具体方式,将在以下实施例中进行详细介绍。
54.步骤205:若命令安全,则将命令转发至bmc;否则,禁止将命令转发至bmc。
55.具体地,当ipmi命令经过安全管控的操作,被判断是安全的时,则将ipmi命令转发至bmc;否则,禁止将ipmi命令转发至bmc。其中,cpld在将ipmi命令转发至bmc的过程也是通过运行在lpc上的kcs接口协议实现的。
56.可以看出,本技术实施例通过获取bios或os发往bmc的命令,对命令进行安全管控,在命令安全时,则将命令转发至bmc;否则,禁止将命令转发至bmc。通过上述的安全管控操作,使得bios或os发送给bmc的命令不会被全部转发,只有在命令安全时,才会被转发,从而,提高bios或os和bmc之间命令交互的安全性。
57.下面结合实施例重点对上述方法流程中步骤203即“对命令进行安全管控”进行详细描述。
58.作为其中一种可实现的方式,本步骤中可以依据预设的控制列表,对命令进行安全管控。以防止存在安全问题的命令到达bmc。这里的控制列表是预先设置于cpld内的,且控制列表包括白名单和/或黑名单。当然,除了控制列表这种方式之外,还可以采用其他方式来实现安全管控。此处不再做详细赘述。
59.由于控制列表包括白名单和/或黑名单,根据控制列表具体包括的信息,安全管控的操作步骤不同,例如:
60.在一种可实现的方式中,控制列表中仅包括白名单,对ipmi命令进行安全管控的操作为:将获取到的ipmi命令与白名单中的命令进行匹配,匹配成功即安全,则可将ipmi命令转发至bmc,否则,禁止将ipmi命令转发至bmc。
61.在另一种可实现的方式中,控制列表中仅包括黑名单,对ipmi命令进行安全管控的操作为:将获取到的ipmi命令与黑名单中的命令进行匹配,匹配成功即不安全,则禁止将ipmi命令转发至bmc,否则,可将ipmi命令转发至bmc。
62.在再一种可实现的方式中,控制列表中既包括白名单也包括黑名单,对ipmi命令进行安全管控的操作为:将获取到的ipmi命令分别或者先后和白名单、黑名单中的命令进行匹配,与白名单匹配成功即安全,则可将ipmi命令直接转发至bmc;与黑名单匹配成功即不安全,则禁止将ipmi命令转发至bmc。对于既未在黑名单又未在白名单中的命令,可以进一步结合其他安全识别策略来确定是否对其进行转发。
63.在一些情况下可以使用一种特殊的配置,例如在白名单中配置0xff。即代表当前所有ipmi命令均安全,若在黑名单中配置0xff,即当前所有ipmi命令均不安全。
64.在一些实施例中,控制列表被划分为不同阶段,其中,可以包括但不限于启动阶段、设置阶段以及启动完成阶段。
65.具体地,由于控制列表处于不同阶段时,cpld对ipmi命令的管控策略是不一样的,因此,控制列表被划分为不同阶段,每个阶段的控制列表的配置信息均不相同,方便对处于不同阶段的ipmi命令进行管控,以满足bios或os和bmc之间命令交互安全的多样性需求。还需要强调的是,这里阶段的划分结果不是唯一的,可以采用更粗粒度的划分方式,也可以采用更细粒度的划分方式,具体可根据实际需求进行。
66.下面对控制列表处于不同阶段时的安全管控具体举例说明一下,例如:当控制列表处于启动阶段时,cpld允许所有的ipmi命令均可被转发至bmc,则启动阶段的控制列表可仅包括白名单,将0xff写入白名单即可;当控制列表处于设置阶段时,cpld允许功能配置指令,但不允许用户的删除修改指令被转发,则设置阶段的控制列表可仅包括黑名单,将删除修改指令写入黑名单即可;当控制列表处于启动完成阶段时,cpld只允许查询命令被转发,则启动完成阶段的控制列表可既包括白名单又包括黑名单,将查询命令写入白名单,将0xff写入黑名单,并配置优先适用白名单。
67.在一些实施例中,可以通过i2c总线的通道获取控制列表的配置信息,并依据获取的配置信息更新控制列表。
68.具体地,bmc还可以通过i2c总线通道与cpld进行通信;同时,cpld可通过该总线对控制列表的配置信息进行修改,由于控制列表的配置信息属于高特权命令,因此,只允许通过该总线实现对控制列表的配置信息的修改。从而,为控制列表提供了灵活方便的可配置特性。例如,通过i2c总线接收控制列表的配置信息,以实现对控制列表配置信息的修改。
69.作为另一种可实现的方式,在步骤203之前,可进一步包括如下步骤:
70.识别bios或os当前所处的阶段;
71.依据识别出的阶段对应的控制列表,执行对命令进行安全管控的步骤。
72.具体地,识别bios或os当前所处的阶段,其中,bios当前所处阶段包括启动阶段和设置阶段,os当前所处阶段包括启动完成阶段;且bios或os当前所处的阶段与控制列表的阶段一一匹配对应;即启动阶段对应于处于启动阶段的控制列表,设置阶段对应于处于设置阶段的控制列表,启动完成阶段对应于处于启动完成阶段的控制列表。
73.依据识别出的阶段对应的控制列表,执行对命令进行安全管控的步骤。这里具体举例说明如下:
74.若识别出的阶段为启动阶段,即表示bios当前处于启动阶段。众所周知,bios的启动阶段是需要经过签名校验的,基本所有的ipmi命令均为安全可信的,即cpld直接依据和其相对应的预设的启动阶段的控制列表对ipmi命令进行安全管控即可。
75.若识别出的阶段为设置阶段,即表示bios当前处于设置阶段。众所周知,bios处于设置阶段时,需要提供给用户可以对bmc的信息进行配置的接口,因此,有部分命令是不安全的,不允许部分命令通过,即cpld直接依据和其相对应的预设的设置阶段的控制列表对ipmi命令进行安全管控即可。
76.若识别出的阶段为启动完成阶段,即表示os处于启动完成阶段。众所周知,os处于启动完成阶段时,os一般暴露在公网,随时有被入侵的风险,因此,需要对ipmi命令进行严格的管控,仅允许少部分ipmi命令通过,即cpld直接依据和其相对应的预设的启动完成阶段的控制列表对ipmi命令进行安全管控即可。
77.作为一种可实现的方式,获取经过bios或os操作的gpio的取值;
78.根据gpio的取值,识别bios或os当前所处的阶段。
79.具体地,由于pch与cpld之间还通过gpio进行通信,获取经过bios或os操作的gpio的取值;其中,gpio的取值包括0、1以及2。这里gpio的取值也不是唯一的,只要能将其区分以及与bios或os当前所处阶段相对应即可。
80.由于gpio的取值和bios或os当前所处阶段是一一对应匹配的关系,即取值0对应于bios的启动阶段;取值1对应于bios的设置阶段;取值2对应于os的启动完成阶段,因此,根据gpio的取值,即可识别bios或os当前所处阶段。
81.结合上述实施例中的实现方式,下面结合图3对本技术实施例提供的一优选的方法流程进行举例描述。如图3所示,该方法可以包括以下步骤:
82.s310,获取bios或os发往bmc的命令。
83.s320,获取经过bios或os操作的gpio的取值。
84.s330,根据gpio的取值,识别bios或os当前所处阶段。当取值为0时,则bios当前所处的阶段为启动阶段;当取值为1时,则bios当前所处的阶段为设置阶段;当取值为2时,则os当前所处的阶段为启动完成阶段。
85.s340,依据识别出的阶段对应的控制列表,执行对命令进行安全管控的步骤。当识别出的阶段为启动阶段时,依据对应的启动阶段的控制列表,执行对命令进行安全管控的步骤;当识别出的阶段为设置阶段时,依据对应的设置阶段的控制列表,执行对命令进行安全管控的步骤;当识别出的阶段为启动完成阶段时,依据对应的启动完成阶段的控制列表,
执行对命令进行安全管控的步骤。
86.s350,若命令安全,则将命令转发至bmc;否则,禁止将命令转发至bmc。
87.上述流程仅为一个优选实施例,还可以采用其它方式,此处不再赘述。
88.但这里需要强调的是,一般服务器开机需要依次经过bios开机启动状态-bios开机设置状态-os启动完成状态这3个阶段后实现服务器的开机过程,但是,不论这个过程中的哪个阶段均需要使用到上述实施例提供的优选方法流程。
89.应该理解的是,虽然2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本技术中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
90.上述方法实施例可以应用于多种应用场景,例如可以包括但不限于以下应用场景:
91.随着计算机技术以及集成电路技术的飞速发展,各类服务器机房的建设也在持续增长,机房的管理和维护也显得越来越重要。上述实施例为运行在服务器主板上的一种命令交互的方法,用于实现对主板的运行健康状态的监控以及管理。
92.图4为本技术实施例提供的一种命令交互的装置的结构示意图,该装置可以设置于图1所示的硬件系统中,用以执行如图2中所示的方法流程。如图4所示,该装置可以包括:获取模块401、安全管控模块403和处理模块405。其中各组成模块的主要功能如下:
93.获取模块401,用于获取bios或os发往bmc的命令;
94.安全管控模块403,用于对命令进行安全管控;
95.处理模块405,用于若命令安全,则将命令转发至bmc;否则,禁止将命令转发至bmc。
96.在一些实施例中,该装置通过运行在lpc总线上的kcs协议接口执行所述获取基本输入输出系统bios或操作系统os发往基板控制器bmc的命令的步骤和所述将所述命令转发至所述bmc的步骤。
97.在一些实施例中,安全管控模块403,具体用于:
98.依据预设的控制列表,对命令进行安全管控;其中,控制列表包括白名单和/或黑名单。
99.在一些实施例中,该装置还包括:
100.控制列表被划分为不同阶段,该阶段包括:启动阶段、设置阶段以及启动完成阶段。
101.在一些实施例中,该装置还包括:
102.通过i2c总线的通道获取控制列表的配置信息,并依据获取的配置信息更新控制列表。
103.在一些实施例中,该装置在安全管控模块403之前,还包括:
104.识别bios或os当前所处的阶段;
105.依据识别出的阶段对应的控制列表,执行对命令进行安全管控的步骤。
106.在一些实施例中,该装置在安全管控模块403之前,还包括:
107.获取经过bios或os操作的gpio的取值;
108.根据gpio的取值,识别bios或os当前所处的阶段。
109.上述各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
110.需要说明的是,本技术实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如用户明确同意,对用户切实通知,用户明确授权等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
111.根据本技术的实施例,本技术还提供了一种计算机设备、一种计算机可读存储介质。
112.如图5所示,是根据本技术实施例的计算机设备的框图。计算机设备旨在表示各种形式的数字计算机或移动装置。其中数字计算机可以包括台式计算机、便携式计算机、工作台、个人数字助理、服务器、大型计算机和其它适合的计算机。移动装置可以包括平板电脑、智能电话、可穿戴式设备等。
113.如图5所示,设备500包括计算单元501、rom 502、ram 503、总线504以及输入/输出(i/o)接口505,计算单元501、rom 502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
114.计算单元501可以根据存储在只读存储器(rom)502中的计算机指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机指令,来执行本技术方法实施例中的各种处理。计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501可以包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。在一些实施例中,本技术实施例提供的方法可被实现为计算机软件程序,其被有形地包含于计算机可读存储介质,例如存储单元508。
115.ram 503还可存储设备500操作所需的各种程序和数据。计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。
116.设备500中的输入单元506、输出单元507、存储单元508和通信单元509可以连接至i/o接口505。其中,输入单元506可以是诸如键盘、鼠标、触摸屏、麦克风等;输出单元507可以是诸如显示器、扬声器、指示灯等。设备500能够通过通信单元509与其他设备进行信息、数据等的交换。
117.需要说明的是,该设备还可以包括实现正常运行所必需的其他组件。也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
118.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件和/或它们的组合中实现。
119.用于实施本技术的方法的计算机指令可以采用一个或多个编程语言的任何组合
来编写。这些计算机指令可以提供给计算单元y01,使得计算机指令当由诸如处理器等计算单元y01执行时使执行本技术方法实施例中涉及的各步骤。
120.本技术提供的计算机可读存储介质可以是有形的介质,其可以包含或存储计算机指令,用以执行本技术方法实施例中涉及的各步骤。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的等形式的存储介质。
121.上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献