保护用户名隐私的认证方法及系统与流程

文档序号:15818940发布日期:2018-11-02 22:55阅读:267来源:国知局
保护用户名隐私的认证方法及系统与流程

本发明涉及一种认证方法及系统,尤其是一种保护用户名隐私的认证方法及系统,属于用户名的安全领域。

背景技术

随着互联网的普及,信息系统在提供网络资源时需通过身份认证来鉴定用户身份的合法性——只有合法用户才被允许使用该网络资源。作为系统安全的第一守卫,身份认证技术的作用尤为突出。目前主流的身份认证技术有静态口令方式、动态口令、智能卡认证、usbkey认证、生物特征认证以及多因素身份认证。智能卡认证、usbkey认证、生物特征认证等技术虽能实现安全可靠的身份验证,但都必须使用特定的硬件设备,具有较大的局限性。

有鉴于此,用户名加密码仍为网络使用者在网站、软件以及手机应用最为广泛使用的身份标识,保障用户账户的安全对企业而言甚为重要。目前,企业保护用户账户主要手段是对用户密码进行对称加密、使用哈希函数算法、pbkdf2算法和bcrypt算法等。这些方案虽已很好地保护用户密码,但用户名却都以明文的形式存储在数据库中,整个认证过程对用户名的操作并没有任何保护,容易在当前普遍使用手机号作为用户名的系统中发生信息泄漏。

保护用户名的安全开始受到重视,有中国发明专利申请(申请号:cn201610311876.7,公开日为2016.08.24)提出的一种用户名及密码信息加密及验证方法,该方法是先将用户名及密码进行信息加密处理后存储到数据库中,每次用户登陆时都需要用同样的信息加密方法生成加密信息与数据库中的信息进行比较,比较结果为相同,则允许用户登录。然而,该专利要求加密方法必须是确定性的。基于对称加密的密钥存储开销过大和实际应用中用户名空间不大难以抵御线下消息恢复攻击等问题,权衡系统的存储开销与系统的安全性,选择采用非对称加密。在实际应用中,如若使用不确定性的非对称加密方法,在用户身份验证时,被公钥加密的用户名要连同由用户私钥生成的授权陷门一并发送至服务器,服务器接收到用户端所发送的密文后,与密文数据库的内容进行等值测试——在密文数据库搜索是否存在由同一明文生成的密文。然而单服务器模式下难以抵御线下恢复攻击,因为该服务器可以独自完成等值测试:给定某个密文c和用户的授权陷门,服务器可以通过穷举明文的方式,用猜测明文所生成的密文c',运行测试算法,直到寻找出与密文c测试成功的c'为止,从而得知密文中的明文信息,引起信息的泄漏。



技术实现要素:

本发明的目的是为了解决上述现有技术的不足之处,提供一种保护用户名隐私的认证方法,该方法能够有效地抵御线下恢复攻击,显著地提高安全性,能够与目前大多数用户名加密码系统相对接。

本发明的另一目的在于提供一种保护用户名隐私的认证系统。

本发明的目的可以通过采取如下技术方案达到:

一种保护用户名隐私的认证方法,所述方法包括:

客户端对注册的用户名进行加密并发送至控制器;

控制器将注册的用户名密文发送至第一服务器;

客户端对登录的用户名进行加密并发送至控制器;

控制器将登录的用户名密文发送至第二服务器;

第一服务器根据注册的用户名密文,计算第一中间值并发送至第二服务器;

第二服务器根据登录的用户名密文,计算第二中间值并发送至第一服务器;

第一服务器根据第二中间值,计算第一最终值并发送至控制器;

第二服务器根据第一中间值,计算第二最终值并发送至控制器;

控制器根据第一最终值和第二最终值,判断用户身份是否合法。

进一步的,所述客户端对注册的用户名进行加密并发送至控制器,具体包括:

当用户在客户端输入注册的用户名mi后,客户端计算注册的用户名的哈希值h(mi);

客户端获得第一服务器公钥x=g1x1g2x2,以及获得第二服务器公钥y=g1y1g2y2,随机选择ri∈zp,调用模乘部件、模求幂部件,计算注册的用户名密文ci1=g1ri,ci2=g2ri,ci3=(g1x1g2x2)ri(g1y1g2y2)rih(mi);

客户端将注册的用户名密文分别传输到控制器。

进一步的,所述客户端对登录的用户名进行加密并发送至控制器,具体包括:

当用户在客户端输入登录的用户名mj后,客户端计算登录的用户名的哈希值h(mj);客户端获得第一服务器公钥x=g1x1g2x2,以及获得第二服务器公钥y=g1y1g2y2,随机选择rj∈zp,调用模乘部件、模求幂部件,计算登录的用户名密文cj1=g1rj,cj2=g2rj,cj3=(g1x1g2x2)rj(g1y1g2y2)rjh(mj);

客户端将登录的用户名密文分别传输到控制器。

进一步的,所述第一服务器根据注册的用户名密文,计算第一中间值并发送至第二服务器,具体包括:

第一服务器随机选择r1s∈gp,使用它的私钥、ci和r1s,调用模乘部件、模求幂部件计算第一中间值,如下式:

iv1s=((ci1)x1﹡(ci2)x2)-1﹡r1s=((g1ri)x1﹡(g2ri)x2)-1﹡r1s=(g1x1g2x2)-ri﹡r1s

第一服务器将iv1s和ci发送给第二服务器。

进一步的,所述第二服务器根据登录的用户名密文,计算第二中间值并发送至第一服务器,具体包括:

第二服务器随机选择r2s∈gp,使用它的私钥、cj和r2s,调用模乘部件、模求幂部件计算第二中间值,如下式:

iv2s=((cj1)y1﹡(cj2)y2)-1﹡r2s=((g1rj)y1﹡(g2rj)y2)-1﹡r2s=(g1y1g2y2)-rj﹡r2s

第二服务器将iv2s和cj发送给第一服务器。

进一步的,所述第一服务器根据第二中间值,计算第一最终值并发送至控制器,具体包括:

第一服务器接收到第二中间值iv2s,使用它的私钥、cj、r1s和iv2s,调用模乘部件、模求幂部件,计算第一最终值,如下式:

fv1s=cj3﹡iv2s﹡((cj1)x1﹡(cj2)x2)-1﹡r1s=cj3﹡iv2s﹡((g1rj)x1﹡(g2rj)x2)-1

r1s=h(mj)﹡r2s﹡r1s

第一服务器将fv1s发送给控制器。

进一步的,所述第二服务器根据第一中间值,计算第二最终值并发送至控制器,具体包括:

第二服务器接收到第一中间值iv1s,使用它的私钥、ci、r2s和iv1s,调用模乘部件、模求幂部件,计算第二最终值,如下式:

fv2s=ci3﹡iv1s﹡((ci1)y1﹡(ci2)y2)-1﹡r2s=ci3﹡iv1s﹡((g1ri)y1﹡(g2ri)y2)-1

r2s=h(mi)﹡r1s﹡r2s

第二服务器将fv2s发送给控制器。

进一步的,所述控制器根据第一最终值和第二最终值,判断用户身份是否合法,具体包括:

控制器比较第一最终值和第二最终值,若第一最终值等于第二最终值,则判断合法,否则,判断不合法。

进一步的,所述方法在客户端加密前,还包括:

第一服务器和第二服务器分别调用模乘部件、模求幂部件生成各自的密钥对。

本发明的另一目的可以通过采取如下技术方案达到:

一种保护用户名隐私的认证系统,所述系统包括客户端、控制器、第一服务器和第二服务器;

所述客户端,用于对注册的用户名进行加密并发送至控制器,以及对登录的用户名进行加密并发送至控制器;

所述控制器,用于将注册的用户名密文发送至第一服务器,将登录的用户名密文发送至第二服务器,以及根据第一服务器发送的第一最终值和第二服务器发送的第二最终值,判断用户身份是否合法;

所述第一服务器,用于根据注册的用户名密文,计算第一中间值并发送至第二服务器,以及根据第二服务器发送的第二中间值,计算第一最终值并发送至控制器;

所述第二服务器,用于根据登录的用户名密文,计算第二中间值并发送至第一服务器,以及根据第一服务器发送的第一中间值,计算第二最终值并发送至控制器。

本发明相对于现有技术具有如下的有益效果:

1、本发明采取的双服务器并联模式,一方面两个服务器能够并行运算,效率较双服务器串联模式高;另一方面两个服务器的串联模式会导致能得到测试结果的后端服务器权利过大,前端服务器无法制止被发起线下消息恢复攻击的后端服务器所利用,而并联模式则很好地规避此类情况。

2、本发明基于判定性diffie-hellman假设的实例,利用模乘运算取代目前主流的等值测试所应用的双线性对运算,因此运行效率比基于双线性对构造的支持等值测试的公钥加密方案高,最重要的是,两服务器均无法得知测试结果,因此能够有效地抵御线下恢复攻击,显著地提高安全性。

附图说明

图1为本发明实施例1的保护用户名隐私的认证方法的流程示意图。

图2为本发明实施例1的保护用户名隐私的认证方法中注册阶段流程图。

图3本发明实施例1的保护用户名隐私的认证方法中登录阶段流程图。

图4为本发明实施例2的保护用户名隐私的认证系统结构框图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1:

如图1~图3所示,本实施例提供了一种保护用户名隐私的认证方法,该方法包括以下步骤:

(一)密钥生成

第一服务器调用模乘部件、模求幂部件生成自己的密钥对(pk1s=x=g1x1g2x2,sk1s=(x1,x2)),并将pk1s公开。

第二服务器调用模乘部件、模求幂部件生成各自的密钥对

(二)加密

a、注册阶段

1)用户通过客户端注册;

2)客户端对注册的用户名进行加密并发送至控制器,具体包括:

2.1)用户在客户端输入注册的用户名mi;

2.2)客户端计算注册的用户名的哈希值h(mi);

2.3)客户端获得第一服务器公钥x=g1x1g2x2,以及获得第二服务器公钥y=g1y1g2y2,随机选择ri∈zp,调用模乘部件、模求幂部件,计算注册的用户名密文ci1=g1ri,ci2=g2ri,ci3=(g1x1g2x2)ri(g1y1g2y2)rih(mi);

3)控制器将注册的用户名密文发送至第一服务器,由第一服务器存储到密文数据库中。

b、登录阶段

1)用户通过客户端登录;

2)客户端对登录的用户名进行加密并发送至控制器,具体包括:

2.1)用户在客户端输入登录的用户名mj;

2.2)客户端计算登陆的用户名的哈希值h(mj);

3.2)控制器获得第一服务器公钥x=g1x1g2x2,以及获得第二服务器公钥y=g1y1g2y2,随机选择rj∈zp,调用模乘部件、模求幂部件,计算登录的用户名密文cj1=g1rj,cj2=g2rj,cj3=(g1x1g2x2)rj(g1y1g2y2)rjh(mj);

3)控制器将登录的用户名密文发送至第二服务器,由第二服务器存储到密文数据库中。

(三)查询

本实施例的查询算法是一个协议,需要第一服务器、第二服务器和控制器交互完成。

1)第一服务器根据注册的用户名密文,计算第一中间值并发送至第二服务器,具体包括:

1.1)第一服务器随机选择r1s∈gp,使用它的私钥、ci和r1s,调用模乘部件、模求幂部件计算第一中间值,如下式:

iv1s=((ci1)x1﹡(ci2)x2)-1﹡r1s=((g1ri)x1﹡(g2ri)x2)-1﹡r1s=(g1x1g2x2)-ri﹡r1s

1.2)第一服务器将iv1s和ci发送给第二服务器。

2)第二服务器根据登录的用户名密文,计算第二中间值并发送至第一服务器,具体包括:

2.1)第二服务器随机选择r2s∈gp,使用它的私钥、cj和r2s,调用模乘部件、模求幂部件计算第二中间值,如下式:

iv2s=((cj1)y1﹡(cj2)y2)-1﹡r2s=((g1rj)y1﹡(g2rj)y2)-1﹡r2s=(g1y1g2y2)-rj﹡r2s

2.2)第二服务器将iv2s和cj发送给第一服务器。

上述步骤1)和步骤2)中第一服务器和第二服务器的操作是同时进行的,并无先后之分。

3)第一服务器根据第二中间值,计算第一最终值并发送至控制器,具体包括:

3.1)第一服务器接收到第二中间值iv2s,使用它的私钥、cj、r1s和iv2s,调用模乘部件、模求幂部件,计算第一最终值,如下式:

fv1s=cj3﹡iv2s﹡((cj1)x1﹡(cj2)x2)-1﹡r1s=cj3﹡iv2s﹡((g1rj)x1﹡(g2rj)x2)-1

r1s=h(mj)﹡r2s﹡r1s

3.2)第一服务器将fv1s发送给控制器。

4)第二服务器根据第一中间值,计算第二最终值并发送至控制器,具体包括:

4.1)第二服务器接收到第一中间值iv1s,使用它的私钥、ci、r2s和iv1s,调用模乘部件、模求幂部件,计算第二最终值,如下式:

fv2s=ci3﹡iv1s﹡((ci1)y1﹡(ci2)y2)-1﹡r2s=ci3﹡iv1s﹡((g1ri)y1﹡(g2ri)y2)-1

r2s=h(mi)﹡r1s﹡r2s

4.2)第二服务器将fv2s发送给控制器。

可以理解的是,上述步骤3)和步骤4)中第一服务器和第二服务器的操作是同时进行的,并无先后之分。

5)控制器根据第一最终值和第二最终值,判断用户身份是否合法,具体包括:

控制器比较第一最终值fv1s和第二最终值fv2s,若第一最终值等于第二最终值,即fv1s=fv2s,则判断合法,此时允许用户登录,否则,判断不合法,此时不允许用户登录。

实施例2:

如图4所示,本实施例提供了一种保护用户名隐私的认证系统,该系统与上述方法相对应,其包括客户端、控制器、第一服务器和第二服务器;

所述客户端具有加密模块,用于对注册的用户名进行加密并发送至控制器,以及对登录的用户名进行加密并发送至控制器;

所述控制器具有查询执行模块,用于将注册的用户名密文发送至第一服务器,将登录的用户名密文发送至第二服务器,以及根据第一服务器发送的第一最终值和第二服务器发送的第二最终值,判断用户身份是否合法;

所述第一服务器,用于根据注册的用户名密文,计算第一中间值并发送至第二服务器,以及根据第二服务器发送的第二中间值,计算第一最终值并发送至控制器;

所述第二服务器,用于根据登录的用户名密文,计算第二中间值并发送至第一服务器,以及根据第一服务器发送的第一中间值,计算第二最终值并发送至控制器。

上述各实施例的系统所使用的术语“第一”、“第二”等可用于描述各种部件,但这些部件不受这些术语限制。这些术语仅用于将第一个部件与另一个部件区分。举例来说,在不脱离本发明的范围的情况下,可以将称为第一服务器称为第二服务器,且类似地,可将第二服务器称为第一服务器,第一服务器和第二服务器两者都是服务器,但其不是同一服务器,例如第一服务器作为左端服务器使用,第二服务器作为右端服务器使用。

综上所述,本发明采取的双服务器并联模式,一方面两个服务器能够并行运算,效率较双服务器串联模式高;另一方面两个服务器的串联模式会导致能得到测试结果的后端服务器权利过大,前端服务器无法制止被发起线下消息恢复攻击的后端服务器所利用,而并联模式则很好地规避此类情况;此外,本发明基于判定性diffie-hellman假设的实例,利用模乘运算取代目前主流的等值测试所应用的双线性对运算,因此运行效率比基于双线性对构造的支持等值测试的公钥加密方案高,最重要的是,两服务器均无法得知测试结果,因此能够有效地抵御线下恢复攻击,显著地提高安全性。

以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。

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