安全挑战辅助的密码代理转让专利

申请号 : CN201480007612.1

文献号 : CN104969231B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : H·李R·H·奥海依比T·科伦贝格

申请人 : 英特尔公司

摘要 :

本文说明了利用上下文数据来认证个体并防止安全漏洞的认证的系统、装置和方法。示例代理引擎可以监控与计算设备的交互,以获得对用户独特的上下文数据。可以响应于访问安全资源的请求,利用上下文数据来产生独特挑战问题,并可以消除用户记住凭据来访问资源的需要。挑战问题可以被限制为单次使用,且难度的变化与资源的值成比例。响应于对挑战问题的正确响应,代理引擎可以访问含有授权访问资源的凭据的库。库和代理引擎可以整个被包含在计算设备上,或者其可以在经由应用程序或者计算设备上的接口访问的远程装置上实现。

权利要求 :

1.至少一个非暂时性机器可读介质,包括多个指令,其响应于在计算设备上被执行,使所述计算设备进行如下动作:从所述计算设备的一个或多个传感器,并且通过监控借助计算设备的用户接口执行的一个或多个用户活动,获得用户特定的上下文数据;

维护与安全的资源对应的、在所述计算设备上的加密的代理库中的凭据;

经由所述计算设备的接口接收对访问所述安全的资源的请求;

确定与所述凭据相关联的所述安全资源的安全值;

基于在所述用户特定的上下文数据中的上下文数据项目,产生挑战问题;

经由所述计算设备的接口呈现所述挑战问题;

经由所述计算设备的接口接收对所述挑战问题的响应;

评价所述响应的正确性;

响应于所述安全值大于设定安全级别,产生一个或多个附加的挑战问题,所述一个或多个附加的挑战问题基于第二用户特定的上下文数据项目;以及响应于所述响应正确,向所述安全的资源提供所述凭据。

2.如权利要求1所述的至少一个非暂时性机器可读介质,还包括维护计时器一段时间的指令,在此期间,能够接收对所述挑战问题的所述响应。

3.如权利要求1所述的至少一个非暂时性机器可读介质,包括多个指令,其响应于在计算设备上被执行,能够使所述计算设备进行如下动作:响应于所述响应的消极评价,请求与所述安全的资源对应的用户名和密码组合。

4.如权利要求1所述的至少一个非暂时性机器可读介质,包括多个指令,其响应于在计算设备上被执行,能够使所述计算设备进行如下动作:响应于所述监控来产生多个上下文数据项目;以及

用所述多个上下文数据项目来填充所述用户特定的上下文数据。

5.如权利要求4所述的至少一个非暂时性机器可读介质,其中,经由所述计算设备来监控用户活动的指令包含访问如下中的至少一个的指令:日历数据库、电子邮件通信、文本消息、表明所述计算设备的地理位置的数据、来自麦克风的音频信号、网页浏览历史、社交网络交互、或者用户联系人的列表。

6.如权利要求1所述的至少一个非暂时性机器可读介质,其中,所述安全的资源包含如下中的至少一个:银行网站、金融机构门户、教育机构、政府服务、社交网络、电子邮件服务、媒体出口、游戏环境、虚拟现实系统、或者大规模角色扮演游戏。

7.如权利要求1所述的至少一个非暂时性机器可读介质,其中,与安全的资源对应的所述凭据包含在所述加密的代理库中维护的用户名和密码组合。

8.如权利要求1所述的至少一个非暂时性机器可读介质,包括多个指令,其响应于在计算设备上被执行,能够使所述计算设备进行如下动作:接收对所述附加的挑战问题的相应响应;以及

评价所述相应响应的正确性;

其中,至少部分响应于所述相应响应正确,所述凭据被提供给所述安全的资源。

9.如权利要求1所述的至少一个非暂时性机器可读介质,包括多个指令,其响应于在计算设备上被执行,能够使所述计算设备进行如下动作:基于能够从所述计算设备访问的社交网络上的一个或多个社交网络交互来产生问题,或者访问所述计算设备上的个人数据。

10.一种上下文认证的方法,包括:

监控借助计算设备的用户接口执行的一个或多个用户活动;

从所述计算设备的一个或多个传感器获得用户特定的数据;

通过网络将从所述一个或多个用户活动和所述用户特定的数据导出的用户特定的上下文数据传输到被耦接至所述计算设备的代理设备;

将用户凭据的集合存储在加密的库中;

确定与在所述用户凭据的集合中的凭据相关联的安全资源的安全值;

响应于对访问所述用户凭据的集合中的用户名密码组合的请求,基于所述用户特定的上下文数据来产生挑战问题;

评价对所述挑战问题的响应来确定所述响应是否正确;

响应于所述安全值大于设定安全级别,产生一个或多个附加的挑战问题,所述一个或多个附加的挑战问题基于第二用户特定的上下文数据项目;以及当对所述附加的挑战问题的所述响应正确时,通过所述网络将所述用户凭据的集合中与所述安全资源对应的一个用户凭据传输至所述安全资源。

11.如权利要求10所述的方法,其中,所述计算设备包含被配置为存储所述用户凭据的集合的所述加密的库。

12.如权利要求11所述的方法,其中,所述安全资源是响应于被包含在所述用户凭据的集合中的用户名密码组合来提供访问的网站。

13.如权利要求10所述的方法,还包括:

基于对一个或多个问题的用户响应,确定用户的认知状态;

其中,基于所述用户特定的上下文数据来产生所述挑战问题包含将所述挑战问题的难度水平调整至所述用户的所述认知状态。

14.如权利要求10所述的方法,还包括:

产生对所述挑战问题的多个不正确回答;以及

在所述计算设备的显示器上显示所述挑战问题、对所述挑战问题的所述多个不正确回答、以及对所述挑战问题的正确回答。

15.如权利要求14所述的方法,还包括:

响应于所述一个或多个附加的挑战问题,接收附加的输入;

其中,积极评价包含所述附加的输入的积极评价。

