LPC总线安全访问方法、系统、终端及存储介质与流程

文档序号:31870585发布日期:2022-10-21 19:03阅读:319来源:国知局
LPC总线安全访问方法、系统、终端及存储介质与流程
lpc总线安全访问方法、系统、终端及存储介质
技术领域
1.本发明涉及服务器技术领域,具体涉及一种lpc总线安全访问方法、系统、终端及存储介质。


背景技术:

2.服务器中除cpu以外,运行了一个独立于cpu的系统bmc,bmc用来对服务器的主板进行监控,并提供对外的接口,对外的接口主要包括ipmi等多种形式。
3.ipmi可以通过网络、lpc以及i2c对外提供服务,目前bmc和cpu之间普遍采用lpc这种方式。lpc总线(low pin count bus),是在ibm pc兼容机中用于把低带宽设备和“老旧设备”连接到cpu上。那些常见低速设备有:bios,串口,并口,ps/2的键盘和鼠标,软盘控制器,比较新的设备有可信平台模块。lpc总线通常和主板上的南桥物理相连,南桥在ibm pc at平台上通常连接了一系列的“老旧”设备,例如两个可编程中断控制器,可编程计时器和两个isa dma控制器。
4.现有的基于lpc的通信方案中,运行在cpu上的操作系统无需获取任何额外的权限便可以通过基于lpc的ipmi对bmc进行控制,存在安全隐患。


技术实现要素:

5.针对现有技术由于运行在cpu上的操作系统无需获取任何额外的权限便可以通过基于lpc的ipmi对bmc进行控制而导致的安全隐患,本发明提供一种lpc总线安全访问方法、系统、终端及存储介质,以解决上述技术问题。
6.第一方面,本发明提供一种lpc总线安全访问方法,包括:
7.设置bios在默认状态下不对lpc总线进行初始化;
8.在bios内设置lpc总线访问密钥对,所述密钥对包括公钥和私钥;
9.bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求;
10.bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线。
11.进一步的,在bios内设置lpc总线访问密钥对,包括:
12.bios为不同项目分别设置项目专属的数字证书,所述数字证书包括公钥和私钥组成的密钥对;
13.bios将lpc初始化项目的内置数字证书的公钥发送至操作系统。
14.进一步的,bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求,包括:
15.bios预先将各项目对应的加解密算法和密钥对保持至请求解析列表;
16.bios在接收到操作系统发送的加密请求后,从所述请求解析列表查找对应的加解密算法和私钥对所述加密请求进行解密。
17.进一步的,所述方法还包括:
18.bios将项目公钥和项目编码同步发送至操作系统,以便操作系统利用所述项目编码标记基于项目公钥生成的加密请求;
19.bios从加密请求提取项目编码,并根据所述项目编码从请求解析列表中查找对应的加解密算法和私钥,所述请求解析列表以映射的方式保存项目编码、加解密算法和私钥。
20.进一步的,bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线,包括:
21.bios基于所述lpc总线开启请求调用初始化所述lpc总线的功能项,执行对lpc总线的初始化;
22.bios在lpc总线初始化完成后读取lpc地址;
23.bios将lpc地址刷新至高级配置和电源管理接口的寄存器。
24.进一步的,在bios将lpc地址刷新至高级配置和电源管理接口的寄存器之后,所述方法还包括:
25.操作系统创建监控线程,通过所述监控线程监控所述寄存器是否存在数据更新;
26.若所述监控线程监控到所述寄存器存在数据更新,则从寄存器读取更新的lpc地址;
27.操作系统基于所述lpc地址对bmc接口层驱动重新初始化,以获取访问lpc的权限。
28.第二方面,本发明提供一种lpc总线安全访问系统,包括:
29.默认设置单元,用于设置bios在默认状态下不对lpc总线进行初始化;
30.加密设置单元,用于在bios内设置lpc总线访问密钥对,所述密钥对包括公钥和私钥;
31.请求解析单元,用于bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求;
32.请求执行单元,用于bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线。
33.进一步的,所述加密设置单元包括:
34.秘钥生成模块,用于bios为不同项目分别设置项目专属的数字证书,所述数字证书包括公钥和私钥组成的密钥对;
35.公钥发布模块,用于bios将lpc初始化项目的内置数字证书的公钥发送至操作系统。
36.进一步的,所述请求解析单元包括:
37.信息保存模块,用于bios预先将各项目对应的加解密算法和密钥对保持至请求解析列表;
38.信息查找模块,用于bios在接收到操作系统发送的加密请求后,从所述请求解析列表查找对应的加解密算法和私钥对所述加密请求进行解密。
39.进一步的,所述系统还包括:
40.请求标记模块,用于bios将项目公钥和项目编码同步发送至操作系统,以便操作
系统利用所述项目编码标记基于项目公钥生成的加密请求;
41.标记解析模块,用于bios从加密请求提取项目编码,并根据所述项目编码从请求解析列表中查找对应的加解密算法和私钥,所述请求解析列表以映射的方式保存项目编码、加解密算法和私钥。
42.进一步的,所述请求执行单元包括:
43.功能执行模块,用于bios基于所述lpc总线开启请求调用初始化所述lpc总线的功能项,执行对lpc总线的初始化;
44.地址读取模块,用于bios在lpc总线初始化完成后读取lpc地址;
45.地址刷新模块,用于bios将lpc地址刷新至高级配置和电源管理接口的寄存器。
46.进一步的,所述请求执行单元还包括:
47.线程创建模块,用于操作系统创建监控线程,通过所述监控线程监控所述寄存器是否存在数据更新;
48.地址获取模块,用于若所述监控线程监控到所述寄存器存在数据更新,则从寄存器读取更新的lpc地址;
49.权限获取模块,用于操作系统基于所述lpc地址对bmc接口层驱动重新初始化,以获取访问lpc的权限。
50.第三方面,提供一种终端,包括:
51.处理器、存储器,其中,
52.该存储器用于存储计算机程序,
53.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
54.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
55.本发明的有益效果在于,本发明提供的lpc总线安全访问方法、系统、终端及存储介质,通过设置bios使其在默认状态下不对lpc总线进行初始化,然后在操作系统需要开启lpc时向bios发送基于公钥加密的请求,由bios利用匹配的私钥解密后识别请求并根据请求执行对lpc总线的初始化。本发明通过对lpc初始化的过程进行变更,在对lpc初始化过程中加入对cpu请求进行识别的步骤,从而避免了其它恶意请求登录篡改bmc,提升了服务器的安全性能。
56.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1是本发明一个实施例的方法的示意性流程图。
59.图2是本发明一个实施例的方法的另一示意性流程图。
60.图3是本发明一个实施例的系统的示意性框图。
61.图4为本发明实施例提供的一种终端的结构示意图。
management)、温度管理(thermal management)、嵌入式控制器(embedded controller)、smbus控制器(smbus controller)。windows 98是支持acpi的第一个微软的操作系统。freebsd v5.0是支持acpi的第一个unix操作系统linux、netbsd和openbsd都至少有一些支持acpi。
68.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种lpc总线安全访问系统。
69.如图1所示,该方法包括:
70.步骤110,设置bios在默认状态下不对lpc总线进行初始化;
71.步骤120,在bios内设置lpc总线访问密钥对,所述密钥对包括公钥和私钥;
72.步骤130,bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求;
73.步骤140,bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线。
74.具体地,该方法包括:a)bios默认不对lpc总线进行初始化;b)服务器操作系统需要开启lpc时,先使用bios的公钥对控制指令加密,并传递给bios;c)bios对指令进行解密,解密通过后开启lpc总线,并刷新acpi;d)服务器操作系统监控acpi,发生变化后对ipmi_si驱动重新初始化。该方法通过设置bios使其在默认状态下不对lpc总线进行初始化,然后在操作系统需要开启lpc时向bios发送基于公钥加密的请求,由bios利用匹配的私钥解密后识别请求并根据请求执行对lpc总线的初始化。本发明通过对lpc初始化的过程进行变更,在对lpc初始化过程中加入对cpu请求进行识别的步骤,从而避免了其它恶意请求登录篡改bmc,提升了服务器的安全性能。
75.为了便于对本发明的理解,下面以本发明lpc总线安全访问方法的原理,结合实施例中对lpc总线进行安全访问的过程,对本发明提供的lpc总线安全访问方法做进一步的描述。
76.现有方案中,bios在开机过程中会将lpc总线初始化,并通过acpi传递给操作系统,操作系统从acpi读取lpc地址,然后开始初始化bios接口层驱动,初始化完成后操作系统即可正常通过lpc访问bmc。显然,现有技术中,操作系统无需获取任何额外的权限便可以通过基于lpc的ipmi对bmc进行控制。
77.现有的方案中运行在cpu上的os无需获取任何额外的权限便可以通过基于lpc的ipmi对bmc进行控制,存在安全隐患。基于这一技术问题,本技术提供一种lpc总线安全访问方法,具体的,请参考图2,所述方法包括:
78.s1、设置bios在默认状态下不对lpc总线进行初始化。
79.更新bios的初始配置,设置在默认状态下不启动lpc总线初始化功能项。重启服务器以使配置生效,修改后的bios在开机过程中不再对lpc总线进行初始化。
80.s2、在bios内设置lpc总线访问密钥对,所述密钥对包括公钥和私钥。
81.bios为不同项目分别设置项目专属的数字证书,所述数字证书包括公钥和私钥组成的密钥对;bios将lpc初始化项目的内置数字证书的公钥发送至操作系统。
82.具体地,为增强bios的安全性,可为重要功能项设置专属的内置数字证书,内置数
字证书包括公钥和私钥组成的密钥对。bios将公钥发送至需要调用功能项的目标交互端。例如,bios将lpc总线初始化功能项的内置数字证书中的公钥发送至操作系统,操作系统将接收的公钥保存至lpc初始化请求存储模块。此外,若有多个功能项均需发送秘钥至操作系统,则需要对公钥进行区分,此时各功能项使用的密钥对是不同的,选择不同的密钥对以避免由于某个密钥对泄漏导致的全部功能项密钥对泄漏。为了对各功能项进行区分,为各功能项生成项目编码,如编码001表示lpc总线初始化功能项。将项目编码与公钥绑定后发送至操作系统。
83.通过为功能项目生成内置数字证书,并将公钥和私钥保存在数字证书保证了私钥的安全性。
84.s3、bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求。
85.bios预先将各项目对应的加解密算法和密钥对保持至请求解析列表;bios在接收到操作系统发送的加密请求后,从所述请求解析列表查找对应的加解密算法和私钥对所述加密请求进行解密。具体地,bios将项目公钥和项目编码同步发送至操作系统,以便操作系统利用所述项目编码标记基于项目公钥生成的加密请求;bios从加密请求提取项目编码,并根据所述项目编码从请求解析列表中查找对应的加解密算法和私钥,所述请求解析列表以映射的方式保存项目编码、加解密算法和私钥。
86.bios在将项目编码与公钥绑定后发送至操作系统后,操作系统在发送lpc初始化请求时,利用公钥及rsa加密算法对lpc初始化请求进行加密,得到加密请求。将项目编码写入加密请求的头部。bios在接收到操作系统发送的加密请求后,从请求头部提取项目编码,根据项目编码确认是请求lpc总线初始化功能项。从lpc总线初始化功能项的内置数字证书读取私钥,并利用私钥对加密请求进行解密,得到lpc初始化请求。
87.s4、bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线。
88.bios基于所述lpc总线开启请求调用初始化所述lpc总线的功能项,执行对lpc总线的初始化;bios在lpc总线初始化完成后读取lpc地址;bios将lpc地址刷新至高级配置和电源管理接口的寄存器。操作系统创建监控线程,通过所述监控线程监控所述寄存器是否存在数据更新;若所述监控线程监控到所述寄存器存在数据更新,则从寄存器读取更新的lpc地址;操作系统基于所述lpc地址对bmc接口层驱动重新初始化,以获取访问lpc的权限。
89.操作系统在向bios发送加密请求后,创建监控线程,实时监控高级配置和电源管理接口的寄存器的数据更新情况,以便及时获取到lpc地址。然后操作系统即可基于lpc地址对ipmi_si驱动重新初始化。初始化完成后操作系统即可与bmc通过lpc总线正常通信。
90.相较于现有技术的lpc总线初始化方法,本技术保证了对登录bmc的对象的身份识别,避免恶意请求通过lpc总线登录bmc甚至篡改bmc。
91.如图3所示,该系统300包括:
92.默认设置单元310,用于设置bios在默认状态下不对lpc总线进行初始化;
93.加密设置单元320,用于在bios内设置lpc总线访问密钥对,所述密钥对包括公钥和私钥;
94.请求解析单元330,用于bios接收服务器操作系统发送的加密请求,所述加密请求利用所述公钥加密,利用所述私钥对所述加密请求进行解密从而得到lpc总线开启请求;
95.请求执行单元340,用于bios根据所述lpc总线开启请求对lpc总线进行初始化,并将初始化完成后的lpc地址写入指定地址,以使服务器操作系统同步读取lpc地址并基于lpc地址访问lpc总线。
96.可选地,作为本发明一个实施例,所述加密设置单元包括:
97.秘钥生成模块,用于bios为不同项目分别设置项目专属的数字证书,所述数字证书包括公钥和私钥组成的密钥对;
98.公钥发布模块,用于bios将lpc初始化项目的内置数字证书的公钥发送至操作系统。
99.可选地,作为本发明一个实施例,所述请求解析单元包括:
100.信息保存模块,用于bios预先将各项目对应的加解密算法和密钥对保持至请求解析列表;
101.信息查找模块,用于bios在接收到操作系统发送的加密请求后,从所述请求解析列表查找对应的加解密算法和私钥对所述加密请求进行解密。
102.可选地,作为本发明一个实施例,所述系统还包括:
103.请求标记模块,用于bios将项目公钥和项目编码同步发送至操作系统,以便操作系统利用所述项目编码标记基于项目公钥生成的加密请求;
104.标记解析模块,用于bios从加密请求提取项目编码,并根据所述项目编码从请求解析列表中查找对应的加解密算法和私钥,所述请求解析列表以映射的方式保存项目编码、加解密算法和私钥。
105.可选地,作为本发明一个实施例,所述请求执行单元包括:
106.功能执行模块,用于bios基于所述lpc总线开启请求调用初始化所述lpc总线的功能项,执行对lpc总线的初始化;
107.地址读取模块,用于bios在lpc总线初始化完成后读取lpc地址;
108.地址刷新模块,用于bios将lpc地址刷新至高级配置和电源管理接口的寄存器。
109.可选地,作为本发明一个实施例,所述请求执行单元还包括:
110.线程创建模块,用于操作系统创建监控线程,通过所述监控线程监控所述寄存器是否存在数据更新;
111.地址获取模块,用于若所述监控线程监控到所述寄存器存在数据更新,则从寄存器读取更新的lpc地址;
112.权限获取模块,用于操作系统基于所述lpc地址对bmc接口层驱动重新初始化,以获取访问lpc的权限。
113.图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的lpc总线安全访问方法。
114.其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
115.其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
116.处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器410可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
117.通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
118.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
119.因此,本发明通过设置bios使其在默认状态下不对lpc总线进行初始化,然后在操作系统需要开启lpc时向bios发送基于公钥加密的请求,由bios利用匹配的私钥解密后识别请求并根据请求执行对lpc总线的初始化。本发明通过对lpc初始化的过程进行变更,在对lpc初始化过程中加入对cpu请求进行识别的步骤,从而避免了其它恶意请求登录篡改bmc,提升了服务器的安全性能,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
120.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
121.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
122.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通
信连接,可以是电性,机械或其它的形式。
123.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
124.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
125.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1