CN110750794B - 一种bios安全启动方法及系统 - Google Patents

一种bios安全启动方法及系统 Download PDF

Info

Publication number
CN110750794B
CN110750794B CN201911018405.7A CN201911018405A CN110750794B CN 110750794 B CN110750794 B CN 110750794B CN 201911018405 A CN201911018405 A CN 201911018405A CN 110750794 B CN110750794 B CN 110750794B
Authority
CN
China
Prior art keywords
module
bios
cpu
verification
data
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.)
Active
Application number
CN201911018405.7A
Other languages
English (en)
Other versions
CN110750794A (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.)
Great Wall Information Co Ltd
Original Assignee
Great Wall Information 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 Great Wall Information Co Ltd filed Critical Great Wall Information Co Ltd
Priority to CN201911018405.7A priority Critical patent/CN110750794B/zh
Publication of CN110750794A publication Critical patent/CN110750794A/zh
Application granted granted Critical
Publication of CN110750794B publication Critical patent/CN110750794B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种BIOS安全启动方法及系统,包括步骤:到接收开机指令后,安全的电源管理模块将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;安全模块对BIOS模块进行校验,并将校验结果反馈给电源管理模块;若校验通过,则电源管理模块将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;若校验不通过,则退出开机流程;最后,上电后的CPU读取BIOS模块中的代码数据,启动操作系统,完成开机操作。本发明能够保证CPU在开始执行的第一条指令就是安全的,从而提高计算机的安全性,而且便于BIOS模块的更新与维护。

Description

一种BIOS安全启动方法及系统
技术领域
本发明涉及计算机安全技术领域,特别是指一种BIOS安全启动方法及系统。
背景技术
现有技术通过如下方式来实现计算机启动:计算机上电,EC模块负责给主板各模块依次上电,CPU上电后开始运行BIOS内部的程序;BIOS程序对硬件部分进行检测,通过对硬件部分在启动前的参数进行对比判断是否在正常范围,从而判断其是否有异常或故障,若正常则引导操作系统正常启动。由此可知,现有技术中,EC程序和BIOS程序是在操作系统和反病毒软件之前运行。
而BIOS程序和EC的程序一般存储在计算机的非易失存储器中,容易遭受黑客和病毒的攻击,即黑客或病毒通过修改BIOS或EC的可执行代码达到其攻击计算机系统的目的。而根据上述现有技术可知,EC程序及BIOS程序是在操作系统和反病毒软件之前运行,导致传统的反病毒软件无法抵御黑客或病毒对BIOS或EC程序的攻击。
发明内容
本发明的目的在于提供一种BIOS的安全启动方法及系统,实现在CPU上电启动操作系统之前,先保证电源管理模块的安全,然后通过安全的电源管理模块控制安全模块对BIOS模块进行安全校验,只有在校验通过之后,再由安全的电源管理模块给CPU上电以启动操作系统,从而提高计算机的安全性。
为实现上述技术目的,本发明采用如下技术方案:
一种BIOS安全启动方法,包括以下步骤:
接收开机指令;
安全的电源管理模块将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;
电源管理模块启动安全模块运行,使安全模块对BIOS模块进行校验,并将校验结果反馈给电源管理模块;
若校验通过,则电源管理模块将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;
若校验不通过,则退出开机流程;
上电后的CPU读取BIOS模块中的代码数据,启动操作系统,完成开机操作。
本发明,首先电源管理模块与CPU没有物理连接,即上层软件无法访问或更新电源管理模块,为纯硬件实现,区别于传统的计算机的电源管理模块(能够提供接口给操作系统调用,包括固件更新,从而造成安全隐患),可以保证电源管理模块的安全性。在CPU上电启动操作系统之前,最先运行的是安全的电源管理模块,电源管理模块首先启动安全芯片运行,之后安全芯片对BIOS模块进行安全校验,只有在校验通过之后再给CPU上电以启动操作系统,解决了操作系统启动的信任根问题,即能够保证CPU在开始执行的第一条指令就是安全的,从而提高计算机的安全性。而且本发明没有改变计算机原有的CPU与BIOS模块之间的总线通道,即未改变两者间的运行方式,计算机系统能够使用通用的方式更新BIOS模块,便于BIOS模块的更新与维护。
进一步地,BIOS模块的数据结构包括若干个程序区、校验区和变量区,校验区的数据包括校验区长度、每个程序区的起始与结束地址、校验值;安全模块对BIOS模块进行校验的方法为:
安全模块读取BIOS模块中校验区的数据,并进行解析得到每个程序区的起始与结束地址;
安全模块根据每个程序区的起始与结束地址,读取每个程序区的数据,并使用预置的密钥进行校验,生成实际校验值;
安全模块将生成的实际校验值与校验区中的校验值进行比较,若相同则校验通过,否则校验不通过。
本技术方案将安全模块校验与BIOS数据分离,即通过提供一个单独的数据段作为校验段,校验段中每个数据区域对应一个校验值,该校验段存储需要校验的数据区域的起始区间以及对应的校验值。安全模块解析该校验段,逐个获取起始区间值之后对区间数据进行校验。安全模块根据预先定义好的校验段格式进行校验,校验段数据区间可以自由的增减(即可以定义一个或者多个可配置的bios数据校验区域)。这样,当bios程序进行更新时,同时更新bios的校验段,不需要更新安全模块。这样做到了安全模块和bios程序及校验数据之间的解耦。这种解耦的方式实现了更新BIOS模块数据时不需要更新安全模块中的固件,校验更安全有效,简化了BIOS模块的更新过程。
进一步地,安全模块采用哈希算法对BIOS模块进行校验。
进一步地,启动操作系统之后还包括:安全模块通过总线与CPU建立通讯连接。
在操作系统安全启动后,安全模块通过与CPU通讯,可以为CPU提供除BIOS校验之外的安全检测工作,扩展安全模块的功能,从而为CPU及操作系统的稳定运行提供安全保障工作。
本发明还提供一种BIOS安全启动系统,包括电源管理模块、安全模块、BIOS模块和CPU;
所述电源管理模块,用于在接收开机指令后,将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;
所述安全模块,用于对BIOS模块进行校验,并将校验结果反馈给电源管理模块;
所述电源管理模块,还用于在安全模块对BIOS模块校验通过时,将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;还用于在安全模块对BIOS模块校验未通过时,退出开机流程;
所述CPU,用于在上电后读取BIOS模块中的代码数据,进入操作系统,完成开机操作。
本发明在CPU上电启动操作系统之前,可以先通过设置安全芯片和电源管理模块对BIOS模块进行安全校验,只有在校验通过之后再给CPU上电以启动操作系统,解决了操作系统启动的信任根问题,即能够保证CPU在开始执行的第一条指令就是安全的,从而提高计算机的安全性。而且本发明没有改变计算机原有的CPU与BIOS模块之间的总线通道,即未改变两者间的运行方式,计算机系统能够使用通用的方式更新BIOS模块,便于BIOS模块的更新与维护。
进一步地,电源管理模块是与CPU隔离的安全物理模块。
电源管理模块与CPU没有物理连接,即上层软件无法访问或更新电源管理模块,为纯硬件实现,区别于传统的计算机的电源管理模块(能够提供接口给操作系统调用,包括固件更新,从而造成安全隐患),可以保证电源管理模块的安全性。
进一步地,所述BIOS模块的数据结构包括若干个程序区、校验区和变量区,校验区的数据包括校验区长度、每个程序区的起始与结束地址、校验值;
所述安全模块,还用于读取BIOS模块中校验区的数据,并进行解析得到每个程序区的起始与结束地址;还用于根据每个程序区的起始与结束地址,读取每个程序区的数据,并使用预置的密钥进行校验,生成实际校验值;还用于将生成的实际校验值与校验区中的校验值进行比较得到校验结果:若相同则校验通过,否则校验不通过。
进一步地,所述安全模块,在操作系统启动后通过总线与CPU通讯连接。
有益效果
本发明在CPU上电启动操作系统之前,先通过设置安全芯片和电源管理模块对BIOS模块进行安全校验,只有在校验通过之后再给CPU上电以启动操作系统,解决了操作系统启动的信任根问题,即能够保证CPU在开始执行的第一条指令就是安全的,从而提高计算机的安全性。而且本发明没有改变计算机原有的CPU与BIOS模块之间的总线通道,即未改变两者间的运行方式,计算机系统能够使用通用的方式更新BIOS模块,便于BIOS模块的更新与维护。
本发明还将安全模块校验与BIOS数据分离,这种解耦的方式实现了更新BIOS模块数据时不需要更新安全模块中的固件,校验更安全有效,简化了BIOS模块的更新过程。
附图说明
图1为本发明BIOS模块的数据结构示意图;
图2为本发明BIOS模块的校验区的结构示意图;
图3为本发明BIOS安全启动系统的模块示意图;
图4为本发明安全模块对BIOS模块进行安全校验的方法示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例以本发明的技术方案为依据开展,给出了详细的实施方式和具体的操作过程,对本发明的技术方案作进一步解释说明。
本实施例提供一种BIOS安全启动系统,如图3所示,包括电源管理模块、安全模块、BIOS模块和CPU,且在CPU与BIOS模块之间的总线通道上、安全模块与BIOS模块之间的总线通道上,设置总线用关,用于电源管理模块控制关闭或打开。另外,在安全模块与CPU之间也设置通信总线,用于安全模块为CPU提供安全保障工作。
其中,BIOS模块的数据结构如图1所示,包括若干个程序区、校验区和变量区;而校验区的数据结构如图2所示,包括校验区长度、每个程序区的起始与结束地址、校验值。
本发明进一步提供另一实施例,即一种相应于上述BIOS安全启动系统的BIOS安全启动方法,结合图3、4所示,包括以下步骤:
步骤1,接收开机指令;
步骤2,电源管理模块将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;
步骤3,安全模块采用哈希算法对BIOS模块进行校验,并将校验结果反馈给电源管理模块,其中校验方法为:
步骤3.1,安全模块读取BIOS模块中校验区的数据,并进行解析得到每个程序区的起始与结束地址;
步骤3.2,安全模块根据每个程序区的起始与结束地址,读取每个程序区的数据,并使用预置的密钥进行校验,生成实际校验值;
步骤3.3,安全模块将生成的实际校验值与校验区中的校验值进行比较,若相同则校验通过,否则校验不通过。
若校验通过,则电源管理模块将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;若校验不通过,则退出开机流程;
步骤4,上电后的CPU读取BIOS模块中的代码数据,启动操作系统,完成开机操作;
步骤5,安全模块通过总线与CPU建立通讯连接。
本发明在CPU上电启动操作系统之前,先通过设置安全芯片和电源管理模块对BIOS模块进行安全校验,只有在校验通过之后再给CPU上电以启动操作系统,解决了操作系统启动的信任根问题,即能够保证CPU在开始执行的第一条指令就是安全的,从而提高计算机的安全性。而且本发明没有改变计算机原有的CPU与BIOS模块之间的总线通道,即未改变两者间的运行方式,计算机系统能够使用通用的方式更新BIOS模块,便于BIOS模块的更新与维护。
而且,本发明将安全模块校验与BIOS数据分离,这种解耦的方式实现了更新BIOS模块数据时不需要更新安全模块中的固件,校验更安全有效,简化了BIOS模块的更新过程。
另外,在操作系统安全启动后,安全模块通过与CPU通讯,可以为CPU提供除BIOS校验之外的安全检测工作,扩展安全模块的功能,从而为CPU及操作系统的稳定运行提供安全保障工作。
以上实施例为本申请的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本申请总的构思的前提下,这些变换或改进都应当属于本申请要求保护的范围之内。