16.如权利要求10所述的方法,其中,所述挑战问题的格式响应于一天中的时间或者所监控的借助所述计算设备执行的一个或多个活动而改变,并且被用于产生所述挑战问题的所述用户特定的上下文数据针对单个用户是特定的。

17.一种上下文认证系统,包括:

包含一个或多个传感器的设备,所述一个或多个传感器被配置为基于与所述设备的用户活动,获得用户上下文数据;

所述设备的用户接口,其耦接至代理引擎,所述代理引擎被配置为监控所述用户接口以及所述一个或多个传感器,并在上下文数据库中存储所述用户上下文数据;

安全密码库,其被配置为维护用户凭据的集合,所述安全密码库包括存储器,并被耦接至所述代理引擎;以及代理接口,其被耦接至所述代理引擎,所述代理接口被配置为拦截由所述用户接口接收的对安全资源的请求;

其中,响应于所述请求,所述代理引擎被配置为:确定所述安全资源的安全值,基于所述上下文数据库中的所述用户上下文数据来产生上下文挑战,所述上下文挑战被经由所述代理接口来呈现,响应于所述安全值大于设定安全级别,产生一个或多个附加的挑战问题,所述一个或多个附加的挑战问题基于第二用户特定的上下文数据项目,并且由所述代理引擎防止访问所述安全资源,直至接收了对所述上下文挑战的正确回答。

18.如权利要求17所述的上下文认证系统,还包括:密码代理服务,其经由网络耦接至所述设备,所述密码代理服务被配置为维护所述安全密码库;

其中,响应于所述代理引擎表明接收了对所述上下文挑战的所述正确回答,所述密码代理服务将来自所述用户凭据的集合中的与所述安全资源对应的凭据传输至所述安全资源。

19.如权利要求17所述的上下文认证系统,其中,所述安全密码库被配置为维护多个用户的多个凭据的记录。

20.如权利要求17所述的上下文认证系统,其中,所述安全资源包含如下中的至少一个:银行网站、金融机构门户、教育机构、政府服务、社交网络、电子邮件服务、媒体出口、游戏环境、虚拟现实系统、或者大规模角色扮演游戏。

21.如权利要求20所述的上下文认证系统,其中,所述安全资源包含被配置为接收所述凭据的服务器。

22.如权利要求17所述的上下文认证系统,其中,对所述上下文挑战的所述正确回答消除了用户记忆或者输入用户名或者密码的需要。

23.一种上下文认证的装置,包括:

用于监控借助计算设备的用户接口执行的一个或多个用户活动的单元;

用于从所述计算设备的一个或多个传感器获得用户特定的数据的单元;

用于通过网络将从所述一个或多个用户活动和所述用户特定的数据导出的用户特定的上下文数据传输到被耦接至所述计算设备的代理设备的单元;

用于将用户凭据的集合存储在加密的库中的单元;

用于确定与在所述用户凭据的集合中的凭据相关联的安全资源的安全值的单元;

用于响应于对访问所述用户凭据的集合中的用户名密码组合的请求,基于所述用户特定的上下文数据来产生挑战问题的单元;

用于评价对所述挑战问题的响应来确定所述响应是否正确的单元;

用于响应于所述安全值大于设定安全级别,产生一个或多个附加的挑战问题的单元,所述一个或多个附加的挑战问题基于第二用户特定的上下文数据项目;以及用于当对所述附加的挑战问题的所述响应正确时,通过所述网络将所述用户凭据的集合中与所述安全资源对应的一个用户凭据传输至所述安全资源的单元。

24.如权利要求23所述的装置,其中,所述计算设备包含被配置为存储所述用户凭据的集合的所述加密的库。

25.如权利要求24所述的装置,其中,所述安全资源是响应于被包含在所述用户凭据的集合中的用户名密码组合来提供访问的网站。

26.如权利要求23所述的装置,还包括:

用于基于对一个或多个问题的用户响应,确定用户的认知状态的单元;

其中,基于所述用户特定的上下文数据来产生所述挑战问题包含将所述挑战问题的难度水平调整至所述用户的所述认知状态。

27.如权利要求23所述的装置,还包括:

用于产生对所述挑战问题的多个不正确回答的单元;以及用于在所述计算设备的显示器上显示所述挑战问题、对所述挑战问题的所述多个不正确回答、以及对所述挑战问题的正确回答的单元。

28.如权利要求27所述的装置,还包括:

用于响应于所述一个或多个附加的挑战问题,接收附加的输入的单元;

其中,积极评价包含所述附加的输入的积极评价。

29.如权利要求23所述的装置,其中,所述挑战问题的格式响应于一天中的时间或者所监控的借助所述计算设备执行的一个或多个活动而改变,并且被用于产生所述挑战问题的所述用户特定的上下文数据针对单个用户是特定的。

30.至少一个非暂时性机器可读存储介质,包括多个指令,其响应于在计算设备上被执行,使所述计算设备执行根据权利要求10-16中任一项所述的方法。

说明书 :

安全挑战辅助的密码代理

[0001] 相关申请的交叉引用
[0002] 本申请要求2013年3月5日提交的美国专利申请号13/785,094的优先权的权益,其整体通过参考被并入本文。

背景技术

