一种基于TPM芯片的系统登录保护方法和设备与流程

文档序号:20618029发布日期:2020-05-06 20:24阅读:285来源:国知局
一种基于TPM芯片的系统登录保护方法和设备与流程

本领域涉及计算机领域,并且更具体地涉及一种基于tpm芯片的系统登录保护方法和设备。



背景技术:

在信息系统中,保护系统中的用户名和登录口令是很重要的安全问题。为了保护用户的登录口令不被非法窃取,通常采用保存登录口令的哈希值。然而随着字典攻击和彩虹表的出现,直接保存登录口令哈希值这种安全技术也存在安全风险。采用登录口令加盐值后进行哈希存储(在登录口令被哈希操作之前先对其连接一个随机数)是另一种改进方案。随着云计算时代的到来,计算速度也得到显著提高。这种方案也变得不再安全。如何寻找更为安全的、保护系统登录的用户名和登录口令方法显得尤为重要。

hmac(哈希运算消息认证码)是一种消息认证算法,该算法以哈希运算为基础,并包含了一个密钥。该密钥可以是任意长度。由于自定义密钥的加入,使得该消息认证方式比上述传统的直接哈希或者加盐值哈希更为安全。但是该密钥如何保存是制约hmac算法应用的关键。常见的保存方式是直接保存该密钥在数据库或者本地磁盘中。当进行消息认证时,从数据库或者磁盘中读取该密钥,然后进行hmac运算来校验消息的完整性和真实性。这种方式,数据库中或者本地磁盘中一旦暴露该密钥或者丢失该密钥,hmac消息认证就存在安全隐患。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种基于tpm芯片的系统登录保护方法和设备,能够防止字典攻击和彩虹表破解用户登录口令,具有很高的安全性,增加产品的竞争力。

基于上述目的,本发明的实施例的一个方面提供了一种基于tpm芯片的系统登录保护方法,包括以下步骤:

在tpm芯片中生成密钥句柄;

响应于接收到用户创建登陆的初始信息,根据密钥句柄和初始信息以及摘要算法进行hmac计算,以得到初始值;

将初始值存储到数据库中;

响应于接收到用户登陆时输入的信息,根据密钥句柄和输入的信息以及摘要算法进行hmac计算,将计算结果与初始值进行对比;

响应于计算结果与初始值相同,判断用户登陆时输入的信息安全。

根据本发明的一个实施例,在tpm芯片中生成密钥句柄包括:

在tpm芯片中创建一个非授权密钥;

加载非授权密钥;

将加载后的非授权密钥持久化到tpm芯片内部,得到tpm芯片的密钥句柄。

根据本发明的一个实施例,初始信息包括用户名、登陆口令和新建标识符。

根据本发明的一个实施例,摘要算法包括sha256摘要算法。

根据本发明的一个实施例,还包括:响应于计算结果与初始值不相同,在显示界面上提示错误。

本发明的实施例的另一个方面,还提供了一种基于tpm芯片的系统登录保护设备,其特征在于,设备包括:

至少一个处理器;和

存储器,存储器存储有处理器可运行的程序代码,程序代码在被处理器运行时执行以下步骤:

在tpm芯片中生成密钥句柄;

响应于接收到用户创建登陆的初始信息,根据密钥句柄和初始信息以及摘要算法进行hmac计算,以得到初始值;

将初始值存储到数据库中;

响应于接收到用户登陆时输入的信息,根据密钥句柄和输入的信息以及摘要算法进行hmac计算,将计算结果与初始值进行对比;

响应于计算结果与初始值相同,判断用户登陆时输入的信息安全。

根据本发明的一个实施例,在tpm芯片中生成密钥句柄包括:

在tpm芯片中创建一个非授权密钥;

加载非授权密钥;

将加载后的非授权密钥持久化到tpm芯片内部,得到tpm芯片的密钥句柄。

根据本发明的一个实施例,初始信息包括用户名、登陆口令和新建标识符。

根据本发明的一个实施例,摘要算法包括sha256摘要算法。

根据本发明的一个实施例,程序代码在被处理器运行时还执行以下步骤:响应于计算结果与初始值不相同,在显示界面上提示错误。

