CN111880828A - 一种在Secure Boot环境中批量升级多板卡驱动的方法 - Google Patents

一种在Secure Boot环境中批量升级多板卡驱动的方法 Download PDF

Info

Publication number
CN111880828A
CN111880828A CN202010763012.5A CN202010763012A CN111880828A CN 111880828 A CN111880828 A CN 111880828A CN 202010763012 A CN202010763012 A CN 202010763012A CN 111880828 A CN111880828 A CN 111880828A
Authority
CN
China
Prior art keywords
upgraded
server
board
drive
private key
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.)
Granted
Application number
CN202010763012.5A
Other languages
English (en)
Other versions
CN111880828B (zh
Inventor
张旭芳
匡志鹏
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010763012.5A priority Critical patent/CN111880828B/zh
Publication of CN111880828A publication Critical patent/CN111880828A/zh
Application granted granted Critical
Publication of CN111880828B publication Critical patent/CN111880828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

本发明公开了一种在Secure Boot环境中批量升级多板卡驱动的方法,以一个管理服务器节点为核心,管理服务器中存放市面上所有板卡的最新驱动文件和板卡驱动信息表,从板卡驱动信息表中可获知任何一个板卡对应的驱动文件。通过生成服务器厂商特殊的公钥/私钥对,将公钥注册到每一个待升级服务器节点,并自动检测待升级服务器节点的板卡配置,生成对应的驱动升级列表,对这些驱动进行私钥签名后下发到待升级服务器节点,完成多驱动的升级加载。本发明实现了在Secure Boot使能的环境中,通过一个管理服务器和一个脚本,就可以实现对接入同一个内网环境的多台不同硬件配置的服务器。

Description

一种在Secure Boot环境中批量升级多板卡驱动的方法
技术领域
本发明涉及升级多板卡驱动技术领域,具体为一种在Secure Boot环境中批量升级多板卡驱动的方法。
背景技术
主流的Linux操作系统厂商,都支持Secure Boot特性,通过用微软签名服务签署OS的引导加载程序来实现安全引导。具体过程如下:因服务器主板固件中包含微软的公钥,故Linux操作系统厂商都选择通过使用Microsoft的签名服务,并使用Microsoft的私钥签署他们的第一阶段引导加载程序。并在第一阶段引导加载程序中嵌入操作系统厂商的公钥,用操作系统厂商的公钥对应的私钥签名GRUB2(第二阶段引导加载程序)和内核。在系统构建过程中生成内核自己的公钥/私钥对,内核公钥被保存在kernel文件中,内核私钥别用来签名内核inbox驱动,为保证系统内核模块的安全性,该私钥在系统构建结束后自动被销毁。
服务器在开机启动后,系统启动引导过程如下:(1)UEFI固件中包含的微软公钥会验证操作系统第一阶段引导加载程序的正确性,若验证通过,则第一阶段引导加载程序中包含的Linux厂商公钥将验证第二阶段引导加载程序Grub2的正确性,若验证通过,则第一阶段引导加载程序中包含的Linux厂商公钥将验证内核kernel的正确性,若验证通过,则内核kernel中包含的公钥将验证内核inbox驱动的正确性,若验证通过,则各个内核驱动模块将加载。待所有的驱动模块和服务加载完毕后,系统正常启动。
操作系统厂商对Secure Boot的支持,保证了系统启动、内核、inbox内核模块不会被恶意软件入侵和篡改。
但众所周知,操作系统版本发布时内置的inbox驱动模块相较于各个部件厂商提供的out-of-box驱动要旧,为保证客户应用环境的稳定可靠运行,驱动信息表都不直接使用操作系统自带的inbox驱动,而是替换成部件厂商发布的、经过验证的与板卡Firmware匹配的最新版本的out-of-box驱动出货。
在启用Secure Boot后,当系统在启动或运行过程中,加载这些out-of-box驱动前,会首先对这些驱动进行签名验证,若验证通过,则加载这些驱动正常运行。否则操作系统认为这些驱动是非法驱动,将拒绝加载。
作为服务器厂商,出货的服务器有些需要预装系统出货,或者需要指导客户完成系统的安装、驱动的升级。不同的服务器配置,涉及不同种类,不同厂家、不同型号的板卡。如何根据服务器的不同配置,对这些板卡驱动进行批量签名验证,以完成驱动的自动更新,是服务器厂商要解决的问题之一。
发明内容
本发明的目的在于提供一种在Secure Boot环境中批量升级多板卡驱动的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种在Secure Boot环境中批量升级多板卡驱动的方法,包括以下步骤:
管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
优选的,在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之前,还包括以下步骤:
通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中。
优选的,在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之后,还包括以下步骤:
管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;
待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
优选的,每个待升级服务器对应一个目录,每个所述目录中存放对应的板卡驱动ko文件用于待升级服务器的升级。
优选的,在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级成功信息。
优选的,在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级失败信息,并重新建立目录。
一种在Secure Boot环境中批量升级多板卡驱动装置,包括公钥/私钥对创建单元,管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
服务器节点接入单元,用于确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
节点连接单元,用于管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
签名单元,用于使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
优选的,还包括目录创建单元,用于通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中。
优选的,还包括:
打包单元,用于管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;
加载单元,用于待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
优选的,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任意一项所述的方法的步骤。
与现有技术相比,本发明的有益效果是:本发明能够解决在Secure Boot安全引导环境中,Intel、Mellonax、NVIDIA等部件厂商提供的最新驱动在升级时被操作系统拒绝加载的问题,主要提供了一种对不同硬件配置的多台服务器进行自动驱动签名验证并升级的方法。实现了在Secure Boot使能的环境中,通过一个管理服务器和一个脚本,就可以实现对接入同一个内网环境的多台不同硬件配置的服务器,根据服务器的不同硬件配置,下载对应的最新的驱动文件,并对这些驱动文件进行私钥签名,在驱动批量升级的过程中,通过事先注册到服务器MOK列表中的公钥验证这些驱动的正确性,从而使得批量服务器多驱动自动升级成功。
附图说明
图1为本发明流程图;
图2为本发明原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-2,本发明提供如下技术方案:本发明提供如下技术方案:一种在Secure Boot环境中批量升级多板卡驱动的方法,包括以下步骤:
管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
本发明中,在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之前,还包括以下步骤:
通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中。
本发明中,在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之后,还包括以下步骤:
管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;
待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
本发明中,每个待升级服务器对应一个目录,每个所述目录中存放对应的板卡驱动ko文件用于待升级服务器的升级;在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级成功信息;
在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级失败信息,并重新建立目录。
本发明还公开了一种在Secure Boot环境中批量升级多板卡驱动装置,包括公钥/私钥对创建单元,管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
服务器节点接入单元,用于确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
节点连接单元,用于管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
签名单元,用于使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
还包括目录创建单元,用于通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中;还包括:打包单元,用于管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;加载单元,用于待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
此外,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任意一项所述的方法的步骤。
本发明中,步骤A中,openssl命令具体为:openssl req-new-nodes-utf8-sha512-batch-x509-config x509.genkey-outform DER-out inspurpub.x509-keyoutinspurpriv.priv;其中inspurpub.x509是公钥,inspurpriv.priv是私钥。
本实施例中,步骤C中,MOK是操作系统中自带的增强UEFI安全引导数据库,是用户可以操作的密钥数据库,MOK列表中的密钥也会添加到系统密钥环中,被用来做签名验证。
以管理服务器(IP:192.168.1.1)和待升级服务器位于192.168.1.x内网网段为例,具体命令可参考如下
Figure BDA0002613601620000071
Figure BDA0002613601620000081
本发明还公开了一种在Secure Boot环境中批量升级多板卡驱动装置,包括公钥/私钥对创建单元1、服务器节点接入单元2、节点连接单元3、签名单元4和中央处理器5,所述中央处理器5分别连接公钥/私钥对创建单元1、服务器节点接入单元2、节点连接单元3、签名单元4;签名单元内设有加密模块,用于签名时的加密。
综上所述,本发明能够解决在Secure Boot安全引导环境中,Intel、Mellonax、NVIDIA等部件厂商提供的最新驱动在升级时被操作系统拒绝加载的问题,主要提供了一种对不同硬件配置的多台服务器进行自动驱动签名验证并升级的方法。实现了在SecureBoot使能的环境中,通过一个管理服务器和一个脚本,就可以实现对接入同一个内网环境的多台不同硬件配置的服务器,根据服务器的不同硬件配置,下载对应的最新的驱动文件,并对这些驱动文件进行私钥签名,在驱动批量升级的过程中,通过事先注册到服务器MOK列表中的公钥验证这些驱动的正确性,从而使得批量服务器多驱动自动升级成功。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (10)

1.一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:包括以下步骤:
管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
2.根据权利要求1所述的一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之前,还包括以下步骤:
通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中。
3.根据权利要求2所述的一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:在所述使用私钥依次对每个待升级服务器节点的板卡驱动进行签名的步骤之后,还包括以下步骤:
管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;
待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
4.根据权利要求2所述的一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:每个待升级服务器对应一个目录,每个所述目录中存放对应的板卡驱动ko文件用于待升级服务器的升级。
5.根据权利要求4所述的一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级成功信息。
6.根据权利要求4所述的一种在Secure Boot环境中批量升级多板卡驱动的方法,其特征在于:在所述待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动的步骤之后,还包括以下步骤:
获取待升级服务器升级失败信息,并重新建立目录。
7.一种在Secure Boot环境中批量升级多板卡驱动装置,其特征在于:包括公钥/私钥对创建单元(1),管理服务器创建若干公钥/私钥对,所述每个公钥/私钥对与某板卡最新驱动相对应,用于所述最新驱动文件的升级验证;
服务器节点接入单元(2),用于确认多个已经安装完操作系统的待升级服务器节点接入与管理服务器同网段的内网环境中,确认待升级服务器开启Secure Boot功能;
节点连接单元(3),用于管理服务器通过ssh依次连接多个待升级服务器节点,并将公钥注册到每个待升级驱动服务器的MOK列表中;
签名单元(4),用于使用私钥依次对每个待升级服务器节点的板卡驱动进行签名。
8.根据权利要求7所述的一种在Secure Boot环境中批量升级多板卡驱动装置,其特征在于:还包括目录创建单元,用于通过查询板卡驱动信息表,找到对应的板卡驱动ko文件,并为每个待升级服务器节点建立一个目录,将对应的板卡驱动ko文件存放到该目录中。
9.根据权利要求8所述的一种在Secure Boot环境中批量升级多板卡驱动装置,其特征在于:还包括:
打包单元,用于管理服务器依次将每个待升级服务器节点对应的经过私钥签名的所有板卡驱动目录文件进行打包;
加载单元,用于待升级服务器依次卸载原有的板卡驱动,并加载已签名验证过的板卡驱动。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任意一项所述的方法的步骤。
CN202010763012.5A 2020-07-31 2020-07-31 一种在Secure Boot环境中批量升级多板卡驱动的方法 Active CN111880828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010763012.5A CN111880828B (zh) 2020-07-31 2020-07-31 一种在Secure Boot环境中批量升级多板卡驱动的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010763012.5A CN111880828B (zh) 2020-07-31 2020-07-31 一种在Secure Boot环境中批量升级多板卡驱动的方法

Publications (2)

Publication Number Publication Date
CN111880828A true CN111880828A (zh) 2020-11-03
CN111880828B CN111880828B (zh) 2022-07-01

Family

ID=73204483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010763012.5A Active CN111880828B (zh) 2020-07-31 2020-07-31 一种在Secure Boot环境中批量升级多板卡驱动的方法

Country Status (1)

Country Link
CN (1) CN111880828B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296812A (zh) * 2021-06-09 2021-08-24 深圳忆联信息系统有限公司 Windows系统升级的批量签名方法、装置及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN109829294A (zh) * 2019-01-31 2019-05-31 云丁网络技术(北京)有限公司 一种固件验证方法、系统、服务器及电子设备
CN110221852A (zh) * 2019-05-15 2019-09-10 深兰科技(上海)有限公司 一种固件升级方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN109829294A (zh) * 2019-01-31 2019-05-31 云丁网络技术(北京)有限公司 一种固件验证方法、系统、服务器及电子设备
CN110221852A (zh) * 2019-05-15 2019-09-10 深兰科技(上海)有限公司 一种固件升级方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296812A (zh) * 2021-06-09 2021-08-24 深圳忆联信息系统有限公司 Windows系统升级的批量签名方法、装置及计算机设备

Also Published As

Publication number Publication date
CN111880828B (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
US10417427B2 (en) Method for authenticating firmware volume and system therefor
US10395039B2 (en) Customer-owned trust of device firmware
US6996818B2 (en) Update system for facilitating software update and data conversion in an electronic device
JP3385590B2 (ja) コンピュータ・ネットワークを通してコンピュータ・プログラムを更新する場合に使用するためのソフトウエア更新プログラムを記録したコンピュータ読み取り可能な記録媒体
CN103559052B (zh) 固件更新的设备与方法
US11579893B2 (en) Systems and methods for separate storage and use of system BIOS components
US20190236279A1 (en) Perform security action based on inventory comparison
US20170351507A1 (en) Silent upgrade of software with dependencies
JP2013538404A (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
US11886886B2 (en) System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system
US7434112B2 (en) System and method for verifying validity of assembled PCI devices of a computer
EP3583536B1 (en) Securely defining operating system composition without multiple authoring
EP3163489A1 (en) Token-based control of software installation and operation
US10726133B1 (en) Securely loading UEFI images at runtime
CN113741914B (zh) 操作系统安装机制
US6519659B1 (en) Method and system for transferring an application program from system firmware to a storage device
CN111880828B (zh) 一种在Secure Boot环境中批量升级多板卡驱动的方法
US20210141632A1 (en) Automated software patching for versioned code
US20060136892A1 (en) Embedded agent for self-healing software
US11514165B2 (en) Systems and methods for secure certificate use policies
JP2006517043A (ja) プログラムをロードする際のプログラムデータペイロードの署名
CN103106086A (zh) 操作系统处理方法以及系统
US20050138563A1 (en) Method and system for providing computer system software images
CN111459525A (zh) 应用程序更新数据处理系统、方法、存储介质、计算机
CN116661876B (zh) 系统启动方法、文件生成方法、电子设备及服务器

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
GR01 Patent grant
GR01 Patent grant