一种针对数据库用户身份验证的双因素认证方法

文档序号:26838099发布日期:2021-10-08 18:40阅读:551来源:国知局
一种针对数据库用户身份验证的双因素认证方法

1.本发明属于信息安全技术领域,涉及一种实用的、可组合的用户身份认证方法,尤其涉及一种针对数据库用户的基于智能手机的双因素身份认证协议设计及实现方法。


背景技术:

2.确保数据库系统安全的一个基本步骤是验证访问数据库的用户身份(身份验证)。完善的身份验证方案有助于保护用户及其存储的数据不受攻击者的攻击。现有的数据库系统(如oracle,mysql)提供了多种身份验证策略以满足用户需求,例如基于口令的身份认证方法,基于令牌或智能卡的强身份认证方法,基于公钥基础设施(pki)的认证方法,代理认证等。在这些认证方法中,基于口令的认证是最基本、最方便的方法。用户只需要提供正确的口令,即可建立数据库访问连接。数据库可以将用户的口令以加密的方式(例如,加盐哈希)存储在服务器中,用户可以随时更改口令。但是,随着应用数量的增加,单口令认证方式给用户增加了负担。每个用户可能在不同的数据库上拥有多个账户,这使得记忆口令变得更加困难。对于企业级数据库,服务器可能远程部署,且要防止内部人员攻击。因此,不应该允许服务器获得口令明文(或可猜测的口令哈希),这在单口令认证方式中难以实现。此外,当用户离开公司或更换工作时,应立即更改用户特权,同时不影响企业中其他用户的使用。但是,单口令认证方式势必会影响其他用户的访问,难以及时更改权限。
3.因此,基于智能卡或令牌(例如,securid、其他兼容radius的令牌卡)等物理卡的双因素用户认证方案被提出。为获得数据库访问权限,用户必须同时拥有物理卡和口令。这些双因素认证方式主要分为三类:(1)物理卡与用户口令无沟通分别认证;(2)物理卡与用户交互,但口令分别认证;(3)物理卡与口令交互组合认证;第(1)类通常在物理卡上动态显示与身份认证服务同步的一次性pin码,用户提交口令和pin码,服务器可以在给定时间进行验证;第(2)类通常允许物理卡上有一个键盘,并在质询

回应的基础上操作。在这种情况下,服务器提供一个挑战(例如,一个随机数)作为密钥,用户将其输入到令牌卡中。令牌卡允许用户输入口令,并用上一轮的密钥加密后发送给服务器。很显然,这两类方式都允许服务器获得口令明文。不符合数据库实际应用场景。并且,第一类认证方法在通信信道上明文传输口令,需要公钥基础设施的支撑才能保证口令不被泄露。这增加了实际部署的难度。第(3)类方案在学术界较为常见。安全性也相对较高。例如:lwamo等人在文献1(lwamo n m r,zhu l,xu c,et al.suaa:a secure user authentication scheme with anonymity for the single&multi

server environments[j].information sciences,2019,477:369

385.)中提出的基于智能卡的适于多服务器环境的suaa协议;wazid等人在文献2(wazid m,das a k,odelu v,et al.secure remote user authenticated key establishment protocol for smart home environment[j].ieee transactions on dependable and secure computing,2017.)中提出的适于智能家居的基于智能卡的身份认证协议。通常物理卡中存储服务器公钥相关信息,或为每一张卡配备一个密钥,用服务器公钥、物理卡配备的密钥、随机数、哈希等方式在口令存储和传输过程中保护用户口令,同时允许口令本地验
证。本地验证通过的用户才能与远程服务器交互,有效避免服务器拒绝服务攻击。
[0004]
相比于单口令认证方式,双因素方式即解决了服务器获得口令明文的问题,又方便企业级的用户及时更改权限。企业级数据库可以为管理员配备专用设备,用户离开时只需要提交设备就可以消除其对账号的控制权。但是,这一类认证方式在实际应用中依然存在问题,用户每访问一个数据库需要携带一张物理卡,而用户维护的应用数量较大,不可能每次出门都随时携带大量物理设备。智能手机的出现能有效缓解这一问题。现有实用的基于智能手机的双因素协议类似于基于物理卡的双因素协议的第(1)类,例如google authenticator,fido,duo等,智能手机生成pin码和口令一起发送给服务器,智能手机和口令分别验证,并不能保证口令的安全性。2014年,shirvanian等人在文献3(shirvanian m,jarecki s,saxena n,et al.two

factor authentication resilient to server compromise using mix

bandwidth devices[c]//ndss.2014.)中提出了13个基于混合带宽智能设备的双因素协议,但是这些协议都依赖公钥基础设施(pki),容易遭受pki失效和口令泄露。并且这一类协议不支持密钥交换。此后,2016年,jarecki等人在文献4(jarecki s,krawczyk h,shirvanian m,et al.device

enhanced password protocols with optimal online

offline protection[c]//proceedings of the11th acm on asia conference on computer and communications security.2016:177

188.)提出了基于智能手机的双因素协议,称作de

pake,但是该协议允许攻击者访问智能手机,因此容易遭受在线口令猜测攻击。目前,安全性较高的基于智能手机的双因素协议唯有jarecki等人提出在文献5(jarecki s,krawczyk h,shirvanian m,et al.two

factor authentication with end

to

end password security[c]//iacr international workshop on public key cryptography.springer,cham,2018:431

461.)中提出的optfa,该协议解决pki失效和口令泄露问题,同时支持密钥交换。但是该协议需要较高的计算成本和通信成本,要求16个指数运算,2个多指数运算和10轮通信,并不适于实际应用。
[0005]
综上所述,基于智能手机的双因素认证协议研究刚刚起步,已有研究较少。现有协议或是存在安全问题,例如,口令泄露、口令猜测攻击等,或是性能较低,并不适用于数据库快速访问的需求。


技术实现要素:

[0006]
本发明提供一种基于智能手机的针对数据库用户的身份认证方法,是一种通用的双因素协议设计框架,基于2hashtdh协议和任意认证密钥交换协议(authenticated key

exchange,ake)生成方便用户使用的双因素协议,同时实现前向安全性、语义安全性,并防止口令猜测攻击、仿冒攻击、中间人攻击等。认证密钥交换协议要求通信双方维护对方的长期密钥,一般是128位的随机数,具备较高的安全性。但由于用户记忆力受限,密钥交换协议不能直接应用到用户参与的场景中。本发明方法可以有效的将安全的认证密钥交换协议转换成用户可用的实际双因素协议。
[0007]
本发明提供的技术方案如下:
[0008]
1.在注册阶段
[0009]
(1)用户/客户端(u/c)和服务器分别通过生成公私钥对(k
u
,k
u
)和(k
s
,k
s
)初始化某一特定的密钥交换协议ake;
[0010]
(2)移动手机d和服务器s分别生成密钥s
d
和s
s
来初始化2hashtdh协议。同时,用户运行2hashtdh协议将用户口令pw增强为密码学密钥rw(也称作随机口令)。这里,2hashtdh协议的具体操作过程如下:
[0011]
1)用户从字典空间随机选择口令pw,选择随机数ρ,计算α=(h(pw))
ρ

[0012]
2)用户将α分别发送给智能手机和服务器;
[0013]
3)智能手机计算服务器计算
[0014]
4)智能手机和服务器分别将β1和β2回送给用户;
[0015]
5)用户计算
[0016]
(3)用户采用rw加密u的私钥k
u
和s的公钥k
s
生成密文c=enc
rw
(k
u
,k
s
),并将c存储在智能手机中。此外,智能手机存储密钥s
d
,服务器存储k
s
,k
s
,k
u
,s
s

[0017]
2.认证阶段
[0018]
(1)用户输入口令pw,用户/客户端运行2hashtdh协议将pw转换为随机口令rw。
[0019]
(2)从智能手机上提取c,用rw解密c,获得c=enc
rw
(k
u
,k
s
)。
[0020]
(3)用k
u
,k
s
运行ake协议实现相互认证和密钥交换。这里的ake协议是任意满足安全需求的认证密钥交换协议。在此,选择needham

schroeder

lowe协议初始化ake协议,用户u和服务器s分别已知对方的公钥。协议具体操作如下:
[0021]
1)用户选择随机数r1,用s的公钥执行加密操作,得到
[0022]
2)
[0023]
3)服务器解密得到r1,s选择随机数r2,用u的公钥加密得到
[0024]
4)
[0025]
5)用户解密,并验证r1是否是上一轮选择的随机数,如果是,则用s的公钥执行加密操作,得到
[0026]
6)服务器解密得到r2,并验证r2是否是上一轮选择的随机数。如果是,则与用户建立连接,生成会话密钥sk=r2。
[0027]
3.权限更改
[0028]
当用户离开公司或要求注销用户账号时,可以在服务器存储的验证表项中,直接删除用户账号信息。
[0029]
本发明的有益效果是:
[0030]
本发明提供一种基于口令和智能手机的双因素身份认证协议设计方法和双因素身份认证。该方法具有通用性,可以将现有认证密钥交换协议转化成面向实际应用的双因素身份认证协议。利用本发明提供的技术方案,可以维持原协议的高安全性,又具备用户友好性,满足一用户、一设备、一口令,多账户访问的需求,同时满足用户访问权限及时更改。实现安全高效的双因素认证协议设计和身份认证。
附图说明
[0031]
图1是本发明的身份认证协议设计实现的架构图。
具体实施方式
[0032]
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0033]
利用本发明提供方法设计的基于智能手机的双因素身份认证协议进行数据库用户身份认证,能将现有的认证密钥交换协议转化成基于口令和智能手机的,具备匿名性、前向安全性和用户友好性等安全属性的认证协议,实现安全高效的双因素认证。
[0034]
本发明的用户身份认证过程包括初始化阶段、用户注册阶段和认证密钥交换阶段。图1所示是本发明的身份认证协议设计实现的流程。下面以2hashtdh协议、needham