Claims (7)

1.一种BIOS安全启动方法,其特征在于,包括以下步骤:
接收开机指令;
安全的电源管理模块将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;电源管理模块是与CPU隔离的安全物理模块;
电源管理模块启动安全模块运行,使安全模块对BIOS模块进行校验,并将校验结果反馈给电源管理模块;
若校验通过,则电源管理模块将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;
若校验不通过,则退出开机流程;
上电后的CPU读取BIOS模块中的代码数据,启动操作系统,完成开机操作。
2.根据权利要求1所述的方法,其特征在于,BIOS模块的数据结构包括若干个程序区、校验区和变量区,校验区的数据包括校验区长度、每个程序区的起始与结束地址、校验值;安全模块对BIOS模块进行校验的方法为:
安全模块读取BIOS模块中校验区的数据,并进行解析得到每个程序区的起始与结束地址;
安全模块根据每个程序区的起始与结束地址,读取每个程序区的数据,并使用预置的密钥进行校验,生成实际校验值;
安全模块将生成的实际校验值与校验区中的校验值进行比较,若相同则校验通过,否则校验不通过。
3.根据权利要求2所述的方法,其特征在于,安全模块采用哈希算法对BIOS模块进行校验。
4.根据权利要求1所述的方法,其特征在于,启动操作系统之后还包括:安全模块通过总线与CPU建立通讯连接。
5.一种BIOS安全启动系统,其特征在于,包括电源管理模块、安全模块、BIOS模块和CPU;
所述电源管理模块,用于在接收开机指令后,将CPU与BIOS模块之间的总线通道关闭,将安全模块与BIOS模块之间的总线通道打开,并给安全模块和BIOS模块上电;
所述安全模块,用于对BIOS模块进行校验,并将校验结果反馈给电源管理模块;
所述电源管理模块,还用于在安全模块对BIOS模块校验通过时,将安全模块与BIOS模块之间的总线通道关闭,将CPU与BIOS模块之间的总线通道打开,并给CPU上电;还用于在安全模块对BIOS模块校验未通过时,退出开机流程;
所述CPU,用于在上电后读取BIOS模块中的代码数据,进入操作系统,完成开机操作;
电源管理模块是与CPU隔离的安全物理模块。
6.根据权利要求5所述的系统,其特征在于,所述BIOS模块的数据结构包括若干个程序区、校验区和变量区,校验区的数据包括校验区长度、每个程序区的起始与结束地址、校验值;
所述安全模块,还用于读取BIOS模块中校验区的数据,并进行解析得到每个程序区的起始与结束地址;还用于根据每个程序区的起始与结束地址,读取每个程序区的数据,并使用预置的密钥进行校验,生成实际校验值;还用于将生成的实际校验值与校验区中的校验值进行比较得到校验结果:若相同则校验通过,否则校验不通过。
7.根据权利要求5所述的系统,其特征在于,所述安全模块,在操作系统启动后通过总线与CPU通讯连接。
CN201911018405.7A 2019-10-24 2019-10-24 一种bios安全启动方法及系统 Active CN110750794B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911018405.7A CN110750794B (zh) 2019-10-24 2019-10-24 一种bios安全启动方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911018405.7A CN110750794B (zh) 2019-10-24 2019-10-24 一种bios安全启动方法及系统

