CN113994632A - 符号流中的部分模式识别 - Google Patents

符号流中的部分模式识别 Download PDF

Info

Publication number
CN113994632A
CN113994632A CN202080042472.7A CN202080042472A CN113994632A CN 113994632 A CN113994632 A CN 113994632A CN 202080042472 A CN202080042472 A CN 202080042472A CN 113994632 A CN113994632 A CN 113994632A
Authority
CN
China
Prior art keywords
characters
access
subset
symbols
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080042472.7A
Other languages
English (en)
Other versions
CN113994632B (zh
Inventor
A·A·哈桑
W-C·陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN113994632A publication Critical patent/CN113994632A/zh
Application granted granted Critical
Publication of CN113994632B publication Critical patent/CN113994632B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1475Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored

Abstract

系统和方法可以被用于通过实现具有例如由用户选择的位置中散置的噪声符号的凭证的认证系统,来提供更安全的认证尝试。由于窃听者难以将噪声符号与合法凭证符号分开,因此这些系统和方法可以防止窃听者(诸如背后偷窥者或中间人)攻击。一些系统和方法可以使用具有散置噪声符号的凭证子集。

Description

符号流中的部分模式识别
背景技术
尝试访问安全的访问受控资源的用户执行认证尝试,由此用户输入一个或多个凭证,诸如用户名和密码。将所输入的凭证与存储的凭证进行比较,以确定用户名和密码是否与被授权访问所述安全的访问受控资源的有效账户相匹配。如果所述凭证与被授权访问所述安全的访问受控资源的有效账户相匹配,则系统可以准许对所述访问受控资源的访问。
附图说明
在不一定按比例绘制的附图中,相似的数字可以在不同的视图中描述相似的组件。具有不同字母后缀的相似数字可以表示相似组件的不同实例。附图通过示例而非限制的方式大体图示了在本文档中所讨论的各种实施例。
图1图示了根据本公开的一些示例的示例性认证环境,其中,用户设备的用户可以进行认证以访问安全的访问受控资源。
图2图示了根据本公开的一些示例的示例性认证环境,其中,用户可以进行认证以访问安全的访问受控资源。
图3图示了根据本公开的一些示例的利用额外的、非指定的噪声符号进行认证的数据流的图。
图4图示了根据本公开的一些示例的对用户进行认证的方法的流程图。
图5图示了根据本公开的一些示例的对用户进行认证的方法的流程图。
图6图示了根据本公开的一些示例的对用户进行认证的方法的流程图。
图7和图8A-8C图示了根据本公开的一些示例的用于允许用户输入认证凭证的示例形图形用户界面(GUI)的图。
图9图示了根据本公开的一些示例的具有分布式认证功能的用户设备和远程设备的图。
图10图示了根据本公开的一些示例的利用尺寸(size)限制来对用户进行认证的方法的流程图。
图11图示了根据本公开的一些示例的利用散布量度标准来对用户进行认证的方法的流程图。
图12图示了根据本公开的一些示例的利用额外的、非指定的噪声符号进行认证的数据流的图。
图13图示了根据本公开的一些示例的利用额外的、非指定的噪声符号和强制的凭证子集进行认证尝试的数据流的图。
图14-16图示了根据本公开的一些示例的利用凭证子集来认证用户的方法的流程图。
图17图示了根据本公开的一些示例的示例性机器的框图,所述机器可以实现在本文中所讨论的技术(例如,方法)中的一种或多种技术(例如,方法)。
具体实施方式
图1图示了根据本公开的一些示例的示例性认证环境100,其中,用户设备110的用户可以进行认证以访问安全的访问受控资源130。如在图1中所示的,安全的访问受控资源130可以是用户设备110的安全的访问受控资源130或者由能通过网络175访问的远程设备135提供的安全的访问受控资源130。安全的访问受控资源130可以包括:对一个或多个文件、文件的部分(例如,字段或数据结构)、应用的访问,对操作系统的访问,对用户设备110自身的访问,对一个或多个基于网络的服务(例如,社交网络服务、文件共享服务、电子邮件、通信服务等)的访问,对物理对象的访问(例如,通过由计算机控件对对象的解锁)等。
网络175可以包括任何计算网络,包括:局域网(LAN)、广域网(WAN)、互联网等。在用户设备110处,用户对请求访问安全的访问受控资源130进行认证尝试。认证尝试是用户证明拥有访问所述安全的访问受控资源的有效凭证的尝试。作为所述认证尝试的一部分,客户端125可以使得显示用户界面(UI)127(其可以是图形UI(GUI)),其请求对于访问所述安全的访问受控资源130所需的用户凭证。示例性凭证包括:用户名、密码、生物特征、令牌、数字证书、加密密钥等。
客户端125然后可以将由用户输入的凭证传递给认证器120。认证器120可以确定由用户输入的凭证是否有效。如果所述凭证是有效的,则认证器120可以准许对所述安全的访问受控资源130的访问。如果所述凭证是无效的,则认证器120可以拒绝对所述安全的访问受控资源130的访问。如果安全的访问受控资源130由远程设备135来控制,则认证器120可以跨网络175发送消息以向远程设备135指示用户是否被授权访问所述安全的访问受控资源。客户端125然后可以经由UI 127通知用户访问是否被准许。
图2图示了根据本公开的一些示例的示例性认证环境200,其中,利用用户设备110的用户可以进行认证以访问安全的访问受控资源130。图2与图1是相似的,除了认证器120位于远程设备250上之外。如在图1中一样,用户经由客户端125的UI 127输入凭证。在一些示例中,所述UI可以完全由客户端125来提供,但是在其他示例中,所述UI可以部分地由远程设备250来提供(例如,经由由远程设备250传输的一个或多个文件并且由客户端125来呈现以创建UI 127)。所述客户端经由网络175向远程设备250的认证器120传输所述凭证。当跨网络175传输所述凭证时,可以对所述凭证进行加密,例如,通过利用安全套接字层连接。
在图2的示例中,安全的访问受控资源130可以驻留在用户设备110、远程设备250或者第二远程设备255处。认证器120可以向安全的访问受控资源130所位于的设备发送指示以指示用户是否被认证——直接地或通过客户端125。在一些示例中,所述指示可以是针对设备(例如,诸如用户设备110或第二远程设备255)的直接消息。在其他示例中,如果用户成功地认证,则认证器120可以向客户端125发出令牌。所述令牌可以由用户设备110发送到安全的访问受控资源130所位于其的任何设备。设备(例如,110、250或255)然后验证所述令牌,并且如果所述令牌被验证,则准许用户对所述安全的访问受控资源的访问。
在常规的认证系统中,用户键入凭证,相对于存储的凭证来检查(或者以其他方式验证)所述凭证,以确定所输入的凭证是否与存储的凭证精确匹配。尽管要求精确匹配在常规的认证系统中是最安全的验证方法,以防止黑客试图通过使用蛮力攻击来猜测所述凭证,但是要求精确匹配对于远程认证而言可能是有问题的,因为可能通过通信信道引入噪声,这可能导致认证失败。此外,精确匹配系统存在安全漏洞,因为其将用户的精确凭证暴露给窃听者。例如,安全漏洞可能是由于恶意用户在合法用户键入其密码时窃听其键盘(所谓的背后偷窥者)、使用直接从用户的键盘窃取数据的键盘记录器、或者使用拦截通信(诸如可能被发送给服务器的凭证)的中间人攻击而导致的。在需要针对用户凭证的精确匹配的系统中,窃听者仅需要拦截单次认证尝试即可危害用户的账户。
为了获得抵御这些窃听攻击的更好的安全性,一些精确匹配认证系统需要输入与合法凭证符号散置(interspersed)在一起的一个或多个噪声符号。噪声符号是不作为用户凭证的一部分的一个或多个符号,并且不会相对存储的凭证进行检查以确定是否与用户的存储的凭证相匹配。符号是一个或多个数据单元,诸如字符、字节、字等。对密码进行认证的设备移除这些噪声符号,以检查与存储的凭证是否精确匹配。这些技术可能击败试图通过观察用户键入的字符来窥探用户密码的背后偷窥者。另外,也可以通过在密码中添加噪声字符来阻止监控用户键入的密钥的特定键盘记录器或者拦截用户通信的中间人攻击者确定用户的密码,因为这可能需要多次观察才能够辨别用户的真实密码。
在凭证中引入噪声符号的认证系统中的认证器通常需要在检查精确匹配之前过滤掉凭证中的噪声符号。为了实现这一点,认证器必须知道哪些符号是噪声符号,以及哪些符号是凭证的一部分。在一些示例中,认证系统在为所有认证尝试指定的凭证位置处引入噪声符号。例如,认证系统可以指定所有的认证尝试必须在凭证符号内的开始处、结尾处、开始和结尾处或者在其他预定位置处放置噪声符号。这些位置在随后的登录尝试中不改变。亦即,每次登录尝试都在这些相同位置中的一个位置或者一个或多个位置处利用额外的噪声符号。
在其他示例中,认证器(在用户设备上或者在远程设备处)可以针对特定认证尝试指定用户将噪声符号放置在凭证的指定位置。例如,可以指示用户在密码P的第一符号之前、在第二符号与第三符号之间、以及在第四符号与第五符号之间插入三个噪声符号N以产生提交的符号{N1,P1,P2,N2,P3,P4,N3,P5...Pm},其中,m是密码P的长度。针对这些噪声符号N的符号可以由认证器来指定,或者可以由用户决定其何时键入随机字符。在一些示例中,符号可以是字符,并且凭证可以是密码,因此用户可以在密码内的指定字符位置处在密码内插入噪声字符。
然后,认证器从提交的符号中移除噪声符号N。在这些系统上容易实现认证,因为准确了解噪声符号的位置使得能够容易地移除那些符号,并且因此能够在输入的符号与存储的凭证之间进行直接比较。这些系统可能无法有效地解决密码窃听的问题,因为窃听者也可能能够确定在密码中插入噪声的位置,并且因此能够准确地移除噪声。例如,如果向用户显示所述位置,则背后偷窥者也将能够看到哪些位置是噪声符号。另外,如果认证器远程地定位,则认证器可能向客户端设备发送关于指示用户应当在哪里插入噪声的消息。该消息可能被中间人攻击拦截。攻击者能够访问指定位置的潜在方式使这些系统低效。
在一些示例中公开了方法、系统和机器可读介质,其通过利用包括散置的噪声符号的凭证实现认证系统来允许更安全的认证尝试。这些系统允许噪声符号N位于由用户确定的位置中,而所述位置未被指定给认证器进行认证尝试,这针对窃听者产生了更高的安全性,因为窃听者无法事先确定噪声符号(例如,字符)在何处。尽管这些系统更安全,但是其不容易认证。例如,由于认证器不知道噪声符号的位置,因此不容易忽略噪声符号N来确定剩余字符是否与密码相匹配。
在所公开的示例中,噪声符号(例如,字符)以及其在凭证内的位置没有被系统指定用于特定的认证尝试。用户可以在凭证输入时决定将随机噪声符号放在哪里以及随机噪声符号是什么。认证器将提交的字符(具有散置噪声符号的凭证)与存储的凭证进行比较,而不知道噪声符号在凭证符号内的什么位置,并且也不知道噪声符号是什么符号。
为了对用户进行认证,认证器将提交的符号分解为长度为m的多个向量,所述m与有效凭证中的符号的数量(例如,密码的长度)相对应。在所述多个向量中的每个向量中保持符号的排序,使得所述向量中的每个符号相对于所述向量中的另一符号的次序与接收到的排序相匹配。然后,计算量化每个向量与包括凭证符号的向量之间的距离的距离度量。基于所述距离度量,可以确定所述凭证是否匹配以及用户是否被认证。在一些示例中,所述凭证是密码,并且所述符号是字符。
因此,本公开解决了使用能够抵抗键盘记录器、窃听者和中间人攻击的一个或多个安全凭证(诸如密码)来提供对访问受控资源的安全访问的技术问题。这是通过引入在用户指定的位置处引入的用户指定噪声符号(例如,字符)来实现的。认证器不知道噪声符号被引入到哪里或者噪声符号是什么。认证器将提交的符号分解为多个向量,并且利用距离度量来确定认证是否应当被准许。在一些示例中,该方法可以通过在不成功的登录尝试的阈值次数之后通过将用户锁定在其账户之外(永久地或暂时地)来限制用户能够进行认证尝试的次数来保护免受暴力攻击。
图3图示了根据本公开的一些示例的利用额外的、非指定的噪声符号进行认证的数据流300的图。根据示例性数据流300,输入的凭证310(例如,密码)可以包括{P1、P2、P3}次序的三个符号312、314和316,其可以是字符的形式。用户在输入所述凭证时,以噪声字符的形式向所述凭证添加一个或多个噪声符号320。在图3中所示的示例中,为了易于描述,仅添加了一个噪声符号320。由用户提交用于认证的提交符号325包括凭证符号312、314和316(按次序)以及被插入到所述凭证符号中的一个或多个噪声符号320。
认证器327包括向量创建器330,其接收提交符号325并且创建长度为m的多个向量,其中,m是用户的存储凭证350(例如,密码)的符号的数量(例如,有效密码的长度)。所述向量反映提交符号325的每种可能的有序、长度为m的组合。所述向量中的每个向量中的字符的次序与提交符号325中的符号的次序相同。亦即,如果组合序列是“plas”,并且凭证是“pas”,那么向量的长度将都是三,并且将反映所有可能的有序(即,每个字符保持其从提交符号325中出现的次序)组合。在该示例中,所述向量将是:
<p,1,a>,<p,a,s>,<p,1,s>,<1,a,s>
然后,将每个向量传递到距离度量计算器335,距离度量计算器335计算所述向量中的每个向量与存储凭证350的向量之间的距离。在一些示例中,距离度量可以是Levenshtein距离。在其他示例中,距离度量可以将每个向量的每个符号与存储凭证350中的对应位置进行比较。如果所述符号相匹配,则可以不增加得分(score)。如果所述符号不匹配,则可以增加得分。在其他示例中,更高的得分反映更好的匹配,并且因此匹配的符号可能使得得分增加,并且不匹配的符号可能使得得分不变或者可能使得得分减少。在又其他示例中,距离度量可以与存储凭证350相关,诸如Pearson相关系数。在其他示例中,可以使用其他编辑距离度量或算法。
然后,将针对所述向量中的每个向量的距离度量传递到匹配确定逻辑单元340。在一些示例中,匹配确定逻辑单元340识别表示与存储凭证350最接近匹配的距离度量(例如,最小距离)。这可能是最高得分(在为匹配分配点(point)的情况下),或者可能是最低得分,这取决于所需的实现方式。如果表示最接近匹配的距离度量比阈值更接近存储凭证350(例如,距离小于阈值),则匹配确定逻辑单元340可以返回找到匹配。在示例中,满足所述阈值可能需要完美匹配。在其他示例中,所述匹配确定逻辑单元识别表示与存储凭证350的两个最接近匹配的两个距离度量(例如,最小距离和次小距离)。所述匹配确定逻辑单元然后可以采用两个距离度量的比率,并且将其与阈值进行比较以确定是否存在匹配。在一些示例中,即使当在提交符号325中输入的凭证310与存储凭证350不完美匹配时,对阈值的使用也允许进行认证。在输入的凭证310的符号在传输期间被噪声符号替代的情况下,这可以允许某种水平的噪声容限。
访问控制345然后可以基于来自匹配确定逻辑单元340的结果来准许或拒绝对所述安全的访问受控资源的访问。例如,访问控制345可以向托管所述安全的访问受控资源的计算机设备发送消息以提供所述认证尝试的结果。在一些示例中,访问控制345可以向用户设备或者托管所述安全的访问受控资源的设备发送令牌。在其他示例中,访问控制345可以提供所述安全的访问受控资源。在一些示例中,所述访问控制可以向物理设备发送信号,所述物理设备可以提供对物理资源的访问(例如,解锁门)。
图4图示了根据本公开的一些示例的对用户进行认证的方法400的流程图。在操作410处,认证器识别与诸如凭证(例如,用户名、密码、加密密钥)的存储值相对应的符号(例如,字符)的第一集合。如在本文中所使用的,符号是数据单元,诸如字符、字、字节或者其他数据组。在操作420处,认证器接收要与所述存储值进行比较的符号(例如,字符)的第二集合,所述符号的第二集合包括比所述符号的第一集合更多的符号(例如,噪声字符)。例如,所述符号可以是具有额外噪声符号(例如,字符)的输入凭证符号(例如,密码),并且所述存储值可以是诸如密码的凭证。
在操作430处,认证器确定所述符号的第二集合是否包括与所述存储值相匹配的符号的第一子集。例如,认证器确定字符的第二集合是否包括诸如密码的凭证。如果所述符号的第二集合不包括所述存储值,则在操作460处,可以拒绝访问。如果所述符号的第二集合包括所述存储值,则处理移动到操作440。在一些示例中,为了确定所述符号的第二集合是否包括所述存储值,可以将所述符号的第二集合分解为值的第二集合的、尺寸为m的有序向量组合的集合,其中,m是所述存储凭证中的符号的数量。所述向量反映了所述提交符号的每种可能的有序长度m的组合。可以针对所述向量中的每个向量计算距离度量,其测量在所述存储值与每个向量之间的距离。关于所述符号的第二集合是否包括所述存储值的决定可以基于所述距离度量以及所述距离度量中的至少一个距离度量是否在所述存储值的阈值距离之内。
在操作440处,认证器确定所述符号的第二集合是否在所述符号的第二集合内的一个或多个非指定位置中包括非指定符号的第二子集。例如,认证器确定噪声字符是否被添加到密码字符。在一些示例中,认证器可以确保额外的符号被输入以确保用户免受窃听攻击。如果没有添加额外的噪声符号,则在操作460处拒绝访问。否则,可以在操作450处准许访问。注意,认证器没有为任何认证尝试指定噪声符号将被放置在何处以及噪声符号是什么。这通过防止对这些位置的窃听来保护用户。
图5图示了根据本公开的一些示例的对用户进行认证的方法500的流程图。在操作510处,认证器在认证尝试期间接收待认证的提交符号的集合。在一些示例中,符号是字符。在一些示例中,所接收到的符号集合包括比与存储值(诸如凭证)相对应的符号的第一集合更多的符号。例如,所输入的字符包括噪声字符。在操作520处,认证器创建两个或更多个向量的集合,每个向量的长度与有序向量的长度相对应,所述有序向量包括与所述存储值(例如,存储的凭证)相对应的所述符号的第一集合,并且每个向量包括所接收到的符号集合的不同有序组合,所接收到的符号集合的不同有序组合以与所述符号被接收相同的次序来排序。例如,如果所接收到的字符集合是{p,#,a,r,s,s}并且密码(存储值)是{p,a,s,s},则创建长度为4的向量集合。在该示例中,所述系统将为接收到的字符集合的每4个字符的有序组合创建向量。
有序意指所述向量中的符号保持所提交的符号中的符号相对于彼此的排序。换言之,在上文的示例中,如果字符‘p’在所述向量中,那么该字符将始终是密码字符中的第一字符(不考虑噪声符号)。向量中的“a”字符将是密码字符中的第一字符(如果“p”不在所述向量中)或第二字符(如果“p”在所述向量中)(同样地,不考虑噪声符号)。因此,在上文的示例中,以下是有效向量:
1.p#ar
2.#ars
3.arss
4.pars
5.prss
6.p#rs
7.pass
8.#rss
9.#ass
10.p#as
11.p#ss
在操作530处,认证器可以确定在每个相应向量与包括与所述存储值相对应的符号的第一集合的有序向量之间的距离集合。如先前所指出的,所述距离集合可以由一个或多个距离度量来确定,诸如Levenshtein距离;基于符号的差异来增加或减去点的简单的点总数;或者统计相关性。例如,利用点值系统的系统可以将值1添加到针对不匹配的符号位置的分数,并且将值0添加到与所述存储值(例如,存储的凭证)相匹配的符号位置。在上文的示例中,使用该简单的距离度量,所述距离将是:{3,2,2,1,1,2,0,2,2}。在又一些其他示例中,向量可以简单地与所述存储值进行比较以确定是否存在匹配。在又一些另外的示例中,所述距离度量可以是统计相关性。
在操作540处,所述系统可以基于所述距离集合中的距离来选择向量集合中的向量。例如,所述系统可以选择与所述存储值的向量具有最短距离的向量。在上文的示例中,向量“pass”的距离为“0”,并且因此可以选择该向量。
在操作550处,所述系统可以基于与所选择的向量相对应的值与阈值的比较来使得对计算机资源的访问被准许。例如,距离值与阈值的比较。在其他示例中,所述值可以是向量与第二向量(例如,第二最近向量)的距离值的比率。阈值可以是预定的或者指定的。在其他示例中,可以基于所述存储值的长度来确定所述阈值。亦即,对于较短的存储值,可以设置所述阈值,使得在所述提交符号与所述存储值之间更接近的匹配是提高安全性所必需的。因此,三个字符的存储值可能比十个字符的存储值具有更低的阈值(其中,更低是更接近的匹配)。
图6图示了根据本公开的一些示例的对用户进行认证的方法600的流程图。在操作610处,客户端可以使得显示GUI。例如,在图7中所示的GUI。所述GUI可以具有一个或多个数据输入字段,所述数据输入字段用于由用户对一个或多个凭证的一个或多个符号的输入。例如,所述GUI可以包括用于从输入设备接受所请求的认证凭证的字符的输入字段。在一些示例中,所述GUI接受符号(例如,字符)集合形式的所请求的认证凭证。示例性输入设备可以包括:键盘、屏幕键盘、鼠标输入、触摸输入、生物特征输入等。在一些示例中,所述GUI可以要求符号(例如,字符)集合包括比存储凭证更多的符号(例如,字符)。例如,通过检查由用户输入的字符的长度,并且相对于存储密码的长度来检查所述长度。在一些示例中,所述GUI可以要求字符集合包括比存储凭证更多的阈值数量的符号。所述阈值可以是预先指定的或者可以基于凭证的长度来确定。例如,如果凭证(例如,密码)是短的,则所述系统可能要求比凭证长时更多的噪声符号。在其他示例中,所述系统可以将输入的提交符号的值与凭证的符号值进行比较以确定噪声符号是否被添加。
在一些示例中,客户端可以进行检查以确保噪声符号(例如,字符)被散置在提交凭证中。例如,如果噪声符号在开始、结尾、或者开始和结尾处,但是未散置在提交符号内,则客户端可能显示错误。例如,如果噪声符号在整个凭证符号中的位置的散布测量结果低于阈值,则客户端可能示出错误并且使用户修复所述提交符号,使得散布测量结果高于或等于阈值。下文更深入地详述散布测量结果。
如果以上检查中的任意检查指示用户的提交符号(例如,字符)不满足以上要求中的一项或多项要求,则客户端可以显示错误并且要求用户校正所述提交符号。一旦用户通过指定对符号(例如,字符)的输入完成的输入(例如,按下ENTER、点击或者轻敲指示输入完成的按钮等)来提交所述符号,则可以显示错误。在其他示例中,所述系统可以在用户输入符号时监控所输入的符号。例如,在预定数量的符号(例如,存储凭证的长度)之后,所述系统可以取决于实现方式而针对长度、噪声符号和/或散布测量结果来检查所述符号。对用户的示例性警告在图8A-8C中被示出。
在操作620处,客户端可以接受由用户在GUI的一个或多个数据输入字段中输入的符号(例如,字符)。例如,在用户已经提交输入以指示符号集合完成并且字符集合满足要求(例如,长度大于凭证;提交符号包括噪声字符;噪声为散置的;和/或噪声为散置的并且散布测量结果高于阈值)。
在操作630处,客户端可以接收或识别访问是否被准许的指示。在一些示例中,客户端可以将提交符号发送到远程计算设备中的远程认证器,诸如在图2中所示的。客户端然后可以从远程设备接收关于访问是否被准许的指示。在其他示例中,客户端自身可以包括认证器,并且可以执行如在图1中所示的认证。在这些示例中,所述指示可以是来自认证器的、通过函数返回、进程间通信等接收到的关于访问是否被准许的指示。
在操作632处,所述系统可以确定所述指示是访问被准许还是被拒绝。如果访问被拒绝,则在操作645处,可以使得所述GUI显示访问被拒绝的消息。在一些示例中,用户可以重试认证。在一些示例中,可以实现对重试尝试的次数的限制,以防止用户在确定的时间量内在确定次数的认证失败之后重试所述认证。
如果在操作632处,访问被准许,则在操作635处,所述系统可以指示访问已经被准许。例如,所述系统可以使得所述GUI显示访问被准许的指示。在其他示例中,所述系统可以简单地移除登录屏幕并且揭露对访问受控资源的访问。在其他示例中,所述系统可以提供所请求的访问受控资源。在操作640处,在一些示例中,客户端可以促进对所请求的安全的访问受控资源的访问,诸如通过将用户的浏览器重定向到针对所述资源的地址、执行提供所述资源的功能等。
图7图示了根据本公开的一些示例的用于允许用户输入认证凭证的示例性GUI的图。在图7的示例中,存在两个凭证:用户名和密码。用户可以选择所请求的凭证旁边的框之一并且键入所请求的凭证的符号。例如,用户可以键入用户名和/或密码的符号。当用户完成时,用户可以输入指定对字符的输入完成的输入(例如,按下ENTER、点击或者轻敲指示输入完成的提交按钮等)。
图8A-8C图示了根据本公开的一些示例的用于允许用户输入其认证凭证的示例性GUI的图。在图8A中,用户已经开始键入用户的密码,并且客户端已经识别出用户尚未添加任何噪声字符。客户端然后利用警告来提示用户。所述警告可以响应于用户键入不包括噪声字符的阈值数量的字符。在一些示例中,一旦用户输入第一噪声字符,所述警告就可以消失。在其他示例中,客户端可以计算在噪声字符与合法密码字符之间的比率。当所述比率低于指定的阈值比率时,就可以显示所述警告。在一些示例中,当散布量度不在目标散布量度之内(例如,不高于或低于阈值,或者不在指定的范围内)时,可以显示警告。在其他示例中,可以响应于用户选择“提交”而示出所述警告,并且可以禁止用户继续直到被纠正。
在图8B中,用户已经开始键入密码,并且客户端已经识别出密码超过或者短于固定长度。在该示例中,针对用户的输入要求固定长度。所述固定长度可以包括针对输入的所有字符的固定总长度,或者噪声字符的固定长度。在示例中,密码输入框可以限制用户,使得防止输入比固定限制更多的字符。在示例中,客户端可以利用关于固定长度问题的警告来提示用户。在一些示例中,一旦用户输入等于固定长度的字符数量,所述警告就可以消失。在其他示例中,所述固定长度可以是最小长度,使得当输入固定长度或更多字符时,所述警告可以消失。在其他示例中,所述警告可以响应于用户选择“提交”而示出,并且可以禁止用户继续直到被纠正。
在图8C中,用户已经开始键入密码,并且客户端已经认识到输入的字符不包括有效密码的子集。例如,输入的字符可能包括整个密码或者可能不包括密码的任意子集。在该示例中,针对用户的输入要求有效密码的子集(并且可选地不是整个有效密码)。在示例中,客户端可以利用关于固定长度问题的警告来提示用户。在示例中,可能需要最小长度的子集,并且当输入的字符不包括足够长度的有效密码的子集(例如,满足或超过最小长度)时,可以显示所述警告。一旦用户输入了有效密码的子集,所述警告就可以消失。在其他示例中,所述警告可以响应于用户选择“提交”而示出,并且可以禁止用户继续直到被纠正。
用于分布式计算的拆分认证器功能
尽管上文所指出的示例包括在用户设备或远程设备中的认证器,但是在其他示例中,认证器的一些功能可以在用户设备中执行并且其他功能可以在远程设备中执行。例如,用户设备中的认证器可以创建向量和/或计算距离度量,并且将结果发送到远程设备上的认证器。在一些示例中,这可以允许通过让客户端设备分担一些计算负担来分配认证所需的计算资源。
在一些示例中,可以使用加密在传输中保护中间结果。在一些示例中,为了防止篡改,可以通过被给予受信任应用的安全对称密钥来保护所述结果。远程设备的认证器然后可以使用对应的密钥来解锁所述结果。通过成功地解锁所述结果,所述远程设备上的认证器可以相信所述结果是由受信任的应用产生的。在一些示例中,为了进一步防止篡改,所述用户设备上的认证器可以在一个或多个受保护环境中执行,诸如软件防护扩展(SGX)环境等。
图9图示了根据本公开的一些示例的具有分布式认证功能的用户设备110和远程设备250的图900。图9图示了用户设备110执行认证过程的部分并且向远程设备250提供中间计算或部分结果的系统。例如,用户设备110包括本地认证器920,其包括向量创建器330和可选的距离度量计算器335。在这些示例中,提交符号(例如,字符)被提交给向量创建器330,向量创建器330创建向量集合(例如,图3中所示的那些)并且将这些集合发送到远程设备250。
在一些示例中,本地认证器920可以包括距离度量计算器335,其可以计算在凭证(例如,密码)与向量之间的距离并且将所述距离发送到远程设备250。远程设备250包括远程认证器950,其可以包括匹配确定逻辑单元340和/或距离度量计算器335(取决于用户设备是否包括距离度量计算器335)。如果用户设备110向远程设备提供所述向量,则远程设备250可以将那些向量提供给距离度量计算器335以用于计算距离度量。如果用户设备110提供距离度量(例如,用户设备110具有距离度量计算器335),则远程设备接收那些度量并且将其传递给匹配确定逻辑单元。匹配确定逻辑单元340如先前所描述地利用所述距离度量来确定访问是否被准许。如在图9中所示的,安全的访问受控资源130可以在用户设备110或远程设备250上。
对提交符号的长度检查
尽管上文所公开的认证系统很好地防止窃听,但是其在计算上也可能是昂贵的。在一些示例中,攻击者可能尝试通过提交较长长度的符号来引起对认证器的拒绝服务(DOS)攻击。例如,攻击者可能提交150个字符的认证尝试。如果密码仅有10个字符,则存在提交符号的许多长度为十的有序组合。所生成的大量向量也可能触发许多距离测量结果被生成。这些操作可能利用认证器的大量处理和存储器资源。复杂的攻击可能具有数百次这样的攻击认证尝试,这可能使认证器不堪重负并且阻止对合法用户的认证,因为认证器可能忙于为非法攻击提供服务而无暇顾及合法认证。
在一些示例中,为了防止该问题,客户端和/或认证器可以拒绝具有不满足长度要求的提交符号(例如,提交字符)的认证请求。例如,可以接受长度高于长度阈值的提交符号。可以相对提交符号的总长度(例如,密码字符和噪声字符)、仅噪声符号的长度、仅密码符号的长度、噪声符号与密码符号的比率等来测量所述长度阈值。在其他示例中,所述长度可以是指定长度。亦即,可能要求提交符号、噪声符号和/或凭证符号具有指定长度。可以在创建向量之前处理拒绝,从而不处理被拒绝的认证尝试来创建向量。
本公开使用抵抗键盘记录器、窃听者和中间人攻击以及抵抗拒绝服务攻击的安全密码解决了提供对计算资源的安全访问的技术问题。所输入的符号被限制到阈值,以防止在认证器处进行过于复杂的计算。
图10图示了根据本公开的一些示例的利用尺寸限制来对用户进行认证的方法1000的流程图。在操作1010处,认证器识别与存储值相对应的符号的第一集合,诸如密码、其他凭证或者其他存储值。在操作1020处,认证器接收要与所述存储值进行比较的符号的第二集合,所述符号的第二集合包括比所述符号的第一集合更多的符号。例如,所述符号可以是输入的密码字符。
在操作1030处,所述系统可以确定所述符号是否满足一个或多个长度标准。如果所述符号满足一个或多个长度标准,则处理继续到操作1040,否则在操作1060处拒绝认证。长度标准可以是最小长度、最大长度或者最小长度和最大长度的范围。
在一些示例中,在操作1030处相对于所述标准而检查的符号是提交符号(例如,由用户输入的包括凭证字符和噪声字符两者的字符),并且所述标准是提交符号的数量小于阈值——例如,操作1030是确定提交符号的总长度是否小于阈值长度。因此,如果用户输入30个字符并且阈值是25,则在操作1030处认证将无法通过确定,并且在操作1060处将拒绝访问。在一些示例中,除了最大长度之外,还可能存在所需的最小总长度(例如,以确保输入足够的噪声符号)。
在另一示例中,在操作1030处相对于所述标准而检查的符号是噪声符号,并且所述标准包括噪声符号的数量小于阈值的限制。亦即,操作1030是确定噪声符号的数量是否小于噪声符号的阈值数量。这可以通过从凭证的长度中减去提交符号中的符号总数量并且将结果与阈值进行比较来实现。例如,如果所述提交符号长度为12个符号,并且存储凭证长度为5个符号长,则将(12-5)=7与阈值进行比较。如果阈值为8或更多,则处理可以继续,否则,在操作1060处拒绝访问。在其他示例中,可以通过从所述提交符号中移除与凭证相对应的符号并且然后将剩余符号的计数与阈值进行比较来确定噪声符号的数量。例如,当凭证为密码并且有效密码为“pass”,并且提交符号是由用户输入的字符并且为“pass12345”时,字符“p”、“a”、“s”、“s”被移除,留下“12345”,其是五个字符长。然后,将五与阈值进行比较。如果五未能满足或超过阈值,则在操作1060处拒绝访问。如上文所指出的,在一些示例中,还可能需要最小数量的噪声符号,使得可能需要最小数量和最大数量的噪声符号。
在其他示例中,长度标准不是阈值长度,而是精确的符号计数(例如,符号的量不大于并且不小于指定的符号)。例如,可能要求所述提交符号具有预设计数。在其他示例中,可能需要噪声符号具有预设计数。在其他示例中,可能要求噪声符号与凭证符号的比率为预设比率。例如,当要求提交符号为十个符号,并且凭证为“pass”时,则所述系统可能需要添加四个凭证符号(例如,字符)和六个符号作为噪声符号(例如,字符),因为总数(噪声和凭证符号)必须等于十个符号。例如,如果所述提交符号的总计数不等于预设计数,则可能拒绝访问。在一些示例中,所述预设计数对于所有认证尝试可以是全局的,或者可以为每个认证尝试指定。
在操作1040处,所述认证器确定所述符号的第二集合是否包括与所述存储值相匹配的符号的第一子集。如果所述符号的第二集合不包括与所述存储值相匹配的符号的第一子集,则在操作1060处拒绝访问。如果所述符号的第二集合包括与所述存储值相匹配的符号的第一子集,则处理在操作1045处继续。例如,认证器在所述符号的第二集合中搜索存储的凭证。如先前所解释的,这可能包括将所述提交符号拆分为向量,并且计算在每个向量与存储的凭证之间的距离。所述距离可以被用于确定所述符号的第二集合是否包括与所述存储值(例如,存储的凭证)相匹配的第一子集。
在操作1045处,所述认证器可以确定所述符号的第二集合是否包括非指定符号的第二子集。亦即,所述认证器确保已经将噪声符号添加到所述提交符号。在一些示例中,该操作可能已经被执行,因为在操作1030处满足长度标准的符号的结果可以确保最小数量的噪声符号。如果已经添加了噪声符号,则在操作1050处,访问可以被准许。如果尚未添加噪声符号,则在操作1060处,访问可以不被准许。如在本文中所描述的,认证器还可以要求噪声符号满足与散布量度相关的标准、存在最小数量的噪声符号等。
注意,认证器没有针对任何认证尝试指定噪声字符将被放置在何处以及噪声字符是什么。这通过防止对这些位置的窃听来保护用户。通过要求最大量的提交符号,可以避免可能拒绝服务的对认证器的外部攻击。
要求的插入
如先前所指出的,在一些示例中,所述系统可以强制用户在凭证的输入符号内输入噪声符号。这可以阻止用户在没有噪声符号针对窃听者提供的额外保护的情况下简单地键入其正常凭证。对噪声符号(诸如噪声字符)的添加可以在认证器或客户端处强制执行。例如,在客户端处,客户端可能具有用户凭证的本地副本,并且可以将提交符号与凭证进行比较以确定提交符号是否包括与凭证符号交错的噪声符号。当提交符号不包括噪声符号时,认证器可以拒绝认证尝试。
在客户端检查对噪声符号的插入的示例中,确定所输入的符号是否包括噪声字符可以包括:确定输入了最少数量的符号(例如,密码长度和噪声字符阈值数量的总和)。在一些示例中,可能仅需要输入单个噪声符号,但是在其他示例中,可能需要输入阈值量的噪声符号。在一些示例中,所述系统可以将提交符号的长度上限与强制字符插入进行组合,使得用户必须输入落在符号的最小数量与最大数量内的多个符号。
在一些示例中,为了防止用户简单地重复凭证的符号(其可能不如随机符号安全),所述系统可以将凭证与提交符号进行比较。例如,所述系统可以要求噪声符号是凭证符号中不存在的符号。因此,如果凭证是具有字符“pass”的密码,那么噪声字符必须是“p”、“a”、“s”、“s”之外的字符。如果噪声符号包括来自凭证的符号,则认证可以被拒绝。在一些其他示例中,并非进行直接比较,而是可以允许来自凭证的一些重复字符,但是客户端可以计算差异度量,所述差异度量量化存储的凭证与提交符号的差异。认证成功可能需要最小差异值。如果提交符号不满足这些标准,则客户端可以通过拒绝将提交符号传递给认证器来强制执行这些标准。
在认证器强制插入噪声符号的示例中,确定提交符号是否包括噪声符号可以类似于针对客户端所描述的那样来完成,诸如确定输入了最少数量的符号(例如,密码长度与噪声字符的阈值数量之和)。在其他示例中,所述认证器可以利用距离度量来快速地确定是否插入了噪声符号。例如,所述认证器可以要求至少一个距离度量高于阈值差(例如,不是完美匹配)。在其他示例中,所述距离度量可以被用于快速地确定用户先前是否使用过完全相同的提交符号。例如,所述系统可以将一个或多个距离度量与从过去认证尝试创建的向量的一个或多个过去距离度量进行比较。如果存在针对来自先前认证尝试的先前距离度量的精确匹配,则所述系统可以拒绝所述认证请求。
强制的符号分布
用户可能并不总是遵守本系统的目标——有意地或无意地通过为可预测并且非随机的噪声符号选取位置。例如,用户可能在前面、后面或者前面和后面两者处都添加噪声符号——而不是随机地散置在凭证(例如,密码)中。通过这样做,其可能无法达到由所公开的认证方案提供的保护级别,因为其可能试图在合法凭证之前、之后和/或之前和之后简单地输入噪声。如果用户在凭证中引入的噪声符号分布不均,则窃听者仍然可以通过观察跨多次认证尝试中的符号模式来辨别用户的凭证。
作为示例,考虑认证尝试的以下序列,其中,用户凭证为“pass”:
1.“1234pass567”
2.“p343423ass”
3.“passxyzabc”
在这些示例中,窃听者(甚至是背后偷窥者)可能能够观察到多次登录尝试并且辨别用户的凭证,因为每次认证尝试之间的共同字符可以通过观察而快速地与所述噪声符号分开。为了防止这种情况,所述系统可以确定一个或多个度量,用于确定噪声符号在凭证内的分布均匀程度(或者等效地,凭证在噪声符号内的分布均匀程度)。在一些示例中,被称为散布量度的度量可以量化符号的一个集合在符号的第二集合内分布的均匀程度。
所述系统(客户端或认证器)可以要求凭证符号中噪声符号的位置的散布量度高于指定阈值以确保噪声符号被分布在整个凭证中。在一些示例中,所述系统(客户端或认证器)可以指定散布量度也低于指定的阈值以确保也避免噪声符号在整个凭证中的完美分布,因为完美分布也可能容易被窃听者弄清楚。所述系统可能希望通过要求在特定范围内的散布量度来获得凭证符号中噪声符号的随机分布。
在一些示例中,所述系统还可以存储针对指定登录次数或时间范围的过去认证尝试的计算出的散布量度的历史。所述系统可以要求所述散布量度随时间变化,从而可以拒绝具有相同散布量度或彼此相似(例如,在阈值数量内)的提交符号的认证尝试。这可以辅助促进分布所述噪声符号的随机性。在一些示例中,所述系统可以统计地分析用户的针对过去认证尝试的散布测量结果。示例性统计分析包括对散布测量结果的标准偏差的计算。如果标准偏差低于阈值,则所述系统可以调整散布测量结果的目标范围以将标准偏差移向阈值。以这种方式,所述系统随着时间监控密码符号中噪声符号的分布,以更好地实现随机出现。
在一些示例中,当用户正在输入其凭证时,所述系统可以实时地计算散布量度并且提供用户是否在期望范围内的指示。这可以是用户在可接受范围内或者用户不在可接受范围内的简单指示。如果用户不在可接受范围内,则所述系统可以提供移动到可接受范围的提示(例如,“插入更多噪声字符”或者“移除一些噪声字符”)。
因此,本公开解决了使用能够抵抗键盘记录器、窃听者和中间人攻击的安全凭证来提供对访问受控资源的安全访问的技术问题。通过强制实施良好的噪声符号分布,所述系统可以通过确保凭证不容易从提交符号中破译来确保用户利用本公开的安全增强方面。例如,本系统可以确保噪声符号随机出现,而不是遵循可辨别的模式。
图11图示了根据本公开的一些示例的利用散布量度标准来对用户进行认证的方法1100的流程图。在操作1110处,所述认证器识别与存储值相对应的符号的第一集合,诸如密码。在操作1120处,所述认证器接收要与所述存储值进行比较的符号的第二集合,所述符号的第二集合包括比所述符号的第一集合更多的符号。例如,符号可以是输入的密码字符。
在操作1130处,所述认证器确定所述符号的第二集合是否包括与所述存储值相匹配的符号的第一子集。例如,所述认证器确定字符的第二集合是否包括存储凭证(例如,密码)。如果所述字符的第二集合不包括存储凭证,则在操作1160处,可以拒绝访问。如果所述字符的第二集合包括存储凭证,则处理移至操作1140。在一些示例中,为了确定所述字符的第二集合是否包括存储凭证,可以将所述符号的第二集合分解为所述字符的第二集合的尺寸为m的有序向量组合的集合,其中,m是存储凭证中的符号数量。所述向量反映了提交符号的每种可能的有序长度为m的组合。可以为所述向量中的每个向量计算距离度量,所述距离度量测量在存储凭证与每个向量之间的距离。关于所述字符的第二集合是否包括存储凭证的决定可以基于所述距离度量以及所述距离度量中的至少一个距离度量是否在存储凭证的阈值距离内。
在操作1140处,所述认证器确定所述符号的第二集合是否在所述符号的第二集合内的一个或多个非指定位置中包括非指定符号的第二子集。例如,所述认证器确定噪声字符是否被添加到密码字符。在一些示例中,所述认证器可以确保额外的字符被输入以确保用户免受窃听攻击。如果没有额外的噪声字符被添加,则在操作1160处拒绝访问。否则,处理可以在操作1145处继续。注意,所述认证器没有为任何认证尝试指定噪声字符将被放置在何处以及噪声字符是什么。这通过防止对这些位置的窃听来保护用户。
在操作1145处,所述系统可以确定所述符号的第二集合内的第一子集或第二子集的相应位置的散布量度是否在阈值范围内或者以其他方式满足一个或多个指定标准。因此,所述系统可以(取决于设计)确定第一子集在所述符号的第二集合内的分布情况(例如,密码字符的分布情况),或者噪声符号在所述符号的第二集合内的分布情况。
示例性散布测量结果包括计算在所述符号的第二集合内的符号的第一子集或第二子集的后续符号的相应位置之间的最大距离。例如,如果密码是“pass”并且用户输入“p1a2s3s4”,则散布测量结果将为1。在这些示例中,所述系统可以要求最小的散布量度——例如,在所述符号的第二集合内的符号的第二子集的后续符号的相应位置之间的最大距离小于阈值。在其他示例中,所述散布测量结果可以是在所述符号的第二集合内的符号的第一子集或第二子集的后续符号的相应位置之间的平均距离。
在又其他示例中,所述散布测量结果可以是所述符号的第二集合内的符号的第一子集或第二子集的相应位置的方差。在又一些其他示例中,所述散布测量结果可以是所述符号的第二集合内的符号的第一子集或第二子集的相应位置的标准偏差。
在一些示例中,所述阈值范围可以是上限阈值、下限阈值、或者上限阈值和下限阈值。所述阈值可以被指定,或者可以被导出。例如,所述阈值可以根据凭证的长度而导出。例如,针对较短的凭证可能需要比较长的凭证更高的散布级别(以提高安全性),并且反之亦然。在一些示例中,上限和下限都确保噪声符号是嘈杂的——亦即,其不符合易于破译的模式。例如,其中,用户的密码是“pass”并且用户输入“p1a2s3s4”的情况可能不如用户输入“p12as22s”的情况安全,因为在前者中每隔一个符号插入噪声符号可能比后者更随机地插入更可预测。通过要求散布高于最小值,但不是完美散布,所述系统可以要求更多的随机性。
如果在操作1145处散布量度不在阈值范围内,则在操作1160处可以拒绝访问。如果在操作1145处散布量度在阈值范围内,则在操作1150处可以准许访问。
在示例中,可以通过创建输入字符的向量集合来确定输入字符集合内的密码中的噪声散布度。所述向量集合可以如在本文中所描述地生成。可以比较从所述向量集合中的一个或多个向量到所述密码的向量的距离度量。在示例中,可以评估平均值、中值或者总向量距离并且将其与阈值进行比较。当平均值、中值或总距离超过阈值时,可以确定输入的字符集合具有足够的散布度。在另一示例中,可以使用所述向量集合中的子集(例如,可以仅使用两个阈值之间的向量,“接近”阈值和“远离”阈值),并且子集可能被要求具有最小数量的向量。
在又一示例中,可以通过取总长度等于密码的顺序的有序字符来生成所述向量子集。例如,密码可以是“pass”,并且输入的字符是“p#arss”,这是噪声充分散布的示例。在该示例中,所述向量集合可以被构造为“p#ar”、“#ars”和“arss”。这些都不是特别接近距离类似“pass”。输入字符的散布不足的示例将是“#rpass”。在该示例中,所述向量集合可以包括“#rpa”、“rpas”和“pass”。这些向量距离密码(包括密码自身)更近,因此可以确定输入的字符没有足够的散布。
图12图示了根据本公开的一些示例的利用额外的、非指定的噪声符号进行认证的数据流1200的图。图12与图3相似,除了在图12中,认证器1227包括散布检查器1237。散布检查器1237可以计算散布量度,所述散布量度量化用户输入的噪声符号320在提交符号325内的分布情况(或者凭证符号在提交符号325内的分布情况)。散布检查器1237可以被包含在认证器327中,或者在用户设备110中,或者在远程设备135中,如在图1和图2中所示的。散布检查器1237也可以是客户端125的一部分。例如,所述散布量度可以在用户输入凭证时被计算,并且可以实时地反馈给用户以指示所述散布量度是否是在可接受的范围内。
散布检查器1237可以计算由用户输入的在总提交符号325内的噪声符号320(例如,字符)或者由用户输入的在总提交符号325内的凭证符号312、314和316的散布度。如先前所指出的,示例性散布测量结果包括计算在密码或噪声字符之间的最大或平均距离、方差、标准偏差等。
散布检查器1237可以比较计算出的散布度以确定所述散布量度是否满足指定标准。例如,所述标准可以是所述散布量度是否高于第一阈值。在其他示例中,所述标准可以是所述散布量度是否低于第二阈值。在又其他示例中,所述标准可以是所述散布量度是否既高于第一阈值又低于第二阈值(并且因此在期望范围内)。如果结果是提交符号325的散布量度满足所述标准,则处理继续利用向量创建器330的向量创建。如果所述散布量度不满足所述标准,则可以通过匹配确定逻辑单元340来确定认证被拒绝。
防止重复输入
在一些示例中,窃听者可能不尝试从噪声字符中解密密码。相反,窃听者可能利用重放攻击,由此捕获整个输入序列,并且之后“重放”整个序列,包括噪声字符。为了防止这种情况,在一些示例中,所述系统可以采取措施来检测和拒绝与过去的认证尝试相同或相似的认证尝试。
例如,认证器可以存储针对多个过去的认证尝试的提交符号。当进行新的认证尝试时,将新接收到的提交符号与针对过去的认证尝试的存储的提交符号进行比较。如果针对当前认证尝试的新接收到的提交符号相匹配,或者在针对过去认证尝试的存储的过去提交符号之一的相似度的指定阈值水平内(以防止简单的改变),则所述系统可以拒绝认证尝试。
所述系统可以存储针对指定时间段(例如,昨天、上周、上个月等)、指定的认证尝试次数等的多次过去认证尝试的提交符号。
在其他示例中,替代存储过去提交的符号,所述系统可以存储所述距离度量中的一个或多个距离度量或者过去认证尝试的散布测量结果。例如,所述系统可以针对每次认证尝试存储两个或三个最近距离度量。如果当前认证尝试的一个或多个距离度量和/或散布测量结果在过去认证尝试的一个或多个距离度量和/或散布测量结果的阈值差之内,则当前认证尝试可以被拒绝。通过存储距离度量或散布测量结果而不是提交符号,所述系统可以减少防止重放攻击所需的存储量。
部分密码子集
在一些示例中,窃听者可以通过多次认证尝试来访问用户的通信。例如,键盘记录器和中间人攻击可以通过多次认证尝试来观察用户。攻击者可能能够通过跨多次认证尝试检测常见字符来辨别用户的密码。即使所述系统在凭证中强制执行类似随机的噪声符号分布,复杂的算法也可以在所捕获的数据中找到模式。
为防止这种情况,所述系统可以强制用户输入其凭证的子集。例如,用户的密码可以是“password”,并且用户可以利用“pass”、“sswor”、“word”等进行认证。在一些系统中,用户的密码是“password”,可以使用其他组合,诸如“pawo”或“psrd”(例如,与“password”中的字符次序相同,但是不一定是连续的)。在一些示例中,所述系统可能要求用户在每次认证尝试时使用不同的凭证子集。这使得窃听者更难以通过跨多次认证尝试检测共同的符号(例如,字符)来观察用户的凭证。在示例中,可以在多次未使用或者一时间段后重复不同的凭证子集(例如,在20个不同的子集之后,可以重复第一输入的子集,或者在六个月之后可以重复已经输入的子集)。
所述系统可以强制执行最小子集长度(例如,子集满足最小字符数、总密码的最小百分比等)。所述系统可以强制执行相同子集在指定的认证尝试次数(或者指定的时间段)内仅可以被使用指定次数的规则。例如,同一凭证子集在十次认证尝试中仅可以被使用两次。在一些示例中,所述子集可能需要由连续符号组成,但是在其他示例中,可以允许跳过符号。在一些示例中,所述子集必须是有序的。亦即,如果用户的密码是“password”,则子集“pssord”是有效子集,而“dpssor”不是。
因此,本公开解决了使用能够抵抗键盘记录器、窃听者、中间人和重放攻击的安全凭证来提供对访问受控资源的安全访问的技术问题。这是通过引入在用户指定的随机位置引入的用户指定的随机噪声符号来实现的。认证设备将提交符号分解为多个向量,并且利用距离度量来确定是否应当准许认证。通过利用除了噪声符号之外的凭证子集,所述系统可以使窃听用户的攻击者更难以确定用户的凭证。
图13图示了根据本公开的一些示例的利用额外的、非指定的噪声符号和强制的凭证子集进行认证尝试的数据流1300的图。凭证1310(例如,密码)可以包括字符形式的六个符号P1-P6。在图13的示例中,用户已经输入P2、P3和P4作为子集凭证符号1315。用户在输入凭证时将一个或多个噪声符号320(例如,字符)添加到子集。在图13中所示的示例中,为了便于描述,仅添加了一个噪声符号320。由用户输入的提交符号1325包括子集凭证符号1315以及散置在凭证字符中的一个或多个噪声符号320。
认证器1327包括子集创建器1340,所述子集创建器1340识别多个有序向量(被称为凭证子集向量),所述多个有序向量包括用户的存储凭证1350的有序子集。在子集必须具有最少数量符号的示例中,子集创建器1340创建最小尺寸和更大尺寸的凭证子集向量(高达存储凭证1350的尺寸或最大子集尺寸)。例如,如果最小尺寸是5个字符,那么所述凭证子集向量中的每个凭证子集向量是五个或更多个字符,并且所述凭证子集向量包括五个或更多个字符的存储凭证1350的所有可能子集的集合(可选地作为严格的子集,例如,不包括整个凭证1350)。
检查向量创建器1330接收由用户输入的提交符号1325,并且根据提交符号1325来创建多个向量,每个向量的长度与由子集创建器1340创建的凭证子集向量的长度相对应。这些向量可以被称为“检查向量”。多个检查向量反映提交符号1325的每种可能长度m的有序组合,其中,m是存储凭证的有效子集长度。所述检查向量的每个检查向量中的符号的次序与提交符号1325中的凭证符号的次序相同。如在图13中所示的,m是长度为三、四和五个向量的向量。在其他示例中,m可以是不同的长度。例如,用户可以利用提交符号1325(例如,P2、N1、P3、P4加上“4”)来提交凭证长度。在另一示例中,用户界面可以指示要提交的凭证长度(例如,大于某个最小值但是小于总凭证长度的随机数,或者由诸如访问控制345之类的凭证服务分配的数字)。
每个检查向量和每个凭证子集向量然后被传递到距离度量计算器1335,所述距离度量计算器1335计算在凭证子集向量的每个组合与多个检查向量中的每个检查向量之间的距离。在其他示例中,距离度量计算器1335计算在凭证子集向量的每个相同尺寸的组合与所述多个检查向量中的每个检查向量之间的距离。在一些示例中,所述距离度量可以是Levenshtein距离。在其他示例中,距离度量可以将每个检查向量的每个符号与每个凭证子集向量的对应符号进行比较。如果符号相匹配,则得分可能不增加。如果符号不匹配,则得分可能增加。在其他示例中,更高的得分反映更好的匹配,并且因此匹配的符号可能使得得分增加,并且不匹配的符号可能使得得分没有变化或者可能使得得分减少。在其他示例中,距离度量可以是相关性,诸如Pearson相关系数。
所述距离度量然后被传递到匹配确定逻辑单元340。在一些示例中,匹配确定逻辑单元340识别表示在检查向量与凭证子集向量之一之间的最接近匹配的距离度量(例如,最小距离)。这可能是最高得分(在为匹配分配点的情况下),或者可能是最低得分,这取决于所需的实现方式。如果表示最接近匹配的距离度量比阈值更接近于凭证子集向量之一(例如,距离小于阈值),则匹配确定逻辑单元340可以返回找到匹配。在其他示例中,所述匹配确定逻辑单元识别表示与凭证子集向量的两个最接近匹配的两个距离度量(例如,最小距离和次小距离)。匹配确定逻辑单元340然后可以采用两个距离度量的比率并且将其与阈值进行比较以确定是否存在匹配。
访问控制345然后可以基于来自匹配确定逻辑单元340的结果来准许或拒绝对安全的访问受控资源的访问。例如,访问控制345可以向托管所述安全的访问受控资源的计算机设备发送消息以提供认证尝试的结果。在一些示例中,访问控制345可以向用户设备或者托管所述安全的访问受控资源的设备发送令牌。在其他示例中,访问控制345可以提供所述安全的访问受控资源。在一些示例中,所述访问控制可以向物理设备发送信号,所述物理设备可以提供对物理资源的访问(例如,解锁门)。
在一些示例中,检查向量创建器1330可以验证提交符号1325包括子集,但并不是所有的存储凭证1350。例如,检查向量创建器1330可以确定提交符号中按次序与来自凭证的符号相匹配的符号数量的计数。在一些示例中,检查向量创建器1330可以确保这在可接受的范围内。例如,检查向量创建器1330可以将符号的该数量与最小阈值(以确保最小子集尺寸)和最大阈值(以确保子集不会太接近整个密码)进行比较。如果符号的数量在该范围内,则检查向量创建器1330可以确定进行认证。如果符号的数量不在所述范围内,则检查向量创建器1330可以使得认证被拒绝。
在一些示例中,子集(而不是整个凭证)的存在可以通过验证具有到任何凭证子集向量的最接近距离度量的检查向量在期望的距离范围内来确定。所述范围可以强制最小接近度和最大接近度。这确保了子集足够完整以构成认证,但并不是整个(或者几乎整个)凭证。
在又一示例中,可以将具有最近距离的向量的距离与具有次近距离的向量的距离的比率与最小阈值进行比较。在该示例中,所述系统还可以对具有最近距离的向量的距离强制实施最大阈值。在该示例中,使用混合阈值来强制执行最小值和最大值,其中,最小阈值用于比率,而最大阈值用于距离自身。
检查向量创建器1330可以验证子集满足最小长度。例如,所述最小长度可以是指定长度,或者可以基于存储凭证1350的长度来计算。例如,凭证长度越短,最小子集长度就可以越短。在一些示例中,最小子集长度可以随着凭证长度增加而增加直到定义的最大值,此时更长的凭证长度不会增加最小子集长度。
在一些示例中,检查向量创建器1330可以强制执行重复输入限制,使得跨认证尝试比较输入的凭证子集以确定用户是否频繁地利用相同子集(例如,超过阈值发生)。如果用户对特定子集的使用违反了阈值发生率,则认证器1327可以拒绝所述认证尝试。在一些示例中,发生率可以被定义为指定时间量(例如,过去的一天、一周、一个月)内的使用次数或指定的登录尝试次数。
在一些示例中,阈值频率可以基于存储凭证1350的长度。例如,取决于存储凭证1350的长度,可能仅存在x个最小长度l的有效子集。在一些示例中,所述阈值频率可以基于x来设置,诸如x除以2,或者x,或者x-可配置或指定的裕度。
在一些示例中,除了强制执行不同子集的要求之外,检查向量创建器1330可以强制要求噪声符号320跨多次认证尝试可以是不同的或者被散置在输入凭证1310的不同位置中。
图14图示了根据本公开的一些示例的利用凭证子集对用户进行认证用户的方法1400的流程图。在操作1410处,所述认证器识别与存储值(诸如凭证)相对应的符号的第一集合。在操作1420处,所述认证器接收要与所述存储值进行比较的符号的第二集合,所述符号的第二集合包括比所述符号的第一集合更多的符号。例如,符号可以是输入的密码字符。
在操作1425处,所述认证器可以确定所述符号的第二集合的任意子集是否与所述存储值的符号相匹配。例如,所述认证器可以确定多个有序向量(被称为凭证子集向量),包括大于最小子集长度的所有可能长度的用户的存储凭证的有序子集。例如,如果所述存储凭证是“password”,并且最小子集长度为三(在一些示例中,不允许跳过符号,但是其他示例可以允许跳过,诸如本例中的“pwd”),则凭证子集向量将是三个、四个、五个、六个、七个和八个字符的所有可能的有序子集。在一些示例中,还可以指定最大子集尺寸。在这些示例中,凭证子集向量可以被限制为最大尺寸以强制要求所输入的凭证是子集(而不是整个凭证)。最大尺寸可以被指定(例如,由管理员)或者可以基于所述凭证的尺寸来计算。在凭证是“password”的以上示例中,如果最大子集尺寸被限制为六,那么凭证子集向量将是三个、四个、五个和六个符号的所有可能的有序子集(下文的示例示出了为便于阅读而禁止跳过):
3:pas;ass;ssw;swo;word;ord;
4:pass;assw;sswo;swor;word;
5:passw;asswo;sswor;sword;
6:passwo;asswor;ssword;
认证器然后根据所述符号的第二集合来创建多个向量(检查向量),每个向量的长度与对应凭证子集向量的长度相对应。所述检查向量反映与对应凭证子集向量的长度相对应的长度的符号的第二集合的每种可能的有序组合。例如,如果存在凭证子集向量的四个集合的,分别具有3、4、5和6个符号的长度,则创建具有所述符号的第二集合的所有可能的三个符号长的有序组合的第一多个检查向量;创建具有所述符号的第二集合的所有可能的四个符号长的有序组合的第二多个检查向量;创建具有所述符号的第二集合的所有可能的五个符号长的有序组合的第三多个检查向量;以及创建具有所述符号的第二集合的所有可能的六个符号长的有序组合的第四多个检查向量。有序意指所述检查向量的每个检查向量中的字符的次序与所述符号的第二集合中的符号的次序相同。
在一些示例中,计算在具有特定长度的凭证子集向量中的每个凭证子集向量与具有相同特定长度的多个检查向量中的每个检查向量之间的距离。所述距离量化了在每个检查向量与每个凭证子集向量之间的差异。在其他示例中,计算在凭证子集向量的每个组合(不管尺寸如何)与多个检查向量中的每个检查向量之间的距离。
然后,认证器确定所述符号的第二集合是否包括与所述存储值的一部分相匹配的符号的第一子集。例如,所述认证器确定所述符号的第二集合是否包括存储凭证(例如,密码)的子集。在一些示例中,为了确定所述符号的第二集合是否包括与所述存储值的一部分相匹配的第一子集,所述系统可以利用所述距离度量以及所述距离度量中的至少一个距离度量是否在凭证子集向量的阈值距离内。如果所述字符的第二集合不包括存储凭证的子集,则在操作1460处,可以拒绝访问。如果所述字符的第二集合包括存储凭证的子集,则处理移至操作1440。
在操作1440处,认证器确定所述符号的第二集合是否在所述符号的第二集合内的一个或多个非指定位置中包括非指定符号的第二子集。例如,所述认证器确定噪声符号是否被添加到凭证。在一些示例中,所述认证器可以确保额外的字符被输入以确保用户免受窃听攻击。如果没有额外的噪声符号被添加,则在操作1460处拒绝访问。否则,可以在操作1450处准许访问。注意,认证器没有针对任何认证尝试指定噪声字符将被放置在何处以及噪声字符是什么。这通过防止对这些位置的窃听来保护用户。
图15图示了根据本公开的一些示例的利用凭证子集来对用户进行认证的方法1500的流程图。在操作1510处,所述认证器可以接收符号集合(例如,提交符号)作为认证请求(例如,访问请求)的一部分。在操作1520处,所述认证器确定提交符号集合中没有子集与存储值(例如,诸如密码的凭证)精确匹配。这确保了所输入的凭证是子集,而不是整个凭证。如果接收到的符号集合中的子集与存储值精确匹配,则在一些示例中,认证可能失败。
在操作1530处,认证器可以识别包括长度小于存储值长度的存储值的有序子集的有序向量(例如,凭证子集向量)。在操作1540处,所述认证器创建多个检查向量,其长度与凭证子集向量的长度相对应。在操作1550处,所述认证器可以确定在多个检查向量与凭证子集向量之间的距离集合。如所指出的,在一些示例中,所述距离集合包括在检查向量和凭证子集向量的每个组合之间的距离,但是在其他示例中,所述距离集合仅包括在相同尺寸的检查向量和凭证子集向量的每个组合之间的距离(例如,尺寸为z的检查向量和尺寸为z的凭证子集向量)。
在操作1560处,认证器可以选择与最小距离相对应的检查向量。在操作1570处,基于与所选择的向量相对应的值与阈值的比较,所述认证器可以使得对安全的访问受控资源的访问被准许。例如,与所选择的向量相对应的最小距离值和阈值。在其他示例中,可以将与所选择的向量相对应的最小距离和与所选择的向量或第二检查向量相对应的次小距离的比率与阈值进行比较。
图16图示了根据本公开的一些示例的使用子集的认证尝试的方法1600的流程图。在操作1610处,客户端可以使得显示GUI。例如,在图7中所示的GUI。所述GUI可以具有一个或多个数据输入字段,所述数据输入字段用于由用户输入一个或多个凭证的一个或多个符号。例如,所述GUI可以包括用于从输入设备接受所请求的认证凭证的字符的输入字段。在一些示例中,所述GUI以符号(例如,字符)集合的形式接受所请求的认证凭证。示例性输入设备可以包括键盘、屏幕键盘、鼠标输入、触摸输入、生物特征输入等。在一些示例中,所述GUI可能要求所述符号(例如,字符)集合包括比存储凭证更多的符号(例如,字符)。例如,通过检查由用户输入的字符的长度并且相对于存储密码的长度来检查所述长度。在一些示例中,所述GUI可能要求字符集合包括比存储凭证更多的阈值数量的符号。阈值可以是预先指定的或者可以基于凭证的长度来确定。例如,如果凭证(例如,密码)是短的,则所述系统可能需要比凭证长时更多的噪声符号。在其他示例中,所述系统可以将所输入的提交符号的值与凭证的符号值进行比较以确定是否添加了噪声符号。
在一些示例中,客户端可以进行检查以确保噪声符号(例如,字符)被散置在提交凭证中。例如,如果噪声符号在开始、结尾、或者开始和结尾两者处,但是未被散置在提交符号内,则客户端可能显示错误。例如,如果噪声符号在整个凭证符号中的散布测量结果低于阈值,则客户端可以示出错误并且使用户修复所述提交符号,使得所述散布测量结果高于或等于阈值。下文更深入地详述了散布测量结果。
在一些示例中,客户端可以验证提交符号与存储凭证不精确匹配,而是包括子集。例如,客户端可以将输入的符号与存储凭证进行比较,以确保用户已经输入了最小长度和/或最大长度的子集。如果提交符号不包括凭证的子集,则所述GUI可以显示错误并且使用户修复所述提交符号,使得所述提交符号包括存储凭证的子集。
如果以上检查中的任意检查指示用户的提交符号(例如,字符)不满足以上要求的一个或多个要求,则客户端可以显示错误并且要求用户纠正提交符号。一旦用户通过指定对符号(例如,字符)的输入完成的输入(例如,按下ENTER、点击或者轻敲指示输入完成的按钮等)来提交符号,则可以显示错误。在其他示例中,所述系统可以在用户输入符号时监控所输入的符号。例如,在预定数量的符号(例如,存储凭证的长度)之后,所述系统可以取决于实现方式针对长度、噪声符号和/或散布测量结果来检查所述符号。对用户的示例性警告在图8中被示出。
在操作1620处,客户端可以接受由用户在GUI的一个或多个数据输入字段中输入的符号(例如,字符),其中,符号集合包括比存储凭证更多的字符并且包括不与存储凭证精确匹配的字符集合中的子集。例如,在用户已经提交输入以指示符号集合完成并且字符集合满足要求之后(例如,长度大于凭证,提交符号包括噪声字符,噪声是散置的,和/或噪声被散置并且散布测量结果高于阈值)。在示例中,所述要求可能不要求字符集合的长度大于所述凭证。例如,当密码为“password”时,由用户输入的具有噪声的子集可以是“p1a2s3s”,其字符比“password”少,但是可能仍然足够安全。
在操作1630处,客户端可以接收或识别关于访问是否被准许的指示。在一些示例中,客户端可以将提交符号发送到远程计算设备中的远程认证器,诸如在图2中所示的。客户端然后可以从远程设备接收是否准许访问的指示。在其他示例中,客户端自身可以包括认证器,并且可以执行如在图1中所示的认证。在这些示例中,所述指示可以是通过函数返回、进程间通信等接收到的来自认证器的是否准许访问的指示。
在操作1632处,所述系统可以确定所述指示是准许还是拒绝访问。如果访问被拒绝,则在操作1645处,可以使得GUI显示访问被拒绝的消息。在一些示例中,用户可以重试所述认证。在一些示例中,可以实现对重试尝试次数的限制,以防止用户在确定的时间量内在确定次数的认证失败之后重试所述认证。
如果在操作1632处,访问被准许,则在操作1635处,所述系统可以指示访问已经被准许。例如,所述系统可以使得GUI显示访问被准许的指示。在其他示例中,所述系统可以简单地移除登录屏幕并且揭露对访问受控资源的访问。在其他示例中,所述系统可以提供所请求的访问受控资源。在操作1640处,在一些示例中,客户端可以促进对所请求的安全的访问受控资源的访问,诸如通过将用户的浏览器重定向到针对资源的地址、执行提供资源的功能等。
在一些示例中,上文所描述的各种特征可以单独地或组合地实施。例如,所述系统可能需要噪声字符,强制最大数量的总字符,需要子集,需要在散布测量结果范围内的噪声字符分布,并且要求不重复提交符号1325。在其他示例中,可以仅实现特定特征,而不实现其他特征。在又其他示例中,所实现的特征和要求可以由最终用户、管理员等配置。前文的公开内容侧重于认证技术的用户认证用户凭证。然而,如所指出的,所述凭证仅仅是一种可以进行比较的存储值。本技术通常可以被用于将所接收到的值验证为存储值。另外,在各种流程图中,操作的次序是示例性的。例如,在图10中,操作1030、1040和1045可以根据实现方式以任意次序来执行。这仅仅是一个示例,因为可以根据期望的实现方式对其他流程图进行重新排序。
图17图示了根据本公开的一些示例的示例性机器1700的框图,所述示例性机器1700可以实现在本文中所讨论的技术(例如,方法)中的一种或多种技术(例如,方法)。在替代实施例中,机器1700可以作为独立设备操作或者可以被连接(例如,联网)到其他机器。在联网部署中,机器1700可以在服务器-客户端网络环境中以服务器机器、客户端机器或者这两者的能力来操作。机器1700可以实现用户设备110、远程设备135、第二远程设备255等。例如,机器1700可以被配置为包括图3、9、12和13的组件中的任意一个或多个组件。机器1700可以被配置为执行图4-6、10、11和14-16的方法。机器1700可以被配置为提供图7和图8的GUI。在示例中,机器1700可以充当对等(P2P)(或者其他分布式)网络环境中的对等机器。机器1700可以是用户设备、远程设备、第二远程设备,或者可以采取个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能手机、网络设备、网络路由器、交换机或者桥的形式的其他设备,或者能够(顺序或者以其他方式)执行指定机器要采取的动作的指令的任意机器。此外,尽管仅图示了单个机器,但是术语“机器”也应当被视为包括个体地或联合地执行指令集合(或者多个指令集合)以执行在本文中所讨论的方法中的任意一种或多种方法的机器的任意集合,诸如云计算、软件即服务(SaaS)、其他计算机集群配置。
如在本文中所描述的,示例可以包括逻辑单元或多个组件、模块或机构(下文被称为“模块”),或者可以在其上进行操作。模块是能够执行指定的操作并且可以以特定方式配置或布置的有形实体(例如,硬件)。在示例中,电路可以以指定的方式被布置(例如,在内部或者相对于诸如其他电路的外部实体)为模块。在示例中,一个或多个计算机系统(例如,独立的、客户端或者服务器计算机系统)或者一个或多个硬件处理器的全部或部分可以由固件或软件(例如,指令、应用部分或应用)配置为操作用于执行指定的操作的模块。在示例中,软件可以驻留在机器可读介质上。在示例中,软件当由模块的底层硬件执行时,使得硬件执行指定的操作。
因此,术语“模块”被理解为涵盖有形实体,是被物理构造、具体配置(例如,硬连线)或者临时(例如,暂时)配置(例如,编程)以指定方式操作或者执行在本文中所描述的任意操作的部分或全部的实体。考虑其中临时配置模块的示例,不需要在任意时刻实例化所述模块中的每个模块。例如,在模块包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器可以在不同时间被配置为各自不同的模块。软件可以相应地配置硬件处理器,例如,以在一个时间实例构成特定模块并且在不同时间实例构成不同模块。
机器(例如,计算机系统)1700可以包括硬件处理器1702(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或者其任意组合)、主存储器1704和静态存储器1706,其中的一些或全部可以经由互连(例如,总线)1708相互通信。机器1700还可以包括显示单元1710、字母数字输入设备1712(例如,键盘)以及用户界面(UI)导航设备1714(例如,鼠标)。在示例中,显示单元1710、输入设备1712和UI导航设备1714可以是触摸屏显示器。机器1700可以另外地包括存储设备(例如,驱动单元)1716、信号生成设备1718(例如,扬声器)、网络接口设备1720以及一个或多个传感器1721,诸如全球定位系统(GPS)传感器、罗盘、加速度计或者其他传感器。机器1700可以包括输出控制器1728,诸如串行(例如,通用串行总线(USB))、并行、或者其他有线或无线(例如,红外线(IR)、近场通信(NFC)等)连接以通信或控制一个或多个外围设备(例如,打印机、读卡器等)。
存储设备1716可以包括机器可读介质1722,在其上存储有数据结构或指令1724(例如,软件)的一个或多个集合,其体现在本文中所描述的技术或功能中的任意一个或多个或者由其利用。指令1724在机器1700执行期间还可以完全地或者至少部分地驻留在主存储器1704内、在静态存储器1706内、或者在硬件处理器1702内。在示例中,硬件处理器1702、主存储器1704、静态存储器1706或者存储设备1716中的一个或任意组合可以构成机器可读介质。
尽管机器可读介质1722被图示为单个介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令1724的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。
术语“机器可读介质”可以包括能够存储、编码或承载由机器1700执行的指令并且使得机器1700执行本公开的技术中的任意一种或多种技术的任意介质,或者能够存储、编码或承载由这样的指令使用或者与这样的指令相关联的数据结构的任意介质。非限制性机器可读介质示例可以包括固态存储器以及光学和磁性介质。机器可读介质的具体示例可以包括:非易失性存储器,诸如半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;随机存取存储器(RAM);固态驱动器(SSD);以及CD-ROM和DVD-ROM磁盘。在一些示例中,机器可读介质可以是非暂时性机器可读介质。在一些示例中,机器可读介质可以包括不是瞬时传播信号的机器可读介质。
指令1724还可以使用传输介质经由网络接口设备1720在通信网络1726上发送或接收。机器1700可以利用多种传输协议(例如、帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任意一种协议与一个或多个其他机器进行通信。示例性通信网络可以包括:局域网(LAN)、广域网(WAN)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络和无线数据网络(例如,电气和电子工程师协会(IEEE)802.11标准系列,被称为
Figure BDA0003401349450000341
IEEE 802.16标准系列,被称为
Figure BDA0003401349450000342
)、IEEE 802.15.4标准系列、长期演进(LTE)标准系列、通用移动电信系统(UMTS)标准系列、对等(P2P)网络等。在示例中,网络接口设备1720可以包括一个或多个物理插孔(例如,以太网、同轴或电话插孔)或者一个或多个天线以连接到通信网络1726。在示例中,网络接口设备1720可以包括多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种进行无线通信。在一些示例中,网络接口设备1720可以使用多用户MIMO技术进行无线通信。
非限制性示例
示例1是一种用于认证的方法,所述方法包括:使用一个或多个硬件处理器:识别与存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;并且基于确定所述字符的第二集合包括以下项来使得对访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的所述字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集。
在示例2中,示例1的主题包括:其中,确定所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的所述字符的第一子集包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分与所述字符的第一集合之间的匹配。
在示例3中,示例1-2的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例4中,示例1-3的主题包括:其中,所述字符的第二集合是从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例5中,示例1-4的主题包括:其中,使得对所述访问受控资源的访问被准许包括:向控制所述访问受控资源的计算设备发送访问被准许的指示。
在示例6中,示例1-5的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例7中,示例6的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配包括:将从距离函数导出的距离与阈值进行比较。
在示例8中,示例1-7的主题包括:其中,所述字符的第一集合是从硬件存储设备取回的。
在示例9中,示例1-8的主题包括,存储关于所述字符的第二集合的信息;接收在第二认证尝试期间输入的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
实施例10是一种用于认证的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:识别与存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;并且基于确定所述字符的第二集合包括以下项来使得对访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集,。
在示例11中,示例10的主题包括:其中,确定所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的所述字符的第一子集的操作包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分与所述第一集合之间的匹配。
在示例12中,示例10-11的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例13中,示例10-12的主题包括:其中,所述字符的第二集合是从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例14中,示例10-13的主题包括:其中,使得对所述访问受控资源的访问被准许的操作包括:向控制所述访问受控资源的计算设备发送访问被准许的指示。
在示例15中,示例10-14的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集的操作包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例16中,示例15的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配的操作包括:将从距离函数导出的距离与阈值进行比较。
在示例17中,示例10-16的主题包括:其中,所述字符的第一集合是从硬件存储设备取回的。
在示例18中,示例10-17的主题包括:其中,所述操作还包括:存储关于所述字符的第二集合的信息;接收在第二认证尝试期间输入的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
示例19是一种用于相对于存储密码来认证密码的方法,所述方法包括:使用一个或多个硬件处理器:识别与所述存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;基于确定以下项来使得对访问受控资源的访问被准许:所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集,并且所述字符的第二集合包括第一预设计数的字符或者所述字符的第二子集包括第二预设计数的字符。
在示例20中,示例19的主题包括:存储关于所述字符的第二集合的信息;在第二认证尝试期间接收待认证的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
在示例21中,示例19-20的主题包括:在第二认证尝试期间接收待认证的字符的第三集合;并且基于确定以下项而使得对所述访问受控资源的访问被准许:所述字符的第三集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第三子集,以及未针对所述第二认证尝试而指定的并且以未针对所述第二认证尝试而指定的次序与所述字符的第三子集交错的字符的第四子集,并且所述字符的第三集合包括第一预设计数的字符或者所述字符的第四子集包括第二预设计数的字符。
在示例22中,示例19-21的主题包括:其中,确定所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的所述字符的第一子集包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分与所述字符的第一集合之间的匹配。
在示例23中,示例19-22的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例24中,示例19-23的主题包括:其中,所述字符的第二集合从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例25中,示例19-24的主题包括:其中,使得对访问受控资源的访问被准许包括:向所述访问受控资源至少部分地所位于的计算设备发送访问被准许的指示。
在示例26中,示例19-25的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例27中,示例26的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配包括:将从距离函数导出的距离与阈值进行比较。
在示例28中,示例19-27的主题包括,如果所述字符的第二集合不包括所述第一预设计数的字符,则拒绝准许访问。
示例29是一种用于认证的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:识别与存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;基于确定以下项来使得对访问受控资源的访问被准许:所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集,并且所述字符的第二集合包括第一预设计数的字符或者所述字符的第二子集包括第二预设计数的字符。
在示例30中,示例29的主题包括:其中,所述操作还包括:存储关于所述字符的第二集合的信息;在第二认证尝试期间接收待认证的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
在示例31中,示例29-30的主题包括:其中,所述操作还包括:在第二认证尝试期间接收待认证的字符的第三集合;并且基于以下确定来使得对所述访问受控资源的访问被准许:所述字符的第三集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第三子集,以及未针对所述第二认证尝试而指定的并且以未针对所述第二认证尝试而指定的次序与所述字符的第三子集交错的字符的第四子集,并且所述字符的第三集合包括第一预设计数的字符或者所述字符的第四子集包括第二预设计数的字符。
在示例32中,示例29-31的主题包括:其中,确定所述字符的第二集合包括与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的所述字符的第一子集的操作包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分与所述字符的第一集合之间的匹配。
在示例33中,示例29-32的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例34中,示例29-33的主题包括:其中,所述字符的第二集合是从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例35中,示例29-34的主题包括:其中,使得对访问受控资源的访问被准许的操作包括:向所述访问受控资源至少部分地所位于的计算设备发送访问被准许的指示。
在示例36中,示例29-35的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集的操作包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例37中,示例36的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配的操作包括:将从距离函数导出的距离与阈值进行比较。
在示例38中,示例29-37的主题包括:其中,使得对所述访问受控资源的访问被准许的操作包括:如果所述字符的第二集合不包括所述第一预设计数的字符,则拒绝准许访问。
示例39是一种用于在认证尝试期间相对于存储值来认证接收到的符号集合的方法,所述方法包括:使用一个或多个硬件处理器:在所述认证尝试期间接收待认证的所述符号集合,其中,所接收到的符号集合包括比与所述存储值相对应的符号的第一集合更多的符号;创建两个或更多个向量的集合,每个向量的长度对应于包括与所述存储值相对应的所述符号的第一集合的有序向量的长度,并且每个向量包括所接收到的符号集合的不同有序组合,所接收到的符号集合的所述不同有序组合以与所述符号被接收到的相同次序来排序;确定每个相应向量与包括与所述存储值相对应的所述符号的第一集合的所述有序向量之间的距离集合;选择所述向量集合中与所述距离集合中的最小距离相对应的向量;并且基于与所选择的向量相对应的值与阈值的比较,使得对访问受控资源的访问被准许。
在示例40中,示例39的主题包括:其中,基于与所选择的向量相对应的所述值与所述阈值的所述比较使得对所述访问受控资源的访问被准许包括:确定所述最小距离小于所述阈值。
在示例41中,示例39-40的主题包括,选择所述向量集合中与所述距离集合中的次小距离相对应的第二向量,所述第二向量与和所述最小距离相对应的所选择的向量不同;并且其中,基于与对应于所述最小距离的所选择的向量相对应的所述值与所述阈值的所述比较使得对所述访问受控资源的访问被准许包括:确定基于与对应于所述最小距离和第二向量的相应所选择的向量相对应的所述最小距离和所述次小距离计算出的值小于阈值。
在示例42中,示例41的主题包括:其中,所述值是以下中的一项:所述最小距离与所述次小距离的比率,或者所述最小距离与所述次小距离之间的差值。
在示例43中,示例39-42的主题包括:其中,确定在每个相应向量与包括所述存储值的所述有序向量之间的所述距离集合包括:确定在所述相应向量与所述有序向量之间的相关性。
在示例44中,示例39-43的主题包括:其中,确定在每个相应向量与包括所述存储值的所述有序向量之间的所述距离集合包括:确定在每个相应向量与所述有序向量之间的Hamming距离。
在示例45中,示例39-44的主题包括,接收符号的第二集合作为第二认证尝试的一部分;确定所接收到的符号的第二集合的长度;确定所接收到的符号的第二集合的所述长度超过阈值长度;并且响应于确定所接收到的符号的第二集合的所述长度超过所述阈值长度,而使得对所述访问受控资源的访问被拒绝。
在示例46中,示例39-45的主题包括,接收符号的第二集合作为第二认证尝试的一部分;识别量化所述符号的第一集合与所述符号的第二集合之间的差异的距离度量;确定所述距离度量低于确定的阈值;并且基于确定所述距离度量低于所述确定的阈值,使得对所述访问受控资源的访问被拒绝。
示例47是一种用于在认证尝试期间相对于存储值来认证接收到的符号集合的设备,所述设备包括:一个或多个硬件处理器;存储器,其包括指令,所述指令当由所述一个或多个硬件处理器运行时使得所述设备执行包括以下的操作:在所述认证尝试期间接收待认证的所述符号集合,其中,所接收到的符号集合包括比与所述存储值相对应的符号的第一集合更多的符号;创建两个或更多个向量的集合,每个向量的长度对应于包括与所述存储值相对应的所述符号的第一集合的有序向量的长度,每个向量包括所接收到的符号集合的不同有序组合,所接收到的符号集合的所述不同有序组合以与所述符号被接收到的相同次序来排序;确定每个相应向量与包括与所述存储值相对应的所述符号的第一集合的所述有序向量之间的距离集合;选择所述向量集合中与所述距离集合中的最小距离相对应的向量;并且基于与所选择的向量相对应的值与阈值的比较,使得对访问受控资源的访问被准许。
在示例48中,示例47的主题包括:其中,基于与所选择的向量相对应的所述值与所述阈值的所述比较而使得对所述访问受控资源的访问被准许的操作包括:确定所述最小距离小于所述阈值。
在示例49中,示例47-48的主题包括:其中,所述操作还包括:选择所述向量集合中与所述距离集合中的次小距离相对应的第二向量,所述第二向量与和最小距离相对应的所选择的向量不同;并且其中,基于与对应于所述最小距离的所选择的向量相对应的所述值与所述阈值的所述比较使得对所述访问受控资源的访问被准许包括:确定基于与对应于所述最小距离和第二向量的相应所选择的向量相对应的所述最小距离和所述次小距离计算出的值小于所述阈值。
在示例50中,示例49的主题包括:其中,所述值是以下中的一项:所述最小距离与所述次小距离的比率,或者所述最小距离与所述次小距离之间的差值。
在示例51中,示例47-50的主题包括:其中,确定在每个相应向量与包括所述存储值的所述有序向量之间的所述距离集合的操作包括:确定在所述相应向量与所述有序向量之间的相关性。
在示例52中,示例47-51的主题包括:其中,确定在每个相应向量与包括所述存储值的所述有序向量之间的所述距离集合的操作包括:确定在每个相应向量与所述有序向量之间的Hamming距离。
在示例53中,示例47-52的主题包括:其中,所述操作还包括:接收符号的第二集合作为第二认证尝试的一部分;确定所接收到的符号的第二集合的长度;确定所接收到的符号的第二集合的长度超过阈值长度;并且响应于确定所接收到的符号的第二集合的长度超过所述阈值长度,而使得对所述访问受控资源的访问被拒绝。
在示例54中,示例47-53的主题包括:其中,所述操作还包括:接收符号的第二集合作为第二认证尝试的一部分;识别量化在所述符号的第一集合与所述符号的第二集合之间的差异的距离度量;确定所述距离度量低于确定的阈值;并且基于确定所述距离度量低于所述确定的阈值,使得对所述访问受控资源的访问被拒绝。
示例55是一种用于认证对访问受控资源的访问的方法,所述方法包括:使用一个或多个硬件处理器:使得图形用户界面(GUI)被显示,以请求用于认证尝试的认证凭证,所述GUI包括输入字段,所述输入字段用于从输入设备接受字符集合形式的所要求的认证凭证,所述GUI要求所述字符集合包括比存储凭证更多的字符;在接收到针对所述GUI的、关于所述字符集合完成的输入后接受来自所述输入字段的所述字符集合,所述字符集合包括比所述存储凭证更多的字符;接收关于所接受的字符集合包括以下项的指示:与存储凭证相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集;并且响应于接收到所述指示,而允许对所述访问受控资源的访问。
在示例56中,示例55的主题包括:其中,针对所述GUI的、关于所述字符集合完成的所述输入包括对回车键的按下或者指向提交按钮的输入。
在示例57中,示例55-56的主题包括:其中,所述认证凭证是密码。
在示例58中,示例55-57的主题包括:其中,当所述字符集合不包括比所述存储凭证中的字符数量更多的字符时,所述GUI显示视觉指示符。
在示例59中,示例55-58的主题包括:其中,当所述字符集合不包括噪声字符集合时,所述GUI显示视觉指示符。
在示例60中,示例55-59的主题包括:其中,当所述字符集合不包括被分布在与所述存储凭证相对应的字符集合内的噪声字符集合时,所述GUI显示视觉指示符,并且其中,所述GUI还要求所述字符集合包括被分布在与所述存储凭证相对应的所述字符集合内的所述噪声字符集合。
在示例61中,示例60的主题包括:其中,当与所述存储凭证相对应的所述字符集合中的所述噪声字符的散布量度不满足阈值时,所述GUI显示所述视觉指示符,并且其中,所述GUI还要求所述字符集合内的所述噪声字符集合的所述散布量度满足所述阈值。
在示例62中,示例55-61的主题包括,确定所述字符集合包括所述第一子集和所述第二子集。
在示例63中,示例55-62的主题包括,接收关于所述字符集合包括所述第一子集和所述第二子集的所述指示。
实施例64是一种用于认证对访问受控资源的访问的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当由所述一个或多个硬件处理器运行时使得所述设备执行包括以下的操作:使得图形用户界面(GUI)被显示,以请求用于认证尝试的认证凭证,所述GUI包括输入字段,所述输入字段用于从输入设备接受字符集合形式的所请求的认证凭证,所述GUI要求所述字符集合包括比存储凭证更多的字符;在接收到针对所述GUI的、关于所述字符集合完成的所述输入后接受来自所述输入字段的所述字符集合,所述字符集合包括比所述存储凭证更多的字符;接收关于所接受的字符集合包括以下项的指示:与所述存储凭证相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集交错的字符的第二子集;并且响应于接收到所述指示,而允许对所述访问受控资源的访问。
在示例65中,示例64的主题包括:其中,针对所述GUI的、关于所述字符集合完成的所述输入包括对回车键的按下或者指向提交按钮的输入。
在示例66中,示例64-65的主题包括:其中,所述认证凭证是密码。
在示例67中,示例64-66的主题包括:其中,当所述字符集合不包括比所述存储凭证中的字符数量更多的字符时,所述GUI显示视觉指示符。
在示例68中,示例64-67的主题包括:其中,当所述字符集合不包括噪声字符集合时,所述GUI显示视觉指示符。
在示例69中,示例64-68的主题包括:其中,当所述字符集合不包括被分布在与所述存储凭证相对应的字符集合内的噪声字符集合时,所述GUI显示视觉指示符,并且其中,所述GUI还要求所述字符集合包括被分布在与所述存储凭证相对应的所述字符集合内的所述噪声字符集合。
在示例70中,示例69的主题包括:其中,当与所述存储凭证相对应的所述字符集合中的所述噪声字符的散布量度不满足阈值时,所述GUI显示所述视觉指示符,并且其中,所述GUI还要求所述字符集合内的所述噪声字符集合的所述散布量度满足所述阈值。
在示例71中,示例64-70的主题包括:其中,所述操作还包括:确定所述字符集合包括所述第一子集和所述第二子集。
在示例72中,示例64-71的主题包括:其中,所述操作还包括:接收关于所述字符集合包括所述第一子集和所述第二子集的所述指示。
示例73是一种用于相对于存储密码来认证密码的方法,所述方法包括:使用一个或多个硬件处理器:识别与所述存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;并且基于确定所述字符的第二集合包括以下项来使得对访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集分布的字符的第二子集,其中,在所述字符的第二集合内的所述第一子集或所述第二子集的字符的相应位置的散布量度在阈值范围内。
在示例74中,示例73的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括在所述字符的第二集合内的所述字符的第二子集的后续字符的相应位置之间的最大距离。
在示例75中,示例73-74的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括在所述字符的第二集合内的所述字符的第二子集的后续字符的相应位置之间的平均距离。
在示例76中,示例73-75的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括所述字符的第二集合内的字符的所述第二子集的所述相应位置的方差。
在示例77中,示例73-76的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例78中,示例73-77的主题包括:其中,所述字符的第二集合是从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例79中,示例73-78的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例80中,示例79的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配包括:将从距离函数导出的距离与阈值进行比较。
在示例81中,示例73-80的主题包括:存储关于所述字符的第二集合的信息;接收在第二认证尝试期间输入的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
示例82是一种用于认证的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:识别与存储密码相对应的字符的第一集合;在认证尝试期间接收待认证的字符的第二集合,其中,所接收到的待认证的字符的第二集合包括比与所述存储密码相对应的所述字符的第一集合更多的字符;并且基于确定所述字符的第二集合包括以下项来使得对访问受控资源的访问被准许:与和存储密码相对应的所述字符的第一集合相匹配并且具有相同次序的字符的第一子集,以及未针对所述认证尝试而指定的并且以未针对所述认证尝试而指定的次序与所述字符的第一子集分布的字符的第二子集,其中,在所述字符的第二集合内的所述第一子集或所述第二子集的字符的相应位置的散布量度在阈值范围内。
在示例83中,示例82的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括在所述字符的第二集合内的所述字符的第二子集的后续字符的相应位置之间的最大距离。
在示例84中,示例82-83的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括在所述字符的第二集合内的字符的所述第二子集的后续字符的相应位置之间的平均距离。
在示例85中,示例82-84的主题包括:其中,所述第一子集或所述第二子集的所述相应位置的所述散布量度包括所述字符的第二集合内的所述字符的第二子集的所述相应位置的方差。
在示例86中,示例82-85的主题包括:其中,所述字符的第二集合是通过网络接收的。
在示例87中,示例82-86的主题包括:其中,所述字符的第二集合是从被通信地耦合到所述一个或多个硬件处理器的输入设备接收的。
在示例88中,示例82-87的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集的操作包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
在示例89中,示例88的主题包括:其中,将包括所接收到的字符的第二集合的排列的所述多个向量相对于所述字符的第一集合进行匹配的操作包括:将从距离函数导出的距离与阈值进行比较。
在示例90中,示例82-89的主题包括:其中,所述操作还包括:存储关于所述字符的第二集合的信息;接收在第二认证尝试期间输入的字符的第三集合;并且基于确定所述字符的第三集合在所述字符的第二集合的阈值相似度内而使得对所述访问受控资源的访问被拒绝。
示例91是一种用于认证对访问受控资源的访问的方法,所述方法包括:使用一个或多个硬件处理器:使得图形用户界面(GUI)被显示,以请求用于访问所述访问受控资源的认证凭证,所述GUI包括输入字段,所述输入字段用于从输入设备接受字符集合形式的所请求的认证凭证,所述GUI要求所述字符集合包括除了存储凭证中的字符之外的至少一个字符;在接收到针对所述GUI的、关于所述字符集合完成的输入后接受来自所述输入字段的所述字符集合,所述字符集合包括比所述存储凭证更多的字符,并且不包括所述字符集合的整体与所述存储凭证精确匹配的子集;接收关于所述字符集合包括与所述存储凭证的一部分相匹配的字符的第一子集的指示,所述存储凭证的匹配部分具有比所述存储凭证更少并且具有相同次序的字符;以及响应于接收到所述指示,在所述GUI上显示已经准许对所述访问受控资源的访问。
在示例92中,示例91的主题包括:其中,针对所述GUI的所述输入的所述字符集合被要求具有预定长度的字符数量。
在示例93中,示例91-92的主题包括:其中,对所述访问受控资源的访问基于确定所述字符集合的匹配部分整体等于所述字符的第一集合而被拒绝。
在示例94中,示例91-93的主题包括:在随后的认证尝试期间从所述输入字段接收字符的第二集合;以及基于确定以下项而在所述GUI中显示关于已经准许对所述访问受控资源的访问的指示:所述字符的第二集合包括:与所述存储凭证的第二部分相匹配的字符的第三子集,所述字符的第三子集具有比所述存储凭证更少并且具有相同次序的字符;以及与所述字符的第三子集散置的最小数量的额外字符;以及所述字符的第一子集不同于所述字符的第三子集。
在示例95中,示例91-94的主题包括:在随后的认证尝试期间从所述输入字段接收字符的第二集合;以及基于确定以下项而在所述GUI中显示关于已经准许对所述访问受控资源的访问的指示:所述字符的第二集合包括:与所述存储凭证的第二部分相匹配的字符的第三子集,所述字符的第三子集具有比所述存储凭证更少并且具有相同次序的字符;以及与所述字符的第三子集散置的最小数量的额外字符;以及所述额外字符不同于与所述第一子集交错的字符的第二子集。
在示例96中,示例91-95的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示包括:确定所述字符的第一子集包括与所述存储凭证相对应的最小数量的字符。
在示例97中,示例91-96的主题包括:其中,所述字符的第一子集基于距离函数和最大距离阈值被确定为与所述存储凭证的所述一部分相匹配。
在示例98中,示例97的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示包括:确定所述字符的第一子集距所述存储凭证的所述一部分的距离小于最大距离阈值并且大于零距离阈值。
在示例99中,示例97-98的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示包括:确定所述字符的第一子集距所述存储凭证的所述一部分的距离与字符的第三子集距所述存储凭证的所述一部分的距离的比率超过最小比率阈值。
在示例100中,示例91-99的主题包括:在字符的第二集合被输入时监控对所述字符的第二集合的输入;确定所述字符的第二集合不包括与所述第一子集交错的字符的第二子集;以及在完成对所述字符的第二集合的输入之前显示关于输入所述第二子集的指示。
在示例101中,示例91-100的主题包括:在字符的第二集合被输入时监控对所述字符的第二集合的输入;确定所述字符的第二集合完整地包括所述存储凭证;以及在完成对所述字符的第二集合的输入之前显示关于从与所述存储凭证相对应的所述字符的第二集合中移除至少一个字符的指示。
在示例102中,示例91-101的主题包括:其中,所述GUI要求所述字符集合不完整地包括所述存储凭证。
在示例103中,示例91-102的主题包括:其中,所述字符集合被指示为包括未针对所述访问受控资源而指定的并且以非指定的次序与所述字符的第一子集交错的字符的第二子集。
示例104是一种用于认证对访问受控资源的访问的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:使得图形用户界面(GUI)被显示,以请求用于访问所述访问受控资源的认证凭证,所述GUI包括输入字段,所述输入字段用于从输入设备接受字符集合形式的所请求的认证凭证,所述GUI要求所述字符集合包括除了存储凭证中的字符之外的至少一个字符;在接收到针对所述GUI的、关于所述字符集合完成的输入后接受来自所述输入字段的所述字符集合,所述字符集合包括比所述存储凭证更多的字符,并且所述字符集合中不包括与所述存储凭证整体精确匹配的子集;接收关于所述字符集合包括与所述存储凭证的一部分相匹配的字符的第一子集的指示,所述存储凭证的匹配部分具有比所述存储凭证更少并且具有相同次序的字符;以及响应于接收到所述指示,在所述GUI上显示关于已经准许对所述访问受控资源的访问。
在示例105中,示例104的主题包括:其中,针对所述GUI的所述输入的所述字符集合被要求具有预定长度的字符数量。
在示例106中,示例104-105的主题包括:其中,对所述访问受控资源的访问基于确定所述字符集合的所述匹配部分整体等于所述字符的第一集合而被拒绝。
在示例107中,示例104-106的主题包括以下操作:在随后的认证尝试期间从所述输入字段接收字符的第二集合;以及基于确定以下项而在所述GUI中显示关于已经准许对所述访问受控资源的访问的指示:所述字符的第二集合包括:与所述存储凭证的第二部分相匹配的字符的第三子集,所述字符的第三子集具有比所述存储凭证更少并且具有相同次序的字符;以及与所述字符的第三子集散置的最小数量的额外字符;以及所述字符的第一子集不同于所述字符的第三子集。
在示例108中,示例104-107的主题包括以下操作:在随后的认证尝试期间从所述输入字段接收字符的第二集合;以及基于确定以下项而在所述GUI中显示关于已经准许对所述访问受控资源的访问的所述指示:所述字符的第二集合包括:与所述存储凭证的第二部分相匹配的字符的第三子集,所述字符的第三子集具有比所述存储凭证更少并且具有相同次序的字符;以及与所述字符的第三子集散置的最小数量的额外字符;以及所述额外字符不同于与所述第一子集交错的字符的第二子集。
在示例109中,示例104-108的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示的操作包括:确定所述字符的第一子集包括与所述存储凭证相对应的最小数量的字符。
在示例110中,示例104-109的主题包括:其中,所述字符的第一子集基于距离函数和最大距离阈值被确定为与所述存储凭证的所述一部分相匹配。
在示例111中,示例110的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示的操作包括:确定所述字符的第一子集距所述存储凭证的所述一部分的距离小于最大距离阈值并且大于零距离阈值。
在示例112中,示例110-111的主题包括:其中,显示关于已经准许对所述访问受控资源的访问的所述指示的操作包括:确定所述字符的第一子集距所述存储凭证的所述一部分的距离与字符的第三子集距所述存储凭证的所述一部分的距离的比率超过最小比率阈值。
在示例113中,示例104-112的主题包括以下操作:在字符的第二集合被输入时监控对所述字符的第二集合的输入;确定所述字符的第二集合不包括与所述第一子集交错的字符的第二子集;以及在完成对所述字符的第二集合的输入之前显示关于输入所述第二子集的指示。
在示例114中,示例104-113的主题包括以下操作:在字符的第二集合被输入时监控对所述字符的第二集合的输入;确定所述字符的第二集合完整地包括所述存储凭证;以及在完成对所述字符的第二集合的输入之前,显示关于从与所述存储凭证相对应的所述字符的第二集合中移除至少一个字符的指示。
在示例115中,示例104-114的主题包括:其中,所述GUI要求所述字符集合不完整地包括所述存储凭证。
在示例116中,示例104-115的主题包括:其中,所述字符集合被指示为包括未针对所述访问受控资源而指定的并且以非指定的次序与所述字符的第一子集交错的字符的第二子集。
示例117是一种用于相对于包括字符的第一集合的存储密码来认证待认证的密码的方法,所述方法包括:使用一个或多个硬件处理器:在认证尝试期间接收待认证的字符的第二集合;并且基于以下项而使得对访问受控资源的访问被准许:确定所述字符的第二集合中没有子集与和所述存储密码相对应的所述字符的第一集合相匹配;并且确定所述字符的第二集合包括:所述字符的第二集合中与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的第一子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最少数量的额外字符。
在示例118中,示例117的主题包括:在第二认证尝试期间接收待认证的字符的第三集合;并且基于确定所述字符的第三集合的一部分等于所述字符的第一集合而拒绝对所述访问受控资源的访问。
在示例119中,示例117-118的主题包括:在第二认证尝试期间接收字符的第三集合;并且基于确定所述字符的第三集合包括以下项来使得对所述访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的字符的第二子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最小数量的第二额外字符,并且其中,所述字符的第一子集不同于所述字符的第二子集。
在示例120中,示例117-119的主题包括:在第二认证尝试期间接收字符的第三集合;并且基于确定所述字符的第三集合包括以下项来使得对所述访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的字符的第二子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最小数量的第二额外字符,并且其中,所述第二额外字符不同于所述额外字符。
在示例121中,示例117-120的主题包括:其中,使得对所述访问受控资源的访问被准许包括:确定所述字符的第一集合的所述一部分包括与所述存储密码相对应的最小数量的字符。
在示例122中,示例117-121的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分和所述字符的第一子集之间的匹配。
在示例123中,示例122的主题包括:其中,使得对所述访问受控资源的访问被准许包括:确定所述字符的第一子集距所述字符的距离的第二集合小于最大距离阈值并且大于零距离阈值。
在示例124中,示例122-123的主题包括:其中,使得对所述访问受控资源的访问被准许包括:确定所述字符的第一子集距所述字符的距离的第二集合与字符的第二子集距所述字符的距离的第二集合相比的比率超过最小比率阈值。
在示例125中,示例117-124的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
示例126是一种用于相对于包括字符的第一集合的存储密码来认证待认证的密码的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:在认证尝试期间接收待认证的字符的第二集合;并且基于以下项而使得对访问受控资源的访问被准许:确定所述字符的第二集合中没有子集与和所述存储密码相对应的所述字符的第一集合相匹配;并且确定所述字符的第二集合包括:所述字符的第二集合中与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的第一子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最少数量的额外字符。
在示例127中,示例126的主题包括:其中,所述操作还包括:在第二认证尝试期间接收待认证的字符的第三集合;并且基于确定所述字符的第三集合的一部分等于所述字符的第一集合而拒绝对所述访问受控资源的访问。
在示例128中,示例126-127的主题包括以下操作:在第二认证尝试期间接收字符的第三集合;并且基于确定所述字符的第三集合包括以下项来使得对所述访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的字符的第二子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最小数量的第二额外字符,并且其中,所述字符的第一子集不同于所述字符的第二子集。
在示例129中,示例126-128的主题包括以下操作:在第二认证尝试期间接收字符的第三集合;并且基于确定所述字符的第三集合包括以下项而使得对所述访问受控资源的访问被准许:与和所述存储密码相对应的所述字符的第一集合的一部分相匹配的字符的第二子集,所述字符的第一集合的所述一部分具有比所述字符的第一集合更少并且具有相同次序的字符;以及与所述字符的第一子集散置的最小数量的第二额外字符,并且其中,所述第二额外字符不同于所述额外字符。
在示例130中,示例126-129的主题包括:其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所述字符的第一集合的所述一部分包括与所述存储密码相对应的最小数量的字符。
在示例131中,示例126-130的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集的所述操作包括:基于距离函数和最大距离阈值来确定在所述字符的第二集合的部分和所述字符的第一子集之间的匹配。
在示例132中,示例131的主题包括:其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所述字符的第一子集距所述字符的距离的第二集合小于最大距离阈值并且大于零距离阈值。
在示例133中,示例131-132的主题包括:其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所述字符的第一子集距所述字符的距离的第二集合与字符的第二子集距所述字符的距离的第二集合相比的比率超过最小比率阈值。
在示例134中,示例126-133的主题包括:其中,确定所述字符的第二集合包括所述字符的第一子集的所述操作包括:将包括所接收到的字符的第二集合的排列的多个向量相对于所述字符的第一集合进行匹配。
示例135是一种用于验证密码的方法,所述方法包括:接收字符集合作为访问请求过程的一部分以对访问受控资源进行访问;确定所述字符集合中没有子集与存储密码精确地匹配;访问包括所述存储密码的有序子集的多个有序向量,多个有序向量中的每个有序向量的长度都小于所述存储密码的长度;基于所接收到的字符集合来创建多个检查向量,所述多个检查向量中的每个检查向量的长度与所述多个有序向量中的有序向量的长度相对应,其中,所述多个检查向量中的每个检查向量包括具有相同次序的、接收到的字符集合的不同有序组合;确定在所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的距离集合;选择所述检查向量的集合中与所述距离集合中的最小距离相对应的向量;并且基于与所选择的向量相对应的值与阈值的比较,使得对所述访问受控资源的访问被准许。
在示例136中,示例135的主题包括:其中,确定在所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的所述距离集合包括:确定在所述相应向量与所述多个有序向量的每个有序向量之间的Hamming距离。
在示例137中,示例135-136的主题包括:其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离大于零距离阈值。
在示例138中,示例135-137的主题包括:选择所述多个检查向量中与所述距离集合中的次小距离相对应的第二向量;并且其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离与所述次小距离的比率小于所述阈值。
在示例139中,示例135-138的主题包括:接收字符的第二集合作为第二访问请求过程的一部分以访问所述访问受控资源;确定所述字符的第二集合中的子集与所述存储密码精确地匹配;并且基于确定所述字符的第二集合中的所述子集与所述存储密码精确地匹配而拒绝访问。
在示例140中,示例135-139的主题包括:在第二访问请求过程期间接收字符的第二集合,其中,所述字符集合不同于所述字符的第二集合;选择第二多个检查向量中与距离的第二集合中的新的最小距离相对应的第二向量;并且基于与所选择的向量相对应的第二值与第二阈值的比较,使得对所述访问受控资源的访问被准许。
在示例141中,示例135-140的主题包括:其中,使得对所述访问受控资源的访问被准许包括:确定所选择的向量包括与所述存储密码相对应的最小数量的字符。
示例142是一种用于验证输入密码的设备,所述设备包括:一个或多个硬件处理器;存储器,其存储指令,所述指令当被运行时使得所述一个或多个硬件处理器执行包括以下的操作:接收字符集合作为访问请求过程的一部分以对访问受控资源进行访问;确定所述字符集合中没有子集与存储密码精确地匹配;访问包括所述存储密码的有序子集的多个有序向量,所述多个有序向量中的每个有序向量的长度都小于所述存储密码的长度;基于所接收到的字符集合来创建多个检查向量,所述多个检查向量中的每个检查向量的长度与所述多个有序向量中的有序向量的长度相对应,其中,多个检查向量中的每个向量包括具有相同次序的、接收到的字符集合的不同有序组合;确定在所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的距离集合;选择所述检查向量的集合中与所述距离集合中的最小距离相对应的向量;并且基于与所选择的向量相对应的值与阈值的比较,使得对所述访问受控资源的访问被准许。
在示例143中,示例142的主题包括:其中,确定在所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的所述距离集合的所述操作包括:确定在所述相应向量与所述多个有序向量的每个有序向量之间的Hamming距离。
在示例144中,示例142-143的主题包括:其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所述最小距离大于零距离阈值。
在示例145中,示例142-144的主题包括以下操作:选择多个检查向量中与所述距离集合中的次小距离相对应的第二向量;并且其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离与所述次小距离的比率小于所述阈值。
在示例146中,示例142-145的主题包括:其中,所述操作还包括:接收字符的第二集合作为第二访问请求过程的一部分以访问所述访问受控资源;确定所述字符的第二集合中的子集与所述存储密码精确地匹配;并且基于确定所述字符的第二集合中的所述子集与所述存储密码精确地匹配而拒绝访问。
在示例147中,示例142-146的主题包括以下操作:在第二访问请求过程期间接收字符的第二集合,其中,所述字符集合不同于所述字符的第二集合;选择第二多个检查向量中与距离的第二集合中的新的最小距离相对应的第二向量;并且基于与所选择的向量相对应的第二值与第二阈值的比较,使得对所述访问受控资源的访问被准许。
在示例148中,示例142-147的主题包括:其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所选择的向量包括与所述存储密码相对应的最小数量的字符。
示例149是包括指令的至少一个机器可读介质,所述指令当由处理电路运行时使得所述处理电路执行操作以实现示例1-148中的任意示例。
示例150是一种装置,其包括用于实现示例1-148中的任意示例的单元。
示例151是一种用于实现示例1-148中的任意示例的系统。
示例152是一种用于实现示例1-148中的任意示例的方法。

Claims (15)

1.一种用于验证所输入的密码的设备,所述设备包括:
一个或多个硬件处理器;
存储器,其存储指令,所述指令当被运行使得所述一个或多个硬件处理器执行包括以下的操作:
接收字符集合作为用于访问访问受控资源的访问请求过程的一部分;
确定所述字符集合中没有子集与存储密码精确地匹配;
访问包括所述存储密码的有序子集的多个有序向量,所述多个有序向量中的每个有序向量具有的长度小于所述存储密码的长度;
基于所接收到的字符集合来创建多个检查向量,所述多个检查向量中的每个检查向量具有的长度对应于所述多个有序向量中的有序向量的长度,其中,所述多个检查向量中的每个向量包括所接收到的字符集合中具有相同次序的不同有序组合;
确定所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的距离集合;
选择所述检查向量的集合中与所述距离集合中的最小距离相对应的向量;以及
基于与所选择的向量相对应的值与阈值的比较而使得对所述访问受控资源的访问被准许。
2.根据权利要求1所述的设备,其中,确定所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的所述距离集合的所述操作包括:确定所述相应向量与所述多个有序向量中的每个有序向量之间的Hamming距离。
3.根据权利要求1所述的设备,其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所述最小距离大于零距离阈值。
4.根据权利要求1所述的设备,还包括以下操作:选择所述多个检查向量中与所述距离集合中的次小距离相对应的第二向量;并且其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离与所述次小距离的比率小于所述阈值。
5.根据权利要求1所述的设备,其中,所述操作还包括:
接收字符的第二集合作为用于访问所述访问受控资源的第二访问请求过程的一部分;
确定所述字符的第二集合中的子集与所述存储密码精确地匹配;以及
基于确定所述字符的第二集合中的所述子集与所述存储密码精确地匹配而拒绝访问。
6.根据权利要求1所述的设备,还包括以下操作:
在第二访问请求过程期间接收字符的第二集合,其中,所述字符集合不同于所述字符的第二集合;
选择第二多个检查向量中与距离的第二集合中的新的最小距离相对应的第二向量;以及
基于与所选择的向量相对应的第二值与第二阈值的比较而使得对所述访问受控资源的访问被准许。
7.根据权利要求1-6中的任一项所述的设备,其中,使得对所述访问受控资源的访问被准许的所述操作包括:确定所选择的向量包括与所述存储密码相对应的最小数量的字符。
8.一种用于验证密码的方法,所述方法包括:
接收字符集合作为用于访问访问受控资源的访问请求过程的一部分;
确定所述字符集合中没有子集与存储密码精确地匹配;
访问包括所述存储密码的有序子集的多个有序向量,所述多个有序向量中的每个有序向量具有的长度小于所述存储密码的长度;
基于所接收到的字符集合来创建多个检查向量,所述多个检查向量中的每个检查向量具有的长度与所述多个有序向量中的有序向量的长度相对应,其中,所述多个检查向量中的每个向量包括所接收到的字符集合中具有相同次序的不同有序组合;
确定所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的距离集合;
选择所述检查向量的集合中与所述距离集合中的最小距离相对应的向量;以及
基于与所选择的向量相对应的值与阈值的比较而使得对所述访问受控资源的访问被准许。
9.根据权利要求8所述的方法,其中,确定所述多个检查向量中的每个相应向量与所述多个有序向量中的每个有序向量之间的所述距离集合包括:确定所述相应向量与所述多个有序向量中的每个有序向量之间的Hamming距离。
10.根据权利要求8所述的方法,其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离大于零距离阈值。
11.根据权利要求8所述的方法,还包括:选择所述多个检查向量中与所述距离集合中的次小距离相对应的第二向量;并且其中,使得对所述访问受控资源的访问被准许包括:确定所述最小距离与所述次小距离的比率小于所述阈值。
12.根据权利要求8所述的方法,还包括:
接收字符的第二集合作为用于访问所述访问受控资源的第二访问请求过程的一部分;
确定所述字符的第二集合中的子集与所述存储密码精确地匹配;以及
基于确定所述字符的第二集合中的所述子集与所述存储密码精确地匹配而拒绝访问。
13.根据权利要求8所述的方法,还包括:
在第二访问请求过程期间接收字符的第二集合,其中,所述字符集合不同于所述字符的第二集合;
选择第二多个检查向量中与距离的第二集合中的新的最小距离相对应的第二向量;以及
基于与所选择的向量相对应的第二值与第二阈值的比较而使得对所述访问受控资源的访问被准许。
14.根据权利要求8所述的方法,其中,使得对所述访问受控资源的访问被准许包括:确定所选择的向量包括与所述存储密码相对应的最小数量的字符。
15.至少一种机器可读介质,其包括用于计算系统的操作的指令,所述指令当由机器运行时使得所述机器执行根据权利要求8-14所述的方法中的任意方法的操作。
CN202080042472.7A 2019-06-10 2020-04-28 符号流中的部分模式识别 Active CN113994632B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/436,750 US11240227B2 (en) 2019-06-10 2019-06-10 Partial pattern recognition in a stream of symbols
US16/436,750 2019-06-10
PCT/US2020/030319 WO2020251685A1 (en) 2019-06-10 2020-04-28 Partial pattern recognition in a stream of symbols

Publications (2)

Publication Number Publication Date
CN113994632A true CN113994632A (zh) 2022-01-28
CN113994632B CN113994632B (zh) 2023-09-22

Family

ID=70775510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080042472.7A Active CN113994632B (zh) 2019-06-10 2020-04-28 符号流中的部分模式识别

Country Status (4)

Country Link
US (1) US11240227B2 (zh)
EP (1) EP3967012B1 (zh)
CN (1) CN113994632B (zh)
WO (1) WO2020251685A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11514149B2 (en) 2019-06-10 2022-11-29 Microsoft Technology Licensing, Llc Pattern matching for authentication with random noise symbols and pattern recognition
US11496457B2 (en) 2019-06-10 2022-11-08 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11178135B2 (en) 2019-06-10 2021-11-16 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11736472B2 (en) 2019-06-10 2023-08-22 Microsoft Technology Licensing, Llc Authentication with well-distributed random noise symbols
US11258783B2 (en) 2019-06-10 2022-02-22 Microsoft Technology Licensing, Llc Authentication with random noise symbols and pattern recognition
US11394551B2 (en) 2019-07-17 2022-07-19 Microsoft Technology Licensing, Llc Secure authentication using puncturing
US11133962B2 (en) 2019-08-03 2021-09-28 Microsoft Technology Licensing, Llc Device synchronization with noise symbols and pattern recognition

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273625A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation Method and system for protecting a user's password
CN104424427A (zh) * 2013-08-28 2015-03-18 联发科技(新加坡)私人有限公司 密码验证方法及装置
US20150172273A1 (en) * 2013-12-18 2015-06-18 Ebay Inc. Systems and methods for secure password entry
US9172697B1 (en) * 2013-09-16 2015-10-27 Kabam, Inc. Facilitating users to obfuscate user credentials in credential responses for user authentication
GB201522528D0 (en) * 2015-08-05 2016-02-03 Intralinks Inc Systems and methods of secure data exchange
CN105975848A (zh) * 2016-04-29 2016-09-28 努比亚技术有限公司 一种密码解锁方法及装置
US9722996B1 (en) * 2015-03-23 2017-08-01 EMC IP Holding Company LLC Partial password-based authentication using per-request risk scores
SE1650475A1 (en) * 2016-04-08 2017-10-09 Authentico Tech Ab Method and system for secure password storage
CN108154017A (zh) * 2017-12-28 2018-06-12 上海传英信息技术有限公司 一种基于智能终端的密码验证方法及密码验证系统
US10262129B1 (en) * 2015-11-02 2019-04-16 Shanit Gupta Dynamic password generator with fuzzy matching

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815665A (en) 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
US6079021A (en) 1997-06-02 2000-06-20 Digital Equipment Corporation Method and apparatus for strengthening passwords for protection of computer systems
US6195698B1 (en) * 1998-04-13 2001-02-27 Compaq Computer Corporation Method for selectively restricting access to computer systems
US7219368B2 (en) * 1999-02-11 2007-05-15 Rsa Security Inc. Robust visual passwords
US6587032B2 (en) * 2000-11-28 2003-07-01 International Business Machines Corporation System and method for controlling access to a computer resource
US7581113B2 (en) 2001-02-14 2009-08-25 5th Fleet, L.L.C. System and method for generating and authenticating a computer password
US7600128B2 (en) 2001-02-14 2009-10-06 5Th Fleet, Llc Two-factor computer password client device, system, and method
US20020144158A1 (en) 2001-03-29 2002-10-03 Christopher Hekimian Time domain sensitive password protection (TDSPP)
US20030078949A1 (en) 2001-04-30 2003-04-24 Scholz Bernhard J. Automatic generation of forms with input validation
EP1475721B1 (en) 2002-02-13 2013-04-03 Passlogy Co., Ltd. User authentication method and user authentication system
KR100450953B1 (ko) 2002-03-05 2004-10-02 삼성전자주식회사 암호를 이용한 사용자 인증방법
US6954862B2 (en) 2002-08-27 2005-10-11 Michael Lawrence Serpa System and method for user authentication with enhanced passwords
US7215727B2 (en) 2002-10-08 2007-05-08 Broadcom Corporation Impulse noise detection from preamble symbols
FR2862144A1 (fr) 2003-11-07 2005-05-13 Brissaud Jean Pierre Procede de validation tridimensionnelle d'un mot de passe electronique
US7467403B2 (en) * 2004-01-09 2008-12-16 Harris Scott C Techniques for entry of less-than-perfect-passwords
US9286457B2 (en) * 2004-06-14 2016-03-15 Rodney Beatson Method and system for providing password-free, hardware-rooted, ASIC-based authentication of a human to a mobile device using biometrics with a protected, local template to release trusted credentials to relying parties
US20060294392A1 (en) 2005-06-28 2006-12-28 Matsushita Electric Industrial Co., Ltd. Protection of a password-based user authentication in presence of a foe
US7552467B2 (en) 2006-04-24 2009-06-23 Jeffrey Dean Lindsay Security systems for protecting an asset
US20080066167A1 (en) * 2006-09-12 2008-03-13 Andri Michael J Password based access including error allowance
GB0620855D0 (en) 2006-10-19 2006-11-29 Dovetail Software Corp Ltd Data processing apparatus and method
CN101197095A (zh) 2006-12-10 2008-06-11 王建 可变密码
WO2008082354A1 (en) 2007-01-03 2008-07-10 Ericstam & Company Ab Method for increasing cash machine safety
US8281147B2 (en) 2007-06-21 2012-10-02 Microsoft Corporation Image based shared secret proxy for secure password entry
US7921454B2 (en) * 2007-10-22 2011-04-05 International Business Machines Corporation System and method for user password protection
EP2336908B1 (en) 2008-08-26 2014-01-29 International Business Machines Corporation Search device, search method and search program using open search engine
US8272040B2 (en) * 2009-01-29 2012-09-18 International Business Machines Corporation Preventing inadvertent lock-out during password entry dialog
JP2011113523A (ja) 2009-11-30 2011-06-09 Kyocera Mita Corp ユーザ認証装置
US8667280B2 (en) 2010-02-24 2014-03-04 Ca, Inc. Method and apparatus for applying a partial password in a multi-factor authentication scheme
US8549314B2 (en) 2010-04-29 2013-10-01 King Saud University Password generation methods and systems
WO2012004838A1 (en) 2010-07-09 2012-01-12 Takeshi Mizunuma Service provision method
JP2012133717A (ja) 2010-12-24 2012-07-12 Panasonic Corp パスワード入力認証装置及びこれを用いた携帯端末装置
US9117065B2 (en) * 2011-05-26 2015-08-25 Yingjie Liu Dynamic interactive identity authentication method and system
US8490167B2 (en) * 2011-05-27 2013-07-16 International Business Machines Corporation Preventing password presentation by a computer system
US20130061298A1 (en) * 2011-09-01 2013-03-07 International Business Machines Corporation Authenticating session passwords
WO2013109330A2 (en) 2011-10-31 2013-07-25 The Florida State University Research Foundation, Inc. System and methods for analyzing and modifying passwords
US9524395B2 (en) 2011-11-08 2016-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and methods for obtaining a password hint
TW201325175A (zh) * 2011-12-08 2013-06-16 Pei-An Zheng 一種隨機動態密碼確認機制
US8578476B2 (en) * 2012-03-23 2013-11-05 Ca, Inc. System and method for risk assessment of login transactions through password analysis
US8918836B2 (en) 2012-04-23 2014-12-23 Microsoft Corporation Predicting next characters in password generation
SG194267A1 (en) 2012-05-03 2013-11-29 C3S Pte Ltd Method and system for protecting a password during an authentication process
US8863260B2 (en) 2012-06-07 2014-10-14 International Business Machines Corporation Enhancing password protection
US9489518B2 (en) * 2013-02-06 2016-11-08 Xiaomi Inc. Method and device for unlocking screen
US9305150B2 (en) 2012-12-10 2016-04-05 Lookout, Inc. Method and system for managing user login behavior on an electronic device for enhanced security
JP5514890B1 (ja) 2012-12-10 2014-06-04 株式会社 ディー・エヌ・エー 連続的な不正アクセスを防止する方法
US9143492B2 (en) 2013-03-15 2015-09-22 Fortinet, Inc. Soft token system
US10223517B2 (en) 2013-04-14 2019-03-05 Kunal Kandekar Gesture-to-password translation
EP2793157A1 (en) * 2013-04-19 2014-10-22 Thomson Licensing Apparatus and method for managing passwords
US9536067B1 (en) * 2014-01-01 2017-01-03 Bryant Christopher Lee Password submission without additional user input
JP5936238B2 (ja) * 2014-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パスワードを生成し又は変更する方法、並びに、その電子装置、及び電子装置用プログラム
CN104182678A (zh) 2014-04-24 2014-12-03 东莞盛世科技电子实业有限公司 密码验证装置及密码验证方法
CN105101196B (zh) 2014-05-06 2018-11-02 阿里巴巴集团控股有限公司 一种用户账户管理方法及装置
US10608784B2 (en) 2016-03-15 2020-03-31 ClineHair Commercial Endeavors Distributed storage system data management and security
EP2955655A1 (en) 2014-06-12 2015-12-16 Thomson Licensing Apparatuses and methods for password authentication
GB2528499B (en) 2014-07-24 2021-03-31 Advanced Risc Mach Ltd Correlation determination early termination
US20160050209A1 (en) * 2014-08-18 2016-02-18 Ebay Inc. Access control based on authentication
US9606983B1 (en) 2014-08-27 2017-03-28 Amazon Technologies, Inc. Human readable mechanism for communicating binary data
CN105373749B (zh) 2014-08-29 2018-05-08 国际商业机器公司 用于输入密码的方法和装置
US9400883B2 (en) * 2014-09-17 2016-07-26 International Business Machines Corporation Authentication mechanism
WO2016070029A1 (en) * 2014-10-31 2016-05-06 Florida Atlantic University Secure and noise-tolerant digital authentication or identification
JP5943359B2 (ja) * 2014-11-05 2016-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パスワードを検証するシステム、方法およびプログラム
US10091188B2 (en) * 2015-03-30 2018-10-02 Qualcomm Incorporated Accelerated passphrase verification
US9946867B1 (en) 2015-09-29 2018-04-17 Amazon Technologies, Inc. Input mirroring
US9626506B1 (en) 2015-12-17 2017-04-18 International Business Machines Corporation Dynamic password generation
US10395065B2 (en) 2015-12-28 2019-08-27 International Business Machines Corporation Password protection under close input observation based on dynamic multi-value keyboard mapping
US10171496B2 (en) 2016-01-19 2019-01-01 Cisco Technology, Inc. Beacon spoofing prevention
KR101769119B1 (ko) 2016-02-16 2017-08-17 주식회사 프로젝트사공구 정크 데이터 일치여부를 이용한 사용자 인증 시스템 및 방법
US10608823B2 (en) 2016-06-24 2020-03-31 Fujitsu Limited Cryptographic primitive for user authentication
US10129245B2 (en) 2016-10-04 2018-11-13 Roland R. Brown Timing array as credentials
US20180191702A1 (en) 2017-01-03 2018-07-05 Ca, Inc. Multiple field authentication
US20190141022A1 (en) * 2017-11-07 2019-05-09 International Business Machines Corporation On-premise and off-premise communication
US10812482B1 (en) * 2018-01-03 2020-10-20 Amazon Technologies, Inc. Permission vector access control with linear scaling factor
US10885181B2 (en) * 2018-03-01 2021-01-05 Microsoft Technology Licensing, Llc Usability for password entry
US11399021B2 (en) * 2018-10-31 2022-07-26 SpyCloud, Inc. Filtering passwords based on a plurality of criteria
US11736472B2 (en) 2019-06-10 2023-08-22 Microsoft Technology Licensing, Llc Authentication with well-distributed random noise symbols
US11514149B2 (en) 2019-06-10 2022-11-29 Microsoft Technology Licensing, Llc Pattern matching for authentication with random noise symbols and pattern recognition
US11258783B2 (en) 2019-06-10 2022-02-22 Microsoft Technology Licensing, Llc Authentication with random noise symbols and pattern recognition
US20200389443A1 (en) 2019-06-10 2020-12-10 Microsoft Technology Licensing, Llc Authentication with random noise symbols and pattern recognition
US11178135B2 (en) 2019-06-10 2021-11-16 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11496457B2 (en) 2019-06-10 2022-11-08 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11394551B2 (en) 2019-07-17 2022-07-19 Microsoft Technology Licensing, Llc Secure authentication using puncturing
US11133962B2 (en) 2019-08-03 2021-09-28 Microsoft Technology Licensing, Llc Device synchronization with noise symbols and pattern recognition

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273625A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation Method and system for protecting a user's password
CN104424427A (zh) * 2013-08-28 2015-03-18 联发科技(新加坡)私人有限公司 密码验证方法及装置
US9172697B1 (en) * 2013-09-16 2015-10-27 Kabam, Inc. Facilitating users to obfuscate user credentials in credential responses for user authentication
US20150172273A1 (en) * 2013-12-18 2015-06-18 Ebay Inc. Systems and methods for secure password entry
US9722996B1 (en) * 2015-03-23 2017-08-01 EMC IP Holding Company LLC Partial password-based authentication using per-request risk scores
GB201522528D0 (en) * 2015-08-05 2016-02-03 Intralinks Inc Systems and methods of secure data exchange
US10262129B1 (en) * 2015-11-02 2019-04-16 Shanit Gupta Dynamic password generator with fuzzy matching
SE1650475A1 (en) * 2016-04-08 2017-10-09 Authentico Tech Ab Method and system for secure password storage
CN105975848A (zh) * 2016-04-29 2016-09-28 努比亚技术有限公司 一种密码解锁方法及装置
CN108154017A (zh) * 2017-12-28 2018-06-12 上海传英信息技术有限公司 一种基于智能终端的密码验证方法及密码验证系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HANAN A. MAHMOUD: "Noisy Password Scheme: A New One Time Password System" *
张丽;赵洋;: "身份认证技术的研究与安全性分析" *

Also Published As

Publication number Publication date
WO2020251685A1 (en) 2020-12-17
CN113994632B (zh) 2023-09-22
US20200389446A1 (en) 2020-12-10
EP3967012B1 (en) 2024-03-27
US11240227B2 (en) 2022-02-01
EP3967012A1 (en) 2022-03-16

Similar Documents

Publication Publication Date Title
US10866699B1 (en) User interface for authentication with random noise symbols
CN114008974B (zh) 符号流中的部分模式识别
CN113950804B (zh) 用于认证密码的设备和方法
US11514149B2 (en) Pattern matching for authentication with random noise symbols and pattern recognition
CN113994632B (zh) 符号流中的部分模式识别
US11736472B2 (en) Authentication with well-distributed random noise symbols
US11258783B2 (en) Authentication with random noise symbols and pattern recognition
CN113950805A (zh) 使用随机噪声符号和模式识别进行认证
CN112425118A (zh) 公钥-私钥对账户登录和密钥管理器
US11032270B1 (en) Secure provisioning and validation of access tokens in network environments
US11063936B2 (en) Encryption parameter selection
US20210314339A1 (en) On-demand and proactive detection of application misconfiguration security threats

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant