相关申请的交叉引用
本发明要求2014年12月30日提交的题为“userauthenticationbasedonpersonalaccesshistory(基于个人访问历史的用户认证)”的美国临时申请序列号62/097,675的优先权,其内容通过参考全部并入于此。
发明领域
本发明涉及包括计算机和应用的远程访问和计算机网络上的远程交易。更具体地,本发明涉及用于考虑用户的个人访问历史数据来认证用户的方法和系统。
发明背景
随着计算机系统和应用的远程访问越来越流行,在诸如互联网的公共网络上远程访问的交易的数量和种类极具增加。这样的流行凸显出安全的需要;尤其是:如何确保远程访问应用的人是他们所声称的人,即如何认证基于计算机的应用的用户。
近来,普通用户通常或多或少地访问大多数情况下彼此不相关的大量的应用和网络。这些站点中的一些在允许用户访问之前需要进行某种用户认证。这导致普通用户必须管理大量的认证机制和凭证,尤其是用户名-密码组合。这实际上对于许多用户而言造成了方便性的问题;普通用户发现难以记住单个的安全密码,更不必说针对整个范围的应用的大量密码。因此,许多用户倾向于使用相同的密码用于几个应用和网站和/或选择易于记忆但也容易猜到的密码。这就造成了严重的安全问题。在提供更高的便利性和/或安全性的尝试中,已经开发出单点登录(sso)方案。虽然这样的sso方法能够使得事情对于用户来更加便利,但是从安全性和可访问性的角度来说他们往往成为单点故障。事实上,如果用户针对sso系统进行认证所使用的认证机制被损害(例如,因为用户对于sso系统的密码已经泄露)或者不再可访问(例如,用户已经被阻挡或忘记sso密码),那么这可能累及或者使得sso系统为用户管理的所有账户不可访问。
因此,需要的是与现有系统相比提供更高安全性和/或便利性的用于认证用户的系统和方法。
技术实现要素:
本发明基于发明人的发现:特定用户访问的许多应用持有对于该用户特定的信息宝藏。
本发明还基于发明人的另一发现:虽然对于特定用户为特定的至少一些信息也可以对于至少一些其他人至少部分地可用(例如,与特定用户有一些关系的相同应用的其他用户),但是不可能任何其他用户将会访问该特定用户为特定的信息。这样的必然结果是,能够证明了解对于特定合法用户是特定的所有信息的人很可能是该特定的合法用户。更普遍地,一个人能够证明了解的对于特定合法用户是特定的信息越多,这个人实际上是特定合法用户的可能性越大。
本发明还基于发明人的另一发现:对于许多用户来说,与例如可能和应用没有联系的一些密码相比,更容易记住他们与他们倾向于经常访问的应用之间最近的交互的细节。
本发明还基于发明人的又一发现:因为sso系统具有登录进入大范围的应用的能力,所以sso系统原理上也可以访问各种应用可以针对特定用户保存的并且当他或她登录时特定用户可访问的相同的个人应用信息。
一般原理。
在一些实施例中,sso(单点登录)系统的用户可以通过正确地回答一系列问题来被认证到sso系统,其中的一系列问题涉及合法用户有关的个人信息的了解。在一些实施例中,这些问题可以涉及合法用户与访问由sso系统进行管理的应用的交互历史。在一些实施例中,这些问题可以涉及由合法用户从用户通过sso系统进行访问的应用可检索的特定信息。
本发明的一个方面提供了用于认证用户的方法。在一些实施例中,该方法包括如下步骤:代表用户向两个或更多个基于计算机的应用中的多个应用提供认证凭证;获取用户与多个基于计算机应用之间的历史交互有关的数据;生成用于在访问设备输出的系列问题,这些问题涉及用户与多个基于计算机的应用的历史交互;在访问设备处接收系列问题的答案;评估接收到的答案;使用答案的评估结果来认证用户(或者声称是用户的人)。涉及用户与基于计算机的应用的历史交互有关的数据可被称为个人历史应用数据或本说明书中其他位置的应用交互数据。
在一些实施例中,该方法包括如下步骤:代表用户向两个或更多个基于计算机的应用中的多个应用提供认证凭证;从多个基于计算机的应用获取用户与多个基于计算机应用的历史交互有关的应用交互数据;编写涉及用户与多个基于计算机的应用的历史交互的系列问题;从用户(或者声称是用户的人)接收系列问题的答案;评估接收到的答案;使用答案的评估结果来认证用户(或者声称是用户的人)。在一些实施例中,该方法还包括向用户(声称是用户的人)可访问的访问设备提交系列问题的步骤,用于在访问设备处向用户(或者声称是用户的人)输出系列问题。
在一些实施例中,该方法包括如下步骤:代表用户向两个或更多个基于计算机的应用中的多个应用提供认证凭证;获取用户与多个基于计算机应用之间的历史交互有关的个人历史应用数据;向用户(或者声称是用户的人)提交系列问题,这些问题涉及用户与多个基于计算机的应用的历史交互;从声称是用户的人处接收系列问题的答案;评估接收到的答案;将答案的评估结果使用在决定是否接受声称是用户的人中。
在一些实施例中,该方法可以包括任何先前所述实施例的任何方法,其中获取用户与多个基于计算机的应用的历史交互有关的(个人历史应用)数据可以包括从多个基于计算机的应用获取该数据中的一些或者全部。在一些实施例中,该方法可以包括任何先前所述实施例的任何方法,其中获取用户与多个基于计算机的应用的历史交互有关的(个人历史应用)数据可以包括从用户用于与一个或多个基于计算机的应用进行交互的访问设备获取该数据中的一些或者全部。
在一些实施例中,该方法可以包括任意先前所述的实施例的方法,其中评价接收到的问题的步骤可以包括确定由合法用户已经提供的答案的概率。在一些实施例中,许多因子可以用于确定该概率。这些因子中的一个是接收到的答案的正确度。另一因子是除了合法用户以外的其他用户可以访问可用于检索特定问题的答案的信息的可能性。这可以称之为该信息的分布度。例如,一些信息固有地与其他信息相比与更多人分享或者所知。另一因子可以是即使另外的人没有访问表面正确答案的信息,特定问题的答案被合法用户之外的人正确猜到的可能性。从大群用户的一般行为的角度或者特定用户的正常行为的角度正确答案越出乎意料,探测对于该正确答案的认识从而区别合法用户与其他人的潜力越高。这可以称为(正确)答案的熵。例如,许多人通常大约每天查阅邮件或者使用特定的社交媒体应用。如果问题是“你最后查看邮件是什么时候?”,那么该问题的正确答案如果是“今天”或“昨天”比是“十二天前”更少令人区分。
在一些实施例中,该方法可以包括任意先前所述的实施例的方法,其中评价接收到的问题的步骤可以包括将接收到的答案与已获取的个人历史应用信息进行比较。在一些实施例中,评估接收到的答案的步骤可以包括针对每个接收到的答案来确定接收到的答案与已获取的个人历史应用数据相一致的程度。在一些实施例中,评估接收到的答案的步骤还可以包括向每个接收到的答案指定得分,该得分反映接收到的答案被认为与已获取的个人历史应用数据相一致的程度。
在一些实施例中,该方法可以包括任意先前所述的实施例的方法,其中评价接收到的问题的步骤还可以包括将指定给接收到的答案的所有那些得分组合成单个得分。在一些实施例中,将指定给接收到的答案的所有那些得分组合成单个得分可以包括当组合得分时将不同的权重指定给每个得分,由此特定问题的答案的得分的权重可以反映假设的除了合法用户以外的人正确回答特定问题的困难程度。在一些实施例中,将指定给接收到的答案的所有那些得分组合成单个得分可以用于例如计算接收到的答案的所有分数的(加权)平均。
在一些实施例中,该方法可以包括任何先前所述实施例的任何方法,其中可以向声称是用户的人呈现一系列问题,这些问题涉及用户与多个基于计算机的应用进行的历史交互。在一些实施例中,在将系列问题提交或呈现给声称是用户的人之前完成确定该一系列的问题。在一些实施例中,可以在将系列问题提交给声称是用户的人之前选择和制订该一系列的问题。在一些实施例中,一系列问题中的所有或者一些问题可以同时提交或呈现给声称是用户的人。在一些实施例中,可以将一系列问题中的所有或者一些问题逐个提交或呈现给声称是用户的人。在一些实施例中,只有在声称是用户的人已经提供了系列问题中的先前呈现或提交的问题的答案之后,才向声称是用户的人程序或者提供系列问题中的所有(除了第一问题)问题或者一些问题。在一些实施例中,系列问题不是(完全)预先确定,而是可以动态编写,例如在这样的系列中的一个或多个问题的选择和/或制订可以根据给予系列问题中的先前呈现或提交的问题的答案。
在一些实施例中,该方法可以包括任何先前所述实施例的任何方法,其中至少一个或多个问题的选择和/或制订可以根据已获取的用户与多个基于计算机的应用进行的历史交互有关的个人历史应用数据。在一些实施例中,至少一个或多个问题的选择和/或制订可以与已获取的用户与多个基于计算机的应用进行的历史交互有关的个人历史应用数据无关。
在一些实施例中,该方法包括任何前述实施例的任何方法,其中个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的时间和/或日期有关的数据。在一些实施例中,个人历史应用数据可以包括用户与一个或多个基于计算机的应用进行特定交互的时间和/或日期有关的数据。在一些实施例中,个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的位置相关的数据,例如在特定的时间或日期。在一些实施例中,系统可以用于获取用户在某些时刻位置的知识,例如在登录时。在一些实施例中,系统可以用于例如通过使用应用于用户的访问设备的ip地址的ip(因特网协议)地理定位技术或者通过访问访问设备的gps(全球定位系统)坐标,来获取该信息的用户。在一些实施例中,个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的顺序有关的数据。在一些实施例中,个人历史应用数据可以包括用户已经执行或者提交到一个或多个基于计算机的应用的至少一些交易的内容有关的数据。在一些实施例中,个人历史应用信息可以包括一个或多个基于计算机的应用可以保存和/或管理并且对于用户可访问的与用户相关联的应用数据。
在一些实施例中,该方法可以包括任何先前所述实施例的任何方法,其中还包括比较接收到的问题与已接收到的用户与多个基于计算机应用之间的历史交互有关的个人历史应用数据的步骤。
在一些实施例中,该方法可以包括任何先前所述的实施例的方法,其中使用答案的评价结果的步骤还可以包括使用其他信息。在一些实施例中,其他信息也包括静态个人用户信息有关的一组问题的答案,其中的静态个人用户信息不涉及用户与任何基于计算机的应用交互的历史。
本发明的另一方面提供了一种用于认证用户的系统。在一些实施例中,系统可以用于执行任何前述实施例的任何方法的至少一些步骤。在一些实施例中,系统可以包括单点登录(sso)服务器,其用于执行任何前述实施例的任何方法的至少一些或全部步骤。
个人应用信息的类型和示例。
可以由sso系统用于认证用户的信息类型和问题的示例可以包括登录到应用的日期、时间、顺序和地点。由于用户首先登录到sso系统,并且由于sso系统必须代表用户对用户希望访问的各种应用进行认证,所以sso系统可以具有关于用户在哪个时间和日期以及什么顺序已经访问应用(或者至少开始访问)的精确信息。为了对用户进行认证,sso系统可能会询问用户何时以及按什么顺序访问哪些应用的问题。例如,sso系统可以向用户询问用户在前一天访问过哪个应用,或在用户何时开始使用应用x,或用户在应用y之后开始使用哪个应用。
在一些实施例中,sso系统还可以获取关于用户的位置的信息,例如当用户登录到sso系统并随后访问某些应用时。例如,sso系统可以获取用户可能已经用于与sso系统交互的访问设备(例如用户的pc(个人计算机)或智能电话机)的ip地址,并且sso系统可以使用该ip地址来估计用户的位置。sso系统稍后可能会使用该信息来询问用户有关在用户登录sso系统或访问某些应用的时刻他或她的下落。
类似地,sso系统可以获取关于用户正在使用的访问设备的信息,诸如浏览器的类型。因此,sso系统也可以询问用户正在使用哪个浏览器来访问某些应用。
在一些实施例中,sso可以使用其必须代表用户登录到用户的应用的能力,自主登录并获取与用户相关的应用信息,更具体地获取用户与应用进行交互有关的信息。例如,从用户使用的网上银行应用,sso系统可以获取关于用户的银行帐户的余额或用户最近做出的交易的信息,例如有多少钱被转移到哪个方,或者在卡付款的情况下,哪个卡在何时和哪个商店用于哪个数量。在网络邮件应用的情况下,sso系统可以获取有关何时发送或接收某个邮件的信息,发向哪一方或发自哪一方,以及邮件主题是什么?从社交网站,sso系统可以例如学习用户最近添加谁为朋友或者将谁取消好友,或者用户最近向他或她的朋友发布了什么,或者一般来说,在用户的朋友和亲属圈中似乎正在发生什么。
sso系统可以使用所有这些信息来查询声称是用户的人,以了解该人对该用户的动态个人应用信息的了解程度,因此实际上可以被认为是合法用户。
在一些实施例中,sso系统可以用于生成或编写要提交给用户的一系列问题。这些问题可能与用户的动态个人应用信息相关,并且可以被设计为探测声称是用户的人关于用户的动态个人应用信息的知识,并且sso系统可以用于比较sso一方面已获取的用户有关的信息与另一方面声称是用户的人对于这些问题提供的答案。sso可以从问题模板的集合开始生成或编写一系列问题。每个问题模板可以包括固定和参数化的要素,由此可以通过为所选择的问题模板的所有参数化元素提供确定的值来生成或编写问题。一些参数化要素的一些值可以根据sso已获取的与用户相关的应用信息来确定。一些参数化元素的一些值可以被确定为由声称是用户的人提供的已经提交给用户的问题的答案的函数。在某些意义上,问题模板中的一些可能是通用的,它们与用户的应用或应用群组的任何特定应用无关。其他问题模板可能针对一组或一类应用,或甚至针对单个特定应用。在一些实施例中,应用可以按照应用的类型进行分类,并且某些问题模板可能与某种类型的任何应用相关。例如,某些应用可能被分类为“电子邮件应用”类型,相应的问题模板可能是“您利用<电子邮件应用x>发送的最后一封电子邮件的主题是什么?”,其中<电子邮件应用x>是一个参数,必须用属于“电子邮件应用”类型的用户应用中的一个用户应用的名称进行替换。这个值,即用户应该使用的电子邮件应用的名称可能已经根据早期问题的答案来确定,例如“您最近一个月最常使用哪个电子邮件应用?”
在一些实施例中,生成或编写一系列问题的过程的某些方面可能涉及随机决定。这可能是为了防止攻击者能够预测出哪些问题将被询问。例如,在某些程度上,在一些问题模板中问题的数量、问题的顺序、问题模板的选择以及提供给某些参数的值的选择可以随机化。在一些实施例中,可以使用实际或伪随机生成器来进行这样的随机化决定。
对于信息进行选择和加权。
并非所有以这种方式获取的信息具有相同的意义。例如,如果用户习惯于大约在同一时间每天访问某个站点,则对于熟悉用户的习惯的任何人来说,很容易预测用户何时最后一次访问该站点的问题的回答,特别是如果该应用用于与用户的朋友或亲属进行通信。而且,用户通常不会对自己的个人申请历史有完美的记忆。因此,可以预期的是,即使合法用户偶尔会对某些问题给出错误或不令人满意的答案。
因此,在一些实施例中,sso系统用于明智地选择询问用户问题有关的信息。例如,sso系统可以用于优选地选择除了合法用户之外难以猜测的信息。同样,sso系统可以用于将不同的权重分配给不同的问题。例如,合法用户以外的任何人不太可能知道的信息相关的问题可能比与熟悉合法用户的人可能熟知的信息相关的问题具有更大的权重。
新鲜度。
当选择认证问题中使用的信息时,sso系统可以考虑信息的新鲜度。一般来说,用户更有可能记住关于最近事件的信息,而不是过去更久远发生的事件。例如,许多用户能够记住他们前一天访问的应用,但是对于6个月前的特定日子难以记住同样的事情。类似地,用户更可能记住他/她前一天经由特定电子邮件帐户发送的最后一封电子邮件的主题,而不是几个月前发送的电子邮件的主题。在一些实施例中,sso系统因此优选地选择关于最近事件的信息,而不是关于更早事件的信息。
主题的异质性。
在一些实施例中,sso系统可以用于向用户提交与各种应用相关的问题。在一些实施例中,可以将问题选择为尽可能的异构,例如以最小化合法用户以外而对于合法用户熟悉的人能够猜测正确答案的风险。例如,sso系统可以组合关于由用户访问的社交媒体站点上的内容的问题与关于由用户使用的网络邮件应用发送和/或接收的电子邮件的问题。
在一些实施例中,sso系统可以用于交叉引用不同应用的内容,以便验证该内容可以重叠和/或对于其他人可访问到何种程度。在一些实施例中,sso系统可以用于分析各种应用的内容,并且优化与这些各种应用相关的问题,以确保它们具有最大的区别力来区分合法用户与可能靠近用户或熟悉用户的其他人并且因此可以访问用户使用的至少一些应用的至少一些信息内容。
共享应用和非共享应用(社交媒体versuswebbanking)。
例如,sso系统可以用于从网络邮件应用检索用户发送他或她最后一封电子邮件针对的人的列表,并且可以用于在社交媒体网站上检索私人张贴的内容。sso系统可以用于实现的是,电子邮件的目的地列表中的至少一些人员也处于用户的社交媒体站点的朋友圈中,他们可以访问私人张贴的内容,因此具有基于与这些人交换的电子邮件的问题的答案。为了加强问题的歧视力,sso系统因此可能会询问发送给不在用户的社交媒体网站朋友圈中的人的另一封电子邮件有关的问题。
评价答案。
由于普通用户不能期望对他或她与用户过去交互过的所有应用的进行交互的所有细节进行完美的回忆,所以在某些实施例中,sso系统可以容忍用户给出的响应中一定程度的错误或不准确。
在一些实施例中,sso系统可以向用户询问一系列问题,并且认为分数是每个问题的响应。sso系统可以将这些单个问题分数组合成总分,例如通过将单个问题分数相加。在一些实施例中,sso系统可以对正确回答的问题给出正分,并且组合正分以获取用户正确地回答问题的程度的度量,并且显然对于用户的动态个人应用历史有所了解。在一些实施例中,sso系统可以获取用户总体正确回答问题的程度的一些度量,并且可以使用该度量作为声称是特定用户的人实际上是合法用户的概率的指示。在一些实施例中,sso系统可以对正确回答的问题给出正分,并且组合正分以获取用户正确地回答问题的程度的度量,并且显然对于用户的动态个人应用历史有所了解。在一些实施例中,sso系统可以获取用户不正确地回答问题的程度的一些度量,并且可以使用该度量作为声称是特定用户的人实际上不是合法用户的概率的指示。在一些实施例中,sso系统可以对于错误回答的问题给出负得分,并且将负得分组合以获取用户对问题总体不正确地回答的程度的度量,并且显然不了解用户的动态个人应用历史。在某些情况下,答案通常在某种程度上是正确的,另一方面不正确。在一些实施例中,sso系统可以给出问题答案的负分(反映答案不正确的程度)和正分(反映答案是正确的程度),并将所有问题的正分组合成总正分,并将所有问题的负分组合为总的负分。
将问题进行加权。
一般而言,关于不是合法用户的人可能猜到或多或少的正确答案的可能性,问题可能彼此不同。类似地,关于合法用户可能被误认并给出不正确答案或不能回忆正确答案的可能性,问题可能彼此不同。在一些实施例中为了考虑到这一点,sso系统可以用于在分析答案时对于单独的问题给予不同的权重。例如,在一些实施例中,sso系统可以给出答案分数,并且可以在组合由此加权的分数(例如通过添加加权分数)之前将每个答案的分数乘以每个问题可能是特定的权重。在一些实施例中,对于负分(旨在反映问题未被正确回答的程度),正分(旨在反映问题可能被正确回答的程度)的权重可能是不对称的。即在一些实施例中,对于特定问题的正确答案的权重可能与对相同问题的不正确答案的权重相当不同。例如,在一些实施例中,特定问题被认为是非合法用户相对容易猜测的,因此对于正确的答案可能具有相对较低的权重,而对于同一个问题,合法用户无法正确回答问题被认为是非常不可能的,因此可能会对该问题的错误答案给予高的权重。例如,在一些实施例中,特定的问题被认为对于非合法用户的至少一些人来说回答正确不是非常难,所以给予正确回答相对较低的权重,然而可以同时认为即使合法用户也难以回忆正确的答案,因此也可能对错误的答案给予较低的权重。
例如,在一些实施例中,系统用于询问声称是特定用户的人关于用户已经发送的特定邮件的问题。例如,系统可以询问该人邮件已发送到的收件人数量。在统计上,某些数量的收件人比其他数量的收件人更有可能。例如,任何邮件比例如14个收件人更容易拥有单个收件人。该系统可以用于给出更高的权重问题,对于这些问题正确的答案具有统计学上较少可能的值,因此不太可能被合法用户以外的另一人正确地猜到。因此,在这种情况下,系统可以用于如果有更多的接收者,使得给予该问题的正确答案的权重更高。在另一个示例中,系统还可以询问该人邮件被发送到哪个收件人。在这种情况下,除了合法用户之外,所有实际的收件人也能够正确地回答这个问题。因此,在这种情况下,系统可以用于,如果有更多的收件人,使得给予该问题的正确答案的权重更低。
答案的具体程度和正确性。
在一些实施例中,sso可以向用户提交不具有单个正确答案的问题,而是许多答案可能或多或少正确地在其准确性或特异性方面彼此不同的问题。例如,在一些实施例中,sso可以请求用户指定发生特定事件的时间。如果事件发生在例如前一天下午5时30分,那么所有以下答案在原则上是正确的:“上个月”、“昨天”、“昨天下午”、“昨天傍晚”、“昨天下午5点左右”。然而,很明显,其中这些答案中的一些答案比其他答案更为精确,因此更有助于表明回答这些问题的人确实是真正了解问题所针对的事件。此外,像“5.10pm”这样的答案,严格来说是不正确的,但可能会很好地接近实际的时间值,实际上可能比正式来说正确但是有些精确的其他答案(如“昨天”)更精确或更准确。因此,在一些实施例中,sso系统用于确定给定答案的正确程度和/或准确程度。在一些实施例中,确定的准确度和/或正确程度可用于确定答案的得分。
综合得分。
在一些实施例中,通过将负分或正分相加,可以将(加权的)负分或正分组合成负分或正分。在一些实施例中,可以通过计算负或正分的(加权)平均值来将(加权的)负分或正分组合成总负分或正分。在一些实施例中,通过将非线性模糊逻辑应用于分数,可将(加权)得分组合成总分。
使用人工智能和专家系统。
在一些实施例中,sso系统可以提交关于用户与特定应用的交互的内容的问题。在一些实施例中,sso系统可以使用人工智能和/或专家系统和/或解析人类语言的系统,来解析应用内容用于制定有意义的问题和/或解析用户的答案,并且为了判断答案的正确程度将答案与从应用收集的信息进行比较。例如,sso系统可以向用户提交用户前一天使用应用a与朋友z讨论的问题。用户可以例如简单地回答“足球”。sso系统可以使用人类语言编译系统来分析用户与用户的朋友x之间的对话,来找出他们正在谈论关于俱乐部d的上一场比赛中玩家q的表现。然后sso系统可以使用关于人类兴趣的专家系统意识到,虽然在整个对话中没有使用“足球”这个词,但“足球”的答案却是正确的。在更复杂的层面上,sso系统可以使用人工智能算法来分析用户与朋友x的历史对话,以实现每当用户和朋友x正在交谈他们总讨论的与足球相关的主题时,所以答案“足球”虽然正确但是具有很少的区分力来区分合法用户与例如可能熟悉合法用户甚至熟悉朋友x的人。
使用情况及变化。
在一些实施例中,sso系统除了传统认证机制之外还可以使用动态个人应用数据问题认证机制来认证用户,例如作为对使用传统认证机制所实现的认证的一种双重检查或确认。例如在一些实施例中,可要求用户向sso系统呈现用户名和密码。此外,用户还可能被要求回答与合法用户的个人应用历史相关的一个或多个问题。
避免隐私泄露。
在一些实施例中,一些问题本身可能已经向被要求回答问题(声称是用户)的人泄露关于合法用户的个人和潜在隐私的敏感信息。例如,像“你最近访问应用x是什么时候”的问题本身就显露出显然这个合法的用户正在有效地使用应用x.像“昨天晚上你发给人员y的电子邮件的主题是什么”的问题显示出合法用户显然是知道y,已经向y发送了一封电子邮件,并且昨天已经将该电子邮件发送给了y。
为了避免此类隐私泄露问题,系统用于制定不泄漏关于合法用户的个人信息的问题,即仅制定隐私中性问题。例如,该系统用于在制定问题时不使用与合法用户有关的个人数据,而是仅在评估声称是合法用户的人的答案时使用该个人数据。相反,该系统可以例如用于制定一系列多项选择题,其中任何特定问题的答案的联合涵盖了原则上与给出先前答案的答案一致的所有可能的答案。例如,不是询问问题“你最近何时访问应用x”,系统可能会询问一系列多项选择题;例如,第一个问题可能是“请注明您在上个月访问过的以下应用的所有应用(如果有):应用x、应用y、应用z、以上都不是?”;如果用户回复“应用x和应用z”,则下一个问题可能是“您上次访问应用x的时间:今天、昨天、上周、比上周更早、我不记得了吗”。
在其他实施例中,用户可能必须在用户面临可能在其制定方案中可能在一定程度上揭示关于用户的个人信息的问题之前,首先通过第一级认证。该第一级认证可以例如基于用户提供有效的用户名-密码组合,或者用户提供关于“您的母亲的婚前姓名是什么?”的静态个人信息的问题的正确答案,或者用户提供用户的一系列隐私中性问题的满意答案,如上文更详细说明。
在一些实施例中,可以在注册或配置阶段询问用户以选择或指定用户自己可以接受的问题列表。
在一些实施例中,如果用户不正确地回答了第一个问题,则sso系统可能会询问其他问题。在一些实施例中,如果用户在响应关于个人应用历史的问题上做得不好,那么即使用户提供了正确的密码(或传统认证机制的其他证书),sso系统也可以采取适当的动作。例如,在一些实施例中,即使用户在基于传统认证消息的认证成功的情况下,如果用户对于有关个人应用历史的问题的响应不好,则sso系统也可以拒绝对用户的访问。在一些实施例中,用户可以暂时被拒绝访问,并且可以经过例如使用sms(短消息服务)文本消息或电话呼叫的一些带外通信机制来发送警报。
在一些实施例中,sso系统可以使用动态个人应用数据问题认证机制作为用于认证用户的传统认证机制的替代或备份,例如在传统认证机制已经被破坏或对于用户不再可用或者可访问的情况下,例如如果静态密码已经被泄密或由于用户太多错误的尝试或被忘记而被阻止,或者如果用于生成一次性密码或pki(公钥基础设施)的强认证令牌属于用户的智能卡丢失或被盗。在这种情况下,sso系统可以使用动态个人应用数据问题认证机制作为备份认证机制来认证用户,并且例如发布传统认证机制的用户新凭证(例如重置密码并发布用户密码的新值)。
结合静态个人信息。
在某些实施例中,向用户询问用户对用户的动态个人应用历史的了解可以将问题与静态个人信息相结合,例如“您父亲的出生日期是什么”,“您的第一只宠物的名称”,“你在哪个大学毕业”,“你母亲的婚前姓是什么?”……虽然关于用户的静态个人信息的这些问题有一个优点,即用户不太可能忘记他们,但他们的缺点是由于他们是静态信息,所以总是存在着正确的答案可能迟早会被许多其他人使用的风险。动态个人应用历史信息的情况是相反的,sso系统可以从代表用户进行认证的应用中检索到。一个人与一个应用的交互往往会在时间上演变,这样新的信息就可以连续地被sso用于认证目的。在一些实施例中,sso系统因此可以将关于静态个人信息的问题与关于用户的动态应用历史的补充问题相结合。
逐渐提高问题的难度等级。
在一些实施例中,sso系统可在使用者相当不寻常或甚至被认为有压力的情况下使用动态个人应用数据问题认证机制。例如在一些实施例中,sso系统可以使用动态个人应用数据问题认证机制作为传统认证机制的备份,其中的传统认证机制可能已经被破坏或可能已经变得不可用或用户不可访问。在这种情况下,用户可能受到压力,这反过来导致用户更难以正确回答问题。在一些实施例中,sso系统可以考虑这种效果,并且可以调整问题以试图使用户放松以缓解该效果。例如,在一些实施例中,sso系统可以用于针对一系列问题中的每一个来估计在正确回答问题时用户可能不利地受到压力的不利影响的风险,并且可以按照该概率的顺序排列问题,可以按此顺序将问题提交给用户。例如,在一些实施例中,在会话开始时,sso系统可以用于优选地向用户提交用户可能发现容易正确回答的问题和/或用户正确回答它们的能力受到压力影响最小的问题,并在认证会话的较后阶段,向用户提交sso系统估计用户可能会发现更难以正确回答的问题和/或用户正确回答问题的能力受压力影响更大的问题,并且为了认证会话的结束,保留sso系统估计用户可能会发现最难以正确回答的问题和/或用户回答正确的能力可能受到压力影响最大的问题。
附图说明
从下面尤其是如附图中所示的本发明的实施例的描述,本发明的以上以及其他特定和优点将是清楚的。
图1示意性示出根据本发明的一方面的示例系统。
图2示意性示出根据本发明的一方面的示例方法。
图3示意性示出根据本发明的一方面的另一示例系统。
详细说明
下面讨论本发明的一些实施方式。虽然讨论具体的实施方式,应当理解的是这只是出于说明的目的。本领域技术人员将认识到在不背离本领域的精神和范围的情况下可以使用的其他组件和配置。
图1示意性示出根据本发明的一方面的发明的示例系统(100)。
在一些实施例中,系统可以包括用于托管基于应用的至少两个不同的计算机的多个应用服务器(110),以及允许用户(190)访问和/或与基于各种计算机的应用进行交互的一个或多个访问设备(120)。在一些实施例中,系统还可以包括用于认证用户并且向用户提供对于基于各种计算机的应用的访问的sso服务器(130)。在一些实施例中,应用服务器和/或访问设备和/或sso服务器可以相互通信,例如在例如可以包括互联网的计算机网络(150)上交换数据。
在一些实施例中,访问设备(120)用于允许用户(190)访问和/或与基于计算机的应用进行交互。在一些实施例中,访问设备可以包括用户输入接口(诸如,键盘)和/或用户输出接口。访问设备还可以包括将访问设备连接到计算机网络(150)的接口,例如用于与应用服务器(110)和/或sso服务器(130)通信。在一些实施例中,访问设备可以包括例如个人计算机(pc)、膝上型计算机、平板计算机、或智能手机。在一些实施例中,访问设备可以包括sso客户端代理,其可以在对于sso服务器来认证用户中和/或在代表用户向一个或多个应用服务器(190)提供认证凭证的过程中与sso服务器(130)进行协作。例如,在一些实施例中,sso服务器可以将这些认证凭证提供给访问设备上的代理,二代理可以反过来将这些认证凭证提供给一个或多个应用服务器。
在一些实施例中,基于计算机的应用中的至少一些可以包括基于网络的应用,并且应用服务器(110)可以包括网络服务器。
在一些实施例中,sso服务器(130)用于代表用户向至少两个基于计算机的应用中的至少一些应用提供认证凭证用于认证用户。在一些实施例中,sso服务器可以包括数据库,例如用于存储至少两个基于计算机的应用中的至少一些应用的与用户相关联的用户名-密码组合。sso服务器可以包括一个或多个计算设备,诸如一个或多个服务器计算器。这些一个或多个服务器计算机可以包括数据处理器组件,诸如微处理器;数据存储器组件,用于存储数据和用于实现说明书中其他位置详细描述的方法步骤和/或一个或多个任务的计算机代码,诸如ram存储器和/或硬盘。
在一些实施例中,该系统可以与本说明书中其他位置所述的用于认证用户的方法的任何实施例一同使用。在一些实施例中,sso服务器(130)可以用于实现本说明书中其他位置所述的用于认证用户的任何方法的一个或多个或者所有步骤。在一些实施例中,本说明书中其他位置所述的用于认证用户的任何方法的一个或多个或者所有步骤可以通过访问设备(120)来执行。例如,在一些实施例中,访问设备(120)可以包括软件代理,其可能与sso服务器(130)合作地执行本说明书中其他位置所述的用于认证用户的任何方法的一个或多个或者所有步骤。
图2示意性示出根据本发明的一方面的用于认证用户的示例方法(200)。该方法的变型可以与诸如本说明书中其他位置所述的任何系统的系统一同使用。
在一些实施例中,方法可以包括代表用户向两个或多个基于计算机的应用提供(210)认证凭证的步骤。例如,在一些实施例中,该步骤可以包括针对两个或多个应用中的至少一些应用来提供与用户相关联的用户名-密码组合。
在一些实施例中,方法可以包括例如从多个基于计算机的应用获取(220)用户与多个基于计算机的应用进行历史交互相关的个人历史应用数据(例如,应用交互数据)的步骤。在一些实施例中,个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的时间和/或日期有关的数据。在一些实施例中,个人历史应用数据可以包括用户与一个或多个基于计算机的应用进行特定交互的时间和/或日期有关的数据,诸如例如读取通过网络邮件应用接收的特定邮件或者对于社交媒体应用中的张贴做出反应或者在股票交易应用中下单。在一些实施例中,个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的位置相关的数据。在一些实施例中,个人历史应用数据可以包括用户访问一个或多个基于计算机的应用的顺序有关的数据。在一些实施例中,个人历史应用数据可以包括用户已经执行或者提交到一个或多个基于计算机的应用的至少一些交易的内容有关的数据。在一些实施例中,个人历史应用信息可以包括一个或多个基于计算机的应用可以保存和/或管理并且对于用户可访问的与用户相关联的应用数据。在一些实施例中,该获取用户与多个基于计算机的应用的历史交互有关的个人历史应用数据的步骤可以包括代表用户登录到一个或多个基于计算机的应用,并且也包括与这些一个或多个基于计算机的应用进行交互以便从这些一个或多个基于计算机的应用获取上述个人历史应用数据。
在一些实施例中,方法可以包括向声称是用户的人提交(230)一系列问题,这些问题涉及用户与多个基于计算机的应用进行的历史交互。在一些实施例中,该方法可以包括声称是用户的人向可访问的访问设备提交(230)系列问题的步骤。在一些实施例中,该方法还包括访问设备向声称是用户的人转发(230)系列问题的步骤。
在一些实施例中,该方法可以包括从声称是用户的人接收(240)系列问题的答案的步骤。
在一些实施例总,方法可以包括评价(250)接收到的答案的步骤。在一些实施例中,评价答案的步骤可以包括比较(255)接收到的与所获取的用户与多个基于计算机的应用的历史交互有关的个人历史应用数据的答案。
在一些实施例中,该方法可以包括在例如针对计算机系统、网络和/或应用确定是否认证声称是用户的人中,使用(260)答案的评估结果的步骤。在一些实施例中,使用答案的评估结果的步骤也包括其他信息,诸如静态个人用户信息有关的一组问题的答案,其中的静态个人用户信息可能不涉及用户与任何基于计算机的应用的交互历史。
在一些实施例中,该方法可以包括进一步包括生成或编写系列问题的步骤的任意先前所述实施例的方法。
在一些实施例中,该方法可以包括任意先前所述实施例的方法,其中编写系列问题的步骤可以包括动态地编写系列问题中的至少一个问题的步骤。
在一些实施例中,动态编写系列问题的至少一个问题的步骤包括:根据从声称是用户的人接收到的针对系列问题中的已提交给此人的一个或多个问题的答案,来选择或者制定所述至少一个动态编写问题。
在一些实施例中,编写系列问题的步骤可以包括选择或者构思系列问题中的一个或多个问题作为已获取的用户与多个基于计算机应用的历史交互有关的个人历史应用数据的函数。
在一些实施例中,编写系列问题的步骤可以包括选择或者构思系列问题中的一个或多个问题,而不考虑已获取的用户与多个基于计算机应用的历史交互有关的个人历史应用数据。
在一些实施例中,编写系列问题的步骤可以包括选择或者构思系列问题的所有问题,而不考虑已获取的用户与多个基于计算机应用的历史交互有关的个人历史应用数据。
在一些实施例中,编写系列问题的步骤可以包括存储问题模板列表,选择所存储的问题模板列表中的至少一个问题模板,以及基于至少一个已选择的问题模板来编写至少一个问题。在一个实施例中,至少一个已选择的模板可以包括一个或多个参数化的要素,并且所述的基于至少一个已选择的问题模板来编写至少一个问题可以包括确定一个或多个参数化要素的值。
在一个或多个实施例中,编写系列问题的步骤可以包括获取和使用随机数据要素。在一些实施例中,编写系列问题的步骤可以包括使用所述的随机数据要素来确定系列问题中的问题的数量或顺序。在一些实施例中,编写系列问题的步骤可以包括使用所述的随机数据要素来从已存储的问题模板列表中选择至少一个问题模板,并且使用所选择的至少一个问题作为基础来编写系列问题中的至少一个问题。在一些实施例中,编写系列问题的步骤可以包括使用所述的随机数据要素来选择问题模板中的参数的值,其中的问题模板可以作为基础用于编写系列问题中的至少一个问题。
在一些实施例中,该方法可以包括任意先前所述的实施例的方法,其中系列问题包括用户与多个基于计算机的应用中的至少两个不同应用的历史交互有关的问题。
在一些实施例中,该方法可以包括任意先前所述的实施例的方法,其中评价接收到的问题的步骤可以包括向每个接收到的答案指定得分并且将单个问题的得分组合成总分。
在一些实施例中,该方法可以包括评估接收到的答案的步骤包括如下步骤的任何先前所述的实施例的方法:将负分指定给一个或多个接收到的答案,其中针对特定的接收到的答案的负分反映出该特定接收答案的不正确程度,并且将正分指定给一个或多个接收的答案,其中这样的正分反映出特定的接收到的答案的正确程度,并且将单独答案的负分组合为总负分而将单独答案的正分组合成总正分。
在一些实施例中,该方法还包括向不同问题对应的得分指定不同的权重。
在一些实施例中,将单独答案的负分正分组合为总的负分正分可以包括将单独答案的负分正分相加。
在一些实施例中,将单独答案的负分正分组合为总的负分正分可以包括计算单独答案的负分正分的平均值。
在一些实施例中,计算总分作为单独问题的得分的非线性函数。
在一些实施例中,将单独问题的得分组合为总分可以包括将模糊逻辑应用于单独问题的得分。
在一些实施例中,该方法可以包括任意前述实施例的方法,其进一步包括如下步骤:在向声称是用户的人提交系列问题的步骤之前,将第一认证测试应用到声称是用户的人的步骤,其中执行向声称是用户的人提交系列问题的步骤的条件是声称是用户的人成功地通过所述第一认证测试。
在一些实施例中,该方法的至少一些步骤可以由sso系统或者类似关于图1中所述的系统的sso服务器的服务器来执行。在一些实施例中,方法的所有步骤通过计算机系统来自动执行,诸如sso系统或者类似关于图1中所述的系统的sso服务器的服务器,例如为了保护用户的个人信息的隐私性和/或防止除了合法用户以外的人访问与用户相关联并且适合将用户认证到一个或多个基于计算机的应用的认证凭证。
图3示意性示出根据本发明的一方面的发明的示例系统。在一些实施例中,图1和图3都对于系统进行说明。
在一些实施例中,系统可以包括单点登录(sso)系统(300),其用于将用户认证到两个或更多个基于计算机的应用中的多个应用,其中sso系统可包括:代表认证代理(310),用于代表用户向两个或更多个基于计算机的应用中的多个应用提供认证凭证;应用检索组件(320),用于获取用户与多个基于计算机的应用的历史交互有关的个人历史应用数据;问题提交组件(330),用于向声称是用户的人提交一系列问题,这些问题涉及用户与多个基于计算机的应用的历史交互;答案收集组件(340),用于从声称是用户的人接收系列问题的答案;评估组件(350),用于评价接收到的答案;用户接受组件(360),用于在确定是否接受声称是用户的人的过程中使用答案的评价结果。
在一些实施例中,sso系统可以包括sso服务器,诸如联系图1所讨论的sso服务器(130),并且sso系统中所包括的一个或多个上述组件和/或代理可以包括在sso服务器中。在一些实施例中,sso系统也可以包括访问设备,诸如联系图1所述的访问设备(120),并且sso系统中所包括的一个或多个上述组件和/或代理可以包括在该访问设备中。
在一些实施例中,sso系统还可以包括用于生成所述系列问题的问题生成组件(370)。在一些实施例中,sso系统还可以包括用于存储问题模板列表的数据存储组件,并且所述生成组件还用于基于所述问题模板列表的至少一个问题模板来生成所述系列问题的至少一个问题。
在一些实施例中,sso系统还包括用于生成随机数据要素的随机数据生成组件(380),并且所述生成组件还用于在所述系列问题的生成中使用所述随机数据要素的值。
已经描述了许多实施方式。然而,应当理解的是可以做出各种修改。例如,一个或多个实施方式的要素可以进行组合、删除、修改或补充从而形成另外的实施方式。因此,其他的实施方式在所附权利要求的范围中。另外,虽然特定的特征只针对几个实施方式中的一个实施方式进行公开,但是当对于任何给定或特定应用有益并且期望时,这样的特征可以与其他实施方式的一个或多个其他特征进行组合。关于方法的实施例,虽然按照特定的顺序描述各个步骤,本领域技术人员将清楚的是可以修改这些步骤中的至少一些步骤的顺序。本领域技术人员也将清楚的是一些步骤是可选的,并且可以添加其他的步骤。虽然上面描述了各种实施例,应当理解的是它们仅作为示例来呈现而并非限制。特定地,当然无法为了描述所要求的主体而描述组件或方法的每个可想到的组合,但是本领域的普通技术人员之一可以认识到的是其他组合和置换是可能的。因此,在此的教导的广度和范围不应当受限于任何上述示例实施例,而应当仅根据下面的权利要求及其等同物来限定。