本发明属于信息安全,具体涉及一种基于口令加固的门限单点登录认证方法。
背景技术:
1、基于口令的单点登录是一种应用广泛的身份认证方法。身份服务器验证用户提供的口令是否与存储的口令凭证相匹配,并在验证通过时为用户颁发令牌。用户可使用该令牌访问其权限范围内的应用服务器。然而,传统的基于口令的单点登录存在单点失效问题。一旦身份服务器被攻破,攻击者可以得到用于签发令牌的签名密钥,非法颁发令牌。此外,由于口令是低熵的,攻击者能够利用身份服务器上的凭证发起离线口令猜测攻击:给定一个凭证(如口令哈希值),攻击者可以离线计算所有口令的凭证并与给定的凭证相匹配以揭露其对应的口令。
2、口令加固的门限单点登录是一种解决单点失效的可行方法。该技术使用一组身份服务器在两个方面增强传统的单点登录方法。首先,用户使用身份服务器群组间共享的注册密钥加固口令。利用加固的口令,用户为每个身份服务器计算一个口令派生凭证,并将其发送给对应的身份服务器。在认证阶段,用户与身份服务器群组执行一种不经意的协议,在不泄露口令信息的情况下恢复加固口令以及口令派生凭证。通过这种方式,口令派生凭证的生成依赖于身份服务器群组间共享的注册密钥,使得攻击者即使获取用户的口令派生凭证,也无法发起离线口令猜测攻击。其次,身份服务器群组以一种门限的方式共享签发令牌的签名密钥,使得令牌生成任务需要它们共同完成:每个身份服务器使用签名子密钥产生子令牌,t个子令牌(t为门限值)可以用于构建令牌。即使攻击者攻破t-1个身份服务器,令牌也无法被伪造。为了保证只有合法用户能够获取令牌,每个身份服务器将使用存储的口令派生凭证作为对称密钥加密子令牌并传输密文给用户。拥有正确口令的用户可以恢复口令派生凭证,并解密子令牌密文用于令牌构建。
3、比如,2022年11月18日提出面向隐私保护的门限单点登录方法,202211444172.9,为了避免用户真实身份泄露而提出。面向隐私保护的门限单点登录方法采用身份服务器群组完成用户认证,并以门限的方式签发令牌,有效解决单点失效问题。用户用不同的随机数将主令牌盲化,从而获得多个盲化令牌,并在每次访问应用服务器的时候使用一个盲化令牌。同样也是需要身份服务器群组间共享的注册密钥。每个身份服务器将使用存储的口令派生凭证作为对称密钥加密子令牌并传输密文给用户。
4、然而,申请人进一步发现现有口令加固的门限单点登录方法容易遭受一种特定类型的冒充攻击。具体地,一旦攻击者获取用户的t个口令派生凭证,即便他没有正确的用户口令,也可以冒充合法用户请求足够数量的子令牌密文,构造有效的令牌,从而冒充该用户非法访问服务。此外,在现有方法中,令牌实际上是身份服务器群组间共享的签名密钥对用户信息/属性、令牌有效截止日期、访问控制等消息的签名。为了访问服务,用户需要将令牌传输给应用服务器进行验证。但由于缺乏令牌拥有权证明,敌手可能窃听该令牌并非法使用它来冒充用户请求服务。即使令牌的传输基于安全信道,一个半诚实的应用服务器仍然可以使用收到的令牌执行这种冒充攻击。
技术实现思路
1、本发明所要解决的问题是,在口令加固的门限单点登录方法中,如何抵抗由口令派生凭证泄露和令牌拥有权证明缺乏所导致的冒充攻击。
2、本发明为解决上述问题所采用的技术方案是,一种基于口令加固的门限单点登录认证方法,其特征在于,身份服务器群组无需秘密存储用户的口令派生凭证,而是使用其口令派生公钥加密子令牌来保证只有合法用户能够获取令牌,有效解决了口令派生凭证泄露而导致的冒充攻击;此外,令牌拥有权证明的实现抵抗了现有方法中令牌拥有权证明缺失而引发的冒充攻击。具体包括以下步骤:
3、系统初始化阶段:根据安全参数进行系统初始化,确定系统的公共参数;身份服务器群组以门限的方式共享签发令牌的签名密钥,即每个身份服务器掌握一个签名子密钥;应用服务器产生公私钥对。
4、注册阶段:
5、1)用户选择用户名和口令;
6、2)用户选择注册密钥,使用门限秘密共享算法产生注册子密钥;
7、3)用户基于口令和注册密钥计算口令派生私钥和口令派生公钥,将注册子密钥分别发送给每个身份服务器并公开口令派生公钥;
8、4)每个身份服务器存储用户名和注册子密钥;
9、5)用户仅秘密保存口令。
10、认证阶段:
11、1)用户产生临时公私钥,并计算盲化口令;
12、2)用户发送用户名、盲化口令、临时公钥和令牌有效截止日期等用于生成令牌的信息给身份服务器群组;
13、3)每个身份服务器使用注册子密钥对盲化口令进行处理,使用签名子密钥对用户选择的临时公钥和令牌有效截止日期等信息进行签名并将签名结果作为子令牌;
14、4)每个身份服务器使用用户的口令派生公钥加密子令牌,将产生的密文和盲化口令的处理结果发送给用户;
15、5)用户使用门限数量的盲化口令处理结果恢复加固口令,并作为其口令派生私钥;
16、6)用户使用口令派生私钥解密每个身份服务器发送的密文,得到不少于门限数量的子令牌,随后使用门限数量的有效子令牌构建令牌;
17、7)用户存储令牌和临时私钥,用于后续访问服务。
18、服务访问阶段:
19、1)用户生成用于密钥协商的临时公私钥,使用应用服务器的公钥加密用于密钥协商的临时公钥,发送密文和令牌给应用服务器;
20、2)应用服务器验证令牌的有效性。若验证通过,则使用自己的私钥解密密文,并产生用于密钥协商的临时公私钥,基于解密结果和用于密钥协商的临时私钥生成一个中间值;
21、3)应用服务器使用令牌对应的临时公钥加密自己产生的用于密钥协商的临时公钥,并生成一个校验值,发送密文和校验值给用户;
22、4)用户解密密文,基于解密结果和自己的用于密钥协商的临时私钥产生中间值,随后验证校验值的正确性。若验证失败,则退出执行,否则计算会话密钥和一个新的校验值。该校验值将被发送给应用服务器;
23、5)应用服务器验证校验值的正确性。若验证失败,则拒绝为用户提供服务;
24、否则提供服务,并计算会话密钥以保证服务访问时的通信安全。
25、本发明提出了一种基于口令加固的门限单点登录认证方法,该方法采用身份服务器群组完成用户认证,并以门限的方式签发令牌,有效解决单点失效问题。在该方法中,身份服务器群组不需要秘密存储用户的口令派生凭证,而是使用其口令派生公钥加密子令牌来保证只有合法用户能够获取令牌,有效解决了现有方法中口令派生凭证泄露而导致的冒充攻击。此外,用户在出示令牌访问服务时能够证明令牌的拥有权,可以抵抗现有方法中令牌拥有权证明缺失而引发的冒充攻击。
26、本发明的有益效果是:
27、(1)身份服务器群组无需秘密存储用户的口令派生凭证,而是利用其口令派生公钥加密子令牌来保证只有合法用户能够获取令牌,有效避免了口令派生凭证泄露问题;
28、(2)令牌拥有权证明的实现防止了令牌的非法使用。