用于密码认证的装置和方法

文档序号:9527371阅读:358来源:国知局
用于密码认证的装置和方法
【技术领域】
[0001]本公开一般涉及计算机系统,并且具体地涉及在这样的系统中的密码的处理。
【背景技术】
[0002]本部分旨在向读者介绍相关技术的各个方面,其可能涉及在下面所描述和/或要求保护的本公开的各个方面。相信该讨论有助于向读者提供背景信息,以便于更好地理解本公开的各个方面。相应地,应当理解的是,这些陈述要从这个角度阅读,并且不作为对现有技术的承认。
[0003]密码普遍存在于如今的计算机系统中,例如用于认证登录的用户。在其一般定义中,密码包括在预定义的字母表内得到的一系列的符号(例如,用于PIN码的4个数字值)。一般来说,密码越长,具体地,如果密码是大写和小写字母、数字以及诸如&、“以及#这样的字符的混合,则密码越强壮。然而,越是复杂的密码一般就越是难以正确地键入,特别是因为所键入的字符不出现在屏幕上。另外,因为用户被迫一天多次输入密码,密码往往被非常快速地键入。因此,输入密码可能获得键入错误,这是毫不令人惊讶的。另外,像智能电话和平板这样的基于触摸屏的设备使用虚拟键盘来输入包括密码的一些文本。在这种类型的输入的情况下,键入错误可能是相当频繁的。
[0004]现有技术包含提供对键入错误有抵抗力的密码的很多解决方案。
[0005]工具Password Variator建立具有密码的所有可能变型的文件,模拟诸如丢失字符、重复字符、额外字符、错误次序以及错误大小写这样的多达三种键入错误。AndrewMehler 和 Steven Skiena 在 Improving Usability Through Password-CorrectiveHashing中提供了一种不同的解决方案。他们的解决方案在进行散列之前处理密码(例如通过按字母顺序将输入密码排列为正确的变换),使得稍微拼错的密码能够像正确密码一样散列到相同的散列值。显然,“可接受的”密码的这种乘法显著地降低了密码的强度,因为很多不同的密码散列到相同的值,包括远远不同于一个或两个键入错误的密码。
[0006]在US 7373516和JP 2005-208763中的解决方案比较输入密码与在“密码空间”中(即,以明文)存储的密码,以确定前者是否“相似”于后者。然而,因为这些解决方案需要比较密码的明文版本,所以它们无法用在实际系统中,在实际系统中,出于明显的安全原因,以明文存储密码一般是不可接受的。一般地,由存储密码的散列版本(将与由用户键入的密码提议的散列版本进行比较)的服务器处理认证。这是为了使偷窃密码文件没有那么有价值。
[0007]JP 2007-114976教导了诸如PC这样的尤其是提供如下功能的设备:保持输入错误键入的密码的次数的计数,并且当次数足够大时(例如十次)存储错误键入的密码作为可接受的密码。本领域技术人员将意识到该解决方案是不安全的,因为看起来对于错误键入的密码的添加不存在任何控制;当错误密码被输入了十次时,其被存储为可接受的密码,这意味着黑客为了使密码被接受,只需要将其输入十次。
[0008]因此可以意识到,需要一种解决方案,其能够允许认证系统允许错误键入的密码而不具有现有技术解决方案的不足。本公开提供这样的解决方案。

【发明内容】

[0009]在第一方面中,本公开涉及一种用于处理密码的装置,其被配置为:接收密码;取得由被应用于参考密码的派生函数所生成的所存储的派生值;使用以派生值作为变量的拼凑函数来拼凑密码以获得拼凑的密码;以及将拼凑的密码发送给认证服务器。
[0010]在第一实施例中,该装置还被配置为在无法取得所存储的派生值的情况下使用派生函数从所接收的密码生成派生值。
[0011]在第二实施例中,该装置还被配置为在生成新密码期间接收到密码的情况下,使用派生函数从新密码生成派生值,并且存储这样生成的派生值。
[0012]在第三实施例中,该装置包含认证服务器。
[0013]在第四实施例中,派生函数是加密单向函数。
[0014]在第二方面中,本公开涉及一种用于通过以下来处理密码提议的方法:接收密码;取得由被应用于参考密码的派生函数所生成的所存储的派生值;使用以派生值作为变量的拼凑函数来拼凑密码以获得拼凑的密码;以及将拼凑的密码发送给认证服务器。
[0015]在第一实施例中,派生函数用于在无法取得到所存储的派生值的情况下从所接收的密码生成派生值。
[0016]在第二实施例中,在生成新密码期间接收到密码的情况下,使用派生函数从新密码生成并且然后存储派生值。
[0017]在第三实施例中,派生函数是加密单向函数。
【附图说明】
[0018]现在将通过非限制性的示例并参考附图来描述本公开的优选特征,附图中:
[0019]图1例示可以在其中实现本公开的示例性系统;
[0020]图2例示根据优选实施例的密码生成的示例性方法;以及
[0021]图3例示根据优选实施例的密码认证的示例性方法。
【具体实施方式】
[0022]本公开具体地涉及密码的处理,其在本文中将被用作非限制性的示例。然而,应当理解的是,可以使用其他类型的数据而不是密码。
[0023]一般的想法是使用派生函数从参考密码生成派生值,派生函数是诸如(键控)散列函数这样的加密单向函数或者对称或非对称加密函函数,以增强安全性。
[0024]然后,使用派生值来处理密码。在特别有利的实施例中,使用以派生值作为变量并且以如下方式拼凑输入密码的“抗性函数”来处理密码:当与参考密码值比较时,可以检测出拼凑的密码和参考密码之间的特定字符的差异。换言之,能够确定在输入密码中是否存在键入错误;可以检测到多少错误取决于检测方法。
[0025]检测方法的第一示例是得到包含η个字符P1-Pn的密码P,并且使用派生值作为密钥生成η个HMAC值,其中对于{1,...,η}中的j,从减去p ^pn生成HMAC值j。然后,将η个HMAC值发送给认证服务器,认证服务器存储以相同的方式从参考密码所生成的多个HMACo如果输入密码的至少一个HMAC匹配参考密码的至少一个HMAC,则输入密码被视为正确。该方法可以被一般化为允许密码中的任何数量(多达η个)的键入错误。
[0026]检测方法的第二示例是得到包含η个字符P1-Pn的密码P,并且使用派生值作为洗牌算法和字符替换密码中的相应的密钥。将结果值发送给认证服务器,认证服务器将其与使用相同的方式从输入参考密码生成的“拼凑的”参考密码进行比较以确定输入密码是否正确。可以提前设置所接受的键入错误的数量,而无需修改拼凑方法。
[0027]图1例示可以在其中实现本公开的示例性系统。系统包含计算设备(“计算机”)110和认证服务器120。计算机110和认证服务器(以下“服务器”)120可以是能够执行计算的任何类型的适合的计算机或设备,诸如标准的个人计算机(PC)或工作站。计算机110和服务器120每个都优选地包含至少一个处理器111、121,内部或外部RAM存储器112、122,用于与用户进行交互的用户界面113以及用于通过连接130与其他设备进行交互的第二接口 114、124。计算机110和服务器120每个都还优选地包含用于从数字数据载体(support) 140读取软件程序的接口,数字数据载体140存储当被处理器执行时执行在下面描述的任何密码方法的指令
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1