服务器与移动设备间秘密共享的单一口令三方认证方法与流程

文档序号:12490996阅读:240来源:国知局
服务器与移动设备间秘密共享的单一口令三方认证方法与流程

本发明属于网络安全技术领域,具体涉及口令验证用户身份,是一种基于服务器与便携移动设备之间秘密共享的单一口令三方认证方法。在有便携式移动设备参与的情况下,用户个人电脑端和服务器端使用单一口令进行安全认证。此方法可应用于任何在线认证服务中。



背景技术:

一般而言,用户若想访问一个在线服务,需要使用自己预先设置的口令与服务器进行认证,认证成功后才能访问该在线服务。而在现有的三方身份认证方法中,用户常常会借助一个辅助设备,如手机与服务器进行认证。通常情况下,用户将自己用于认证的信息,如认证信息为密钥时,用口令将其加密形成密文后,将密文存储在手机端;当需要登录服务器时,用户取出存储在手机端的密文,解密此密文后,用得到的认证密钥与服务器进行认证。用户在设置口令时,往往会选择简单易记的,即为弱口令;而弱口令如果遭遇钓鱼攻击、蜜罐攻击或在线字典攻击等,则对手就极有可能猜到口令,从而伪装成用户得到认证密钥。此外,认证信息用口令简单加密后存储在手机端,若手机丢失,易被对手离线暴力破解从而得到认证密钥。

更糟糕的是,当用户和多个在线服务进行认证的时候,经常会频繁地重复使用他们的口令,平均每三个不同在线服务使用同一口令。当登录时,用户会忘记具体是哪一个口令,所以会反复试验,这就意味着恶意的在线服务不仅会得到该服务器的口令,还会得到其他服务器的口令。



技术实现要素:

本发明的目的在于解决已有单一口令三方身份认证中面临的安全问题,提出一种服务器与移动设备间秘密共享的单一口令三方认证方法。

本发明是一种服务器与移动设备间秘密共享的单一口令三方认证方法,其中的移动设备,如手机、iPad等,以手机作为移动设备为例,认证过程涉及到PC端、服务器端和手机端,其特征在于,用户用于认证的信息存储于服务器端和手机端,PC端并未存储用户任何认证信息和私密信息,认证过程包括以下步骤:

1)注册阶段:

1a)用户在PC端输入注册信息,包括用户名和口令p;同时,PC端随机产生认证密钥K,其中口令和认证秘钥共同构成认证信息;

1b)PC端经过编码计算,再对口令和认证秘钥分别进行随机串选择和相除计算,将口令和认证密钥分别随机的变为两部分,其中针对口令所选择的随机串称为口令注册第一子串,口令和口令注册第一子串进行相除计算得到的口令的另一部分称为口令注册第二子串,因为口令注册第一子串是随机选择的,口令注册第二子串是对其进行计算而得到的,因此可以被认为是随机串;针对认证秘钥所选择的随机串称为认证秘钥第一子串,认证秘钥和认证秘钥第一子串进行相除计算得到的认证秘钥的另一部分称为认证秘钥第二子串,因为认证秘钥第一子串是随机选择的,认证秘钥第二子串是对其进行计算而得到的,因此也可以被认为是随机串;将彼此独立的口令注册第一子串和认证秘钥第一子串共同作为部分认证信息,对其进行加密产生注册密文F后,连同认证密钥K以及用户名发给服务器端;口令注册第二子串和认证秘钥第二子串共同构成另一部分认证信息,将另一部分认证信息直接输入并存储于手机端;

1c)服务器端将收到的认证密钥K和注册密文F与用户名进行对应存储,完成用户在服务器的注册;

2)登录阶段:即用户想要获得某在线服务器的服务时,需要与服务器进行身份认证,认证通过后,用户方可获得服务;

2a)用户登陆服务器时,用户在PC端输入用户名和口令;此时的口令可能正确,也可能不正确,若正确,即和注册阶段的口令一致,若不正确,即和注册阶段的口令不一致,因此,将此时输入的口令记为p’;

