一种支持跨服务器验证的Honeyword方案

文档序号:25051277发布日期:2021-05-14 13:15阅读:68来源:国知局
一种支持跨服务器验证的honeyword方案
技术领域
:1.本发明属于信息安全领域,具体涉及一种支持跨服务器验证的honeyword方案。
背景技术
::2.口令,俗称“密码”,是一种广泛应用的身份认证机制。当前,用户在网络上的重要账户基本要通过验证口令的方式来保障其安全性,口令长度越长,组成越复杂,口令的强度也越高。理想状态下,用户的每一个高价值账户(银行,购物网站等)都应该由一个独立的强口令来保障其安全性。然而,受限于人的记忆能力,太多需要记忆的口令会给人带来沉重的记忆压力,因此,许多用户倾向于在不同站点的账户上使用相同的口令,这就是口令重用问题。3.口令重用问题会在遭受攻击时引起连锁反应,当某个服务器受到攻击,它所持有的登录凭证发生了泄露,那么,不止这个服务器上的账户可能遭到攻击,其他服务器上的同一用户的账户也可能因为口令重用行为而被攻破。这种攻击方式叫做凭证填充攻击,是近几年常见的攻击方式,具有规模大、攻击成功率高的特点。4.honeyword是登录凭证泄露检测的一种技术,其原理是在各账户存储登录凭证时,生成一个预警用的识别码,也就是honeyword,当服务器发生了登录凭证泄露,攻击者试图使用得到的数据登录本服务器上的账户时,由于无法分辨真正的登录凭证和honeyword,如果使用honeyword进行了登录行为,则会被服务器检测到。现有的honeyword方案如文献[arijuelsandronaldl.rivest.2013.honeywords:makingpassword‑crackingdetectable.inproceedingsofthe2013acmsigsacconferenceoncomputer&communicationssecurity(ccs′13).associationforcomputingmachinery,newyork,ny,usa,145‑160.doi:https://doi.org/10.1145/2508859.2516671]中给出的方案只能支持对本服务器中泄露的口令进行检测,因此无法对凭证填充攻击做出很好的限制。[0005]环签名是一种特殊的数字签名,环签名中只有环成员没有管理者,不需要环成员间的合作,签名者利用自己的私钥和集合中其他成员的公钥就能独立的进行签名,集合中的其他成员可能不知道自己被包含在其中。环签名的优势除了能够对前者进行无条件匿名外,环中的其他成员也不能伪造真实的签名者签名。它具有以下特性:[0006]1)正确性:如果按照正确的签名步骤对消息进行签名,并且在传播过程中签名没被篡改,那么环签名满足签名验证等式。[0007]2)无条件匿名性:攻击者即使非法获取了所有可能签名者的私钥,他能确定出真正的签名者的概率不超过1/n,这里n为所有可能签名者的个数。[0008]3)不可伪造性:外部攻击在不知道任何成员私钥的情况下,即使能从一个产生环签名的随机预言者那里得到任何消息的签名,他成功伪造一个合法签名的概率也是可以忽略的。[0009]本专利为了能让honeyword的检测机制运用到防御凭证填充攻击中,提出了一种能支持跨服务器检测的基于环签名的honeyword,在使用了本专利的协议的服务器之间,如果某个服务器发生了泄露,而攻击者运用泄露的凭证对其他服务器进行凭证填充攻击,被攻击的服务器能够借助本专利进行honeyword的检测,从而发现攻击行为。在生成honeyword时,使用对账户标识符进行环签名得到的数据作为honeyword存储在服务器中,当其他服务器上进行登录尝试时,服务器使用自己持有的公钥串进行验签,验签成功后表明此次账户登录请求使用的凭证是协议中某个服务器泄露的,意味着此账户遭到了凭证填充攻击。该方法只适用于参与此协议的服务器之间;且为了防止攻击者对honeyword进行识别,所使用的环签名公钥串需要保密,只被参与协议的各服务器持有。技术实现要素:[0010]本发明针对上述的honeyword不支持防御凭证填充攻击的缺点,提出了一种支持跨服务器验证的honeyword方案。本发明可以在参与协议的不同服务器之间实现生成和验证honeyword,达到检测和抵抗凭证填充攻击的效果。[0011]本发明的目的是为了解决此前的honeyword方案只适用于检测本服务器发生的泄露行为,对具有跨服务器攻击特点的凭证填充攻击无法有效防御的问题。本发明基于环签名的特点,使用账户标识符的环签名作为honeyword,当发生了泄露,泄露的数据被用于攻击其他协议内的服务器时,服务器使用环签名的公钥串进行验签,得出验证结果为真的时候,意味着发生了凭证填充攻击。由于环签名具有匿名性的特性,验证者无法获知攻击所用凭证来自哪个服务器,只能知道是从协议中某个服务器中泄露的。本发明通过如下技术方案来实现。[0012]本发明分为存储和验证两个部分,在参与协议的各服务器首先持有一个仅限服务器持有的公钥串。在存储登录凭证时,对账户标识符使用公钥串和自己的私钥进行环签名,并将签名后的数据存储起来作为honeyword。在验证阶段,服务器对错误的登录尝试所使用的登录凭证进行环签名验证,使用公钥串和账户标识符进行验证的结果如果吻合,那么说明此凭证是协议中某一个服务器中泄露出来的honeyword,服务器据此可以将此账户判定为遭受了凭证填充攻击,对此账户登录行为进行额外的安全措施,如验证码和验证邮件等,以此来达到限制凭证填充攻击的效果。[0013]一种支持跨服务器验证的honeyword方案,所述方法包括以下步骤:[0014]1.honeyword的生成与存储:[0015]1.1)参与协议的各服务器交换其公钥pk得到一个公共的公钥串{pk0,pk1,pk2,....,pki‑1,pki,pki+1,...,pkn‑1},公钥串的长度等于服务器数量n,公钥串由各服务器保密持有。定义一个hash函数,这个hash函数的输入是待签名的消息m和椭圆曲线上的一个点a,即hash(m,a)。[0016]1.2)对于签名方i(0<=i<=n‑1),pki为他的公钥,ski为他的私钥,pki=ski·g,g为椭圆曲线的生成元。签名方随机生成n‑1个随机数s0,s1,...,si‑1,si+1,...,sn‑1,分别与除pki以外的n‑1个公钥一一对应。[0017]1.3)随机生成k并计算k·g,假设k·g=si·g+ci·pki[0018]1.4)环签名的递推式为:cx=hash(m,sx‑1·g+cx‑1·pkx‑1),签名方从x=i+1开始计算,得到ci+1=hash(m,si·g+ci·pki)=hash(m,k·g)[0019]1.5)接着依次计算:[0020]ci+2=hash(m,si+1·g+ci+1·pki+1)[0021]......[0022]cn‑1=hash(m,sn‑2·g+cn‑2·pkn‑2)[0023]c0=hash(m,sn‑1·g+cn‑1·pkn‑1)[0024]c1=hash(m,s0·g+c0·pk0)[0025]......[0026]ci=hash(m,si‑1·g+ci‑1·pki‑1)[0027]1.6)由pki=ski·g,得到k·g=si·g+ci*ski·g,从而得到si=k‑ci*ski,将每个s用一个特定的长度为n的分割字符串l0={l0,l1,...,ln‑1}隔开得到随机数串s={s0,l0,s1,l1,...,ln‑1,sn‑1},最后得到的honeyword为{c0,s}[0028]1.7)定期更新分割字符串,得到{l0,l1,...}并分享给协议内所有服务器[0029]2.honeyword验证:[0030]2.1)验证方收到登录请求,且登录凭证验证不匹配后,对登录行为所用的凭证进行环签名验证尝试,分割凭证得到c0和s,在由{l0,l1,...,lm}分割s得到m组随机数{s0,s1,...,sn‑1}0,{s0,s1....,sn‑1}1...{s0,s1,...,sn‑1}m‑1[0031]2.2)分割成功后,对每组随机数进行验签,根据持有的公钥串{pk0,pk1,pk2,....,pki‑1,pki,pki+1,...,pkn‑1}和{s0,s1,...,sn‑1},由cx=hash(m,sx‑1·g+cx‑1·pkx‑1)和账户标识符依次求出c1,c2...,cn‑1,最后由cn‑1求出c0’[0032]2.3)判断c0’=c0是否成立,若成立,则说明此次登录所用的凭证是从协议中某个服务器中泄露的,可以对此账户进行相应的安全响应措施。[0033]所述步骤1.2中无需生成si,因为si会在后续计算中得到。[0034]所述步骤1.3中,此时的ci和si是未知的,ci需要由后续的递推式用ci‑1得到,si由k和ci可以求出。[0035]所述步骤1.4中,求ci+1时不知道ci和si,而是由k求得。[0036]所述步骤1.6中,如果没有私钥ski,则此步不成立,无法求得si。得到的环签名数据为{c0,pk0,....pkn‑1,s0,....,sn‑1},由于公钥串进行了预分享,使用预分享的公钥串和honeyword{c0,s}就可以进行环签名验证。[0037]所述步骤2中,服务器首先根据l将凭证进行分割,分割为满足条件的环签名再进行验签。若验证发现环签名验证成功,表明此服务器的此账户受到了凭证填充攻击,服务器随即可进行相应的安全措施,如使用验证码,冻结账户等等。由于环签名的匿名性,检测方服务器无法获知honeyword具体来源于哪个服务器,但可以确定它是由协议中某个服务器泄露的。本发明主要针对凭证填充攻击,而凭证填充攻击依靠其他服务器中泄露的凭证来攻击,被攻击的服务器和泄露的不是同一服务器,攻击者持有的数据量庞大且来源复杂,因此,攻击者并没有有效鉴别真实口令的条件。[0038]本发明目的中所要解决问题的具体设置环境可以为:服务器在运行过程中有遭受凭证填充攻击的风险,考虑到这种攻击的特殊性和危险性,需要一种特别的检测手段来让服务器能够区分普通的失败登录尝试和凭证填充攻击,以便服务器及时采取安全措施。[0039]本发明突出的实质性特点和显著性进步主要体现在以下几点:本发明提出了一种支持跨服务器验证的honeyword方案,利用环签名的特性,实现在服务器能检测到协议内其他服务器生成的honeyword,以此达到检测凭证填充攻击的效果。[0040]本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。附图说明[0041]下面结合附图及实施例对本发明作进一步描述:[0042]图1为本发明的存储过程示意图[0043]图2为本发明的验证过程示意图具体实施方式[0044]以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。[0045]图1显示了本发明的存储过程示意图,对服务器中每个账户:[0046]1)在存储用户账户信息时使用环签名对账户标识符签名[0047]2)对得到的环签名数据进行处理,将环签名所使用的随机数序列用分割字符分开后接入签名数据末尾,得到honeyword[0048]3)得到的基于环签名的honeyword与正确登录凭证一同存储在服务器中[0049]4)如果此服务器发生了泄露,honeyword会和正确登录凭证一起泄露。[0050]图2显示了本发明的验证过程示意图,在服务器收到错误登录尝试时:[0051]1)首先判断所使用的登录凭证是否满足环签名的基本条件,即能将最后n位分割为{s0,....,sn‑1}[0052]2)如果可以,则进行验证步骤,根据服务器持有的公钥串,凭证分割得到的{s0,....,sn‑1}和c,进行环签名验签[0053]3)得到的验签结果为真时,向服务器反馈检测到honeyword,即此账户受到了凭证填充攻击,需要对登录行为采取更多安全措施,如果为假则忽略。[0054]本发明涉及支持跨服务器验证的honeyword方案。本发明支持在服务器上检测协议中其他服务器生成的honeyword,适用于凭证填充攻击的防御,检测方服务器无法获知honeyword具体来源于哪个服务器,但可以确定它是由协议中某个服务器泄露的。在服务器遭受凭证填充攻击时,采用本发明的服务器可以提高检测到攻击行为的概率。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1