本发明具有以下有益技术效果:本发明实施例提供的基于tpm芯片的系统登录保护方法,通过在tpm芯片中生成密钥句柄;响应于接收到用户创建登陆的初始信息,根据密钥句柄和初始信息以及摘要算法进行hmac计算,以得到初始值;将初始值存储到数据库中;响应于接收到用户登陆时输入的信息,根据密钥句柄和输入的信息以及摘要算法进行hmac计算,将计算结果与初始值进行对比;响应于计算结果与初始值相同,判断用户登陆时输入的信息安全的技术方案,能够防止字典攻击和彩虹表破解用户登录口令,具有很高的安全性,增加产品的竞争力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为根据本发明一个实施例的基于tpm芯片的系统登录保护方法的示意性流程图;

图2为根据本发明一个实施例的tpm芯片的系统登录保护装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例的第一个方面,提出了一种基于tpm芯片的系统登录保护方法的一个实施例。图1示出的是该方法的示意性流程图。

如图1中所示,该方法可以包括以下步骤:

s1在tpm芯片中生成密钥句柄,该密钥句柄只存在于tpm芯片硬件内部,保证了密钥的安全性;

s2响应于接收到用户创建登陆的初始信息,根据密钥句柄和初始信息以及摘要算法进行hmac计算,以得到初始值;

s3将初始值存储到数据库中;

s4响应于接收到用户登陆时输入的信息,根据密钥句柄和输入的信息以及摘要算法进行hmac计算,将计算结果与初始值进行对比;

s5响应于计算结果与初始值相同,判断用户登陆时输入的信息安全,计算结果与初始值相同则说明用户登陆时输入的信息与用户创建登陆时的信息一致。

本专利提出的一种基于tpm芯片的系统登录保护方法和设备。利用tpm芯片产生一个hmac运算的密钥,并将其存储为tpm芯片的持久化对象。当用户进行用户名和登录口令验证时,tpm芯片以用户名和登录口令为消息输入,持久化对象的密钥为hmac密钥,进行hmac运算得到hmac值,将该hmac值与之前(系统创建用户和登录口令)事先存储的hmac值做比较。当两者相同时,即可验证用户的登录口令是正确的。存储的hmac值是基于用户登录口令与密钥(该密钥只存在于tpm芯片硬件内部,保证了密钥的安全性),经过hmac运算得到的,该hmac值也不会暴露登录口令信息。因此基于该方案,保护系统的用户登录口令具有很高的安全性。

通过以上技术方案,能够防止字典攻击和彩虹表破解用户登录口令,具有很高的安全性,增加产品的竞争力。

在本发明的一个优选实施例中,在tpm芯片中生成密钥句柄包括:

在tpm芯片中创建一个非授权密钥;

加载非授权密钥;

将加载后的非授权密钥持久化到tpm芯片内部,得到tpm芯片的密钥句柄。首先tpm芯片调用tpm2_create创建一个非授权(非授权主要方便进行密钥备份)密钥;然后tpm芯片调用tpm2_load加载上面创建的非授权密钥;最后tpm芯片通过调用tpm2_evictcontrol把该非授权密钥进行持久化到tpm芯片内部,得到一个tpm芯片的密钥句柄keyhandle,并备份该非授权密钥到离线磁盘中,以防止tpm芯片损坏时,无法进行hmac计算。通过上述步骤,完成了tpm芯片hmac计算的前提准备。

在本发明的一个优选实施例中,初始信息包括用户名、登陆口令和新建标识符,其中该新建标识符用于保存计算的用户登录口令hmac值。

在本发明的一个优选实施例中,摘要算法包括sha256摘要算法,也可以使用其他的摘要算法。

在本发明的一个优选实施例中,还包括:响应于计算结果与初始值不相同,在显示界面上提示错误。

本发明的方法可以基于tpm芯片的系统登录保护装置实现,如图2所示,该装置包括用户登录管理部件、用户口令处理部件和tpm芯片管理部件实现。用户登录管理部件用于对系统的用户登录进行管理,当新建用户时,调用用户口令处理部件进行口令的hmac计算,并存储用户口令的hmac值;当用户登录时,首先通过调用用户口令处理部件计算出的hmac值,然后与新建用户时存储的用户口令的hmac值比较来判断用户口令是否合法;

用户口令处理部件用于接受用户登录管理部件输入的用户名和登录口令,调用tpm芯片进行hmac计算,并返回给用户登录管理部件进行处理;当新建用户,创建用户口令时,保存此时计算出来的用户口令hmac值,作为判断后续用户口令是否合法的依据;

tpm芯片管理部件负责tpm芯片的初始化,为计算用户登录口令hmac值做准备(前提条件);同时,接受用户口令处理部件请求,根据用户名和登录口令,进行hmac计算,并返回给用户口令处理部件。

基于上述装置,在tpm芯片中生成密钥句柄的步骤如下:

(1)tpm芯片管理部件调用tpm2_create创建一个非授权(非授权主要方便进行密钥备份)密钥;

(2)tpm芯片管理部件调用tpm2_load加载步骤(1)中创建的密钥;

(3)tpm芯片管理部件调用tpm2_evictcontrol把该密钥进行持久化到tpm芯片内部,得到一个tpm芯片的密钥句柄keyhandle;

(4)备份步骤(1)创建的密钥到离线磁盘中,防止tpm芯片损坏时,无法进行hmac计算;通过上述步骤,完成tpm芯片hmac计算的前提准备。

基于上述装置,新建用户时创建登录口令的步骤如下:

(1)用户登录管理部件接受用户输入的用户名和登录口令(用户名和登录口令格式、用户名是否重名、登录口令复杂度检测不在此讨论);

(2)用户登录管理部件传递用户名、登录口令和新建标识符(该标识用于通知用户口令处理部件保存计算的用户登录口令hmac值)给用户口令处理部件;

(3)用户口令处理部件对传入的用户名、登录口令作为一条输入消息,以前提准备步骤中的持久化对象keyhandle为输入密钥,以sha256为摘要算法,调用tpm2_hmac进行hmac计算;

(4)用户口令处理部件存储步骤(3)中的hmac值到数据库中;

(5)用户口令处理部件返回“创建用户成功”给用户登录管理部件。

基于上述装置,用户登录口令校验的步骤如下:

(1)用户登录管理部件接受用户输入的用户名和登录口令(用户名和登录口令格式、用户名是否重名、登录口令复杂度检测不在此讨论);

(2)用户登录管理部件传递用户名、登录口令和校验标识符(该标识用于通知用户口令处理部件校验用户的登录口令)给用户口令处理部件;

(3)用户口令处理部件对传入的用户名、登录口令作为一条输入消息,以前提准备步骤中的持久化对象keyhandle为输入密钥,以sha256为摘要算法,调用tpm2_hmac进行hmac计算;

(4)从数据库中取出新建用户时创建登录口令步骤中保存的用户登录口令hmac值;

(5)对步骤(3)计算出来用户当前输入的登录口令hmac值与步骤(4)保存的用户登录口令hmac值进行比较,如果两者相同,则用户登录口令校验通过,如果两者不相同,则用户登录口令校验不通过;

(6)用户口令处理部件返回步骤(5)中的校验结果给用户登录管理部件。

通过以上技术方案,能够防止字典攻击和彩虹表破解用户登录口令,具有很高的安全性,增加产品的竞争力。

需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储器(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。

基于上述目的,本发明的实施例的第二个方面,提出了一种基于tpm芯片的系统登录保护设备,其特征在于,设备包括:

至少一个处理器;和

存储器,存储器存储有处理器可运行的程序代码,程序代码在被处理器运行时执行以下步骤:

在tpm芯片中生成密钥句柄;

响应于接收到用户创建登陆的初始信息,根据密钥句柄和初始信息以及摘要算法进行hmac计算,以得到初始值;

将初始值存储到数据库中;

响应于接收到用户登陆时输入的信息,根据密钥句柄和输入的信息以及摘要算法进行hmac计算,将计算结果与初始值进行对比;

响应于计算结果与初始值相同,判断用户登陆时输入的信息安全。

在本发明的一个优选实施例中,在tpm芯片中生成密钥句柄包括:

在tpm芯片中创建一个非授权密钥;

加载非授权密钥;

将加载后的非授权密钥持久化到tpm芯片内部,得到tpm芯片的密钥句柄。

在本发明的一个优选实施例中,初始信息包括用户名、登陆口令和新建标识符。

在本发明的一个优选实施例中,摘要算法包括sha256摘要算法。

在本发明的一个优选实施例中,程序代码在被处理器运行时还执行以下步骤:响应于计算结果与初始值不相同,在显示界面上提示错误。

需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。

此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

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