2b)PC端将口令随机变为两部分,此时选择的随机串称为口令登陆第一子串,口令和口令登陆第一子串相除计算出的另一部分称为口令登陆第二子串,因为口令登录第一子串是随机选择的,口令登录第二子串是对其进行计算而得到的,因此可以被认为是随机串;将口令登陆第一子串加密后得到登录密文F’,并将该登录密文F’发给服务器端,而将口令登陆第二子串输入手机端;

2c)服务器端对2b)步骤的登陆密文F’解密后得到口令登陆第一子串,对1c)的注册密文F解密后可得到口令注册第一子串和认证秘钥第一子串,将口令注册第一子串和口令登陆第一子串这两个子串进行计算、加密,形成部分核对口令密文E1,然后将该部分核对口令密文E1发送给手机端;

2d)手机端先对已存储的口令注册第二子串和口令登陆第二子串进行计算、加密,形成另一部分核对口令密文E2,将其与2c)步骤中得到的部分核对口令密文E1进行合并,计算出完整核对口令密文E并发送给服务器端;

2e)服务器端解密2d)步骤产生的完整核对口令密文E,验证口令是否正确;若正确,服务器端生成认证随机数,然后对已存储的认证密钥第一子串进行加密产生密钥子串密文后,将此密钥子串密文和认证随机数发给PC端,口令验证正确后服务器产生的认证随机数用于最终的身份认证;

2f)PC端解密2e)步骤的密钥子串密文得到认证密钥第一子串,然后从手机端取得认证密钥第二子串,经除计算的反运算恢复出认证密钥;

2g)PC端将认证密钥和认证随机数作为密码学杂凑函数的输入,将此函数的输出结果即最终的认证密文发送给服务器端;

2h)服务器端利用注册阶段得到的认证密钥对最终认证密文进行解密,解密得到的结果与认证随机数进行对比,若结果与认证随机数不一致,则不允许通过登录,否则,若结果与认证随机数一致,则允许通过登录,如果登陆成功,则获得对用户的单向身份认证结果,进而获得所需服务,完成服务器与移动设备间秘密共享的单一口令三方认证。

到目前为止,还没有一种认证方法可以实现在有便携式移动设备参与的情况下,仅使用单一口令就可以和多个在线服务进行安全认证。

与现有技术相比,本发明具有如下优点:

1)本发明中PC端并未存储用户任何认证信息或私密信息,可防止PC端密文被暴力破解;手机端和服务器端共享用户用于认证的秘密信息(口令和认证密钥),不论手机端或服务器端中任何一方遭受攻击,都不会影响信息的安全;

2)本发明中即使用户的口令被攻击者获得,也不会影响信息的安全,因为单独的口令无法完成认证,还需要手机的辅助;且完全无需担心传输信道的安全性,因为对认证密钥进行了编码映射、随机取串以及混淆扩散等操作,使得认证密钥的分布更加均匀,随机性更好;

3)本发明中用户仅需记住一个口令就可以和多个在线服务进行安全认证,减轻了用户记忆的负担。

附图说明

图1为本发明的总流程框图;

图2为本发明的用户注册阶段三方的信息交互过程图;

图3为本发明的用户登录阶段三方的信息交互过程图;

图4为本发明在用户口令长度不同时,注册阶段耗费的时间对比图;

图5为本发明在用户口令长度不同时,登录阶段耗费的时间对比图;

图6为本发明在用户口令复杂度不同时,注册阶段耗费的时间对比图;

图7为本发明在用户口令复杂度不同时,登录阶段耗费的时间对比图。

具体实施方式

下面结合附图,对本发明作详细描述。

实施例1

随着网络的快速发展和普及,人们常常需要使用各种各样的在线服务和应用。这些网络服务和应用尽管给人们的生活提供了便利;但是其也常常与人们的私密信息如口令、银行账户等直接相关。因此,如何更安全地保护用户的私密信息成为当今网络安全技术领域急需解决的一个问题。本发明正是在这个领域做出的探索和创新。

本发明提供了一种服务器与移动设备间秘密共享的单一口令三方认证方法,其中的移动设备为手机、iPad等。认证过程涉及到PC端、服务器端和移动设备端,本例中移动设备为手机,因此移动设备端直接称为手机端,针对其他种类的移动设备,操作原理及步骤均相同。参见图1,用户用于认证的信息存储于服务器端和手机端,PC端并未存储用户任何认证信息和私密信息,认证过程包括注册阶段和登录阶段,具体步骤如下:

1)注册阶段:即用户想要使用某在线服务时,需要先加入该系统,即在该服务器上存储一些简单但可标识身份的用户信息,其中这些用户信息包括用户名和口令。用户名是唯一的,是用来标识用户身份的,也是在网络技术中惯用的身份标识符;口令是用户自己预先设定的,是保证个人私密信息安全性的一道重要屏障,不同的用户设置的口令也会不同,即长度、复杂度等都不尽相同。本发明的技术方案中,用户仅需记住一个口令就可以和多个在线服务进行安全认证,减轻了用户记忆的负担。

1a)用户在PC端输入注册信息,包括用户名和口令p;与此同时,PC端随机产生认证密钥K,其中口令和认证秘钥共同构成认证信息,且口令和认证秘钥各自独立。

1b)PC端经过编码计算,再对口令和认证秘钥分别进行随机串选择和相除计算,将口令和认证密钥分别随机的变为两部分,其中针对口令选择的随机串称为口令注册第一子串,口令和口令注册第一子串进行相除计算得到的口令的另一部分称为口令注册第二子串。因为口令注册第一子串是随机选择的,口令注册第二子串是对其进行计算而得到的,因此可以被认为是随机串。针对认证秘钥选择一个随机串称为认证秘钥第一子串,认证秘钥和认证秘钥第一子串进行相除计算得到的认证秘钥的另一部分称为认证秘钥第二子串。因为认证秘钥第一子串是随机选择的,认证秘钥第二子串是对其进行计算而得到的,因此也可以被认为是随机串。将彼此独立的口令注册第一子串和认证秘钥第一子串共同作为部分认证信息,并对此部分认证信息进行加密产生注册密文F后,将注册密文F连同认证密钥K以及用户名发给服务器端。口令注册第二子串和认证秘钥第二子串共同作为另一部分认证信息,将另一部分认证信息直接输入并存储于手机端。

1c)服务器端将收到的认证密钥和注册密文F与用户名进行对应存储,完成用户在服务器的注册。

本发明在注册阶段产生的认证秘钥是随机且一次性的,因此不同的服务器使用不同的认证秘钥,以此来保证在多个在线服务可以安全的注册和登录。同时,也保证了个人私密信息的安全性。本发明的注册阶段还将认证信息变为两部分,并对部分认证信息完成了加密操作形成注册密文,最终将注册密文、认证秘钥和用户名发给服务器并存储,将另一部分认证信息直接存储于手机端。

2)登录阶段:即用户想要获得某在线服务器的个人私密信息或使用其某些服务时,需要与服务器进行身份认证,以证明该用户已经在该服务器上注册过自己的信息。认证通过后,用户方可获得服务。

2a)用户登陆服务器时,用户在PC端输入用户名和口令;考虑安全因素,此时的口令可能正确,也可能不正确,若正确,即和注册阶段的口令一致,若不正确,即和注册阶段的口令不一致,因此,将此时输入的口令记为p’。

2b)PC端对口令p’进行随机串选择和相除计算,将口令p’也随机变为两部分,此时在群G中随机选择一个随机串称为口令登陆第一子串,口令和口令登陆第一子串相除计算出的另一部分称为口令登陆第二子串,因为口令登录第一子串是随机选择的,口令登录第二子串是对其进行计算而得到的,因此口令登录第二子串也可以被认为是随机串。将口令登陆第一子串加密后得到登录密文F’,并将该登录密文F’发给服务器端,而将口令登陆第二子串输入手机端。将口令登陆第一子串加密产生登陆密文,也可以简述为加密产生登陆密文。

2c)服务器端对2b)步骤的登陆密文F’解密后得到口令登陆第一子串,对1c)的注册密文F解密后可得到口令注册第一子串和认证秘钥第一子串,将口令注册第一子串和口令登陆第一子串这两个子串进行计算、加密,形成部分核对口令密文E1,然后将该部分核对口令密文E1发送给手机端。

2d)手机端先对已存储的口令注册第二子串和口令登陆第二子串进行计算、加密,形成另一部分核对口令密文E2,将此另一部分核对口令密文E2与2c)步骤中得到的部分核对口令密文E1进行合并,计算出完整核对口令密文E并发送给服务器端;合并为E1×E2

2e)服务器端解密2d)步骤产生的完整核对口令密文E,验证口令是否正确;若正确,即解密结果为1时,服务器端生成认证随机数,然后对已存储的认证密钥第一子串进行加密产生密钥子串密文后,将此密钥子串密文和认证随机数发给PC端,口令验证正确后服务器产生的认证随机数用于最终的身份认证;若不正确,即解密结果不为1,则登录阶段终止,登录失败,以此来保证服务器端用户认证秘钥的安全性。

2f)PC端解密2e)步骤的密钥子串密文得到认证密钥第一子串,然后从手机端取得认证密钥第二子串,经除计算的反运算恢复出认证密钥。

2g)PC端将2f)恢复得到的认证密钥和口令验证正确后服务器产生的认证随机数作为密码学杂凑函数的输入,将此函数的输出结果即最终的认证密文发送给服务器端。

2h)服务器端利用注册阶段得到的认证密钥对最终认证密文进行解密,解密得到的结果与口令验证正确后服务器产生的认证随机数进行对比,若结果与口令验证正确后服务器产生的认证随机数不一致,则不允许通过登录,即登录失败,保证个人私密信息的安全;否则,若结果与口令验证正确后服务器产生的认证随机数一致,则允许通过登录,即登陆成功。如果登陆成功,则获得对用户的单向身份认证结果,进而获得所需服务,完成服务器与移动设备间秘密共享的单一口令三方认证。

本发明中PC端并未存储用户任何认证信息或私密信息,可防止PC端密文被暴力破解;手机端和服务器端共享用户用于认证的秘密信息,即口令和认证密钥,不论手机端或服务器端中任何一方遭受攻击,敌手也只能获得部分信息且该信息仅以随机串的形式被表示,敌手无法得到或恢复完整的信息,因此本发明完全可以保证用户信息的安全性。

实施例2

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1,其中步骤1b)中所述的PC端经过编码计算,再对口令和认证秘钥分别进行随机串选择和计算,将口令和认证密钥分别随机的变为两部分,具体是先对口令p和认证密钥K进行编码映射,将其均映射为阶为素数q的循环群G中的对应元素,然后在群G中随机产生口令注册第一子串p1和认证秘钥第一子串K1,将这两个子串共同作为部分认证信息,其中口令注册第一子串p1和认证秘钥第一子串K1彼此平行且独立,然后将再计算出另一部分认证信息,包括口令注册第二子串和认证秘钥第二子串,其中口令注册第二子串是由口令和口令注册第一子串进行相除计算得到的,即p2←p/p1,同样的操作,认证秘钥第二子串是由认证秘钥和认证秘钥第一子串进行相除计算得到的,即K2←K/K1

实施例3

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-2,其中步骤2b)中对口令进行随机串选择和相除计算,将口令随机变为两部分,其具体实现过程与权利要求2中所述的编码计算然后进行随机串选择和相除计算一样,是先对口令p’进行编码映射,将口令p’映射为阶为素数q的循环群G中的对应元素,然后在群G中随机产生口令登陆第一子串p1',将口令和口令登陆第一子串相除计算出口令登陆第二子串p'2,即p'2←p'/p1'。

从实施例2和实施例3,可见本发明中的各个子串都是随机串,并且将它们分别存储于不同的地方,因此,即使遭受到敌手的攻击,该敌手也无法从所窃得的随机串恢复出原认证信息,本发明的此过程不可逆。

实施例4

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-3,其中步骤1b)中加密产生注册密文和步骤2b)所述的加密产生登陆密文都是PC端用预先已知道的服务器端的公钥PE完成加密。

实施例5

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-4,其中步骤2e)验证口令是否正确,并不是与之前的注册口令进行逐一对比,而是看解密结果是否为1,若是,则口令正确,继续进行下面的登录步骤。反之,解密结果不为1,则口令错误,登录终止,保证用户认证秘钥的安全性。

本发明中即使用户的口令被攻击者获得,也不会影响信息的安全,因为单独的口令无法完成认证,还需要手机的辅助;且完全无需担心传输信道的安全性,因为对认证密钥进行了编码映射、随机取串以及混淆扩散等操作,使得认证密钥的分布更加均匀,随机性更好。

下面给出一个更具体的实际操作例子,对本发明进一步说明。

实施例6

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-5,注册阶段:参照图1和图2,本发明认证过程的注册阶段具体实施步骤如下:

1)注册阶段,参照图1(a)和图2:

1a)用户在PC端输入注册信息,包括用户名name和口令p。不同的用户是通过用户名进行区分识别的,所以不同用户的用户名一定是不同的,即用户名唯一;口令都是由用户自设的且对外是保密的,而用户名则可以公开。注册信息输完后,PC端随机产生认证密钥K,即K←MACKeyGen(1k)。口令和认证秘钥共同构成认证信息,且口令和认证秘钥各自独立。

1b)PC端将口令p和认证密钥K编码为群G中的元素,在群G中随机选择口令注册第一子串p1和认证秘钥第一子串K1,即p1RG和K1RG;然后分别进行相除计算,分别得到口令注册第二子串p2←p/p1和认证秘钥第二子串K2←K/K1;将p1和K1共同作为部分认证信息,用服务器的公钥PE对此部分认证信息进行加密得到注册密文F,将注册密文F、用户名name和认证密钥K一起发送给服务器端。p2和K2共同作为另一部分认证信息,将其直接存储在手机端。

1c)服务器端将收到的认证密钥K和注册密文F及用户名name进行对应存储。注册阶段完成。

注册阶段是一次性的,是用户必须要进行的初始设置。

注册完成后,当用户想要使用服务器端的服务时,进入登录阶段,登陆阶段可以是多次的。

登录阶段:参照图1和图3,本发明认证过程的登录阶段具体实施步骤如下:

2)登录阶段,参照图1(b)和图3:

2a)用户想要登陆服务器时,在PC端输入用户名name和口令p’。

2b)PC端对口令p’经编码映射后,随机选择口令登录第一子串p1',相除计算出口令登录第二子串p'2←p'/p1',用服务器公钥PE加密p1'后得登录密文F’,并将该登录密文F’发给服务器端;而将p'2存储于手机端。

2c)服务器端用私钥SE解密2b)步骤产生的登录密文F’得到口令登陆第一子串p1',解密1c)存储的注册密文F得到口令注册第一子串p1和认证密钥第一子串K1;然后服务器产生适合于同态加密方案的密钥对(pk,sk)←keyg(1k),将p1和p1'进行计算和同态加密,得到部分核对口令密文E1,即E1←encpk(p1/p1';r1),r1是服务器端产生的一个随机数,然后将部分核对口令密文E1发送给手机端。

2d)手机端将已存储的口令注册第二子串p2和口令登陆第二子串p'2进行计算和同态加密得另一部分核对口令密文E2,即E2←encpk(p2/p'2;r2),r2是手机生成的一个随机数;然后将E2与2c)步骤产生的部分核对口令密文E1进行合并,计算出完整核对口令密文E,即E←(E1×E2)Z,并将此完整核对口令密文E发送给服务器端。

2e)服务器端解密2d)步骤产生的完整核对口令密文E,利用同态属性,验证登录口令是否正确。若正确,即解密结果为1,然后服务器端生成认证随机数chal,然后对已存储的认证密钥第一子串K1进行加密产生密钥子串密文后,将此密钥子串密文和认证随机数chal发给PC端,口令验证正确后服务器产生的认证随机数用于最终的身份认证。

2f)PC端解密2e)步骤的秘钥子串密文得到认证密钥第一子串K1,然后从手机端取得认证密钥第二子串K2,将K1和K2经除计算的反运算恢复出认证密钥K。

2g)PC端恢复出认证密钥K后,利用K和服务器端进行单向认证,即计算token←f(K,chal),发送给服务器,其中f是某一种密码学杂凑函数,K和chal是此函数的参数。

2h)服务器端利用注册阶段得到的认证密钥对token进行解密,解密得到的结果与认证随机数chal进行对比,若一致,则用户成功登录此服务器,否则不能登录。登录阶段完成。

本发明中对认证密钥进行了编码映射、随机取串以及混淆扩散等操作,使得认证密钥的分布更加均匀,随机性更好,因此完全无需担心传输信道的安全性。此外,本发明中用户仅需记住一个口令就可以和多个在线服务进行安全认证,但不同的在线服务使用不同的认证秘钥,因此既减轻了用户记忆的负担,也保证的了安全性。

下面通过测试,对本发明的技术效果进行实验说明。

实施例7

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-6,

实验设备具体参数如下:

PC为Dell Inc.Vostro 270,四核Intel(R)Core(TM)i3-3220 CPU@3.30GHz,4GB内存,操作系统为Windows 7(64位)。

移动设备为安卓模拟器Android4.3.1-API Level 18,CPU ARM(armeabi-v7a),RAM 1024,VM Heap 32,Internal Storage 200MiB。

搭建的服务器的实验环境为阿里云服务器,部署于青岛,CPU1核,2GB内存,操作系统为Windows Sever2008R2企业版64位中文版,带宽为5Mbps。

实验条件:口令的长度不同。

实验数据:注册阶段的整个完整过程所需的时间数据参见图4,登录阶段的整个完整过程所需的时间数据参见图5。

从实验数据可见,当不同的用户输入不同长度的口令进行注册时,参见图4,注册阶段耗费的最长时间是684.27ms,最短时间是567.48ms;当不同用户输入其对应的口令进行登录时,参见图5,登录阶段耗费的最长时间是10716.13ms,最短时间是9719.21ms。

实施例8

服务器与移动设备间秘密共享的单一口令三方认证方法同实施例1-6,

实验设备具体参数:同实施例7。

实验条件:口令的复杂度不同。

实验数据:注册阶段的整个完整过程所需的时间数据参见图6,登录阶段的整个完整过程所需的时间数据参见图7。

从实验数据可见,当不同的用户输入不同复杂度的口令进行注册时,参见图6,注册阶段耗费的最长时间是689.02ms,最短时间是565.49ms;当不同用户输入其对应的口令进行登录时,参见图7,登录阶段耗费的最长时间是10735.36ms,最短时间是10079.29ms。

从实施例7和实施例8可见,当用户设置的口令长度或复杂度不同时,本发明提出的服务器与移动设备间秘密共享的单一口令三方认证方法都可以在保证安全性的基础上顺利的完成注册和登录。

综上,本发明公开的一种服务器与移动设备间秘密共享的单一口令三方认证方法,主要解决在有移动设备参与认证的情况下,用单一口令和多个在线服务进行安全认证的技术问题。移动设备如手机、iPad等,以手机为例,其认证方案是:注册阶段:用户在PC输注册信息,随机产生认证密钥;计算出注册密文,连同认证密钥和用户名发给服务器存储;另一部分认证信息存在手机中。登录阶段:服务器给手机部分核对口令密文;手机用同态加密和合并计算得完整核对口令密文发给服务器;服务器解密密文,验证口令;若正确,将密钥子串密文和认证随机数发给PC;PC从手机取认证密钥第二子串且计算得认证密钥;PC用认证密钥和服务器认证。本发明减轻了用户记忆负担,缓解了存储压力,消除了安全隐患,可操作性强,用于服务器、PC和移动设备三方安全认证。

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