Publications (2)

Publication Number Publication Date
CN110750794A CN110750794A (zh) 2020-02-04
CN110750794B true CN110750794B (zh) 2022-03-22

Family

ID=69279785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911018405.7A Active CN110750794B (zh) 2019-10-24 2019-10-24 一种bios安全启动方法及系统

Country Status (1)

Country Link
CN (1) CN110750794B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231713B (zh) * 2020-10-29 2023-03-28 超越科技股份有限公司 一种grub安全启动的方法、系统和计算设备
CN112988245A (zh) * 2021-02-01 2021-06-18 中国船舶重工集团公司第七0九研究所 一种基于龙芯平台bios数据区的保护方法
CN117436090B (zh) * 2023-12-18 2024-03-08 苏州元脑智能科技有限公司 一种启动校验系统、方法、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332070A (zh) * 2011-09-30 2012-01-25 中国人民解放军海军计算技术研究所 一种可信计算平台的信任链传递方法
CN109446813A (zh) * 2018-08-20 2019-03-08 天津七所精密机电技术有限公司 一种主板bios防篡改及自动恢复方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI264672B (en) * 2004-09-21 2006-10-21 Aimgene Technology Co Ltd BIOS locking device, computer system with a BIOS locking device and control method thereof
CN102663301B (zh) * 2012-04-13 2014-10-29 北京国基科技股份有限公司 一种可信计算机及可信性检测方法
CN102708028B (zh) * 2012-05-18 2015-01-07 中国人民解放军第二炮兵装备研究院第四研究所 一种可信冗余容错计算机系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332070A (zh) * 2011-09-30 2012-01-25 中国人民解放军海军计算技术研究所 一种可信计算平台的信任链传递方法
CN109446813A (zh) * 2018-08-20 2019-03-08 天津七所精密机电技术有限公司 一种主板bios防篡改及自动恢复方法

