专利详情

标题一种基于智能设备的随机口令验证方法
[标]当前申请(专利权)人南开大学
申请日2024年3月19日
申请号CN202410312228.8
公开(公告)日2024年8月23日
公开(公告)号CN118540063A
授权日-
法律状态/事件公开
专利类型发明申请
发明人汪定 | 丁子轩 | 刘哲理
受理局中国
当前申请人(专利权)地址300350 天津市津南区海河教育园区同砚路38号 (天津,天津,津南区)
IPC分类号H04L9/32 | G06F21/46 | G06F21/60 | G06F21/31 | H04L9/08 | H04L9/40
国民经济行业分类号C3914 | C3915 | I6511 | C3919 | I6513 | I6512 | O8129 | C3921 | I6519
代理机构天津市北洋有限责任专利代理事务所
代理人李素兰
被引用专利数量-
专利价值-

摘要

本发明公开了一种基于智能设备的随机口令验证方法,初始化阶段:生成服务器的公钥私钥对、公共参数和函数,生成智能设备的公钥私钥对和用户身份,将公钥封装成黑盒函数;注册阶段:线上通过服务器根据所述的黑盒函数和智能设备用户身份进行注册,授予用户身份验证凭证,以及线下通过智能设备加密存储用户口令;验证阶段:用户根据智能设备提示的映射在智能设备终端输入随机字符串,服务器使用黑盒函数RAD验证随机字符串和智能设备发送的参数{f,Q<subgt;us</subgt;},验证通过即用户登录成功。本发明能够防止长期登录凭据泄漏,从而避免离线和在线口令猜测攻击。