[0003] 由于其中很多涉及金融或者个人信息的电子可用服务的发展,单独用户的用户名和密码组合的数量每天都在增加。此外,很多在线站点现在要求用户创建账户并提供登入凭据,以访问较不敏感的信息(诸如每日新闻、销售信息、或者星座运势)。作为结果,用户趋向于采取对多个账户选择相同的用户名和密码。该方法降低了用户名/密码组合的安全和强度,因为破解了服务中的一个账户能够导致未授权地访问其他账户。破解在线账户的成本高,但对于一些用户而言,对多个账户创建并有效维护不同的用户名和密码是困难的且不方便。
[0004] 另外,通过特洛伊木马病毒或者应用程序来窃取用户的在线认证信息(诸如用户名、密码、对安全挑战(security challenge)问题的回答、或者其他识别信息)是常见的安全问题。木马病毒的一个最常见机制是通过使用击键记录来盗取用户的认证信息。对反键盘记录技术的常见对策包含通过使用一次性密码(OTP)、屏幕键盘、击键干扰、以及其他非技术方法来混淆木马键盘记录器,从而防止密码盗取的应用程序。这些技术提供了不同水平的保护。然而,其通常依赖于在用户与网站之间的至少一个预建立的共享秘密、或者可能导致不期望的用户体验的动作。这些技术也不能抵挡被设计为不通过击键记录而诸如通过拦截传输至网站的密码来捕捉密码的木马病毒。

附图说明

[0005] 在不一定是成比例绘出的附图中,相似的标号可以说明不同视图下类似的部件。具有不同的字母后缀的相似的数字可以代表类似部件的不同实例。附图通常以示例的方式,而非以限制的方式示出了在本文中讨论的各种实施例。
[0006] 图1是示出根据实施例的具有密码代理引擎的设备的示例的框图。
[0007] 图2是示出根据实施例的配置为通过网络进行通信的设备的示例的框图。
[0008] 图3是示出根据实施例的用于提供安全挑战的示例方案的流程图。
[0009] 图4是根据实施例的示出请求设备、代理设备、以及安全设备之间的示例交互的泳道图。
[0010] 图5是示出可以执行本文说明的任何一个或多个技术的示例机器的框图。

具体实施方式

[0011] 下面的说明和附图充分示出了能使本领域的技术人员付诸实践的具体实施例。其他实施例可以含有构造上、逻辑上、电上、处理上、以及其他方面的变化。一些实施例的部分和特征可以包含在其他实施例的部分和特征中,或者替换其他实施例的部分和特征。记载于权利要求的实施例涵盖这些权利要求的所有可用等同物。
[0012] 保护用户的身份和个人数据催生了强认证的需要。使用一次性密码(OTP)的双因素认证组合了用户知晓的某物(例如,诸如用户名密码组合的凭据)、以及用户具有的某物(例如,令牌或者秘钥卡,其生成仅在短的一段时间内有效的多数字的数)。替代地,可以使用非基于令牌的技术(诸如时间同步或者预建立的秘密)在用户设备与认证者之间产生OTP。用户名、密码、以及OTP的组合可以比只有用户名和密码提供更安全的认证机制。然而,基于令牌的OTP要求用户物理地具有令牌,而其可能丢失,被盗取或损坏。
[0013] 使用一个或多个单次使用、时间敏感、用户特定的安全挑战问题可以消除OTP令牌的需要,并使基于木马的凭据盗取黑客不可能渗透或从窃取获利。因而,本公开相对于替代的安全或者认证系统的优点是:本公开的实施例甚至在一些信息可能被盗取的场景中,也能够保护用户的身份和数据。
[0014] 示例包含维护用个体的个人上下文信息解锁的个体的用户名和密码的方法和系统。可以通过使用利用了一个或多个单次使用安全挑战问题和响应的密码代理服务来提供保护用户密码不被木马病毒盗取。单次使用时间敏感问题可以用特定用户上下文产生,其在大多数实例中是仅用户能够回答的问题。该技术减轻了存在于共享的静态秘密密码的使用中的风险,其可能在传输期间或者从客户端存储装置由木马病毒或者键盘记录器盗取。
[0015] 另外,示例实施例可以通过减少或者消除记住多个用户名密码组合或者其他凭据的需要,改善在与安全资源交互期间的用户体验。用户可以容易响应安全挑战问题,因为该问题是基于用户的知识和当前或者最近的上下文产生的。相反于要求用户记住在设置账户期间他们遇到的随机或者不安全问题的回答(例如,最喜欢的宠物或者颜色、或者婚前姓),认证问题可以与用户生活的当前上下文更密切相关。这相对于用户出于容易忘记的隐私担忧响应于挑战问题而提供错误信息具有优点。通常,除用户外的个体不具有用户的知识或者上下文,并且不能正确回答认证问题。问题的难度可以与被请求的安全资源的值成正比地变化。
[0016] 图1是示出根据实施例的具有密码代理引擎102的设备100的示例的框图。密码代理引擎102被配置为经由用户接口104或者通过访问可能存储在数据库或者记录中的用户数据106来接收用户上下文数据。密码代理引擎102可以在上下文数据库108中存储积累的用户上下文数据。用户上下文数据例如可以包含从GPS模块获得的地理位置、日历数据、联系人信息、来自用户活动传感器的信息、或者可能对设备100或者用户与设备100交互而言独特的任何其他数据。用户上下文数据可以由密码代理引擎102利用,以产生一次性原地(in situ)安全挑战问题并核实用户响应。
[0017] 密码代理引擎102可以从传感器(未示出)接收数据,来根据需要创建上下文观察。例如,在日历应用程序中安排的会议可以表明时间、位置、以及设备100的所有者将来、现在正在、或者过去已经会见的一个或多个个体的名字。可以利用GPS位置数据来确认该设备
100实际上正在或者已经位于会议中表明的位置。例如通过监控设备100的麦克风获取的接收的音频数据还可以被用于确定是否在播放音乐,如果是,那么确定特定歌曲或者艺术家的什么类型的音乐。例如,可以产生并存储如下的用户上下文数据:表明设备100存在于特定城市中特定街道上的咖啡店,其中在“午饭”的标题下安排了与名叫Paul的个体的会议。
用户上下文数据可以整个在设备100上由密码代理引擎102产生并处理,或者密码代理引擎
102可以通过网络130(例如,互联网或者内部网)与一个或多个服务通信,以分析或存储上下文数据库108中的用户上下文数据。上下文数据的其他源可以包含但是不限于用户的通话记录、SMS历史、或者电子邮件交换。
[0018] 密码代理引擎102可以与浏览器或者应用程序110或者被配置为在设备100上操作的另一个应用程序交互。设备100可以被配置为通过有线或者无线接口访问网络130。密码代理引擎102可以被配置为经由用户接口104接收一个或多个用户凭据。一个或多个用户凭据可以包含与一个或多个安全资源相关联的用户名密码组合。例如,用户可以经由用户接口104或者通过参考用户数据106来提供对在线银行门户的统一资源定位符(URL)和用户名密码凭据。用户可能之前已经在该银行建立了金融账户,或者可能经由设备100和银行门户启动与银行的新的关系。
[0019] 另外,用户可以提供对不那么有价值的网站(诸如提供每日优惠信息或者提供向游戏或者社交网络访问的网站)的URL和用户名密码凭据。用户可以给凭据和资源分配不同的安全级别(例如,银行网站可以分类为高值资源,优惠信息网站可以分类为低值资源,并且社交网络可以分类为低和高值类别之间的平均值资源)。还可以利用其他排名或者分类方法,诸如对个体资源应用数值排名。安全级别可以被密码代理引擎102利用,来确定在许可对特定资源的访问之前必须满足的上下文挑战的数字或者难度水平、以及特定上下文挑战有效的时间长度或者必须执行新挑战的频率。
[0020] 在示例中,安全资源可以向设备100表明账户的值。例如,用户对每天优惠信息账户的凭据没有对他们的银行或者退休账户的凭据那么有价值。因此,对每天优惠信息账户而言,一个简单的挑战问题可能就足够,但银行可以表明仅在连续正确回答4个挑战问题之后才可以许可对账户的访问。作为结果,与要求用户输入全用户名和密码相比,访问银行账户的4个输入可以提供更大的安全性,而在用户的部分也要求更少的精力。对于访问账户的策略和要求可能随着时间改变,例如,用户可以对每天优惠信息账户提供信用卡信息,这可能导致将账户的安全级别从具有低安全排名的第一优先级提高至具有比第一优先级更高安全排名的第二优先级级别。作为安全排名增加的结果,用户在访问被许可之前可以被询问来回答附加的中等难度问题。
[0021] 设备100可以包含配置为与浏览器或者应用程序110交互的代理用户接口114,使得用户经由浏览器或者应用程序110做出的访问安全资源的请求可以被拦截。请求可以路由至密码代理引擎102,用于在到安全资源的访问被允许之前由设备100的用户认证。在示例中,当从用户成功收到认证挑战的正确回答时,密码代理引擎102可以将安全证书(例如用户名和密码)提供给安全资源。
[0022] 在示例中,每个认证挑战(例如,每条用户上下文数据)仅可以使用一次,然后被删除或存档。在初始学习或者与设备100的设置处理期间,密码代理引擎102可能不能够从上下文数据库108获得任何或者足够的用户上下文数据来产生认证挑战。如果没有足够的上下文数据,那么密码代理引擎102可以请求用户回答初始的问题集合,以产生可以被用于产生进一步的问题或者对于安全资源的初始访问的初始的上下文数据集合。
[0023] 因为每个个体用户都具有还能够随着时间改变的不同认知水平和记忆状态,所以密码代理引擎102可以基于关于用户的公开数据(例如,发布在社交网络的数据)来最初或者周期性地产生问题的集合,并且询问用户,同时记录用户的响应时间、响应的正确性、以及可以从设备100可用的任何其他输入。由于其公开本质,该公开信息可以被排除不用作产生认证问题的实际上下文信息。可以分析记录的数据,以识别什么类型的问题是简单、平均、或者充满挑战的难度。例如,可以在密码代理引擎102中利用可以确定对于特定个体而言什么简单什么不简单的学习协议。
[0024] 在示例中,密码代理引擎102可以被配置为访问并维护代理库112。代理库112可以是设备100(例如在非易失性存储器中)上的安全数据库,其被配置为以加密的格式存储共享的秘密或者凭据(例如用户名和密码组合)。代理库112可以由密码代理引擎102访问,以在用户已请求访问安全资源并正确响应一个或多个挑战问题之后,取回用于安全资源的特定凭据。
[0025] 代理库112可以:填充有在初始设置期间用户提供的凭据、或者每当用户第一次访问新的安全的资源时更新。设备100可以被配置为仅允许代理库112在设备为安全模式时(例如在所有访问网络130的数据被阻断,使得可以防止恶意键盘记录器应用程序拦截并传输与新安全资源相关联的凭据的配置下)被更新。密码代理引擎102和代理库112可以被配置为通过加密的链接116通信,来防止拦截未加密的(例如纯文本)凭据。
[0026] 如上所述,设备100可以包含代理用户接口114。例如,代理用户接口114可以包含与浏览器或者应用程序110兼容的浏览器插件,其被配置为在浏览器或者应用程序110中接收用户输入并提供用户通知。密码代理引擎102和代理用户接口114可以被配置为通过加密的链接118通信,以防止拦截用户输入。
[0027] 图2是示出根据实施例的配置为通过网络230进行通信的设备200的示例的框图。设备200可以包含密码代理引擎202,其被配置为通过(通过用户接口204)与用户交互来协调对安全服务器240的访问。交互可以包含基于来自从设备200的传感器208获得的上下文信息的、存储在设备200上的用户数据206的挑战问题。安全服务器240可以提供有价值的服务,诸如要求使用凭据来访问的托管网站或者门户(例如www.FirstAcmeBank.com)。
[0028] 密码代理引擎202可以通过网络230与密码代理服务250通信。密码代理服务250可以存储、维护、并提供代表用户的用户id和密码信息。当由密码代理引擎202通知成功的挑战-和-响应认证时,密码代理服务250可以将用户的用户id和密码信息提供给安全服务器240或者密码代理引擎202。
[0029] 密码代理服务250可以向用户提供独立于设备200的分离的安全密码库。用户可以通过与密码代理引擎202交互,或者通过经由网络230耦接至密码代理服务250的替代的安全终端或者设备,访问密码代理服务250上的他的或她的密码库。设备200可以经由分离加密的认证信道访问该密码代理服务250,因而使其对设备200的木马攻击更有弹力。
[0030] 在示例中,密码代理引擎202可以被配置为与密码代理服务250通信,以接收基于从其他应用程序(例如浏览器或者应用程序210)或者设备200上的传感器208收集的特定的原地用户上下文的一次性挑战问题,核实对问题的用户输入响应,并将通知发送给密码代理服务250和用户。例如,利用来自用户数据206的上下文输入“星期六与Paul见面吃午饭,背景在播放音乐”,可以通过略去一个或多个事实从该上下文产生一个或多个问题,诸如“星期六与谁见面吃午饭了?”或者“最近与Paul见面时有音乐正在播放吗?”从挑战问题略去的事实的数量可以取决于相对于被请求的安全资源的值,该问题应该多难。另外,创建多答案的问题能够在一个上下文中提供不同的难度水平,以满足认证的需要。
[0031] 在示例中,设备200可能感染了病毒或者其他恶意软件(诸如键盘记录木马应用程序220)。使用具有活跃木马应用程序220的设备200可能受到黑客260的监控。例如,如果木马应用程序220能够拦截用户接口204上的击键,并通过网络230传输盗取的数据,那么黑客260可能尝试访问用户在安全服务器240上的安全数据。虽然木马应用程序220可能能够拦截用户访问安全服务器240的请求,以及经由用户接口204键入的任何挑战问题响应,但因为由木马捕捉的任何击键都不包含凭据信息,所以防止黑客260获得包含用于访问安全服务器240的用户的凭据的击键。
[0032] 通过向密码代理服务250使用密码代理引擎202指令以响应于一个或多个正确回答的上下文挑战问题来向安全服务器240提供用户的凭据,从而消除了用户键入安全凭据的需要。即使黑客260能够拦截对上下文挑战问题的回答,该回答对于访问安全服务器240也并非是有用的,因为安全服务器240可能不使用挑战问题来核实用户。如果黑客尝试经由设备200上的密码代理引擎202(例如经由恶意软件)来认证,或者安全挑战问题由代理服务250产生,那么黑客的尝试也将失败,因为该问题不会被密码代理引擎202或者密码代理服务250再使用。黑客260利用对上下文挑战问题的回答来与密码代理服务250交互的任何尝试也将同样失败,因为密码代理服务250可以被配置为拒绝再使用任何上下文挑战问题。
[0033] 在示例中,安全服务器240不配置为呈现挑战或者接收响应。反而,密码代理服务250处理这样的挑战-响应活动,并仅在用户正确响应时将肯定指示传递至安全服务器240。
因此,在这样的配置中,即使黑客260能够拦截对上下文挑战问题的回答,当尝试直接访问安全服务器240时这样的回答也是无用的,因为安全服务器240没有参与挑战-响应机制。
[0034] 图3是示出根据实施例的用于提供安全挑战的示例方案300的流程图。方案300例如可以在图1的设备100或者图2的设备200上实现。在302处,可以执行设备上的初始设置。初始设置可以包含接收一个或多个用户凭据,以存储在加密的代理库中。代理库可以对于设备是本地的(诸如在设备100中),或者在远程服务器(诸如图2的密码代理服务250)上维护。初始设置还可以包含基于个体用户的复杂性和存储在代理库中的任何凭据的值,配置或者训练代理引擎来提供适当难度水平的上下文挑战问题。例如,如基于用户的响应时间、响应的正确性、或者其他要素确定的用户的认知水平和记忆能力可以表明:对于与能够对困难问题快速响应的用户相比用正确回答来响应慢的用户而言,可以要求更多数量的简单问题来建立同等水平的安全。
[0035] 在304处,用户可以尝试联系具有配备有代理引擎的设备的安全服务器。在306处,尝试可以被设备上的代理引擎拦截。拦截可以由可以安装在设备上的模块或者插件(例如作为设备的操作系统的一部分)执行、或者在设备上的网页浏览器或者其他应用程序中执行。
[0036] 在308处,代理引擎可以产生一次性安全挑战(诸如基于用户的最近活动或者与用户的设备的交互的上下文问题)。上下文问题可以是多项选择、对错问题、要求基于文本回答的问题的形式,或者其他问题格式。代理引擎可以在设备上产生上下文问题,或者对于用户上下文数据访问代理服务。
[0037] 在310处,代理引擎可以请求用户通过回答上下文问题来提供其身份的核实。上下文问题可以以任何形式(诸如多项选择格式、对错风格问题、或者填空询问、或者通过可以用声音命令回答的口头问题)呈现在显示器上。在312处,评价用户对上下文问题的回答的正确性。评价可以通过密码代理引擎或者通过远程代理服务在设备上执行。
[0038] 在314处,如果评价表明用户的回答正确,那么代理引擎可以确定是否需要附加的挑战,以对请求的安全资源提供期望水平的安全。如果需要附加的挑战,那么然后方案300可以在308处产生挑战问题。如果不需要附加的挑战问题,那么在316处,代理引擎可以例如通过(通过加密的通信信道)从代理库向安全服务器提供用户凭据,与安全服务器建立连接。
[0039] 在318处,如果评价表明用户的回答不正确,那么可以通知用户正确回答挑战问题的任何失败。当用户正确回答挑战问题失败时,方案300可以在320处终止。在示例中,在禁止进一步尝试之前,可以给予用户固定数量的尝试来回答不同的挑战问题。如果禁止进一步尝试(例如锁定设备),那么可以通过提供之前建立的恢复密码来解锁设备。在用户设备上利用方案300的优点是:密码盗取的攻击场景可以减轻下面的风险/攻击:
[0040] 键盘记录木马可以尝试使用软件或者硬件来记录击键,因而捕捉可能被传输至黑客或者其他恶意行为人的用户输入。黑客然后可以使用捕捉的凭据来访问安全资源(诸如银行网站)。
[0041] 可以击败键盘记录木马,因为:(1)用户不需要键入用户id/密码组合,因为凭据由代理服务处理,并且(2)木马可以盗取对挑战问题的回答并把它们发送给黑客,但是该信息对黑客是无用的,因为该问题是基于在时间点处的用户上下文而创建的,仅供单次使用。因此,这些回答不适用于将来的挑战问题,并且不被利用来访问安全的资源。
[0042] 对传统OTP或者盗取信息的自动登入的中间人(MITM)攻击典型地利用常见的密码记录方法,能使黑客获得用户凭据供将来使用。在当接收盗取的凭据时潜行病毒自动登到目标网站而没有显著延时的场景中,典型的OTP方法将无法防止窃取。使用具有来自不同实体(例如客户端设备和密码代理服务)的用户id/密码和挑战/响应的组合的代理,可以更有效针对MITM攻击。
[0043] 黑客可能能够从除木马键盘记录器之外的信道获得用户凭据;然而,通过附加密码代理服务,黑客不能(没有经由分离认证信道响应安全挑战问题的能力)直接访问安全目标网站,如本文说明的那样。类似地,由于可以在设备上或者由密码代理服务产生的挑战问题的动态本质,使用利用了盗取的安全挑战问题/响应的蛮力攻击的尝试可能毫无用处。
[0044] 图4是根据实施例的示出请求设备402、代理设备404、以及安全设备406之间的示例交互的泳道图。设备-设备交互400可以包含或者支持任何各种典型的安全协议,包含但是不限于传输层安全性(TLS)、或者安全套接字层(SSL)。对于附加的信息,互联网工程任务组(IETF)已在RFC 5246(征求意见5246)中准备了TLS协议的1.2版本。设备-设备交互400可以包含或者支持任何各种应用层协议,包含但是不限于超文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、以及可扩展消息收发和呈现协议(XMPP)。
[0045] 请求设备402可以以断断续续或者周期为基础,将上下文数据403发送至代理设备404。代理设备404可以包含通过网络耦接至请求设备402的服务器或者计算资源。上下文数据403可以从用户与请求设备402的交互,从由请求设备402上的一个或多个应用程序存储或访问的数据,或者从其他外部源(例如社交网络、或者其他公开数据源)导出。
[0046] 请求设备402可以(例如从用户)接收指令,以诸如从用户访问安全设备406(例如银行系统)。响应于访问安全设备406的指令,请求设备传输请求410。在图4所示的示例设备-设备交互400中,响应于在408处请求访问安全资源的用户输入,请求设备402可以将代理请求410发送至代理设备404。在替代的示例中,请求410可以由请求设备402上的代理引擎拦截。
[0047] 代理设备404可以在412处产生响应于请求410的一个或多个挑战问题、以及对一个或多个挑战问题的正确响应。除了产生的挑战问题外,代理设备404还可以产生一个或多个错误回答(框414)。挑战问题和错误回答两者都可以基于由请求设备402供应至代理设备404的上下文数据403。在416处,代理设备404可以将挑战问题以及正确和不正确的回答传输至请求设备402,因而响应请求410。
[0048] 在418处,当从代理设备404收到挑战问题和问答时,请求设备402可以用一个或多个挑战问题来提示用户,并从用户接收响应。在420处,用户对挑战问题的响应可以被发送至代理设备404用来评价。不需要向请求设备402提供对挑战问题的哪个潜在回答是正确的指示。
[0049] 在422处,如果呈现了多个问题,那么代理设备404可以评价用户的回答或者多个回答。在424处,评价成功或者失败的通知被传输至请求设备402。如果评价成功(例如,所有的回答被正确提供),那么代理设备可以将认证凭据426提供至安全设备406。可选地,代理设备404还可以将凭据提供至请求设备402。所以,在428处,在426处提供的认证凭据允许请求设备402与安全设备406经由安全连接交换数据。在凭据从代理设备404传递到请求设备402和安全设备406之后可以建立安全连接,因而向请求设备402和安全设备406两者提供可以便于安全通信的常见秘密密钥或者其他加密代码。
[0050] 图5是示出可以执行本文说明的任何一个或多个技术(例如方法)的示例机器500的框图。在替代实施例中,机器500可以作为独立设备操作,或者可以连接(例如联网)至其他机器。在联网的部署中,机器500可以在服务器机器、客户端机器、或者在服务器-客户端网络环境中两者的能力中操作。在示例中,机器500可以作为对等(P2P)(或者其他分布式)网络环境中的对等机器来动作。机器500可以是个人计算机(PC)、平板PC、个人数字助理(PDA)、移动电话、网络家电、或者能够执行指明由该机器采取的动作的指令(序列或者其他)的任何机器。此外,虽然仅示出了单个的机器,但术语“机器”还包含单独或者联合执行(执行本文说明的任何一个或多个方法(诸如云计算、软件即服务(SaaS)、其他计算机集群配置)的)指令的集合(或者多个集合)的机器的任何集合。
[0051] 如本文说明的那样,示例可以包含或者可以操作于:逻辑或者多个部件、模块、或者机构。模块是能够执行指明的操作并可以以某些方式配置或布置的有形实体。在示例中,电路可以作为模块以指明的方式被布置(例如,内部布置或者相对于外部实体(诸如其他电路)布置)。在示例中,一个或多个计算机系统的整个或者一部分(例如独立端、客户端或者服务器计算机系统)、或者一个或多个硬件处理器可以由固件或者软件(例如指令、应用程序部分、或者应用程序)配置作为操作来执行指明的操作的模块。在示例中,软件可以驻存(1)在非暂时性机器可读介质上,或者(2)在传输信号中。在示例中,当由模块的底层硬件执行时,软件使硬件执行指明的操作。
[0052] 相应地,术语“模块”要理解为包含有形实体,该实体是物理建造的、具体配置的(例如硬连线)、或者临时(例如暂时地)配置的(例如编程),以指明的方式操作或者执行本文说明的任何操作的部分或者全部。考虑如下示例:模块被暂时配置,每个模块不需要在时间上的任何一个时刻实例化。例如,当模块包括使用软件配置的通用硬件处理器时,通用硬件处理器可以在不同时间被配置为各自不同的模块。软件可以相应地配置硬件处理器,例如在时间的一个实例处构成特定模块,并在时间的不同实例处构成不同模块。
[0053] 机器(例如计算机系统)500可以包含硬件处理器502(例如处理单元、图形处理单元(GPU)、硬件处理器核心、或者其任何组合)、主存储器504、以及静态存储器506,其中一些或者全部可以经由链接508(例如总线、链接、互相连接等)互相彼此通信。机器500还可以包含显示器设备510、输入设备512(例如键盘)、以及用户接口(UI)导航设备514(例如鼠标)。在示例中,显示器设备510、输入设备512、以及UI导航设备514可以是触摸屏显示器。机器
500可以另外包含大容量存储设备(例如驱动单元)516、信号产生设备518(例如扬声器)、网络接口设备520、以及一个或多个传感器521(诸如全球定位系统(GPS)传感器、照相机、视频录像机、指南针、加速度计、或者其他传感器)。机器500可以包含输出控制器528、诸如串行(例如通用串行总线(USB)、并行、或者其他有线或者无线(例如红外线(I))连接,来与一个或多个外围设备(例如打印机、读卡器等)进行通信或对其进行控制。
[0054] 大容量存储设备516可以包含机器可读介质522,其存储有:实施本文说明的任何一个或多个技术或者功能、或由其利用的数据结构或者指令524(例如软件)的一个或多个集合。指令524还可以完全或者至少部分驻存在主存储器504内、在静态存储器506内、或者在由机器500对其执行期间的硬件处理器502内。在示例中,硬件处理器502、主存储器504、静态存储器506、或者海量存储设备516的一个或者任何组合可以构成机器可读介质。
[0055] 虽然机器可读介质522被示出为单个介质,但术语“机器可读介质”可以包含配置为存储一个或多个指令524的单个介质或者多个介质(例如集中式或者分布式数据库、和/或相关联的缓存和服务器)。术语“机器可读介质”可以包含如下的任何有形介质:能够存储、编码、或者携带由机器500执行并使机器500执行本公开的任何一个或多个技术的指令,或者能够存储、编码或者携带由这样的指令使用或者与其相关联的数据结构。非限制性机器可读介质示例可以包含固态存储器、以及光学和磁介质。机器可读介质的特定示例可以包含:非易失性存储器、诸如半导体存储器设备(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存存储器设备;磁盘(诸如内部硬盘和可移动磁盘);磁光盘;CD-ROM和DVD-ROM盘。
[0056] 可以进一步使用传输介质通过通信网络526经由网络接口设备520利用多个传输协议(例如帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一个传输或接收指令524。示例通信网络可以包含局域网(LAN)、广域网(WAN)、分组数据网络(例如互联网)、移动电话网络(例如蜂窝网络)、普通老式电话(POTS)网络、以及无线数据网络(例如称为 的电气和电子工程师协会(IEEE)802.11系列标准,称为 的IEEE802.16系列标准)、对等(P2P)网络等等。在示例中,网络接口设备520可以包含一个或多个物理插座(例如以太网、同轴、或者电话插座)、或者一个或多个天线以连接至通信网络526。在示例中,网络接口设备520可以包含多个天线来使用单输入多输出(SIMO)、多输入多输出(MIMO)、或者多输入单输出(MISO)技术中的至少一个进行无线通信。术语“传输介质”包含能够存储、编码或者携带由机器500执行的指令的任何无形介质,并包含数字或者模拟通信信号或者便于这样的软件的通信的其他无形介质。
[0057] 各种注解和示例
[0058] 下面的示例涉及其他实施例。示例中的细节可以用在一个或多个实施例中的任何位置。
[0059] 示例1能够包含主题(诸如装置、方法、用于执行动作的单元、或者包含当由机器执行时能够使机器执行动作的指令的机器可读介质),来:从计算设备获得上下文数据的集合;维护与安全的资源对应的凭据;经由计算设备的接口接收访问安全的资源的请求;基于上下文数据的集合中的上下文数据项目来产生独特挑战问题;经由接口呈现独特挑战问题;经由接口接收响应于挑战问题的输入;鉴于上下文数据项目来评价输入;以及响应于输入的积极评价,将凭据提供至安全的资源。
[0060] 示例2能够包含或者能够可选地组合示例1的主题,可选地还包括维护计时器一段时间的指令,在此期间,能够接收对挑战问题的响应。
[0061] 示例3能够包含或者能够可选地组合示例1或2的任何一个或多个的主题,可选地包含多个指令,其响应于在计算设备上被执行,能够使计算设备:响应于输入的消极评价,请求与安全的资源对应的用户名和密码组合。
[0062] 示例4能够包含或者能够可选地组合示例1、2或3的任何一个或多个的主题,可选地包含多个指令,其响应于在计算设备上被执行,能够使计算设备:经由计算设备监控用户活动;响应于监控来产生多个上下文数据项目;以及用多个上下文数据项目来填充上下文数据的集合。
[0063] 示例5能够包含或者能够可选地组合示例4的主题,其中,经由计算设备监控用户活动包含访问如下中的至少一个:日历数据库、电子邮件通信、一个或多个文本消息、表明设备的地理位置的数据、来自麦克风的音频信号、网页浏览历史、社交网络交互、或者用户联系人的列表。
[0064] 示例6能够包含或者能够可选地组合示例1至5的任何一个或多个的主题,其中,安全的资源包含如下中的至少一个:银行网站、金融机构门户、教育机构、政府服务、社交网络、电子邮件服务、媒体出口、游戏环境、虚拟现实系统、或者大规模角色扮演游戏。
[0065] 示例7能够包含或者能够可选地组合示例1至6的任何一个或多个的主题,可选地包含,其中,与安全的资源对应的凭据包含在加密的代理库中维护的用户名和密码组合。
[0066] 示例8能够包含或者能够可选地组合示例1至7的任何一个或多个的主题,可选地使计算设备:确定安全资源的值,其中,至少部分基于安全资源的值来产生挑战问题;响应于该值大于阈值水平,基于上下文数据的集合中的第二上下文数据项目来产生第二独特挑战问题;接收对第二挑战问题的第二响应;以及评价第二响应的正确性;其中,至少部分响应于第二响应正确,凭据被提供给安全的资源。
[0067] 示例9能够包含主题(诸如装置、方法、用于执行动作的单元、或者包含当由机器执行时能够使机器执行动作的指令的机器可读介质),诸如上下文认证的方法包括:监控借助计算设备执行的一个或多个活动;将从一个或多个活动导出的上下文数据传输到通过网络被耦接至计算设备的代理;将用户凭据的集合存储在加密的库中;基于上下文数据响应于访问用户凭据的集合中的用户名密码组合的请求来产生挑战问题;评价对挑战问题的响应,以许可或拒绝访问加密的库;以及当对挑战问题的响应正确时,通过网络将用户凭据的集合中与安全资源对应的一个用户凭据传输至安全资源。
[0068] 示例10能够包含或者能够可选地组合示例9的主题,可选地包含,其中,代理包含被配置为维护用户凭据的集合的加密的库。
[0069] 示例11能够包含或者能够可选地组合示例9或10的任何一个或多个的主题,可选地包含,其中,安全资源是响应于被包含在用户凭据的集合中的用户名密码组合来提供访问的网站。
[0070] 示例12能够包含或者能够可选地组合示例9至11的任何一个或多个的主题,可选地包含:基于用户对一个或多个问题的响应,确定用户的认知状态;其中,基于上下文数据来产生挑战问题包含将挑战问题的难度水平调整至用户的认知状态。
[0071] 示例13能够包含或者能够可选地组合示例9至12的任何一个或多个的主题,可选地包含产生多个对挑战问题的不正确回答;以及在计算设备的显示器上显示挑战问题、对挑战问题的多个不正确回答、以及对挑战问题的正确回答。
[0072] 示例14能够包含或者能够可选地组合示例9至13的任何一个或多个的主题,可选地包含:确定安全资源的安全值;响应于安全值大于设定安全级别,基于上下文数据的集合中的第二上下文数据项目,产生一个或多个附加的挑战问题;以及响应于第二挑战问题来接收附加的输入,其中,积极评价包含附加输入的积极评价。
[0073] 示例15能够包含主题(诸如装置、方法、用于执行动作的单元、或者包含当由机器执行时能够使机器执行动作的指令的机器可读介质),诸如上下文认证系统包括:设备的用户接口,其被耦接至代理引擎,所述代理引擎被配置为监控用户接口并存储上下文数据库中的用户上下文数据;安全密码库,其被配置为维护用户凭据的集合,所述安全密码库被耦接至所述代理引擎;以及代理接口,其被耦接至所述代理引擎,所述代理接口被配置为拦截由用户接口接收的对安全资源的请求;其中,响应于所述请求,所述代理引擎被配置为基于上下文数据库中的用户上下文数据来产生上下文挑战,上下文挑战经由代理接口来呈现,并且由代理引擎防止访问安全资源,直至接收对上下文挑战的正确回答。
[0074] 示例16能够包含或者能够可选地组合示例15的主题,可选地包含:密码代理服务,其经由网络被耦接至设备,密码代理服务被配置为维护安全密码库;其中,响应于代理引擎表明接收了对上下文挑战的正确回答,密码代理服务将来自用户凭据的集合中的与安全资源对应的凭据传输至安全资源。
[0075] 示例17能够包含或者能够可选地组合示例15或者16的任何一个或多个的主题,可选地包含,其中,安全密码库被配置为维护对于多个用户的多个凭据的记录。
[0076] 示例18能够包含或者能够可选地组合示例15至17的任何一个或多个的主题,可选地包含,其中,安全资源是被耦接至网络的第三方服务器。
[0077] 示例19能够包含或者能够可选地组合示例15至18的任何一个或多个的主题,可选地包含,其中,第三方服务器包含如下中的至少一个:银行、金融机构、教育机构、政府服务、社交网络、电子邮件服务、媒体出口、游戏环境、虚拟现实、或者大规模角色扮演游戏。
[0078] 示例20能够包含或者能够可选地组合示例15至19的任何一个或多个的主题,可选地包含,其中,对上下文挑战的正确回答消除了用户记忆或者输入用户名或者密码的需要。
[0079] 示例21能够包含或者能够可选地组合示例1至8的任何一个或多个的主题,可选地使计算设备:基于能够从计算设备访问的社交网络上的一个或多个社交网络交互来产生问题,或者访问计算设备上的个人数据。
[0080] 示例22能够包含或者能够可选地组合示例9至14的任何一个或多个的主题,可选地包含,其中,挑战问题的格式响应于一天中的时间或者监控的借助计算设备执行的一个或多个的活动而改变,并且被用于产生挑战问题的上下文数据针对单个用户是特定的。
[0081] 示例23能够包含主题(诸如装置、方法、用于执行动作的单元、或者包含当由机器执行时能够使机器执行动作的指令的机器可读介质),诸如用于认证用户的装置,其被配置为执行示例9至14或者22中任何一个的方法。
[0082] 示例24能够包含主题(诸如装置、方法、用于执行动作的单元、或者包含当由机器执行时能够使机器执行动作的指令的机器可读介质),诸如机器可读介质,包括响应于在计算设备上被执行而使计算设备执行根据示例9至14或者22中任何一个的方法的多个指令。
[0083] 每个这些非限制性示例能够独立实现,或者能够与任何一个或多个其他示例以任何排列组合来组合。