Also Published As

Publication number Publication date
CN110750794A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110750794B (zh) 一种bios安全启动方法及系统
US7467417B2 (en) Active verification of boot firmware
US20180121656A1 (en) Validating operating firmware of a periperhal device
US9164925B2 (en) Method and apparatus for authorizing host to access portable storage device
CN101281577A (zh) 一种对bios进行保护的可信计算系统及其应用方法
CN107038817B (zh) 输入外围装置安全性
EP3343424B1 (en) Control board secure start method, and software package upgrade method and device
CN108064376A (zh) 系统启动校验方法及系统、电子设备和计算机存储介质
JP2024050647A (ja) ファームウェアのセキュアな検証
CN106612178A (zh) 保护Android adb数据传输安全的方法及装置
CN111158767A (zh) 基于bmc的服务器安全启动方法及装置
CN109583212B (zh) 一种基于Intel Whitley平台的固件文件保护方法与系统
CN107451463A (zh) 一种验证secure boot功能的方法
CN107092832A (zh) 一种及时弥补Secure‑Boot安全漏洞的方法
CN113626792B (zh) PCIe Switch固件安全执行方法、装置、终端及存储介质
US20220374511A1 (en) Systems and methods for assuring integrity of operating system and software components at runtime
CN112861137A (zh) 安全固件
CN114764347A (zh) 一种多核控制器的程序校验系统、校验方法及存储介质
CN110781517B (zh) 一种bios与bmc沟通实现数据交互的方法
US10929827B2 (en) Basic input/output system (BIOS) and unified extensible firmware interface (UEFI) one-time boot
CN110929283B (zh) 一种uefi bios的分级保护系统和相应的实现方法
KR20090000576A (ko) 보안을 제공하는 장치 및 방법
CN114025347B (zh) 一种蓝牙设备的加密方法、装置、设备及存储介质
US20230129942A1 (en) Method for locking a rewritable non-volatile memory and electronic device implementing said method
EP3923168A1 (en) Secure boot at shutdown

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
CB02 Change of applicant information

Address after: 410100 No.5, east 3 Road, Changsha Economic and Technological Development Zone, Changsha City, Hunan Province

Applicant after: Great Wall Information Co.,Ltd.

Address before: 410100 No.5, east 3 Road, Changsha Economic and Technological Development Zone, Changsha City, Hunan Province

Applicant before: HUNAN GREATWALL INFORMATION FINANCIAL EQUIPMENT Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant