CN103236931B - 一种基于tpm的身份验证方法及系统以及相关设备 - Google Patents
一种基于tpm的身份验证方法及系统以及相关设备 Download PDFInfo
- Publication number
- CN103236931B CN103236931B CN201310159430.3A CN201310159430A CN103236931B CN 103236931 B CN103236931 B CN 103236931B CN 201310159430 A CN201310159430 A CN 201310159430A CN 103236931 B CN103236931 B CN 103236931B
- Authority
- CN
- China
- Prior art keywords
- password
- user
- tpm
- key
- random number
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种基于可信平台模块TPM的身份验证方法及系统以及相关设备。本发明实施例方法包括:创建与应用程序的用户登录口令对应的口令存储密钥;将登录口令存入口令存储密钥的使用认证域;再将口令存储密钥加密后保存于客户端;当用户需要登录应用程序时,TPM从客户端载入应用程序对应的经加密的口令存储密钥;对口令存储密钥进行解密得到用户登录口令;根据用户登录口令计算验证数据;将验证数据发送至服务器,以请求服务器对用户进行身份验证。本发明实施例还提供一种基于TPM的身份验证系统以及相关设备。本发明实施例能够实现对用户登录口令在存储和验证时的高安全强度保护。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种基于可信平台模块(TPM,TrustedPlatformModule)的身份验证方法、系统以及相关设备。
背景技术
随着网络技术的发展,电子邮箱、网上银行、游戏账号等各种网络应用充斥着用户的日常生活。用户如果要使用这些网络应用,必须得注册用户名并设置用户登录口令,服务器通过验证用户名与用户登录口令识别用户合法身份,即采用纯软件的口令验证处理方法。用户出于安全的考虑,本能地对不同的网络应用设置不同的用户登录口令,在登录不同的网络应用时,用户需要从所记忆的众多用户登录口令中取出对应的用户登录口令交付给应用程序进行验证。
在上述过程中,存在两个问题。首先,这种纯软件的口令验证处理方法,会使得用户登录口令不可避免地出现在主机内存中,恶意用户如果采取内存窃听等手段即可得到该用户登录口令,用户登录口令的泄露会给用户造成很大的困扰。其次,记忆众多的用户登录口令对用户来说是一大挑战。
发明内容
本发明实施例提供了一种基于TPM身份验证方法、TPM及服务器,使得用户无需记忆众多用户登录口令且能够保证用户登录口令的安全。
本发明实施例提供的基于TPM的身份验证方法,包括:创建与应用程序的用户登录口令对应的口令存储密钥;将所述用户登录口令存入所述口令存储密钥的使用认证域;将所述口令存储密钥加密后保存于客户端;当用户需要登录所述应用程序时,TPM从所述客户端载入与所述应用程序对应的经加密的口令存储密钥;对所述口令存储密钥进行解密得到用户登录口令;根据所述用户登录口令计算第一验证数据;将所述第一验证数据发送至服务器,以请求服务器对所述用户进行身份验证。
本发明实施例提供的基于TPM的身份验证方法,包括:接收客户端发送的应用程序登录请求;获取与所述应用程序的登录账号对应的用户登录口令;生成第一随机数,将所述第一随机数与所述登录账号绑定,并将所述第一随机数发送给所述客户端的TPM;接收所述客户端返回的第一验证数据及第二随机数;根据所述第一随机数、第二随机数及所述用户登录口令计算第二验证数据;比较所述第一验证数据及所述第二验证数据,若所述第一验证数据与所述第二验证数据相同,则证明了客户端的合法用户身份,服务器接受客户端的登录请求。
本发明实施例提供的TPM,包括:创建单元,用于创建与应用程序的用户登录口令对应的口令存储密钥;存储单元,用于将所述登录口令存入所述口令存储密钥的使用认证域;加密单元,用于将所述口令存储密钥加密后保存于客户端;载入单元,用于当用户需要登录所述应用程序时,从所述客户端载入与所述应用程序对应的经加密的口令存储密钥;解密单元,用于对所述口令存储密钥进行解密得到用户登录口令;计算单元,用于根据所述用户登录口令计算第一验证数据;发送单元,用于将所述第一验证数据发送至服务器,以请求服务器对所述用户进行身份验证。
本发明实施例提供的服务器,包括:请求接收单元,用于接收客户端发送的应用程序登录请求;口令获取单元,用于获取与所述登录账号对应的用户登录口令;第一随机数生成单元,用于生成第一随机数,并将所述第一随机数与所述登录账号绑定,再将所述第一随机数发送给客户端的TPM;数据接收单元,用于接收所述客户端返回的第一验证数据及第二随机数;数据计算单元,用于根据所述第一随机数、第二随机数及所述用户登录口令计算第二验证数据;数据验证单元,用于比较所述第一验证数据及所述第二验证数据,若所述第一验证数据与所述第二验证数据相同,则证明了客户端的合法用户身份,服务器接受客户端的登录请求。
本发明实施例提供的基于TPM的身份验证系统,包括:服务器,以及至少一个含有TPM的客户端。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,用户一旦设置应用程序对应的用户登录口令后,TPM会将该用户登录口令存入口令存储密钥的使用认证域,使用用户密钥对该口令存储密钥进行加密,将加密后的口令存储密钥保存于客户端,因此,登录口令是以密文的形式保存于客户端。当用户需要登录应用程序时,TPM只需由客户端载入与应用程序对应的加密后的口令存储密钥,即用户无需记忆应用程序的用户登录口令,TPM对该口令存储密钥进行解密,进而计算得到验证数据,然后将验证数据发送给服务器进行验证即可完成对用户的身份验证。在此过程中,由于解密口令存储密钥和计算验证数据的过程都是在TPM内完成,恶意用户即使截获得到验证数据,也很难推知原本的用户登录口令,从而保证了用户登录口令的安全。
附图说明
图1为本发明实施例中基于TPM的身份验证方法一个实施例示意图;
图2为本发明实施例中基于TPM的身份验证方法另一实施例示意图;
图3为本发明实施例中密钥的数据结构一实施例示意图;
图4为本发明实施例中基于TPM的身份验证方法另一实施例示意图;
图5为本发明实施例中TPM一个实施例示意图;
图6为本发明实施例中服务器一个实施例示意图;
图7为本发明实施例中基于TPM的身份验证系统一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于可信平台模块TPM的身份验证方法及系统以及相关设备,能够实现了对用户登录口令的高安全强度保护。
请参阅图1,本发明实施例中基于TPM的身份验证方法一个实施例包括:
101、创建与应用程序的用户登录口令对应的口令存储密钥;
当用户在客户端设置了应用程序的登录口令时,TPM创建与用户所设置的应用程序的用户登录口令对应的口令存储密钥。
102、将用户登录口令存入口令存储密钥的使用认证域;
此时,用户登录口令是以明文的形式存在于TPM中,TPM将用户设置的登录口令存储在所创建的口令存储密钥的使用认证域。
103、将口令存储密钥加密后保存于客户端;
因口令存储密钥的使用认证域存有用户登录口令,为保证用户登录口令的安全,TPM将口令存储密钥进行加密,并将加密后的口令存储密钥存储于客户端。因此,用户登录口令是以密文的形式存在于客户端。
104、从客户端载入与应用程序对应的经加密的口令存储密钥;
当用户需要登录某一应用程序时,TPM由客户端载入与用户欲登录的应用程序对应的经加密的口令存储密钥。
105、对口令存储密钥进行解密以得到用户登录口令;
因载入的口令存储密钥是经过加密的,所以TPM需要对所载入的口令存储密钥进行解密,解密之后得到密钥中的用户登录口令。
106、根据用户登录口令计算第一验证数据;
TPM根据从口令存储密钥中解密出的用户登录口令计算第一验证数据。
107、将第一验证数据发送给服务器,以请求服务器对用户进行身份验证。
本实施例中,通过将用户登录口令存入口令存储密钥的使用认证域,对该口令存储密钥进行加密,然后将加密后的口令存储密钥保存于客户端,当用户需要登录应用程序时,TPM只需由客户端载入应用程序对应的加密后的口令存储密钥,并对该口令存储密钥进行解密,进而计算得到验证数据,然后将验证数据发送给服务器进行验证即可完成对用户的身份验证。在此过程中,由于将解密口令存储密钥和计算验证数据的过程都是在TPM内完成,恶意用户即使截获得到验证数据,也很难推知原本的用户登录口令,从而保证了用户登录口令的安全。
为便于理解,下面以一具体实施例对本发明实施例中基于TPM的身份验证方法进行描述,请参阅图2,本发明实施例中基于TPM的身份验证方法另一实施例包括:
201、创建与应用程序的用户登录口令对应的口令存储密钥;
当用户在客户端设置了应用程序的用户登录口令时,TPM创建与用户所设置的应用程序的用户登录口令对应的口令存储密钥。
202、将用户登录口令存入口令存储密钥的使用认证域;
此时,用户登录口令是以明文的形式存在于TPM中,TPM将用户设置的用户登录口令存储在所创建的口令存储密钥的使用认证域。
203、将口令存储密钥逐级加密后存储于客户端;
因口令存储密钥的使用认证域存有用户登录口令,为保证用户登录口令的安全,TPM将口令存储密钥进行逐级加密保存。
由于TPM是一个小型片上系统,存储空间有限,不可能将所有的密钥都保存在TPM中。因此,TPM将经过逐级加密处理后的口令存储密钥保存在TPM之外的客户端存储器(如硬盘等)中。
204、从客户端载入与应用程序对应的经加密的口令存储密钥、并接收用户发送的口令验证请求及服务器发送的第一随机数;
当用户需要登录某一应用程序时,TPM从客户端载入与用户欲登录的应用程序对应的经加密的口令存储密钥,以及用户发送的口令验证请求与服务器发送的第一随机数。第一随机数为用户发出应用程序登录请求时,服务器产生的。
205、对口令存储密钥进行逐级解密得到用户登录口令;
TPM按照与上述加密口令存储密钥对应的方法对口令存储密钥进行解密得到用户登录口令。本实施例中,可采用4级密钥结构对口令存储密钥进行加解密,密钥结构如图3所示,具体的解密过程如下:
利用存储根密钥解密口令根密钥;
利用口令根密钥解密用户密钥;
利用用户密钥解密口令存储密钥。
206、产生第二随机数;
第二随机数由TPM自身产生,用于后续的用户身份认证协议。
207、将第一随机数串接在第二随机数后得到消息认证码运算的自变量,将用户登录口令作为密钥,以自变量与密钥为输入进行消息认证码运算得到第一验证数据;
此运算过程完全在客户端的TPM内部完成,以保证数据的安全。
208、将第一验证数据发送至服务器,以请求服务器对用户进行身份验证;
TPM将计算所得的第一验证数据连同自身产生的第二随机数发送给服务器,以使得服务器可根据接收到的数据及自身存储的用户登录口令对用户进行身份认证。
TPM还支持用户登录口令的备份与转移,可将用户登录口令转移到其他目标TPM上。备份与转移用户登录口令时只需要将用户密钥通过TPM密钥迁移机制迁移到目标TPM上,该用户密钥以下的所有口令存储密钥也就同时迁移到目标TPM上,即实现了用户登录口令的备份与迁移。
本实施例中,TPM通过将用户登录口令存入口令存储密钥的使用认证域,对该口令存储密钥采用逐级加密法加密,将加密后的口令存储密钥保存在客户端,当用户需要登录应用程序时,TPM对载入的口令存储密钥进行逐级解密,并结合自身产生的随机数与服务器产生的随机数通过消息认证码运算得到验证数据,在此过程中,由于解密口令存储密钥和计算验证数据的过程都是在TPM内完成,恶意用户即使得到验证数据及随机数,也很难推知原本的用户登录口令,从而保证了用户登录口令的安全。
上面从TPM的角度对本发明实施例中的身份验证方法进行了描述,下面从服务器的角度对本发明实施例中的身份验证方法进行描述,请参阅图4,本发明实施例中身份验证方法另一实施例包括:
401、接收客户端发送的应用程序登录请求;
当用户需要登录某一应用程序时,服务器通过客户端接收到的用户登录请求,获取对应的登录账号,对所获取的登录账号进行合法性检查,并在检查到该登录账号合法后,继续执行后续的用户身份验证过程。
402、查询与登录账号对应的用户登录口令;
服务器本身存储有各应用程序对应的用户登录口令,当服务器接收到的用户的登录请求后,就会查询与当前登录账号对应的用户登录口令。
403、生成第一随机数,将第一随机数与登录账号绑定,将第一随机数发送给客户端中的TPM;
服务器生成第一随机数,将第一随机数与登录账号绑定,再将第一随机数发送给客户端中的TPM,触发客户端根据对应的登录账号查找对应的密钥对象,此密钥对象将被载入TPM,接着TPM产生第二随机数,并根据相关数据计算第一验证数据。
404、接收客户端返回的第一验证数据及第二随机数;
第一验证数据由TPM在其内部计算所得,第二随机数由TPM内生成,服务器藉由客户端接收TPM产生的第一验证数据及第二随机数。
405、根据第一随机数、第二随机数及用户登录口令计算第二验证数据;
在本实施例中,可利用以下方式计算第二验证数据:
将第一随机数串接在第二随机数后得到消息认证码运算的自变量;
将用户登录口令作为消息认证码运算的密钥,以自变量与密钥为输入进行消息认证码运算以得到第二验证数据。
406、比较第一验证数据及第二验证数据,若第一验证数据与第二验证数据相同,则接受客户端的登录请求。
其中,因第一验证数据是由TPM根据应用程序对应的密钥对象计算所得,第二验证数据是由服务器根据应用程序对应的用户登录口令计算所得,当二者相同,则证明客户端掌握了应用程序对应的用户登录口令,即客户端通过了身份验证,服务器接受客户端发起的应用程序登录请求。
本实施例中,服务器在接收到客户端发送的应用程序登录请求后,生成随机数并将随机数与登录账号绑定,再将随机数发送给客户端,通过客户端接收TPM产生的验证数据与随机数,根据自身计算的验证数据与TPM产生的验证数据判断客户端是否有权限登录应用程序,在此过程中,不需要用户直接在客户端输入用户登录口令,保证了用户登录口令的安全。
下面对本发明实施例中的TPM进行描述,请参阅图5,本发明实施例中的TPM一个实施例包括:
创建单元501,用于创建与应用程序的用户登录口令对应的口令存储密钥;
存储单元502,用于将用户登录口令存入口令存储密钥的使用认证域;
加密单元503,用于将口令存储密钥加密后保存于客户端;
载入单元504,用于当用户需要登录应用程序时,从客户端载入应用程序对应的经加密的口令存储密钥;
解密单元505,用于对所接收到的口令存储密钥进行解密得到用户登录口令;
计算单元506,用于根据用户登录口令计算第一验证数据;
发送单元507,用于将第一验证数据发送至服务器,以请求服务器对用户进行身份验证。
本发明实施例中的载入单元504还用于在用户需要登录应用程序时,接收用户发送的口令验证请求及服务器产生的第一随机数。
本实施例中的TPM还可以进一步包括:
第二随机数产生单元508,用于产生第二随机数。
计算单元506可根据第一随机数、第二随机数及用户登录口令计算第一验证数据,具体的计算方法如下:
将第一随机数串接在第二随机数之后得到消息认证码运算的自变量;
将用户登录口令作为消息认证码运算的密钥,以自变量与密钥为输入进行消息认证码运算得到第一验证数据。
另外,解密单元505解密口令存储密钥的方法包括:
利用存储根密钥解密口令根密钥;
利用口令根密钥解密用户密钥;
利用用户密钥解密口令存储密钥。
本实施例中的TPM还可以进一步包括:
备份转移单元509,用于将用户登录口令备份转移到目标TPM上。
为便于理解,下面以一个应用场景对本实施例中TPM的各单元之间的交互方式进行描述:
当用户在客户端设置应用程序的用户登录口令时,创建单元501创建与用户所设置的应用程序的用户登录口令对应的口令存储密钥。
存储单元502将用户登录口令存入口令存储密钥的使用认证域之后,加密单元503可以将创建单元501创建的口令存储密钥逐级加密后保存在客户端;
因口令存储密钥的使用认证域存有用户登录口令,为保证用户登录口令的安全,TPM将口令存储密钥进行逐级加密。
由于TPM是一个小型片上系统,存储空间有限,不可能将所有的密钥都保存在TPM中。因此,加密单元503将经过逐级加密处理后的口令存储密钥保存于客户端存储器中。
当用户需要登录某一应用程序时,载入单元504从客户端载入与用户欲登录的应用程序对应的经加密的口令存储密钥,以及用户发送的口令验证请求与服务器发送第一随机数。第一随机数为用户发出应用程序登录请求时,服务器产生的。
解密单元505按照与上述加密口令存储密钥对应的方法对口令存储密钥进行解密得到用户登录口令。本实施例中,采用4级密钥结构对口令存储密钥进行加、解密,密钥结构如图3所示,具体解密过程与前述图2所示实施例中描述的内容相同,此处不再赘述。
第二随机数产生单元508可以产生第二随机数,该第二随机数由TPM自身产生,用于后续的用户身份验证。
计算单元506将第一随机数串接在第二随机数后得到消息认证码运算的自变量,使用用户登录口令作为消息认证码运算的密钥,以自变量与密钥为输入进行消息认证码运算得到第一验证数据;
发送单元507将计算单元506计算所得的第一验证数据连同自身产生的第二随机数发送给服务器,以使得服务器可根据接收到的数据及自身存储的用户登录口令对用户进行身份认证。
本实施例中,备份与转移单元509支持用户登录口令的备份与转移,用户登录口令转移时只需要转移用户密钥,对应的口令存储密钥就可以同时转移到其他TPM上。
本实施例中,存储单元通过将用户登录口令存入创建单元创建的口令存储密钥的使用认证域中,加密单元对口令存储密钥逐级加密后保存在客户端,当用户需要登录应用程序时,解密单元对由客户端载入的经加密的口令存储密钥进行解密,然后由计算单元根据解密数据计算验证数据,并由发送单元将验证数据发送给服务器进行验证,在此过程中,解密口令存储密钥和计算验证数据的过程都是在TPM内完成的,保证了用户登录口令的安全。
下面介绍本发明实施例中的服务器,请参阅图6,本发明实施例中的服务器包括:
请求接收单元601,用于接收客户端发送的应用程序登录请求;
口令获取单元602,用于获取与应用程序的登录账号对应的用户登录口令;
第一随机数生成单元603,用于生成第一随机数,将第一随机数与登录账号绑定,并将第一随机数发送给客户端的TPM;
数据获取单元604,用于获取客户端返回的第一验证数据及第二随机数;
数据计算单元605,用于根据第一随机数、第二随机数及用户登录口令计算第二验证数据;
数据验证单元606,用于比较第一验证数据与第二验证数据,若第一验证数据与第二验证数据相同,则证明了客户端的合法用户身份,服务器接受客户端的登录请求。
本实施例中的数据计算单元605计算第二验证数据的方法具体为:
将第一随机数串接在第二随机数之后得到消息认证码运算的自变量;
将用户登录口令作为消息认证码运算的密钥,以自变量与密钥为输入进行消息认证码运算得到第二验证数据。
为便于理解,下面以一个应用场景对本实施例中服务器的各单元之间的交互方式进行描述:
当用户需要登录某一应用程序时,请求接收单元601通过客户端接收到用户的登录请求,获取对应的登录账号,服务器对所获取的登录账号进行合法性检查,并在检查到该登录账号合法后,继续执行后续的验证过程。
口令获取单元602根据所获取的登录账号查找与应用程序对应的用户登录口令,该用户登录口令将用于后续相关验证数据的计算。
第一随机数生成单元603在服务器检查到登录账号合法后,生成第一随机数,并将第一随机数与登录账号绑定,再将第一随机数发送给客户端的TPM,触发客户端根据对应的登录账号查找对应的密钥对象,此密钥对象将被载入TPM,用来计算验证数据。
数据获取单元604在第一随机数生成单元603将第一随机数发送给客户端的TPM后,接收客户端返回的第一验证数据及第二随机数。其中,第一验证数据由TPM在其内部计算所得,第二随机数由TPM自身生成。
数据计算单元605根据数据获取单元获取的第二随机数,第一随机数生成单元603生成的第一随机数,以及口令获取单元602获取的用户登录口令计算第二验证数据。具体计算过程与前述图4所示实施例中描述的内容相同,此处不再赘述。
数据验证单元606比较数据计算单元605计算的第二验证数据及数据获取单元604获取的第一验证数据,并在二者相同时,认为用户通过了身份验证,接受客户端发起的应用程序登录请求。
本实施例中,请求接收单元在接收到客户端发送的应用程序登录请求后,触发随机数生成单元生成随机数并将随机数与登录账号绑定,再将随机数发送给客户端的TPM,数据获取单元获取TPM产生的验证数据与随机数,数据验证单元比较数据计算单元计算的验证数据与TPM产生的验证数据以判断用户是否有权限登录应用程序,在此过程中,不需要用户直接在客户端输入用户登录口令,保证了用户登录口令的安全。
下面对执行上述基于TPM的身份验证方法的本发明实施例的基于TPM的身份验证系统进行说明,其基本逻辑结构参考图7,本发明实施例中基于TPM的身份验证系统一个实施例包括:至少一个包含有TPM7001的客户端701及服务器702;
客户端701,用于设置应用程序的登录口令,向服务器702发送应用程序的登录请求,查询与应用程序对应的口令存储密钥,并将该口令存储密钥载入TPM7001;
TPM7001,用于创建与应用程序的用户登录口令对应的口令存储密钥,将用户登录口令存入口令存储密钥,并将口令存储密钥加密后存储于客户端701;当用户发起应用程序的登录请求时,从客户端载入应用程序对应经加密的口令存储密钥,并对口令存储密钥进行解密以得到用户登录口令,根据用户登录口令计算第一验证数据,并将第一验证数据发送给服务器702;
服务器702,用于查找与应用程序的登录账号对应的用户登录口令,根据用户登录口令计算第二验证数据,将TPM7001产生的第一验证数据与自身计算的第二验证数据进行比较,若二者相同,则接受用户的登录请求。
为保证数据安全,TPM7001可对口令存储密钥进行逐级加密后保存在客户端701,同时可采用与加密方法对应的解密方法对从客户端载入的口令存储密钥进行解密,下面详细说明解密过程:
利用存储根密钥解密口令根密钥;
利用口令根密钥解密用户密钥;
利用用户密钥解密口令存储密钥。
服务器702还用于产生第一随机数,TPM7001还用于产生第二随机数。TPM7001将从服务器702获取的第一随机数串接在自身产生的第二随机数之后得到消息认证码运算的自变量,将解密所得的用户登录口令作为消息认证码运算的密钥,以自变量与密钥为输入进行消息认证码运算得到第一验证数据,将第一验证数据连同自身产生的第二随机数发送给服务器702。服务器702将接收到的数据与自身存储的用户登录口令进行与TPM7001中同样的运算得到第二验证数据,并在第一验证数据与第二验证数据相同时,接收用户的登录请求。
TPM7001还可接受用户对用户登录口令进行的备份与转移。
为了更好的理解上述的实施例,下面以一个实际应用场景对本实施例基于TPM的身份验证方法应用于基于TPM的身份验证系统的数据交互方式进行说明,该数据交互方式包括:
新用户注册,用户在客户端701设置用户名(比如张三),操作主口令(123456)。TPM7001为新用户创建用户密钥,并设置此用户密钥的使用口令为操作主口令。客户端701记录用户名与用户密钥的对应关系,用户密钥经由系统初始化时创建的口令根密钥加密后保存于客户端701。
用户设置应用名称、登录账号、登录口令。比如电子邮箱应用、登录账号是zhangsanpp.com、登录口令是123123,登录账号和登录口令是用户注册电子邮箱应用时设置的账号和口令。TPM7001创建与电子邮箱的登录口令对应的口令存储密钥,将登录口令存入口令存储密钥的使用认证域,将口令存储密钥使用用户密钥加密后保存在客户端701中。
此时用户登录口令以密文的形式保存在客户端701,TPM7001还可支持用户对用户登录口令进行的备份与转移,可将用户登录口令转移到其他目标TPM上。备份与转移用户登录口令时只需要将用户密钥迁移到目标TPM上,该用户密钥以下的所有口令存储密钥也就同时迁移到目标TPM上,即实现了用户登录口令的备份与迁移。
用户登录应用服务,客户端701接受用户输入的用户名、操作主口令,用户名用于查找对应的用户密钥,操作主口令是使用用户密钥的口令。客户端701接收用户输入的应用名称和登录账号,并不需要用户输入用户登录口令,从而能防止登录口令出现在客户端的主机内存上而遭到恶意用户窃听。客户端701向服务器702发送应用程序登录请求。
服务器702接收客户端701发送的应用程序登录请求,获取应用程序的登录账号,并对该账号进行合法性验证,在验证到该登录账号合法后,查询自身存储的与该登录账号对应的用户登录口令。服务器702生成第一随机数,并将第一随机数与登录账号绑定,再将第一随机数发送给客户端701。
客户端701接收到服务器702返回的数据后,查询与登录账号对应的口令存储密钥,将该口令存储密钥载入TPM7001,并向TPM7001下达口令验证命令,参数为口令存储密钥的句柄和第一随机数。
TPM7001根据密钥句柄从客户端701载入口令存储密钥,同时依次载入系统初始化时创建的口令根密钥及新用户注册时创建的用户密钥,利用以明文形式存在于TPM内的存储根密钥解密口令根密钥,利用口令根密钥解密用户密钥,利用用户密钥解密从客户端701载入的口令存储密钥,解密后得到用户登录口令。其中,存储根密钥始终以明文形式存在于TPM内部,其余密钥由相应的父密钥加密后保存在TPM之外,例如客户端701的硬盘,当需要解密口令根密钥时,可将其余密钥从客户端701载入TPM7001。
TPM7001自身产生第二随机数,将所得到的第一随机数串接在第二随机数之后得到消息认证码运算的自变量,将解密所得的用户登录口令作为消息认证码运算的密钥,进行消息认证码运算得到第一验证数据。TPM7001将第一验证数据连同自身产生的第二随机数发送给702。
服务器702接收TPM7001发送的第一验证数据及第二随机数,将第二随机数、自身产生的第一随机数、用户登录口令按照与TPM7001中同样的算法进行计算得到第二验证数据。
服务器702比较所接收到的第一验证数据与自身产生的第二验证数据,若二者相同,则证明了客户端701的合法用户身份,服务器702接受客户端701的应用程序登录请求。
在本实施例中,用户只需要记住一个操作主口令,就可以安全存储多个账号和口令,并登录不同的应用程序。客户端会根据登录账号自动查询口令存储密钥并载入TPM,以使TPM在其内部完成口令存储密钥的解密计算过程,从而实现服务器对用户的身份验证,该方法能有效地保证用户登录口令的安全。
需要说明的是,本实施例中的TPM7001可以与前述图5所示的TPM相同,本实施例中的服务器702可以与前述图6所示的服务器相同,具体此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种基于TPM的身份验证方法及系统以及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种基于可信平台模块TPM的身份验证方法,其特征在于,包括:
TPM创建与应用程序的用户登录口令对应的口令存储密钥;
TPM将所述用户登录口令存入所述口令存储密钥的使用认证域;
TPM将所述口令存储密钥加密后保存于客户端;
当用户需要登录所述应用程序时,TPM从所述客户端载入与所述应用程序对应的经加密的口令存储密钥;
TPM对所述口令存储密钥进行解密得到所述用户登录口令;
TPM根据所述用户登录口令计算第一验证数据;
TPM将所述第一验证数据发送至服务器,以请求服务器对所述用户进行身份验证。
2.如权利要求1所述的基于TPM的身份验证方法,其特征在于,当所述用户需要登录所述应用程序时,所述TPM还接收用户发送的口令验证请求及服务器发送的第一随机数;
所述TPM根据所述用户登录口令计算第一验证数据包括:
TPM自身产生第二随机数;
TPM根据所述用户登录口令、第一随机数、第二随机数计算所述第一验证数据。
3.如权利要求2所述的基于TPM的身份验证方法,其特征在于,所述根据所述用户登录口令、第一随机数、第二随机数计算第一验证数据的具体方法如下:
将所述第一随机数串接在所述第二随机数之后得到消息认证码运算的自变量;
将所述用户登录口令作为消息认证码运算的密钥,以所述自变量与密钥为输入进行消息认证码运算以得到所述第一验证数据。
4.如权利要求1至3任一项所述的基于TPM的身份验证方法,其特征在于,所述TPM对所述口令存储密钥进行解密具体包括:
利用存储根密钥解密口令根密钥;
利用所述口令根密钥解密用户密钥;
利用所述用户密钥解密所述口令存储密钥。
5.如权利要求1至3任一项所述的基于TPM的身份验证方法,其特征在于,所述将所述第一验证数据发送至服务器后还包括:
备份与转移所述用户登录口令。
6.一种可信平台模块TPM,其特征在于,包括:
创建单元,用于创建与应用程序的用户登录口令对应的口令存储密钥;
存储单元,用于将所述用户登录口令存入所述口令存储密钥的使用认证域;
加密单元,用于将所述口令存储密钥加密后保存于客户端;
载入单元,用于当用户需要登录所述应用程序时,从所述客户端载入与所述应用程序对应的经加密的口令存储密钥;
解密单元,用于对所述口令存储密钥进行解密得到用户登录口令;
计算单元,用于根据所述用户登录口令计算第一验证数据;
发送单元,用于将所述第一验证数据发送至服务器,以请求服务器对所述用户进行身份验证。
7.如权利要求6所述的TPM,其特征在于,所述载入单元还用于:
当所述用户需要登录所述应用程序时,接收所述用户发送的口令验证请求及服务器发送的第一随机数;
所述TPM还包括第二随机数产生单元,用于产生第二随机数;
所述计算单元根据所述用户登录口令计算第一验证数据包括:
根据所述用户登录口令、第一随机数、第二随机数计算所述第一验证数据。
8.如权利要求7所述的TPM,其特征在于,所述计算单元根据所述用户登录口令、第一随机数、第二随机数计算所述第一验证数据具体为:
将所述第一随机数串接在所述第二随机数之后得到消息认证码运算的自变量;
将所述用户登录口令作为消息认证码运算的密钥,以所述自变量与密钥为输入进行消息认证码运算以得到所述第一验证数据。
9.如权利要求6至8任一项所述的TPM,其特征在于,所述解密单元解密所述口令存储密钥具体包括:
利用存储根密钥解密口令根密钥;
利用所述口令根密钥解密用户密钥;
利用所述用户密钥解密所述口令存储密钥。
10.如权利要求6至8任一项所述的TPM,其特征在于,所述TPM还包括备份与转移单元,用于备份与转移所述用户登录口令。
11.一种基于TPM的身份验证系统,其特征在于,包括:服务器,以及至少一个客户端,所述客户端包含有如权利要求6至10任一项所述的TPM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159430.3A CN103236931B (zh) | 2013-05-02 | 2013-05-02 | 一种基于tpm的身份验证方法及系统以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159430.3A CN103236931B (zh) | 2013-05-02 | 2013-05-02 | 一种基于tpm的身份验证方法及系统以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103236931A CN103236931A (zh) | 2013-08-07 |
CN103236931B true CN103236931B (zh) | 2016-08-03 |
Family
ID=48884949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310159430.3A Active CN103236931B (zh) | 2013-05-02 | 2013-05-02 | 一种基于tpm的身份验证方法及系统以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103236931B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763949A (zh) * | 2018-04-09 | 2018-11-06 | 上海大学 | 基于TPM的Linux文件系统访问控制方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243491B (zh) * | 2014-09-30 | 2017-08-29 | 深圳数字电视国家工程实验室股份有限公司 | 一种可信安全服务的控制方法及系统 |
CN104753945B (zh) * | 2015-03-31 | 2019-07-12 | 上海斐讯数据通信技术有限公司 | 一种网络时间同步系统及方法 |
CN105933122A (zh) * | 2016-04-20 | 2016-09-07 | 珠海格力电器股份有限公司 | 一种信息记录方法、系统及终端 |
JP6740702B2 (ja) * | 2016-05-11 | 2020-08-19 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
CN106250731A (zh) * | 2016-07-21 | 2016-12-21 | 广东芬尼克兹节能设备有限公司 | 一种用户权限控制方法及系统 |
US10503894B2 (en) * | 2016-08-30 | 2019-12-10 | Ncr Corporation | Secure process impersonation |
CN109426734A (zh) * | 2017-08-28 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种访问方法、装置、系统及电子设备 |
CN108347335A (zh) * | 2018-04-26 | 2018-07-31 | 广州江南科友科技股份有限公司 | 基于sm3算法和随机挑战码的登录验证方法及系统 |
CN110414200B (zh) | 2019-04-08 | 2021-07-23 | 广州腾讯科技有限公司 | 身份验证方法、装置、存储介质和计算机设备 |
CN113411287B (zh) * | 2020-03-16 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 密钥管理系统、方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925393A (zh) * | 2006-09-08 | 2007-03-07 | 苏州胜联电子信息有限公司 | 一种点对点网络身份认证方法 |
CN101064595A (zh) * | 2006-04-27 | 2007-10-31 | 联想(北京)有限公司 | 一种计算机网络安全输入认证系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281010B2 (en) * | 2000-11-15 | 2007-10-09 | Lenovo (Singapore) Pte. Ltd. | Trusted computing platform with dual key trees to support multiple public/private key systems |
CN101807818B (zh) * | 2010-02-25 | 2012-07-04 | 华北电力大学 | 基于id的配电网自动化通信系统的设备接入认证方法 |
MY176457A (en) * | 2010-10-11 | 2020-08-10 | Mimos Berhad | Secure external storage system and method thereof |
-
2013
- 2013-05-02 CN CN201310159430.3A patent/CN103236931B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064595A (zh) * | 2006-04-27 | 2007-10-31 | 联想(北京)有限公司 | 一种计算机网络安全输入认证系统和方法 |
CN1925393A (zh) * | 2006-09-08 | 2007-03-07 | 苏州胜联电子信息有限公司 | 一种点对点网络身份认证方法 |
Non-Patent Citations (3)
Title |
---|
A New Information Measurement Scheme Based on TPM for Trusted Network Access;Lu Chen等;《2007 International Conference on Computational Intelligence and Security Workshops》;20071231;第506-509页 * |
可信计算及其安全性应用研究综述;龚敏明等;《江西师范大学学报(自然科学版)》;20090630;第33卷(第3期);第348-352页 * |
基于可信计算的口令管理方案;陈爱国;《北京邮电大学学报》;20081031;第31卷(第5期);正文第94页第2章-第95页第3章 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763949A (zh) * | 2018-04-09 | 2018-11-06 | 上海大学 | 基于TPM的Linux文件系统访问控制方法 |
CN108763949B (zh) * | 2018-04-09 | 2021-07-27 | 上海大学 | 基于TPM的Linux文件系统访问控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103236931A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103236931B (zh) | 一种基于tpm的身份验证方法及系统以及相关设备 | |
EP3661120B1 (en) | Method and apparatus for security authentication | |
CN109347835B (zh) | 信息传输方法、客户端、服务器以及计算机可读存储介质 | |
KR102678262B1 (ko) | 분산형 컴퓨터 애플리케이션들을 구축하기 위한 비-보관 툴 | |
CN107040513B (zh) | 一种可信访问认证处理方法、用户终端和服务端 | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
CN106850207B (zh) | 无ca的身份认证方法和系统 | |
CN103888429B (zh) | 虚拟机启动方法、相关设备和系统 | |
CN102916970B (zh) | 一种基于网络的pin码缓存方法 | |
CN101588245A (zh) | 一种身份认证的方法、系统及存储设备 | |
WO2016054905A1 (zh) | 一种数据处理方法 | |
CN103701787A (zh) | 一种基于公开密钥算法实现的用户名口令认证方法 | |
CN106936588A (zh) | 一种硬件控制锁的托管方法、装置及系统 | |
CN111800378A (zh) | 一种登录认证方法、装置、系统和存储介质 | |
Dey et al. | Message digest as authentication entity for mobile cloud computing | |
US20140250499A1 (en) | Password based security method, systems and devices | |
CN113194077B (zh) | 登录方法及装置、计算机设备及计算机可读存储介质 | |
CN112291218B (zh) | 一种基于二维码双重融合加密算法的设备身份认证方法 | |
US20130205374A1 (en) | Method and system for network access control | |
CN116707961A (zh) | 用户认证方法、计算机设备及计算机存储介质 | |
CN116707983A (zh) | 授权认证方法及装置、接入认证方法及装置、设备、介质 | |
CN112702304A (zh) | 一种车辆信息的校验方法、装置及汽车 | |
US9245097B2 (en) | Systems and methods for locking an application to device without storing device information on server | |
CN115941328A (zh) | 一种可分享的用户数据的加密处理方法、装置及系统 | |
CN113468596B (zh) | 一种用于电网数据外包计算的多元身份认证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |