一种通过GPIO实现BIOS密码的保护与清除的方法与流程

摘要: 本发明涉及计算机信息安全,尤其涉及一种通过gpio实现bios密码的保护与清除的方法。背景技术:1、基本输入输出系统(basicinputoutputsyste...
一种通过GPIO实现BIOS密码的保护与清除的方法与流程

本发明涉及计算机信息安全,尤其涉及一种通过gpio实现bios密码的保护与清除的方法。

背景技术:

1、基本输入输出系统(basic input output system,bios)是固化在计算机主板闪存芯片中的一组程序,负责计算机开机时的硬件初始化以及操作系统的引导。为防止未经授权的用户修改bios设置或启动计算机,现有bios普遍提供管理员密码和用户密码的设置功能,所设置的密码通常存储于闪存的非易失性存储区nvram中。

2、当用户遗忘bios密码时,现有技术中常用的清除密码方式为:打开计算机机箱,移除主板上的cmos电池,或者短接主板上的cmos清除引脚(clear_cmos pin),使存储的密码数据复位。

3、然而,上述清除密码的方式至少存在以下缺陷:其一,操作麻烦,需要打开机箱并接触主板硬件;其二,在清除密码的同时会将用户设置的bios选项设定一并清除,用户需要重新进行配置;其三,清除时无法区分管理员密码与用户密码,会将两类密码同时清除,无法进行选择性清除,且部分方式还需知晓先前设置的密码;其四,现有计算机无法对bios密码进行保护,任何能够接触机箱内部硬件的人均可以通过上述硬件复位方式将密码清除,密码的安全性无法得到保障。

4、因此,如何在不打开机箱、不影响bios选项设定的情况下实现bios密码的选择性清除,以及如何保护bios密码不被硬件复位方式清除,成为本领域亟待解决的技术问题。

技术实现思路

1、针对现有技术存在的上述缺陷,本发明提供一种通过gpio实现bios密码的保护与清除的方法,能够在保留bios选项设定的前提下实现bios密码的选择性清除,并能够保护bios密码不被硬件复位方式清除。

2、本发明提供一种通过gpio实现bios密码的保护与清除的方法,应用于采用uefiedkii架构的计算机,所述计算机的bios密码存储于闪存的非易失性存储区nvram中,所述方法包括:在bios运行过程中,检测主板上通用输入输出接口gpio的电平状态;当所述gpio的电平状态指示清除密码时,在uefi的dxe阶段,通过getvariable函数在所述nvram中查找bios密码变量,将查找到的所述bios密码变量清空并回写至所述nvram,以在清除bios密码的同时保留bios选项设定;当所述gpio的电平状态指示保护密码时,在uefi的pei阶段,通过getvariable函数读取存储于所述nvram中的bios密码,创建与所述bios密码的数据结构相同的hob,并将读取到的所述bios密码保存至所述hob中;在所述dxe阶段,通过getvariable函数获取密码结构,并将所述hob中保存的所述bios密码回写至所述nvram,其中所述回写操作在所述dxe阶段的最后阶段执行,以使所述bios密码在短接cmos清除引脚或移除cmos电池的情况下不被清除。

3、优选地,所述gpio的电平状态由设置于主板上的物理按键或跳线控制,用户通过操作所述物理按键或所述跳线选择执行密码清除操作或密码保护操作。

4、优选地,所述密码清除操作还包括:在将查找到的所述bios密码变量清空之前,选择待清除的密码类型,所述密码类型包括管理员密码和用户密码;仅将选定的所述密码类型对应的密码变量清空并回写至所述nvram。

5、优选地,所述计算机每次开机时,bios在运行至所述pei阶段时检测所述gpio的电平状态是否指示保护密码,在运行至所述dxe阶段时检测所述gpio的电平状态是否指示清除密码。

6、优选地,所述hob在所述pei阶段创建,用于在所述pei阶段与所述dxe阶段之间传递所述bios密码。

7、本发明还提供一种计算机设备,包括主板,所述主板上设置有闪存和通用输入输出接口gpio,所述闪存的非易失性存储区nvram中存储有bios选项设定和bios密码,所述gpio用于提供指示清除密码或保护密码的电平状态;所述计算机设备的bios被配置为在运行时执行上述方法。

8、与现有技术相比,本发明的有益效果包括:

9、(1)无需打开机箱即可清除bios密码,配合主板上的物理按键或跳线可在桌面完成操作,简便快捷;

10、(2)清除密码时仅清空密码变量,bios选项设定不受影响,用户无需重新进行配置;

11、(3)可分别选择清除管理员密码或用户密码,灵活性高;

12、(4)通过在pei阶段备份密码、在dxe阶段的最后阶段回写密码的机制,使密码在短接cmos清除引脚或移除cmos电池后仍不被清除,提高了密码的安全性;

13、(5)方法基于edkii开源架构实现,代码流程简单,便于在不同硬件平台之间移植;

14、(6)该方法也可实现在setup用户界面下的密码选项保护:判断gpio状态,在用户修改密码时通过该状态决定是否清除 a。如果状态为高,那么在bios setup 操作清除密码的函数处直接返回实现无法清除密码的效果。

1.一种通过gpio实现bios密码的保护与清除的方法,应用于采用uefi edkii架构的计算机,所述计算机的基本输入输出系统bios的密码存储于闪存的非易失性存储区nvram中,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述gpio的电平状态由设置于所述主板上的物理按键或跳线控制,用户通过操作所述物理按键或所述跳线选择执行所述密码清除操作或所述密码保护操作。

3.根据权利要求1所述的方法,其特征在于,所述密码清除操作还包括:在将查找到的所述bios密码变量清空之前,选择待清除的密码类型,所述密码类型包括管理员密码和用户密码;仅将选定的所述密码类型对应的密码变量清空并回写至所述nvram。

4.根据权利要求1所述的方法,其特征在于,所述计算机每次开机时,bios在运行至所述pei阶段时检测所述gpio的电平状态是否指示保护密码,在运行至所述dxe阶段时检测所述gpio的电平状态是否指示清除密码。

5.根据权利要求1所述的方法,其特征在于,所述hob在所述pei阶段创建,所述hob用于在所述pei阶段与所述dxe阶段之间传递所述bios密码。

6.根据权利要求1至5任一项所述的方法,其特征在于,所述密码清除操作和所述密码保护操作基于edkii开源架构实现,能够移植至不同的硬件平台。

7.一种计算机设备,其特征在于,包括主板,所述主板上设置有闪存和通用输入输出接口gpio,所述闪存的非易失性存储区nvram中存储有bios选项设定和bios密码,所述gpio用于提供指示清除密码或保护密码的电平状态;所述计算机设备的基本输入输出系统bios被配置为在运行时执行如权利要求1至6任一项所述的方法。