1.一种基于智能设备的随机口令验证方法,包括初始化阶段、注册阶段和验证阶段,交互参与方为智能设备和服务器,其特征在于,包括:
步骤1,在初始化阶段:(1.1)生成服务器的公钥私钥对(ks,PKs)、公共参数和函数表示循环群,q表示群的阶,g表示生成元,h表示哈希函数,ks表示服务器私钥,表示服务器公钥;(1.2)生成智能设备的公钥私钥对(kD,PKD)和用户身份DID,将公钥PKD封装成黑盒函数RAD,kD表示智能设备私钥,表示智能设备公钥;
步骤2,在注册阶段:(2.1)将步骤1得到的智能设备的所述黑盒函数RAD和用户身份DID发送给服务器;(2.2)线上通过服务器根据所述黑盒函数RAD和所述的智能设备用户身份DID进行注册,计算参数Bs,授予用户身份验证凭证vD←(h(RAD(.)||DID)ks+bs)(ks)-1,将所述参数Bs和所述用户身份验证凭证vD发送给智能设备,智能设备验证绑定用户身份验证凭证的服务器公钥成立,线下通过智能设备加密存储用户口令,得到加密用户口令pw,保存为注册记录T;
步骤3,在验证阶段:(3.1)用户在智能设备终端输入用户身份DID,服务器收到所述用户身份DID后并加密随机参数{es}发送给智能设备;(3.2)智能设备对随机参数{es}进行解密,得到所述用户身份DID,随机选取所述用户身份DID对应的加密用户口令pw中的某一位字符结合用户验证凭证vD进行加密,之后提示加密用户口令pw到输入随机字符串的映射加密后的参数{f,Qus}发送给服务器;(3.3)用户根据智能设备提示的映射在智能设备终端输入随机字符串,服务器使用黑盒函数RAD验证随机字符串和智能设备发送的参数{f,Qus},验证通过即用户登录成功。
2.根据权利要求1所述的一种基于智能设备的随机口令验证方法,其特征在于,所述注册阶段中黑盒函数处理过程进一步包括:
黑盒函数的输入为用户输入的随机口令rs和智能设备发送的加密参数f,具体的,加密参数f←(es(mu+vD)+opw')(kD)-1,其中kD为智能设备私钥,vD为用户身份验证凭证,opw'为口令中提取字符对应的ASCII码,mu为智能设备选取的随机数,es为服务器发送的参数;黑盒函数处理包括:计算其中pow()为指数函数,为不公开的智能设备公钥;计算p'rs←F'(mod lpw'+2)+1,其中lpw'为用户口令长度,p'rs为计算得到的用户口令映射到随机口令的字符串位置,mod为模运算;根据位置p'rs提取出随机口令rs中相应的字符ors←Extract(rs,p'rs),其中Extract()为字符提取函数;之后计算并输出其中ors为随机字符串中提取字符对应的ASCII码,为服务器和智能设备共同运算的数值,V用于服务器计算验证结果。
3.根据权利要求1所述的一种基于智能设备的随机口令验证方法,其特征在于,所述注册阶段进一步包括:服务器收到黑盒函数和用户身份后,生成随机参数bs,服务器计算将的用户身份验证凭证vD和参数Bs发送给智能设备,智能设备在收到参数Bs后验证是否成立。
4.根据权利要求1所述的一种基于智能设备的随机口令验证方法,其特征在于,若使用生物密钥bio,提取生物密钥(σ,τ)=Gen(bio),在智能设备中存储{T,τ,vD,Bs}。
5.根据权利要求1所述的一种基于智能设备的随机口令验证方法,其特征在于,所述验证阶段进一步包括:智能设备收到随机数es,从注册记录T中解密用户口令pw',之后生成随机数nu,mu,计算其中PKs为服务器公钥,基于随机数nu随机选出口令中的字符位置ppw'←nu(mod lpw')+1,提取字符对应的ASCII码opw'←Extract(pw',ppw'),将opw'加密为f←(es(mu+vD)+opw')(kD)-1,计算参数计算映射到随机口令的字符位置prs←F(mod lpw'+2)+1,提示用户映射关系用户确认后,设备发送{f,Qus}给服务器。
6.根据权利要求1所述的一种基于智能设备的随机口令验证方法,其特征在于,所述验证阶段进一步包括:(1)服务器在收到用户身份DID后生成随机数ns,其中ns属于模q的正整数集合并加密为es←ns(ks)-1,服务器发送加密参数{es}给智能设备;(2)智能设备从注册记录T中得到解密用户口令pw',生成随机数nu,mu,计算绑定随机参数es的服务器公钥计算基于随机数nu随机选出解密用户口令中的字符位置ppw'←nu(modlpw')+1提取对应的ASCII码opw'←Extract(pw',ppw'),将opw'加密为f←(es(mu+vD)+opw')(kD)-1,计算参数F为服务器和智能设备双方共同根据预共享信息协商的相同参数,计算映射到随机口令的字符位置prs←F(modlpw'+2)+1,提示用户映射关系用户确认后,设备发送{f,Qus}给服务器。

技术领域
[0001]本发明涉及信息安全技术领域,特别是涉及基于智能设备的随机口令验证方法。
背景技术
[0002]口令作为一种基于知识的身份验证因子,在可预见的未来依然具有不可替代性。尽管设备辅助的身份验证不断得到加强,但源自客户端的记录攻击仍然是检测和预防的难题。此外,针对SMS(短信服务)的重定向攻击和源自终端的记录攻击可以绕过设备的参与,因此设备无法满足作为验证第二因子的不可替代性。更令人担忧的是,服务提供商对口令验证的“垄断”使得攻破服务器的敌手持有足够的知识发动离线口令猜测。
[0003]基于OTP(一次性密码,也称为验证码、动态口令或动态密码)的双因子验证的逻辑是,在提供正确的口令后,用户还需要提供设备上显示的OTP。强调OTP的机密性和设备作为第二因素的安全性之间的区别至关重要。虽然OTP通常是双因子安全的一部分,但使用它并不会自动提供第二因子安全性。事实上,当OTP和口令哈希都由服务提供商持有时,就不存在固有的第二因子安全性。虽然从安全角度来看,移动设备可能看起来是“拥有”的东西,但它本质上是设备“收到”的内容。这是因为身份验证的关键不是设备本身,而是设备接收到的信息,这些信息可能会被敌手拦截。因此,通过在客户端上记录口令并拦截OTP,攻击者可以成功冒充用户,而无需实际损害用户的任何物理设备。
[0004]对客户端的攻击长期以来一直是一个被低估的问题,安全假设基于服务器和加密信道的防御,客户端通常被视为相对值得信赖的终端。然而,现实世界的场景表明针对终端的记录攻击构成重大威胁,敌手可以秘密捕获敏感的用户信息,例如登录凭据、个人资料和长期口令。这些攻击高度隐蔽,检测和预防极具挑战性。
[0005]当前基于设备的身份验证策略中的缺陷,即设备无法提供作为第二个因素预期的安全性。具体来说,攻击者在获得长期登录凭据后可以绕过设备假冒用户登录。
[0006]强调设备作为第二个因素的不可替代性至关重要。仅仅将设备视为接收OTP或强化弱口令的工具并不等于安全拥有第二个因素。为了保证安全的访问控制,用户登录习惯已经从直接口令验证转变为基于设备的多因素验证。然而,目前服务提供商广泛采用的方法并不能保证口令安全或身份不被假冒。通过修改身份验证策略而不增加额外的硬件负担来增强双因子验证的安全性至关重要。因此,如何加强用户知识与第二个因素之间的内在联系,从而打破服务提供商对口令验证的垄断是本发明亟待解决的技术问题。
发明内容
[0007]本发明旨在提出一种基于智能设备的随机口令验证系统及方法,随机密码验证来对抗终端记录攻击,并提出全新的服务器-设备交互策略。
[0008]为了达到上述发明目的,本发明提出以下技术方案:
[0009]一种基于智能设备的随机口令验证方法,包括初始化阶段、注册阶段和验证阶段,交互参与方为智能设备和服务器,包括:
[0010]步骤1,在初始化阶段:(1.1)生成服务器的公钥私钥对(ks,PKs)、公共参数和函数表示循环群,q表示群的阶,g表示生成元,h表示哈希函数,ks表示服务器私钥,表示服务器公钥;(1.2)生成智能设备的公钥私钥对(kD,PKD)和用户身份DID,将公钥PKD封装成黑盒函数RAD,kD表示智能设备私钥,表示智能设备公钥;
[0011]步骤2,在注册阶段:(2.1)将步骤1得到的智能设备的所述黑盒函数RAD和用户身份DID发送给服务器;(2.2)线上通过服务器根据所述黑盒函数RAD和所述的智能设备用户身份DID进行注册,计算参数Bs,授予用户身份验证凭证vD←(h(RAD(.)||DID)ks+bs)(ks)-1,将所述参数Bs和所述用户身份验证凭证vD发送给智能设备,智能设备验证绑定用户身份验证凭证的服务器公钥成立,线下通过智能设备加密存储用户口令,得到加密用户口令pw,保存为注册记录T;
[0012]步骤3,在验证阶段:(3.1)用户在智能设备终端输入用户身份DID,服务器收到所述用户身份DID后并加密随机参数{es}发送给智能设备;(3.2)智能设备对随机参数{es}进行解密,得到所述用户身份DID,随机选取所述用户身份DID对应的加密用户口令pw中的某一位字符结合用户验证凭证vD进行加密,之后提示加密用户口令pw到输入随机字符串的映射加密后的参数{f,Qus}发送给服务器;(3.3)用户根据智能设备提示的映射在智能设备终端输入随机字符串,服务器使用黑盒函数RAD验证随机字符串和智能设备发送的参数{f,Qus},验证通过即用户登录成功。
[0013]相较于本发明所具有的特点和优势为:
[0014]1、用户输入的随机口令和随机口令与真实口令之间的映射关系都是不可预测的,即使终端记录了随机口令,也无法用其恢复与实际口令相关的信息,因此能够防止长期登录凭据泄漏;
[0015]2、避免离线和在线口令猜测攻击。
附图说明
[0016]图1为本发明的基于智能设备的随机口令验证方法流程图;
[0017]图2为设备封装的黑盒函数构造示例图;
[0018]图3为本发明的注册模块执行过程代码示例图;
[0019]图4为本发明的验证模块执行过程代码示例图;
[0020]图5为本发明实施例图。
具体实施方式
[0021]下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
[0022]实施例一:
[0023]如图1所示,本发明的基于智能设备的随机口令验证方法,具体流程如下:
[0024]步骤1,在初始化阶段,具体包括如下步骤:
[0025]步骤1.1,生成服务器的公钥私钥对(ks,PKs)、公共参数和函数具体的,服务器初始化包括初始化循环群群的阶q,生成元g和哈希函数h在内的函数,服务器生成私钥ks和对应公钥服务器本地存储私钥ks,公开公钥PKs;
[0026]步骤1.2,生成智能设备的公钥私钥对(kD,PKD),并将公钥PKD封装成黑盒函数RAD;黑盒函数RAD由智能设备封装并通过注册模块发送给服务器,服务器保存并在验证阶段调用。具体的,智能设备生成私钥kD和对应公钥智能设备本地存储私钥kD,不公开公钥PKD;
[0027]步骤2,在注册阶段,通过智能设备进行用户注册,包括线上智能设备用户身份授权和线下用户口令处理这两部分:所述线上智能设备用户身份授权是线上通过服务器根据所述的黑盒函数RAD和所述的智能设备用户身份DID进行注册,生成智能设备的用户身份验证凭证vD←(h(RAD(.)||DID)ks+bs)(ks)-1,此处vD的密码学构造为加密签名。所述线下用户口令处理为智能设备加密存储用户口令,无需与服务提供商进行任何在线交互,用户注册过程具体包括如下步骤:
[0028]步骤2.1,将步骤1.2得到的黑盒函数RAD和用户身份DID发送给服务器;
[0029]步骤2.2,线上通过服务器根据所述的黑盒函数RAD和所述的智能设备用户身份DID进行注册,生成智能设备的用户身份验证凭证vD←(h(hAD(.)||DID)ks+bs)(ks)-1并返回,将所述智能设备用户身份DID和所述的黑盒函数RAD记录于服务器;
[0030]如图2所示,黑盒函数RAD的构造具体如下:
[0031]黑盒函数的输入为用户输入的随机口令rs和智能设备发送的加密参数f,具体的,加密参数f←(es(mu+vD)+opw′)(kD)-1,其中kD为智能设备私钥,vD为用户身份验证凭证,opw′为口令中提取字符对应的ASCII码,mu为智能设备选取的随机数,es为服务器发送的参数。黑盒函数处理包括:计算其中pow()为指数函数,为不公开的智能设备公钥;计算p′rs←F′(mod lpw′+2)+1,其中lpw′为用户口令长度,p′rs为计算得到的用户口令映射到随机口令的字符串位置,mod为模运算;根据位置p′rs提取出随机口令rs中相应的字符ors←Extract(rs,p′rs),其中Extract()为字符提取函数;之后计算并输出其中ors为随机字符串中提取字符对应的ASCII码,为服务器和智能设备共同运算的数值,V用于服务器计算验证结果。
[0032]具体的,es←ns(ks)-1,其中ns为服务器选取的随机数,ks为服务器私钥。
[0033]如图3所示,注册阶段详细描述如下:1.用户通过智能设备首先向服务器发送黑盒函数RAD和用户身份DID;2.服务器收到黑盒函数和用户身份后,生成随机参数bs,并结合黑盒函数和用户身份授予用户身份验证凭证vD←(h(RAD(.)||DID)ks+bs)(ks)-1。服务器计算其中g为循环群的生成元,Bs可用于后续运算,但无法从中解密出bs,服务器将凭证vD和参数Bs发送给智能设备。服务器存储黑盒函数RAD和设备身份DID。3.智能设备在收到参数Bs后验证是否成立,如果成立则智能设备加密存储用户口令,记为加密用户口令pw,保存为注册记录T。如使用生物密钥bio,提取生物密钥(σ,τ)=Gen(bio),其中Gen()为生物密钥生成函数,σ为生物密钥,τ为恢复生物密钥所需附加信息,在智能设备中存储{T,τ,vD,Bs}。
[0034]具体的,bs属于模q的正整数集合;
[0035]步骤2.3,经判断,若所述用户身份验证凭证可用,则加密用户口令,所述加密用户口令pw存储于服务器中作为注册记录T;
[0036]步骤3,用户口令验证过程具体包括如下步骤:
[0037]步骤3.1,用户在智能设备终端输入用户身份DID,服务器收到所述用户身份DID后,生成随机参数es,并加密发送给智能设备;
[0038]具体的,es←ns(ks)-1,其中ns为服务器选取的随机数,ks为服务器私钥;
[0039]步骤3.2,智能设备收到加密的随机参数es,并从注册记录T中解密用户口令pw′,之后生成随机数nu,mu,计算其中PKs为服务器公钥,基于随机数nu随机选出口令中的字符位置Ppw′←nu(mod lpw′)+1,提取字符对应的ASCII码opw′←Extract(pw′,ppw′)。将opw′加密为f←(es(mu+vD)+opw′)(kD)-1,计算参数计算映射到随机口令的字符位置prs←F(mod lpw′+2)+1。提示用户映射关系用户确认后,设备发送{f,Qus}给服务器;
[0040]步骤3.3,用户根据智能设备提示的映射在智能设备终端输入随机字符串,服务器使用黑盒函数RAD验证随机字符串和设备发送的参数{f,Qus},验证通过即用户登录成功。如图4所示,验证阶段的步骤如下:1.用户在智能设备终端输入设备身份DID,服务器在收到用户身份DID后生成随机数ns,并加密为es←ns(ks)-1,其中ks为服务器私钥,服务器发送加密参数{es}给智能设备。2.智能设备从注册记录T中得到解密用户口令pw′,生成随机数nu,mu,计算用于加密es,基于随机数nu随机选出解密用户口令中的字符位置ppw′←nu(mod lpw′)+1,提取字符对应的ASCII码opw′←Extract(pw′,ppw′),将opw′加密为f←(es(mu+vD)+opw′)(kD)-1,计算参数计算映射到随机口令的字符位置prs←F(mod lpw′+2)+1,提示用户映射关系用户确认后,设备发送{f,Qus}给服务器。3.用户根据智能设备提示的映射在终端输入随机口令rs,服务器将随机口令rs和设备发送的参数f作为黑盒函数的输入。服务器在获取黑盒函数的输出V后,验证验证通过即用户输入的随机口令满足到真实口令的映射,用户登录成功。
[0041]其中,ns属于模q的正整数集合。
[0042]其中,nu、mu属于模q的正整数集合。
[0043]其中,F为双方共同根据预共享信息协商的相同参数。
[0044]智能设备用户在不可信终端上登录服务器,用户口令验证过程不会向服务器或终端暴露用户口令、与用户口令相关的提示或可用于猜测的口令哈希值。
[0045]如图5所示,本发明的基于智能设备的随机口令验证系统及方法具体实施过程涉及用户、用户设备、登录终端和服务器。验证的主要步骤如下:①用户在终端中输入设备身份DID;②服务器接收DID并根据口令验证协议向设备发送参数;③设备提示用户确认口令中单个字符与随机口令rs中单个字符的映射(例如口令的第六个字符“D”应放在随机口令的第十一位);④用户在终端输入随机口令rs,设备向服务器返回加密后的验证参数。在验证协议下,服务器和终端无法确定具体的口令字符位置和映射关系。服务器根据参数计算结果来验证用户身份。
[0046]综上所述,本发明具有以下优势:
[0047]1)考虑到针对客户端终端的隐蔽攻击,本发明首次提出了一种全新的对抗终端记录攻击的策略。为了,本发明设计了一种全新的随机口令输入策略。随机性体现在输入的字符中,确保用户输入的随机口令和随机口令与真实口令之间的映射关系都是不可预测的。即使终端记录了随机口令,也无法用其恢复与实际口令相关的信息。
[0048]2)本发明增强了设备作为第二因素的不可替代性。设备随机指示实际口令和随机口令之间的字符位置映射,而不是直接显示字符,从而在第二因素的所有权和用户知识之间建立了相关性。拥有单一口令或设备的对手无法绕过另一因素进行登录。此外,强健的交互策略确保对手无法从拦截的中间参数中提取任何有价值的信息。
[0049]3)本发明提出了一种全新的服务器端身份验证策略,基于与设备的交互,从而避免离线和在线口令猜测攻击。在登录阶段,服务器验证注册身份的合法性,并检查用户对口令的知识是否与设备加密的真实口令和映射相匹配。即使在恶意服务器通过破解黑盒函数最多获取口令的一个字符的情况下,服务器仍然不知道其在口令中的位置。没有用户和设备的确认,服务器无法验证猜测。