schroeder

lowe协议为例对本发明进行说明。
[0035]
系统参数
[0036]
本阶段在用户初始化之前,完成系统参数定义。
[0037]
1.g是一个循环群,生成元g,阶为m;
[0038]
2.f是一个{0,1}
*
到{0,1}
l
伪随机函数;{0,1}
*
表示任意长度的0,1串,{0,1}
l
表示l长的0,1串。
[0039]
3.h和h

为两个哈希函数,值域分别为{0,1}
l
和z
m
。其中,l表示会话密钥的长度。
[0040]
初始化阶段
[0041]
本阶段完成各实体存储参数的初始化和用户注册过程。初始化结束后,智能手机存储秘密共享s
d
和密文c。服务器存储自身的公私钥对(k
s
,k
s
)和用户的公钥k
u

[0042]
1.系统生成服务器s的公私钥对(k
s
,k
s
)。
[0043]
2.智能手机d生成并存储秘密共享s
d
,同时通知服务器s生成并存储秘密共享s
s
。注意,这里的秘密共享并不是共享密钥,即s
d
和s
s
分别由智能手机和服务器生成,这两个秘密用于在随机口令生成时合并为一个秘密。
[0044]
3.用户在客户端c输入口令pw。
[0045]
4.客户端c生成随机数ρ,并计算α=(h(pw))
ρ
,将α分别发送给智能手机和服务器,即口令经过随机化处理后传输给智能手机。
[0046]
5.智能手机计算服务器计算
[0047]
6.智能手机和服务器分别将β1和β2回送给用户u登录数据库所使用的客户端c。同时,服务器将公钥k
s
一并回送给用户。
[0048]
7.客户端c计算
[0049]
8.客户端c生成用户的公私钥对(k
u
,k
u
),客户端c用rw加密用户私钥k
u
和服务器公钥k
s
,生成密文c=enc
rw
(k
u
,k
s
)。客户端c将用户u的公钥k
u
发送给服务器s,将密文c发送给智能手机d。智能手机存储密文c。
[0050]
认证阶段
[0051]
1.用户u在客户端c上输入口令pw,客户端c向智能手机d发送登录请求。智能手机和客户端c之间的认证可以通过以下三种操作中的一种:(1)用户在手机上单击按钮确认登录;(2)用户手机上显示4

6位pin码,用户手动在客户端c输入;或(3)客户端c显示二维码,用户用手机扫描二维码,并确认连接操作;
[0052]
2.客户端c选择随机数ρ

,计算α

=(h(pw))ρ

,将α

分别发送给智能手机和服务
器。
[0053]
3.智能手机计算服务器计算
[0054]
4.智能手机和服务器分别将β1′
和β2′
回送给客户端c,同时智能手机将密文c发送给客户端c。
[0055]
5.客户端c计算客户端c用rw解密c获得用户u的私钥k
u
和服务器s的公钥k
s

[0056]
6.用户选择随机数r1,用服务器的公钥加密用户的身份和随机数,得到其中,表示用k
s
对花括号里的明文进行加密。
[0057]
7.用户u给s发送消息服务器s用私钥k
s
解密后获得r1和u的身份标识。服务器s验证用户u是否是注册过的用户,如果不是,则拒绝数据库访问操作。如果是,服务器s选择随机数r2,从数据库中查找用户u的公钥,利用用户u的公钥加密r1、r2和服务器s的身份信息得到
[0058]
8.服务器s发送给用户u消息用户u收到消息后,利用用户u的私钥k
u
解密得到随机数r1,r2和服务器s的身份标识。用户u验证r1是否是上一轮用户发送给服务器s的随机数r1,以及服务器s的身份标识是否正确。如果其中一项不正确,用户u将终止登录操作。否则,用户u用服务器s的公钥加密随机数r2,得到
[0059]
9.用户u发送给s消息服务器s用私钥k
s
解密后获得r2,并验证r2是否是上一轮服务器发送给用户的消息中的随机数r2,如果是,则同意用户u的数据库访问操作,同时在用户u所登录客户端c和服务器s之间建立临时会话密钥sk=r2。否则,服务器s将终止连接服务。
[0060]
以上协议通信过程为5轮,但实际运行中,第2步和第7步,第4步和第8步可以并行操作,实际运行为3轮协议。
[0061]
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1