发明内容
鉴于现有技术存在的缺点和不足,本发明提供了一种实现开机保护的方法和系统,能够提高开机过程中安全性和可靠性,并且具有使用方便、应用范围广等特点,所述技术方案如下:
一方面,提供了一种实现开机保护的方法,所述方法包括:
计算机加载并执行动态口令保护程序;
所述计算机将控制权转交给所述动态口令保护程序;
所述动态口令保护程序生成挑战数据,并输出,所述用户将所述挑战数据输入到所述动态口令生成装置中;
所述动态口令保护程序接收用户输入的认证口令,其中,所述认证口令为所述动态口令生成装置根据所述用户输入的挑战数据、所述动态口令生成装置内部的动态口令生成算法得到的;
所述动态口令保护程序判断所述认证口令是否有效,如果是,则加载所述计算机的开机程序,否则,所述动态口令保护程序不加载所述计算机的开机程序。
所述动态口令保护程序位于BIOS中或主引导记录中,
相应地,所述方法还包括:若所述动态口令保护程序位于BIOS中,则通过所述计算机的主板开发工具将所述动态口令保护程序写入所述BIOS的预设位置;
相应地,所述方法还包括:若所述动态口令保护程序位于主引导记录中,则通过所述计算机的开发工具将所述动态口令保护程序写入所述计算机开机硬盘的主引导记录的位置,并保留分区表信息。
所述计算机加载并执行动态口令保护程序的步骤,具体包括;
若所述动态口令保护程序位于所述BIOS中,则在所述BIOS自检成功后加载并执行所述动态口令保护程序,将控制权转交给所述动态口令保护程序;
若所述动态口令保护程序位于所述主引导记录中,则在所述BIOS自检成功后加载并执行所述主引导记录中的动态口令保护程序,将控制权转交给所述动态口令保护程序。
所述计算机开机硬盘的主引导记录的位置具体为:
计算机开机硬盘的0柱面0磁头1扇区及所述1扇区的后续扇区。
所述动态口令保护程序接收用户输入的认证口令的步骤,之前还包括:
所述动态口令保护程序提示输入认证口令,具体的提示方式包括显示对话框的方式,或,显示字符的方式。
所述动态口令保护程序判断所述认证口令是否有效的步骤,包括:
所述动态口令保护程序接收所述用户输入的认证口令后,获取在所述BIOS的预设位置或所述开机硬盘的预设位置中预存的与所述动态口令生成装置对应的验证口令生成算法;
所述动态口令保护程序根据所述获取的验证口生成算法、所述挑战数据,生成验证数据,根据所述验证数据,判断所述认证口令是否有效。
所述方法还包括:设置无效次数的阈值,相应地,
当所述认证口令无效时,判断所述用户的无效次数是否超过预设的无效次数的阈值,如果是,则自动关闭计算机;否则,提示用户再次输入认证口令。
一种实现开机保护的系统,包括:计算机和动态口令生成装置;所述计算机包括:
预处理模块,用于加载并执行动态口令保护程序,并将所述计算机的控制权转交给所述动态口令保护程序;
生成模块,用于生成挑战数据,并输出;
接收模块,用于在所述预处理模块处理后,利用所述动态口令保护程序接收用户输入的认证口令;
判断模块,用于当所述接收模块接收到认证口令后,所述动态口令保护程序判断所述认证口令是否有效;
加载模块,用于当所述判断模块判断的结果为所述认证口令有效后,动态口令保护程序加载所述计算机的开机程序;
处理模块,用于当所述判断模块判断的结果为所述认证口令无效后,动态口令保护程序不加载所述计算机的开机程序;
所述动态口令生成装置包括:
接收模块,用于接收所述用户的输入的所述挑战数据、认证口令生成命令;
生成模块,用于根据所述接收模块接收的所述挑战数据和所述动态口令生成装置内部的动态口令生成算法生成认证口令;
输出模块,用于将所述生成模块生成的认证口令输出。
所述计算机的预处理模块具体包括:
上电单元,用于给所述计算机上电;
第一装入单元,用于当所述上电单元给所述计算机上电后,若所述动态口令保护程序位于BIOS中,则通过所述计算机的主板开发工具将所述动态口令保护程序写入所述BIOS的预设位置;
第二装入单元,用于当所述上电单元给所述计算机上电后,若所述动态口令保护程序位于主引导记录中,通过所述计算机的开发工具将所述动态口令保护程序写入所述计算机开机硬盘的主引导记录的位置,并保留分区表信息;
第一加载执行单元,用于当所述第一装入单元将所述动态口令保护程序写入所述BIOS的预设位置后,在所述BIOS自检成功后加载并执行所述动态口令保护程序,将控制权转交给所述动态口令保护程序;
第二加载执行单元,用于当所述第二装入单元将所述动态口令保护程序写入所述计算机开机硬盘的主引导记录的位置,并保留分区表信息后,则在所述BIOS自检成功后加载并执行所述主引导记录中的动态口令保护程序,将控制权转交给所述动态口令保护程序。
所述计算机还包括提示模块,用于提示用户输入认证口令;
相应地,
所述计算机的判断模块具体包括:
获取单元,用于获取在BIOS的预设位置或所述开机硬盘的预设位置中预存的与所述动态口令生成装置内部的动态口令生成算法对应的验证口令生成算法;
验证数据生成单元,用于根据所述获取单元获取的验证口令生成算法,生成验证数据;
验证单元,用于根据所述验证数据生成单元生成的验证数据,判断所述认证口令是否有效。
所述计算机的判断模块还包括:设置单元,
所述设置单元,用于设置无效次数的阈值,相应地,所述计算机的判断模块还包括:
处理单元,用于当所述验证单元验证所述认证口令无效时,判断所述用户的无效次数是否超过预设的无效次数的阈值,如果是,则自动关闭计算机;否则,提示用户再次输入认证口令。
其特征在于,
所述动态口令生成装置的接收模块具体用于接收所述用户输入的挑战数据;
所述生成模块,用于根据所述接收模块接收的挑战数据、所述动态口令生成算法生成所述认证口令;
输出模块,用于将所述生成模块生成的认证口令输出;
相应地,
所述计算机还包括挑战数据处理模块,用于生成挑战数据,并输出所述生成的挑战数据;
所述输出模块具体包括以下任一单元或其中组合:
第一输出单元,用于以显示的方式将所述生成模块生成的认证口令输出;
第二输出单元,用于以发声的方式将所述所述生成模块生成的认证口令输出;
第三输出单元,用于以震动的方式将所述生成模块生成的认证口令输出;
第四输出单元,用于以适用于用户触摸的方式将所述生成模块生成的认证口令输出。
本发明提供的技术方案的有益效果是:
通过采用了动态密码技术,提高了系统的安全等级;并且安全令牌无需和主机相连接,节省了研发投资和系统的稳定性;降低了对用户计算机机器配置的需求;由于动态口令不需要用户去记忆口令,从而解决了用户需要强制记忆密码的烦琐性,增加了系统的易用性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了提高开机过程中安全性和可靠性,本发明提供了一种实现开机保护的方法,该方法基于安全令牌,利用安全令牌的动态密码认证实现,具体内容如下:计算机加载并执行动态口令保护程序;计算机将控制权转交给动态口令保护程序;动态口令保护程序接收用户输入的认证口令,其中,认证口令为用户通过动态口令生成装置获取,动态口令生成装置根据动态口令生成因子、动态口令生成算法生成认证口令;动态口令保护程序根据认证口令,判断认证口令是否有效,如果是,则加载计算机的开机程序,否则,动态口令保护程序不加载计算机的开机程序。
其中,动态口令生成因子为计算机的动态口令开机保护程序生成的挑战数据,该方法具有使用方便、应用范围广等特点,参见如下实施例对本发明实施例提供的方法进行详细说明。
实施例1
参见图1,本发明实施例提供了一种实现开机保护的方法,本发明实施例中以动态口令生成因子为该用户使用动态口令生成装置根据计算机生成的挑战数据得到的认证口令为例进行说明,具体内容如下:
步骤101:计算机上电,BIOS自检,将动态口令开机保护程序装入计算机内存地址;
在本实施例中,动态口令开机保护程序可以置于BIOS程序中,作为BIOS程序的一部分,也可以位于计算机开机硬盘的主引导记录中。其中,
若动态口令保护程序位于BIOS中,则通过计算机的主板开发工具将动态口令保护程序写入BIOS的预设位置;
若动态口令保护程序位于主引导记录中,则通过计算机的开发工具将动态口令保护程序写入计算机开机硬盘的主引导记录的位置,并保留分区表信息,例如,开机硬盘的0柱面0磁头1扇区及其后续若干扇区等。
步骤102、BIOS自检成功后加载并执行动态口令开机保护程序,将计算机系统的控制权转移给动态口令开机保护程序;
在本实施例中,BIOS程序包括自检查程序和动态口令开机保护程序,自检查程序首先检查CPU,在CPU正常的基础上之后,将检查Key Board控制芯片、第一个16KB的RAM、时/计数器8253和DMA控制器、中断控制器8259A和显示器、软盘和硬盘以及打印适配设备和异步通信设备,若一切检查无误,则加载动态口令开机保护程序。
其中,若动态口令保护程序位于BIOS中,则在BIOS自检成功后加载并执行动态口令保护程序,将控制权转交给动态口令保护程序;
若动态口令保护程序位于主引导记录中,则在BIOS自检成功后加载并执行主引导记录中的动态口令保护程序,将控制权转交给动态口令保护程序。
本发明实施例为了便于说明,以动态口令开机保护程序置于BIOS程序中为例进行说明。
本实施例为了便于说明计算机开机程序仍以BIOS程序为例。
步骤103、动态口令开机保护程序初始化,加载动态口令的程序配置;
步骤104、动态口令开机保护程序初始化后,显示对话框向用户提供挑战数据,并显示输入对话框,提示用户输入认证口令;
其中,该动态口令开机保护程序内部算法随机向用户生成挑战数据,作为动态口令生成因子。
步骤105、用户向动态口令生成装置输入获取到的挑战数据,并发送认证口令生成命令;
其中,该步骤中用户在向动态口令生成装置发送认证口令生成命令时,具体通过按钮触发的形式,或,指纹扫描的形式,或声控开关的形式,或人体体温感应的方式,或压力感应的方式,或光电感应的方式等,实现向动态口令生成装置发送动态口令生成命令的目的,本发明实施例不限制具体所采用的实现方式和方法。
步骤106、动态口令生成装置内部以该用户输入的挑战数据为计算因子,利用HMAC-SHA1算法生成认证口令,并输出给用户;
其中,动态口令生成装置收到用户发送的动态口令生成命令后,以该用户使用的动态口令生成装置的当前次数为计算因子,利用优选的HMAC-SHA1算法生成认证口令,并输出给用户;其中该HMAC-SHA1算法为优选算法,还可以采用其他任意一种可以生成认证口令的算法程序,如hmac_sha256算法,hma_sha512算法,hmac_md5算法等。
其中,本发明实施例所涉及的认证口令生成技术是指动态口令生成装置根据不同的挑战数据生成不同的认证口令,也称动态口令认证方式。相应地,动态口令认证方式一般采用一种称之为安全令牌的专用硬件(安全令牌也可以是软件形式的,如手机的java程序),它内置于运行专门密码算法的密码生成芯片,根据当前使用次数生成当前密码并输出。
其中,该动态口令生成装置将生成的认证口令输出给用户具体可以采用如下的任一方式,或其组合:
以显示的方式(如显示屏等)将认证口令输出;以发声的方式将认证口令输出;以震动的方式将认证口令输出;还可以以适用于用户触摸的方式(如凹凸触点)将认证口令输出,本发明实施例不限制具体的输出方式和方式。
步骤107、用户获取到动态口令生成装置生成的认证口令后,将该认证口令提供给计算机的动态口令开机保护程序;
步骤108、计算机的动态口令开机保护程序接收到用户提供的认证口令后,根据该认证口令和自身预存的HMAC-SHA1算法,生成验证数据,判断认证口令是否和验证数据匹配,如果是,则执行步骤109;否则,执行步骤110。
其中,为了示例说明,假设在步骤104中动态口令开机保护程序初始化后,显示对话框向用户提供挑战数据,该挑战数据为123456;
相应地,在步骤106中动态口令生成装置内部以该用户输入的挑战数据123456为计算因子,利用HMAC-SHA1算法生成认证口令654321,并输出给用户;
相应地,在步骤108中计算机的动态口令开机保护程序接收到用户提供的认证口令654321后,根据该认证口令和自身预存的HMAC-SHA1算法(该算法与动态口令生成装置中内置的算法一致),生成验证数据,若当该验证数据为123456时,则认为认证口令和验证数据匹配,认证口令有效;若该生成的验证数据为987654,则认为该认证口令和验证数据不匹配,认证口令无效。
步骤109、动态口令开机保护程序加载系统的后续开机程序,将系统控制权转交给系统开机程序,该计算机系统的开机程序将系统的控制权转交给转入了内存地址的操作系统或操作程序。
步骤110、用户输入的认证口令无效,动态口令开机保护程序判断无效次数是否超过预设值,若超过预设值,则执行步骤111,否则,返回执行步骤104;
其中,本步骤中通过设定判断无效次数是否超过预设值的处理动作,进一步地充分考虑到用户的实际使用情况,确保了本发明实施例提供的方案的灵活性。
步骤111:自动关闭计算机。
其中,本领域技术人员可以获知,本发明实施例提供的动态口令开机保护程序还可以自身存储多个验证口令生成算法,通过建立索引等形式,实现不同验证口令生成算法与不同的动态口令生成装置内的动态口令生成算法对应的关系,即通过提示不同的用户输入身份信息后,根据该用户身份信息索引到与该用户所持有的动态口令生成装置对应的验证口令生成算法,以实现用户的开机保护过程。
综上所述,本发明实施例提供了一种实现开机保护的方法,通过采用了动态密码技术,提高了系统的安全等级;并且安全令牌无需和主机相连接,节省了研发投资和系统的稳定性;降低了对用户计算机机器配置的需求;由于动态口令不需要用户去记忆口令,从而解决了用户需要强制记忆密码的烦琐性,增加了系统的易用性。
实施例2
参见图2,本发明实施例提供了一种实现开机保护的系统,该系统包括:计算机和动态口令生成装置;参见图3,计算机包括:预处理模块、接收模块、判断模块、加载模块和处理模块;动态口令生成装置包括接收模块和生成模块;其中,
在计算机中,
预处理模块,用于加载并执行动态口令保护程序;并将计算机的控制权转交给动态口令保护程序;
接收模块,用于在预处理模块处理后,利用动态口令保护程序接收用户输入的认证口令;
判断模块,用于当接收模块接收到认证口令后,动态口令保护程序判断认证口令是否有效;
加载模块,用于当判断模块判断的结果为认证口令有效后,动态口令保护程序加载计算机的开机程序;
处理模块,用于当判断模块判断的结果为认证口令无效后,动态口令保护程序不加载计算机的开机程序;
在动态口令生成装置中,
接收模块,用于接收用户的动态口令生成命令;
生成模块,用于根据所述接收模块接收的挑战数据和动态口令生成装置内部的动态口令生成算法生成认证口令;
输出模块,用于将上述生成模块生成的认证口令输出。
其中,上述接收模块在接收用户的动态口令生成命令时,具体可以通过按钮触发的形式,或,指纹扫描的形式,或声控开关的形式,或人体体温感应的方式,或压力感应的方式,或光电感应的方式等,实现用户向动态口令生成装置发送动态口令生成命令的目的,本发明实施例不限制具体所采用的实现方式和方法。
其中,上述输出模块在将上述生成模块生成的认证口令输出时,输出模块具体包括以下任一单元或其中组合:
第一输出单元,用于以显示的方式将生成模块生成的认证口令输出;
第二输出单元,用于以发声的方式将生成模块生成的认证口令输出;
第三输出单元,用于以震动的方式将生成模块生成的认证口令输出;
第四输出单元,用于以适用于用户触摸的方式将生成模块生成的认证口令输出。
其中,
其中,上述计算机的预处理模块具体包括:
上电单元,用于给计算机上电;
第一装入单元,用于当上电单元给计算机上电后,若动态口令保护程序位于BIOS中,则通过计算机的主板开发工具将动态口令保护程序写入BIOS的预设位置;
第二装入单元,用于当上电单元给计算机上电后,若动态口令保护程序位于主引导记录中,通过计算机的开发工具将动态口令保护程序写入计算机开机硬盘的主引导记录的位置,并保留分区表信息;
第一加载执行单元,用于当第一装入单元将动态口令保护程序写入BIOS的预设位置后,在BIOS自检成功后加载并执行动态口令保护程序,将控制权转交给动态口令保护程序;
第二加载执行单元,用于当第二装入单元将动态口令保护程序写入计算机开机硬盘的主引导记录的位置,并保留分区表信息后,则在BIOS自检成功后加载并执行主引导记录中的动态口令保护程序,将控制权转交给动态口令保护程序。
相应地,加载模块,具体用于当判断模块判断的结果为认证口令有效后,动态口令保护程序加载计算机的开机程序,开机程序将系统控制权转交给装入内存地址的操作程序或操作系统。
其中,上述计算机开机硬盘的预设位置具体可以为:计算机开机硬盘的0柱面0磁头1扇区及1扇区的后续扇区。
进一步地,计算机还包括提示模块,用于提示用户输入认证口令;其中,当动态口令开机保护程序初始化后,该提示模块具体可以采用以显示对话框的形式提示用户输入认证口令,或以发声的形式提示用户输入认证口令,本发明实施例不限制具体所采用的提示方式。
相应地,
计算机的判断模块具体包括:
获取单元,用于获取在BIOS的预设位置或开机硬盘的预设位置中预存的与动态口令生成装置内部的动态口令生成算法对应的验证口令生成算法;
验证数据生成单元,用于根据获取单元获取的验证口令生成算法,生成验证数据;
验证单元,用于根据验证数据生成单元生成的验证数据,判断认证口令是否有效。
进一步地,计算机的判断模块还包括:设置单元,
设置单元,用于设置无效次数的阈值,相应地,计算机的判断模块还包括:
处理单元,用于当验证单元验证认证口令无效时,判断用户的无效次数是否超过预设的无效次数的阈值,如果是,则自动关闭计算机;否则,提示用户再次输入认证口令。
动态口令生成装置的接收模块具体用于接收用户的输入的挑战数据;
生成模块,用于根据接收模块接收的挑战数据,动态口令生成装置内部的动态口令生成算法生成认证口令;
输出模块,用于将生成模块生成的认证口令输出;
相应地,
计算机还包括挑战数据处理模块,用于生成挑战数据,并输出生成的挑战数据;
接收模块具体用于在预处理模块处理后,利用动态口令保护程序接收用户输入的认证口令;
判断模块,用于当接收模块接收到认证口令后,动态口令保护程序根据认证口令、自身的验证口令生成算法生成验证数据,判断验证数据和认证口令是否匹配,如果是,则认证口令有效;否则,认证口令无效。
其中,本发明实施例提供的动态口令生成装置具体可以为安全令牌。
综上所述,本发明实施例提供了一种实现开机保护的系统,通过采用了动态密码技术,提高了系统的安全等级;并且安全令牌无需和主机相连接,节省了研发投资和系统的稳定性;降低了对用户计算机机器配置的需求;由于动态口令不需要用户去记忆口令,从而解决了用户需要强制记忆密码的烦琐性,增加了系统的易用性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。