基本输入输出系统保护方法和装置与流程

文档序号:12803393阅读:440来源:国知局
基本输入输出系统保护方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种基本输入输出系统保护方法和装置。



背景技术:

bios(basicinput&outputsystem,基本输入输出系统)镜像文件是由bios源代码经过编译产生的二进制文件,由于bios源代码来源单一,价格昂贵,公司需要花费高昂的成本从bios厂商购买,以便于在此基础上开发适合公司产品的功能。

bios镜像文件一般跟随公司主板出售,但由于二进制文件可以通过软件、烧录器等方式读取,所以目前市场上经常有盗用者通过软件或烧录器读取其他公司的bios镜像文件后,简单地将部分关键信息更改后,使用在同平台的硬件上直接出售,或抄袭产品硬件设计,通过软件或烧录器读取已经发布产品的bios,从而在终端实现同样的功能,给被盗公司产品的竞争力造成了严重的影响。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种基本输入输出系统保护方法和装置,对基本输入输出系统进行保护。

一种基本输入输出系统保护方法,所述方法包括:

开机上电;

在非首次开机的上电自检过程中执行以下步骤:

读取当前网卡的mac地址,根据所述mac地址生成bios镜像文件的当前授权码;

从非易失性存储器中读取预留授权码,判断所述当前授权码与预留授权码是否相同,如果相同,则允许开机,如果所述当前授权码与预留授权码不相同, 则不允许开机。

在其中一个实施例中,在所述开机上电的步骤之后还包括:

检测是否为首次开机,若是首次开机,则根据当前网卡的初始mac地址生成bios镜像文件的初始授权码,初始化保护启动标志为非启动状态,将所述初始授权码和保护启动标志保存到非易失性存储器;

所述如果所述当前授权码与预留授权码不相同的步骤之后还包括:

从所述非易失性存储器中读取保护启动标志,判断所述保护启动标志是否为保护启动状态,如果不是,则将所述初始授权码更新为所述当前授权码,将所述保护启动标志修改为保护启动状态,将所述当前授权码和保护启动标志保存到非易失性存储器,允许开机;

如果所述保护启动标志是保护启动状态,则不允许开机。

在其中一个实施例中,所述不允许开机的步骤之前,还包括:

系统宕机,接收输入的激活码;

判断是否接收到激活码,如果是,则验证所述激活码,如果验证通过,则将所述预留授权码更新为所述当前授权码保存到非易失性存储器,允许开机;

如果没有接收到激活码或所述激活码验证不通过,则不允许开机。

在其中一个实施例中,所述根据所述mac地址生成bios镜像文件的当前授权码的步骤包括:

计算当前网卡的eeprom的校验和,根据所述mac地址和校验和生成所述当前授权码;

所述根据当前网卡的初始mac地址生成bios镜像文件的初始授权码的步骤包括:

计算当前网卡的eeprom的初始校验和,根据所述初始mac地址和初始校验和生成所述初始授权码。

在其中一个实施例中,所述方法还包括:

将所述验证通过的激活码保存到非易失性存储器;

所述验证所述激活码的步骤包括:

读取非易失性存储器中的预留激活码,判断所述接收输入的激活码是否与 所述预留激活码相同,如果相同,则验证不通过。

一种基本输入输出系统保护装置,所述装置包括:

当前授权码生成模块,用于开机上电,在非首次开机的上电自检过程中读取当前网卡的mac地址,根据所述mac地址生成bios镜像文件的当前授权码;

保护模块,用于从非易失性存储器中读取预留授权码,判断所述当前授权码与预留授权码是否相同,如果相同,则允许开机,如果所述当前授权码与预留授权码不相同,则不允许开机。

在其中一个实施例中,所述装置还包括:

初始化模块,用于检测是否为首次开机,若是首次开机,则根据当前网卡的初始mac地址生成bios镜像文件的初始授权码,初始化保护启动标志为非启动状态,将所述初始授权码和保护启动标志保存到非易失性存储器;

所述保护模块包括:

判断单元,用于从所述非易失性存储器中读取保护启动标志,判断所述保护启动标志是否为保护启动状态,如果不是,则进入处理单元,如果所述保护启动标志是保护启动状态,则不允许开机;

处理单元,用于将所述初始授权码更新为所述当前授权码,将所述保护启动标志修改为保护启动状态,将所述当前授权码和保护启动标志保存到非易失性存储器,允许开机。

在其中一个实施例中,所述装置还包括:

激活模块,用于系统宕机,接收输入的激活码,判断是否接收到激活码,如果是,则验证所述激活码,如果验证通过,则将所述预留授权码更新为所述当前授权码保存到非易失性存储器,允许开机,如果没有接收到激活码或所述激活码验证不通过,则不允许开机。

在其中一个实施例中,所述当前授权码生成模块还用于计算当前网卡的eeprom的校验和,根据所述mac地址和校验和生成所述当前授权码;

所述初始化模块还用于计算当前网卡的eeprom的初始校验和,根据所述初始mac地址和初始校验和生成所述初始授权码。

在其中一个实施例中,所述激活模块还用于将所述验证通过的激活码保存到非易失性存储器,读取非易失性存储器中的预留激活码,判断所述接收输入的激活码是否与所述预留激活码相同,如果相同,则验证不通过。

上述基本输入输出系统保护方法和装置,通过开机上电,在非首次开机的上电自检过程中执行以下步骤:读取当前网卡的mac地址,根据mac地址生成bios镜像文件的当前授权码;从非易失性存储器中读取预留授权码,判断当前授权码与预留授权码是否相同,如果相同,则允许开机,如果当前授权码与预留授权码不相同,则不允许开机,由于mac地址全球唯一,盗取的bios镜像文件使用其它的mac地址在网络中通信时,根据mac地址生成的当前授权码与预留授权码必定不一致,导致无法正常开机,从而实现了基本输入输出系统的保护。

附图说明

图1为一个实施例中基本输入输出系统保护方法的流程图;

图2为一个实施例中当前授权码与预留授权码不相同的情况下基本输入输出系统保护方法的流程图;

图3为一个实施例中通过激活码进行基本输入输出系统保护方法的流程图;

图4为一个具体的实施例中基本输入输出系统保护方法的流程图;

图5为一个实施例中基本输入输出系统保护装置的结构框图;

图6为另一个实施例中基本输入输出系统保护装置的结构框图;

图7为一个实施例中保护模块的结构框图;

图8为再一个实施例中基本输入输出系统保护装置的结构框图。

具体实施方式

在一个实施例中,如图所示,提供了一种基本输入输出系统保护方法,由于网卡的eeprom和mac地址一般是在主板开机后,在dos下在线烧录的,所以在厂家出厂前必定需要首次开机进行eeprom和mac地址的烧录,由于首次开机是厂家执行的,此时还没有出厂,不存在bios盗取的情况,也不需要 对bios进行保护,因此本实施例描述的是非首次开机过程。所述方法包括:

步骤s110,开机上电。

具体的,开机上电后计算机就会进入上电自检过程,即bios(basicinput&outputsystem,基本输入输出系统)post(poweronself-test,上电自检)阶段。在上电自检阶段,计算机会运行bios中的代码,对计算机内部的硬件进行检测等。

步骤s120,读取当前网卡的mac地址,根据mac地址生成bios镜像文件的当前授权码。

具体的,当前网卡可以是独立网卡,也可以是板载网卡,板载网卡是指整合了网络功能的主板所集成的网卡芯片。mac(mediaaccesscontrol,媒体访问控制)地址,用来定义网络设备的位置,是网卡决定的,具有全球唯一性。根据mac地址生成bios镜像文件的当前授权码,具体的生成算法可根据需要自定义,除了mac地址还可根据网卡的eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器),网卡的eeprom存放网卡寄存器的上电默认配置,通过计算其校验和生成bios镜像文件的当前授权码,进一步提高当前授权码的安全性,防止被破解。由于mac地址具有全球唯一性,生成的当前授权码也具有全球唯一性。

步骤s130,从非易失性存储器中读取预留授权码,判断当前授权码与预留授权码是否相同,如果相同,则允许开机,如果当前授权码与预留授权码不相同,则不允许开机。

具体的,预留授权码是存储在非易失性存储器中用于验证开机权限的编码信息,可以是出厂前根据出厂时的网卡信息生成的编码信息,对于需要维修的网卡,或升级eeprom后的网卡,mac地址或eeprom可能发现变化,预留授权码也可以是出厂后根据变更后的网卡信息生成的编码信息。预留授权码也是根据mac地址生成,具有全球唯一性。具体的生成算法可根据需要自定义,除了mac地址还可根据网卡的eeprom的校验和生成预留授权码,如预留授权码为mac地址、网卡的eeprom的校验和的组合。这种生成预留授权码的方法进一步提高了预留授权码的安全性,防止被破解。判断当前授权码与预留 授权码是否相同,如果不同,则说明生成当前授权码的网卡信息与生成预留授权码的网卡信息不一致,在这种情况下可能是bios镜像文件被盗取使用在其它主板上通过别的mac地址通信,不允许开机,只有当前授权码与预留授权码相同才能开机。盗取者将盗取的bios镜像文件使用在其它主板和网卡上时,首先盗取者并不能知道预留授权码是什么,其次即使盗取者一同盗取了预留授权码,使用其它的mac地址在网络中通信时,盗取的bios镜像文件的当前授权码与预留授权码也不一致,导致无法正常开机,从而实现了bios的保护。并且这种bios保护方法成本低,通用性好,不增加任何硬件成本的前提下,能保护公司产品的核心竞争价值。

在一个实施例中,从非易失性存储器中读取加密预留授权码之后,还对加密预留授权码解密得到预留授权码。非易失性存储器中保存的授权码加密的目的是为了防止恶意窃取者,去破解bios保护技术的实现方案。

本实施例中,通过开机上电,在非首次开机的上电自检过程中执行以下步骤:读取当前网卡的mac地址,根据mac地址生成bios镜像文件的当前授权码;从非易失性存储器中读取预留授权码,判断当前授权码与预留授权码是否相同,如果相同,则允许开机,如果当前授权码与预留授权码不相同,则不允许开机,由于mac地址全球唯一,盗取的bios镜像文件使用其它的mac地址在网络中通信时,根据mac地址生成的当前授权码与预留授权码必定不一致,导致无法正常开机,从而实现了基本输入输出系统的保护。

在一个实施例中,步骤s110之后,还包括:检测是否为首次开机,若是首次开机,则根据当前网卡的初始mac地址生成bios镜像文件的初始授权码,初始化保护启动标志为非启动状态,将初始授权码和保护启动标志保存到非易失性存储器。

具体的,初始mac地址一般是随机的,在出厂前,需要对初始mac地址进行更新,使得mac地址为正确的可用地址。所以需要保留一次修改mac地址的机会,使得厂家能够对mac地址进行更新。需要增加判断机制,即在第一次网卡的mac地址变更前,在第一次开机时,使得bios保护启动标志为非启动状态,只有保护启动标志为非启动状态才能对mac地址进行变更,进行一次 变更后就将保护启动标志修改为启动状态,启动保护功能。根据初始mac地址生成bios镜像文件的初始授权码,具体的生成算法可根据需要自定义,除了mac地址还可根据网卡的初始eeprom,通过计算其校验和生成bios镜像文件的初始授权码,进一步提高当前授权码的安全性,防止被破解。由于初始mac地址一般是随机的,生成的初始授权码也是随机的。保护启动标志可根据需要自定,如定义0为非启动状态,1为保护启动状态。

判断当前授权码与预留授权码不相同的步骤之后还包括:

步骤s210,从非易失性存储器中读取保护启动标志,判断保护启动标志是否为保护启动状态,如果不是,则进入步骤s220,否则不允许开机。

具体的,如果不是保护启动状态,则说明mac地址还没有进行过一次更新,处于可变更的状态,此时的预留授权码一定是首次开机后保留的初始授权码。且当前授权码与预留授权码不相同说明此时mac地址已经变更,为正确的可用mac地址,对应的当前授权码也是正确授权码。从而进入步骤s220,将初始授权码进行更新。

步骤s220,将初始授权码更新为当前授权码,将保护启动标志修改为保护启动状态,将当前授权码和保护启动标志保存到非易失性存储器,允许开机。

具体的,将初始授权码更新为当前授权码,此时出厂厂商已经为网卡烧录了正确的mac地址,且保存了对应的正确的授权码,就可以出厂了,出厂后就存在bios盗取的问题,所以将保护启动标志修改为保护启动状态,启动保护功能。

如果bios在第一次开机就启动bios保护功能,会导致工厂生产时更新了mac地址后,预留的初始授权码不是更新后的mac地址生成的,当前授权码与预留的初始授权码始终不一致导致后续都无法正常开机,本实施例中,通过保护启动标志解决了出厂前mac地址和授权码的更新问题。

在一个实施例中,根据所述mac地址生成bios镜像文件的当前授权码的步骤包括:计算当前网卡的eeprom的校验和,根据所述mac地址和校验和生成所述当前授权码。根据当前网卡的初始mac地址生成bios镜像文件的初始授权码的步骤包括:计算当前网卡的eeprom的初始校验和,根据初始mac 地址和初始校验和生成所述初始授权码。

具体的,计算网卡的eeprom校验和可以保证eeprom的完整性和准确性,校验和的具体计算方法可根据需要自定义。当前授权码和初始授权码的生成都考虑了eeprom的校验和,使得授权码的生成算法更难被破解,加强了授权码的安全性。

在一个实施例中,如图3所示,不允许开机的步骤之前,还包括:

步骤s310,系统宕机,接收输入的激活码。

具体的,对于需要维修的网卡,或升级eeprom后的网卡,mac地址或eeprom可能发现变化,导致根据变化后mac地址和eeprom计算出的当前授权码与预留授权码不一致,这种情况下通过输入激活码验证的方式使新的硬件配置生效。正版bios镜像文件的用户可以向厂家申请激活码,可以在线申请也可以线下申请,线下申请可以保证激活码的有效性,防止在网上传输时被窃取。如果是在线申请,在申请时可向激活码服务器发送请求,请求中可包括升级前的mac地址、eeprom的校验和或升级前的授权码、主板序列号等,厂家根据申请请求中的信息判断是否有获取激活码的权限,如果有权限,则向申请方发送激活码。发送的激活码可以加密,增加激活码的安全性。激活码的生成算法可自定义,如可由主板的序列号、板载网卡的型号及mac地址等生成。

步骤s320,判断是否接收到激活码,如果是,则进入步骤s330,否则不允许开机。

具体的,如果接收到激活码则进行下面的步骤,如果没有接收到激活码,则没有开机的权限。

步骤s330,验证激活码,判断激活码是否验证通过,如果验证通过,则进入步骤s340,否则不允许开机。

具体的,如果是加密的激活码,先经过解密,再验证,验证激活码时可通过特定的译码算法提取激活码中的主板的序列号、板载网卡的型号及mac地址等信息进行验证。如提取得到的mac地址需要与当前网卡的mac地址一致,保证激活码只能使用在固定的一台机器中。如果验证通过,则说明是正版bios镜像文件的用户,当前授权码与预留授权码不一致的原因是由于进行了升级等, 需要更新预留授权码。如果验证没有通过,可以再次进入接收输入激活码的步骤,如果多次输入的激活码都不正确,则不允许开机,同时bios镜像文件可以自毁,可根据具体应用需求决定。

步骤s340,将预留授权码更新为当前授权码保存到非易失性存储器,允许开机。

具体的,如果验证通过,则将预留授权码更新为当前授权码保存到非易失性存储器,保证预留授权码与升级后的网卡信息匹配,解决了公司产品的后续维护问题。

在一个实施例中,方法还包括:将验证通过的激活码保存到非易失性存储器。验证所述激活码的步骤包括:读取非易失性存储器中的预留激活码,判断接收输入的激活码是否与预留激活码相同,如果相同,则验证不通过。

具体的,将验证通过的激活码保存到非易失性存储器,便于在下次需要输入激活码时,读取非易失性存储器中的预留激活码,如果下次输入的激活码与预留激活码相同,则验证不通过,保证了激活码只能使用一次,进一步加强了激活码的安全性,加强了bios保护的有效性。

在一个具体的实施例中,使用板载网卡,如图4所示,基本输入输出系统保护方法的具体过程如下:

步骤s410,读取当前板载网卡的mac地址和eeprom,计算eeprom的校验和,根据mac地址和eeprom的校验和生成bios镜像文件的当前授权码。

步骤s420,判断是否是第一次开机,如果是,则进入步骤s430,否则进入步骤s440。

步骤s430,将当前授权码作为初始授权码加密,将初始化保护启动标志置0,表示非启动状态,将加密后的初始授权码和保护启动标志保存到bios的非易失性存储器中,进入正常开机的步骤。

步骤s440,从bios的非易失性存储器中读取加密的预留授权码和保护启动标志,将加密的预留授权码解码得到预留授权码。判断当前授权码与预留授权码是否相同,如果不相同,则进入步骤s450,如果相同,则可正常开机。

步骤s450,判断保护启动标志是否为1,即是否为启动状态,如果是,则进入步骤s460,否则进入步骤s490。

步骤s460,系统宕机,显示提示用户输入bios镜像文件的激活码的输入框,接收输入的激活码。

步骤s470,判断激活码是否验证成功,如果是则进入步骤s480,否则进入步骤s460。

步骤s480,将bios的非易失性存储器中的预留授权码更新为当前授权码,并将激活码保存至bios的非易失性存储器中,然后进入正常开机的步骤。

步骤s490,将bios的非易失性存储器中的预留授权码更新为当前授权码,将初始化保护启动标志置1,表示启动状态,然后进入正常开机的步骤。

在一个实施例中,如图5所示,提供了一种基本输入输出系统保护装置,包括:

当前授权码生成模块510,用于开机上电,在非首次开机的上电自检过程中读取当前网卡的mac地址,根据mac地址生成bios镜像文件的当前授权码。

保护模块520,用于从非易失性存储器中读取预留授权码,判断当前授权码与预留授权码是否相同,如果相同,则允许开机,如果当前授权码与预留授权码不相同,则不允许开机。

在一个实施例中,如图6所示,装置还包括:

初始化模块530,用于检测是否为首次开机,若是首次开机,则根据当前网卡的初始mac地址生成bios镜像文件的初始授权码,初始化保护启动标志为非启动状态,将初始授权码和保护启动标志保存到非易失性存储器。

如图7所示,保护模块520包括:

判断单元521,用于从非易失性存储器中读取保护启动标志,判断保护启动标志是否为保护启动状态,如果不是,则进入处理单元,如果保护启动标志是保护启动状态,则不允许开机。

处理单元522,用于将初始授权码更新为所述当前授权码,将保护启动标志修改为保护启动状态,将当前授权码和保护启动标志保存到非易失性存储器, 允许开机。

在一个实施例中,如图8所示,装置还包括:

激活模块540,用于系统宕机,接收输入的激活码,判断是否接收到激活码,如果是,则验证激活码,如果验证通过,则将预留授权码更新为所述当前授权码保存到非易失性存储器,允许开机,如果没有接收到激活码或激活码验证不通过,则不允许开机。

在一个实施例中,当前授权码生成模块510还用于计算当前网卡的eeprom的校验和,根据mac地址和校验和生成当前授权码。

初始化模块530还用于计算当前网卡的eeprom的初始校验和,根据初始mac地址和初始校验和生成初始授权码。

在一个实施例中,激活模块540还用于将验证通过的激活码保存到非易失性存储器,读取非易失性存储器中的预留激活码,判断接收输入的激活码是否与预留激活码相同,如果相同,则验证不通过。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权 利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1