抗口令凭证泄露的口令认证方法技术

技术编号:31984549 阅读:22 留言:0更新日期:2022-01-20 02:03
本发明专利技术提供一种抗口令凭证泄露的口令认证方法,在服务器端引入一组密钥服务器,系统服务器由认证服务器和密钥服务器两部分组成;认证服务器在密钥服务器的协助下为用户生成口令认证凭证。为了防止密钥服务器得知用户口令,认证服务器将口令盲化后再发送给密钥服务器。认证凭证是由用户口令和服务器端秘密共同生成的,凭证存储在认证服务器,服务器端秘密在密钥服务器之间以门限的方式共享,这样即使外部敌手拿到了凭证,没有服务器端秘密也无法得到用户口令的任何信息,增强了对口令的保护。本发明专利技术在增强对用户口令保护的同时,没有给用户带来额外的开销,用户只需要将用户名和口令通过TLS信道发送给认证服务器,只需改变现有的服务器端的部署。现有的服务器端的部署。

【技术实现步骤摘要】
抗口令凭证泄露的口令认证方法


[0001]本专利技术涉及口令认证技术,特别涉及抗口令凭证泄露的口令认证技术。
技术背景
[0002]口令认证是目前最便捷高效的认证方法,被广泛应用于邮件服务等诸多场景中。在口令认证中,用户只需利用传输层安全协议TLS(Transport layer security)向服务器发送用户名和口令,由服务器验证用户名和口令的正确性后,用户即可登录服务器获取服务。TLS协议用于验证服务器身份和保护用户名和口令的机密性和完整性。服务器维护一个基于用户口令生成的凭证数据库,用于验证用户的身份。通常来说,外部敌手拿到用户口令都是通过泄露的凭证数据库。凭证数据库泄露是企业数据库最常发生的安全事故。例如,2011年,CSDN发生凭证数据库泄露,泄露了600万中国用户的口令;2012年,LinkedIn遭到黑客攻击,导致全球近650万用户的口令被泄露;2020年,有超过50万个Zoom用户的口令被黑客窃取并出售。有技术报告指出,一家发生凭证数据库泄露的公司平均将损失437万美元。此外,凭证数据库泄露也给个人造成了严重和持久影响,由于用户总是在不同的系统中使用相同或相似的口令,一旦对手从某个被泄露的凭证数据库中恢复用户的口令,他可以很容易地猜测出该用户在其他系统中的口令。
[0003]为了防止外部敌手从被泄露的凭证数据库中得到用户口令,最基础的方法是将用户口令的哈希值作为凭证。然而用户口令本身是低熵的,因此基于哈希的口令凭证数据库极易受到离线字典猜测攻击。而且敌手利用彩虹表可以更加高效准确地猜测出用户口令。
[0004]为了缓解彩虹表攻击,目前最常用的方法是使用加盐的口令凭证。敌手只拿到口令凭证而不知道盐值无法恢复出用户的口令。但在实际的部署中,用户的凭证和盐值往往存储在同一设备上,一旦敌手攻破了该设备,就能拿到口令凭证和盐值。加盐并没有提高特定用户口令的安全性,即使无法使用彩虹表恢复用户口令,敌手依然可以实施离线字典猜测攻击得到用户口令,且该开销是可接受的。
[0005]基于哈希的口令认证方法和基于加盐的口令认证方法都有一个共同的特点,即对用户透明,用户只需要将自己的用户名和口令发送给服务器,不需要执行任何额外的操作。本专利技术保留了对用户透明这一特点,并且增强了用户口令的安全性。本专利技术在服务器端引入了一组密钥服务器,服务器由认证服务器和密钥服务器两部分组成。认证服务器在密钥服务器的协助下为用户生成凭证。外部敌手无法从被泄露的凭证数据库中获得任何关于用户口令的信息,即使他能够攻破某些密钥服务器。

技术实现思路

[0006]本专利技术所要解决的问题是,在基于用户口令的认证方案中,如何防止外部敌手从被泄露的口令认证凭证中恢复出用户口令的用户口令认证方法。
[0007]本专利技术为解决上述问题所采用的技术方案是,抗口令凭证泄露的口令认证方法,其特征在于,在服务器端引入一组密钥服务器,系统服务器由认证服务器和密钥服务器两
部分组成;认证服务器在密钥服务器的协助下为用户生成口令认证凭证,具体包括以下步骤:
[0008]系统初始化阶段:根据安全参数进行系统初始化,确定系统的公共参数;认证服务器选择秘密后,以门限方式在密钥服务器群中共享该秘密:认证服务器利用秘密生成各密钥服务器的子秘密并发送至密钥服务器后,认证服务器再销毁秘密;
[0009]注册阶段:
[0010]1)用户将选择的用户名和用户口令发送给认证服务器;
[0011]2)认证服务器将用户口令盲化后发送给每个密钥服务器;
[0012]3)各密钥服务器使用自己的子秘密处理接收到的盲化用户口令并返回给认证服务器;
[0013]4)认证服务器通过子秘密处理后的盲化用户口令计算得到用户口令的认证凭证,并验证该认证凭证的正确性;若正确,则存储用户名和对应的认证凭证至凭证数据库;否则,认证服务器终止服务;
[0014]登录阶段:
[0015]1)用户将用户名和用户口令发送给认证服务器;
[0016]2)认证服务器将用户口令盲化后发送给每个密钥服务器;
[0017]3)密钥服务器使用自己的子秘密处理盲化用户口令并返回给认证服务器;
[0018]4)认证服务器通过子秘密处理后的盲化用户口令计算得到用户口令的认证凭证,并验证认证凭证的正确性;若正确,则将本次计算的认证凭证与在凭证数据库里存储的认证凭证进行比较,若一致,则允许用户登录,否则拒绝用户登录。
[0019]本专利技术能够防止外部敌手从被泄露的口令凭证数据库中恢复出用户口令,因其在服务器端引入了多个密钥服务器来共同维护服务器端秘密,且认证服务器在密钥服务器的协助下为用户产生认证凭证,故而当凭证数据库发生泄露时,敌手无法从凭证数据库中得到关于用户口令的任何信息,即使敌手攻破了某些密钥服务器。相较于目前常用的口令认证方法,本专利技术不会给用户带来任何额外的计算或通信开销,同时,提供了更强的安全性保证。
[0020]本专利技术有益效果是,在增强对用户口令保护的同时,没有给用户带来额外的开销;口令的认证过程与一般口令认证方案相同,用户只需要将用户名和口令通过TLS信道发送给服务器,只需改变现有的服务器端的部署。
具体实施方式
[0021](一)系统初始化阶段
[0022]根据安全参数确定系统公共参数集{p,G,g,G
T
,H,e,t,n},其中p是素数,G是阶为p的乘法循环群,g是G的生成元,G
T
是阶为p的循环群,H:{0,1}
*

G是安全的哈希函数,e:G
×
G

G
T
是一个双线性映射,t是门限秘密共享方案中的阈值,n是密钥服务器的数量。
[0023]认证服务器按如下步骤产生一个秘密k,并在密钥服务器中以门限方式共享该秘密k:
[0024]1)均匀一致地选择一个秘密计算并存储g
k

[0025]2)随机选择其中i=1,...,t

1,构造一个t

1次多项式f(x)=k+a1x+

+a
t
‑1x
t
‑1mod p;
[0026]3)为每个密钥服务器计算子秘密f(i)=k+a1i+

+a
t
‑1i
t
‑1mod p,其中i=1,...,n;
[0027]4)通过安全信道将子秘密f(i)发送给密钥服务器其中i=1,...,n。存储f(i)。销毁k。
[0028]实施例采用现有的(t,n)

门限秘密共享是指有n个参与方共享一个秘密。选择秘密k之后为n个密钥服务器产生一个子秘密f(i),并发送f(i)至对应密钥服务器每个参与方只拥有一个子秘密,得到任意t个子秘密即可恢复出原始秘密。除非有外部敌手得到了被泄露的口令凭证数据库且同时攻破了足够多个(大于等于t个)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.抗口令凭证泄露的口令认证方法,其特征在于,在服务器端引入一组密钥服务器,系统服务器由认证服务器和密钥服务器两部分组成;具体包括以下步骤:系统初始化阶段:根据安全参数进行系统初始化,确定系统的公共参数;认证服务器选择秘密后,以门限方式共享该秘密:认证服务器利用秘密生成各密钥服务器的子秘密并发送至密钥服务器后,认证服务器再销毁秘密;注册阶段:1)用户将选择的用户名和用户口令发送给认证服务器;2)认证服务器将用户口令盲化后发送给每个密钥服务器;3)各密钥服务器使用自己的子秘密处理接收到的盲化用户口令并返回给认证服务器;4)认证服务器通过子秘密处理后的盲化用户口令计算得到用户口令的认证凭证,并验证该认证凭证的正确性;若正确,则存储用户名和对应的认证凭证至凭证数据库;否则,认证服务器终止服务;登录阶段:1)用户将用户名和用户口令发送给认证服务器;2)认证服务器将用户口令盲化后发送给每个密钥服务器;3)密钥服务器使用自己的子秘密处理盲化用户口令并返回给认证服务器;4)认证服务器通过子秘密处理后的盲化用户口令计算得到用户口令的认证凭证,并验证认证凭证的正确性;若正确,则将本次计算的认证凭证与在凭证数据库里存储的认证凭证进行比较,若一致,则允许用户登录,否则拒绝用户登录。2.如权利要求1所述方法,其特征在于,系统初始化阶段的具体步骤为:确定系统公共参数集{p,G,g,G
T
,H,e,t,n},其中p是素数,G是阶为p的乘法循环群,g是G的生成元,G
T
是阶为p的循环群,H:{0,1}
*

G,是安全的哈希函数,e:G
×
G

G
T
是一个双线性映射,t是门限秘密共享方案中的阈值,n是密钥服务器的数量;认证服务器按如下步骤产生一个秘密,并在密钥服务器中以门限方式共享该秘密,1)均匀一致地选择一个秘密计算并存储g
k
,表示模为p时可逆整数的乘法循环群;2)随机选择系数构造一个t

1次多项式f(...

【专利技术属性】
技术研发人员:许春香宋雅晴张源
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1