使用非对称密钥的多因素用户认证框架的制作方法

文档序号:14650072发布日期:2018-06-08 21:36阅读:155来源:国知局
使用非对称密钥的多因素用户认证框架的制作方法

随着计算技术的进步,计算机已变得越来越普遍且以各种不同的方式被使用。例如,用户通过其移动电话、台式计算机、膝上型计算机等经由互联网来运行应用和访问服务。应用和服务通常期望使用户得到认证,以便应用或服务知道该用户实际上是他或她声称的人。然而,提供这样的认证对计算设备开发者而言依然是难题。

概述

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。

根据一个或多个实施例,在计算设备中,公钥/私钥对的私钥的知识证明被接收自认证系统。私钥的知识证明包括由姿势系统检测到的用户的姿势已由认证系统验证的指示,该姿势指示用户存在于计算设备处。用户的认证结果至少基于私钥的知识证明而被提供给认证结果的请求者。

附图简述

结合附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在说明书和附图的不同实例中使用相同的附图标记可指示相似或相同的项目。附图中所表示的各实体可指示一个或多个实体并且因而在讨论中可互换地作出对各实体的单数或复数形式的引用。

图1解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的示例系统。

图2解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的另一示例系统。

图3解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的另一示例系统。

图4是解说根据一个或多个实施例的用于实现使用非对称密钥的多因素用户认证框架的示例过程的流程图。

图5解说了包括示例计算设备的示例系统,该示例计算设备代表可实现本文中所描述的各种技术的一个或多个系统和/或设备。

详细描述

本文中讨论了使用非对称密钥的多因素用户认证框架。该框架包括主机设备、用户代理、姿势系统和认证系统。多因素包括用户凭证(其包括非对称密钥),以及指示用户在场(例如,存在于主机设备或实现姿势系统的其他设备处)的用户姿势。用户与用户代理交互以便获得需要用户认证的事物的访问权,诸如远程服务、程序、设备,等等。认证系统维护用户凭证,用户凭证被提供以响应于姿势系统确定用户在场而认证该用户。姿势系统可按各种不同的方式来确定用户是在场的,诸如基于用户输入个人标识号(PIN)、关于用户的生物计量信息、姿势系统的地理位置,等等。用户代理、姿势系统和认证系统可以在相同的设备(例如,主机设备)上实现,或者替换地跨一个或多个不同的设备实现。

本文中所讨论的技术提供了一种用于多因素用户认证的框架。各种程序、服务、设备等可利用本文中所讨论的框架,从而通过认证用户来增加这些程序、服务、设备等的安全性。例如,本文中所讨论的框架可被用来登录到计算设备(例如,主机设备),以通过互联网访问远程服务(例如,用户的银行、商家)、在用户已登录到计算设备之后运行该计算设备上的程序,等等。通过使用相同的框架,用户体验跨相同框架的这些不同用途保持一致,从而通过允许用户被呈现一致的用户体验而不必非得学习及与多个不同用户体验交互来改善实现该框架的设备的可用性。

此外,本文中所讨论的技术提供了可扩展框架,其允许实现姿势系统、认证系统和/或用户代理的不同设备被使用。例如,用户代理和认证系统不被绑定到实现姿势系统的任何特定类型的姿势设备,并且可被容易地适配成使用任何类型的姿势设备。

本文中针对对称密钥密码学、公钥密码学和公钥/私钥对有所提及。虽然这样的密钥密码学对于本领域技术人员而言是公知的,但是对这样的密码学的简要概述被包括在此以帮助读者。在公钥密码学中,实体(诸如用户、硬件或软件组件、设备、域等)已将公钥/私钥对(也称为非对称密钥)与其相关联。公钥可被使得可公开获得,但实体将私钥保密。在没有私钥的情况下,解密使用公钥加密的数据在计算上是非常困难的。所以,数据可由任何具有公钥的实体加密,然而只能由具有对应私钥的实体解密。附加地,用于数据的数字签名可通过使用该数据和私钥来生成。在没有私钥的情况下,创建可以使用公钥验证的签名在计算上是非常困难的。具有公钥的任何实体都可使用公钥以通过对公钥、数字签名和被签名的数据执行适当的数字签名验证算法来验证该签名。

另一方面,在对称密钥密码学中,共享密钥(也称为对称密钥)被两个实体知晓并保密。具有共享密钥的任何实体通常能够解密用该共享密钥加密的数据。在没有共享密钥的情况下,解密用共享密钥加密的数据在计算上是非常困难的。所以,如果两个实体都知道共享密钥,则每个实体可加密可以由另一实体解密的数据,但是如果其他实体不知道该共享密钥,则其他实体不能解密该数据。类似地,具有共享密钥的实体可加密可以由该相同实体解密的数据,但是如果其他实体不知道该共享密钥,则其他实体不能解密该数据。附加地,数字签名可基于对称密钥密码学(诸如使用密钥散列消息认证码机制)来生成。具有共享密钥的任何实体可生成和验证数字签名。例如,受信第三方可基于特定实体的身份来生成对称密钥,并接着可生成并验证用于该特定实体的数字签名(例如,通过使用对称密钥对数据进行加密或解密)。

图1解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的示例系统100。该系统100包括主机设备102、用户代理104、姿势系统106和认证系统108。一般而言,用户代理104允许用户使用主机设备102与系统100交互,以例如请求对用户期望访问的服务、程序、设备等的访问权。用户代理104可以是在主机设备102上运行的程序,或者替换地由主机设备102访问(例如,用户代理104可以是运行在云中并经由互联网访问的web应用)。认证系统108维护作为系统100的用户(例如,存在于主机设备102或实现姿势系统的另一设备处的用户)的多因素认证中的一个因素的用户凭证。姿势系统106通过从特定用户获得信息(在本文中也被称为姿势)(诸如通过从该用户接收PIN或生物计量信息)来确定该用户是否存在于系统100处。姿势是系统100的用户的多因素认证中的另一因素。只有在确定特定用户存在于系统100处且来自认证系统108的用户凭证被验证的情况下,对该特定用户的认证才是成功的,如下面更详细地讨论的。

用户代理104、姿势系统106和认证系统108可以在相同的计算设备(例如,主机设备102)上实现,或者替换地在一个或多个不同的设备上实现。当在不同的计算设备上实现时,用户代理104、姿势系统106和认证系统108中的不同者可以经由各种不同类型的通信机制中的任一种彼此通信。例如,这样的通信可经由有线或无线连接来发生,诸如USB(通用串行总线)连接、无线USB连接、红外连接、蓝牙连接、蓝牙低能量(BLE)连接、近场通信(NFC)连接、DisplayPort连接、PCI(外围组件互连)Express(高速)连接,等等。通信可替换地或附加地经由数据网络来发生,诸如互联网、局域网(LAN)、电话网络、内联网、个域网(PAN)、其他公共和/或专有网络、其组合,等等。

被用来实现主机设备102、用户代理104、姿势系统106和认证系统108的任何组合的每个计算设备可以是各种不同类型的计算设备中的任一种。例如,这样的计算设备可以是台式计算机、服务器计算机、膝上型计算机或上网本计算机、移动设备(例如,平板或者平板手机设备、蜂窝式或其他无线电话(例如,智能电话)、记事本计算机、移动站)、可穿戴设备(例如,眼镜、头戴式显示器、手表、手环)、娱乐设备(例如,娱乐电器、通信地耦合到显示设备的机顶盒、游戏控制台)、物联网(IoT)设备(例如,具有用于允许与其他设备的通信的软件、固件和/或硬件的物体或事物)、电视机或其他显示设备、汽车计算机,等等。

图2解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的另一示例系统200。系统200包括主机设备202,主机设备202是主机设备102且包括用户代理104、姿势系统106和认证系统108。因此,图2解说了其中用户代理104、姿势系统106和认证系统108全部在相同设备中实现的示例。

主机设备202可被具体化为任何合适的计算系统和/或设备,诸如作为示例而非限制:游戏系统、台式计算机、便携式计算机、平板或板式计算机、诸如个人数字助理(PDA)之类的手持式计算机、蜂窝电话、机顶盒、可穿戴设备(例如,手表、腕带、眼镜等),等等。例如,如图2所示,主机设备202可被实现为电视机客户端设备204、计算机206和/或连接到显示设备210以显示媒体内容的游戏系统208。替换地,主机设备202可以是任何类型的便携式计算机、移动电话、或包括集成显示器214的便携式设备212。主机设备202还可被配置为可穿戴设备216,其被设计成由用户穿戴、附连到用户、由用户携带、或者以其他方式由用户运送。图2中所描绘的可穿戴设备216的示例包括眼镜、智能腕带或手表、以及荚式设备,诸如夹扣健身设备、媒体播放器或跟踪器。可穿戴设备216的其他示例包括但不限于徽章、密钥卡、访问卡、环、衣物物件、手套、或手环,仅举几个示例。主机设备202可用各种组件来实现,诸如一个或多个处理器和存储器设备以及不同组件的任何组合。

图3解说了根据一个或多个实施例的实现使用非对称密钥的多因素用户认证框架的另一示例系统300。与图2的系统200相比,在系统300中,用户代理104、姿势系统106和认证系统108各自实现在不同设备中。系统300包括是主机设备102且包括用户代理104的主机设备302、包括姿势系统106的姿势设备304,以及包括认证系统108的认证设备306。主机设备302、姿势设备304和认证设备306各自还分别包括通信系统312、314和316。通信系统312、314和316各自支持如以上所讨论的各种不同类型的通信机制中的一种或多种。

主机设备302可具体化为任何合适的计算系统和/或设备。例如,如图3所示,主机设备302可被实现为电视机客户端设备322和/或连接到显示设备326以显示媒体内容的计算机324或便携式计算机328。

姿势设备304可具体化为任何合适的计算系统和/或设备。例如,如图3所示,姿势设备304可被实现为可穿戴设备330,其被设计成由用户穿戴、附连到用户、由用户携带、或者以其他方式由用户运送。图3中所描绘的可穿戴设备330的示例包括眼镜、智能腕带或手表、以及荚式设备,诸如夹扣健身设备、媒体播放器或跟踪器。可穿戴设备330的其他示例包括但不限于徽章、密钥卡、访问卡、环、衣物物件、手套、或手环,仅举几个示例。

认证设备306可具体化为任何合适的计算系统和/或设备。例如,如图3所示,认证设备306可被实现为任何类型的便携式计算机、移动电话、或包括集成显示器334的便携式设备332。

尽管在图2和图3中讨论了在单个设备中以及跨三个不同设备实现用户代理104、姿势系统106和认证系统108的示例,但是应当注意,用户代理104、姿势系统106和认证系统108可跨任何数量的设备来实现。例如,用户代理104和姿势系统106可被实现在一个设备中,并且认证系统108被实现在分开的设备中。作为另一示例,姿势系统106和认证系统108可被实现在一个设备中,并且用户代理104被实现在分开的设备中。作为又一个示例,用户代理104、姿势系统106和认证系统108中的一者或多者可跨多个设备分开且由多个设备来实现。

返回到图1,主机设备、用户代理、姿势系统和认证系统中的不同者之间的通信被保护免受欺骗和篡改,而不管有多少设备被用来实现主机设备、用户代理、姿势系统和认证系统。这种针对欺骗和篡改的保护可按各种不同的方式中的任一种来实现。在一个或多个实施例中,在其中通信从一个设备传递到另一设备的情况中,被传达的信息可被加密、被数字签名、经由专用线路(例如,仅用于该通信且以其他方式对其他设备不可用的通信信道)传递,等等。在其中通信在相同设备内被传递(例如,在两个进程之间)的情况中,被传达的信息可被加密、被数字签名,等等。替换地,通信可保留在设备的安全处理区域内(例如,受信区或虚拟机可被建立,其包括实现姿势系统106和认证系统108的进程但不具有其他进程),在这种情形中,加密、数字签名等不需要被使用。

用户代理104包括I/O系统112和认证处理程序(handler)114。I/O系统112提供用户接口(UI),其允许从系统100的用户接收输入以及向系统100的用户显示或以其他方式呈现输出。I/O系统112还提供对允许同用户期望向其认证他或她自己的其他设备或服务的通信的支持。

用户代理104显示或以其他方式呈现系统100的用户与之交互的用户接口。因此,被显示或以其他方式呈现的请求用户认证他或她自己、请求用户输入PIN或其他生物计量信息等的用户接口由用户代理104来提供。其他程序、插件、远程服务可调用用户代理104来请求执行用户认证,但是用户接口是由用户代理104而不是由其他程序、插件或远程服务来显示或以其他方式呈现的。相应地,一致的用户体验跨各种程序、插件、远程服务等得到维护。

在一个或多个实施例中,用户代理104在对用户的认证合需之时被调用。在一个或多个实施例中,用户代理104被实现在实现该用户代理104的设备的操作系统中。附加地或替换地,用户代理104可被实现在设备的其他部分中,诸如实现在运行在实现该用户代理104的设备上的安全进程或其他受信程序中。用户代理104可由各种其他程序、插件、远程服务或设备等访问。例如,用户代理104可展示一个或多个应用编程接口(API)方法,其可由其他程序、插件、远程服务或设备等调用。由这些各种其他程序、插件、远程服务或设备等使用的I/O系统112因此是相同的,从而向用户提供一致的认证体验,而不管该用户是否正在向这样的程序、插件、远程服务或设备等认证他或她自己。

在一个或多个实施例中,用户代理104展示基本API方法集,其允许程序、插件或远程服务创建用户凭证和/或请求对用户的认证,并且允许从认证系统108获得私钥的知识证明(以及任选地由姿势系统106获得的姿势的证明)。系统100对于被用来与任何远程服务通信的协议是不可知的。例如,与用户代理104运行在相同设备上的程序可使用该程序和远程服务所期望的任何协议来与远程服务通信,但仍然利用由系统100提供的用户认证。

在系统100中,用户代理104也被例示为包括认证处理程序114。替换地,认证处理程序114可以与用户代理分开地实现,并且可任选地实现在与用户代理104分开的设备上。

认证处理程序114与认证系统108通信以获得对用户进行认证的合适信息或数据,并且向I/O系统112提供该认证的结果的指示。I/O系统112可接着向该用户或其他设备、组件或服务提供认证的结果的指示。

如以上所讨论的,多因素认证包括用户凭证。认证系统108包括用户凭证存储116,其储存一个或多个用户凭证118。在一个或多个实施例中,用户凭证是非对称密钥(例如,公钥/私钥对的私钥),其可被用来证明认证系统1087具有该非对称密钥的知识及对该非对称密钥的访问权。虽然公钥/私钥对的私钥被用来证明认证系统108具有非对称密钥的知识及对非对称密钥的访问权,但是用户凭证118通常包括公钥/私钥对的公钥和私钥两者。

在一个或多个实施例中,用户凭证包括被绑定到认证系统108的至少一个公钥/私钥对。公钥/私钥对被绑定到认证系统108指的是公钥/私钥对的私钥对认证系统108是已知的或能够访问的而对其他系统或设备不是已知的或能够访问的。因此,如果私钥的知识可被传达给实体,则该实体知道通信来自于认证系统108。公钥/私钥对可按各种方式被绑定到认证系统108,诸如通过在认证系统108的创建之时(例如,在包括认证系统108的设备被构建之时)被储存在认证系统108上,并且创建者不维护私钥的记录,使得只有认证系统108具有该私钥的知识。

附加地或替换地,被绑定到认证系统108的公钥/私钥对可按其他方式被绑定到认证系统108。例如,互联网上的远程服务可经由用户代理104并使用对远程服务已知且受其信任的通信协议来与认证系统108通信。例如,用户代理104可以被远程服务所信任,并且远程服务可将公钥/私钥对传达给用户代理104以供存储在用户凭证存储116中。

认证系统108以安全的方式维护用户凭证118,从而允许用户凭证118由认证系统108的加密/解密模块120访问,但是防止用户凭证118被系统100的其他模块或程序访问。在一个或多个实施例中,用户凭证存储被实现为受信平台模块(TPM)的一部分,诸如根据受信平台模块库规范(Trusted Platform Module Library Specification)家族“2.0”修订版01.16(2014年10月30日)的TPM。附加地或替换地,用户凭证存储116可按其他安全的方式来实现,诸如由在实现认证系统108的设备上运行的操作系统或其他受信程序加密。

加密/解密模块120基于用户凭证118酌情加密和解密数据,包括基于作为用户凭证118的至少一部分被包括的私钥来生成数字签名。对特定内容或数据的数字签名(例如,标识认证系统108的数字证书,由另一实体(例如,用户代理104或远程服务)呈现的随机数(nonce)或其他挑战数据,从姿势系统106接收到的姿势等)被用来证明认证系统108具有用户凭证118的知识或对用户凭证118的访问权。加密/解密模块120使用公钥/私钥对的私钥(用户凭证118)对特定内容或数据进行数字签名,并且经数字签名的内容或数据被提供给请求者(例如,用户代理104、远程服务等)。该经数字签名的内容或数据是认证系统108证明该认证系统108具有私钥的知识的断言。请求者可接着使用公钥/私钥对的公钥来验证加密/解密模块120确实生成了数字签名(且因此认证系统108具有私钥的知识或对私钥的访问权)。

其他受信实体的一个或多个附加数字签名可被用来改善针对认证系统108的隐私。作为示例,在实现认证系统108的设备上(或者在诸如实现用户代理104的设备之类的另一设备上)运行的操作系统或其他受信程序可验证加密/解密模块120确实生成了数字签名,并且随后该操作系统或其他受信程序可对数据或其他内容进行数字签名,从而指示认证系统108已证明该认证系统108具有用户凭证118的知识或对用户凭证118的访问权。请求者因而从操作系统或该请求者信任的其他程序(例如,来自操作系统家族的任何操作系统)接收数字签名,且不必使用对应于用户凭证118中的私钥的公钥(或者甚至不必具有该公钥的知识)。

如以上所讨论的,多因素认证还包括姿势。姿势系统106包括检测关于特定用户是否在场的信息的I/O系统122。关于特定用户在场的信息指的是该特定用户处于主机设备102处和/或处于实现姿势系统106的设备处。I/O系统122检测关于用户的信息,其在此也被称为姿势。姿势可以是可被用作特定用户证据的任何信息。姿势的目标是唯一地标识特定用户(至少在系统100内唯一地标识),从而允许该用户与系统100的其他用户区分开。

在一个或多个实施例中,姿势包括预计仅该用户知道的秘密信息的用户输入。该秘密信息可以是PIN、密码、靠手指或其他物体在触摸屏设备上循迹的图案、可听输入或其他数据。

附加地或替换地,姿势包括用户的生物计量信息,其指代用户的可测量的特性。生物计量信息可以是例如指纹、(用于面部识别的)面部特性,(用于眼睛识别的)眼睛特性、心率信息、皮肤温度信息,等等。

附加地或替换地,姿势包括用于姿势系统106的与特定用户相关联的地理位置信息。姿势系统106的地理位置可按各种方式来确定,诸如使用全球定位系统(GPS)、确定哪些无线(例如,Wi-Fi)网络是可访问的以及用于那些无线网络的信号的强度,等等。例如,指示姿势系统106与主机设备102处于相同的(例如,在阈值距离(诸如100米)内)位置中的GPS位置可被用作对姿势系统106存在于主机设备102处的指示。作为另一示例,对姿势系统106可检测(或登录到)与主机设备102相同的无线网络(例如,家庭Wi-Fi网络)的指示可被用作对姿势系统106存在于主机设备102处的指示。作为又一个示例,指示姿势系统106位于用户的家或办公室(例如,用户的家或办公室的已知位置)处(或者在用户的家或办公室的阈值距离(诸如100米)内)的GPS位置可被用作对姿势系统106存在于主机设备102处的指示。

姿势系统106向认证系统108提供姿势。姿势被提供给认证系统108的方式可基于姿势的类型而不同(例如,由用户输入的秘密信息可被提供给认证系统108,用户的生物计量信息可被提供给认证系统108,姿势系统106的GPS位置可被提供给认证系统108等)。认证系统108包括验证姿势的姿势验证系统124。姿势验证系统124包括姿势验证存储126,其包括用于用户的姿势验证数据128。验证系统124将从姿势系统106接收到的姿势与姿势验证数据128进行比较,并且确定从姿势系统106接收到的姿势是否与姿势验证数据128相匹配(例如,是否与之相同)。例如,从姿势系统106接收到的PIN可以与姿势验证数据128中的用户的已知PIN进行比较,并且如果从姿势系统106接收到的PIN与姿势验证数据128中的用户的PIN相同,则该用户被验证为存在于系统100处(例如,存在于用户代理104处)。作为另一示例,描述由姿势系统106扫描的眼睛的特性的数据可以与姿势验证数据128中关于用户的眼睛特性的已知数据进行比较,并且如果描述由姿势系统106扫描的眼睛的特性的数据匹配(例如,该数据与后者相同的阈值置信度)姿势验证数据128中关于用户的眼睛特性的数据,则该用户被验证为存在于系统100处(例如,存在于用户代理104处)。

认证系统108响应于确定用户存在于系统100处而生成将私钥的知识证明与任选地从姿势系统106接收到的姿势的证明相组合的密码学证明。密码学证明包括对私钥已由认证系统108验证的指示(例如,通过显式地包括姿势的证明,通过在姿势被验证的情况下仅生成密码学证明等)。由认证系统108生成的密码学证明可以是例如用户被认证的(使用私钥被数字签名了的)声明。连同声明一起或作为声明的一部分(且因此被使用私钥进行了数字签名),认证系统108可包括姿势的证明,诸如对什么类型的姿势(例如,PIN、面部、指纹等)被认证系统108验证过了的指示。

由认证系统108生成的密码学证明是对用户进行认证的信息或数据,并且认证系统108将该密码学证明提供给认证处理程序114。认证结果的指示(例如,密码学证明本身、对没有从认证系统108接收到密码学证明的指示等)被提供给I/O系统112,该I/O系统112向用户或请求用户的认证的其他设备、组件或服务提供对认证结果的指示。如果密码学证明本身是作为认证结果而被提供的,则接收该结果的其他设备、组件或服务可使用(包括被用来生成该密码学证明的私钥的公钥/私钥对的)公钥来验证该密码学证明。

因此,从请求者(请求用户的认证的设备、组件或服务)的角度看,姿势可以是显式的(例如,当姿势的证明与密码学证明被包括在一起时)。从请求者的角度来看,姿势可替换地是隐式的(例如,当没有姿势的证明与密码学证明被包括在一起,但是该请求者通过一些带外手段(例如,通过信任公钥/私钥对的供应机制)知道在没有这样的姿势的情况下不可能已生成密码学证明时)。

图4是解说根据一个或多个实施例的用于实现使用非对称密钥的多因素用户认证框架的示例过程400的流程图。过程400由系统(诸如图1的系统100、图2的系统200或图3的系统300)的一个或多个设备执行,并且可按软件、固件、硬件或其组合来实现。在过程400的左手侧的动作由姿势系统(例如,姿势系统106)执行,在过程400的中间的动作由认证系统(例如,认证系统108)执行,并且在过程400的右手侧的动作由用户代理(例如,用户代理104)执行。过程400被示为一组动作,并且不仅限于所示出的用于执行各种动作的操作的顺序。过程400是使用非对称密钥来实现多因素用户认证框架的示例过程;此处参考不同的附图来包括对实现使用非对称密钥的多因素用户认证框架的附加讨论。

在过程400中,指示用户在场的姿势由姿势系统来检测(动作402)。该姿势可以是可被用作用户在场的证据的任何信息,如以上所讨论的。

姿势系统所检测到的姿势被传达到认证系统并由认证系统接收(动作404)。认证系统验证该姿势(动作406)。该验证基于对认证系统而言已知的用于用户的验证数据来执行,并且验证过程基于姿势的类型而不同。

私钥的知识证明被生成并被提供给用户代理(动作408)。知识证明例如是经数字签名的数据或其他内容。所生成的私钥的知识证明包括对姿势系统所检测到的姿势被验证的指示。如果姿势系统所检测到的姿势未被验证,则在动作408中,不向用户代理提供知识证明。

私钥的知识证明(包括姿势被验证的指示)由用户代理接收(动作410)。指示知识证明被接收到的认证结果被提供(动作412)。该认证结果可被提供给另一程序、设备或服务,如以上所讨论的。

返回到图1,本文中所描述的技术可提供对用户的初始认证(例如,当用户初始地访问程序或服务时)以及对用户的持续验证。例如,姿势验证系统124可在用户已被认证之后以规则或不规则的间隔(例如,大约每15分钟)继续从姿势系统106获得所检测到的姿势。姿势验证系统124可请求以特定间隔从姿势系统106检测姿势,并且/或者姿势系统106可被配置成以特定间隔自动检测姿势并将所检测到的姿势传达给姿势验证系统124。这允许对用户存在于用户代理104处的不间断的或持续的验证。响应于不再从姿势系统106接收到所检测到的姿势,姿势验证系统124可确定用户不再被认证且合适的动作可被采取。例如,远程服务或设备可被通知用户不再被认证,或者用户可自动地登出计算设备或从程序注销。

作为另一示例,姿势验证系统124可响应于不同事件来从姿势系统106获得所检测到的姿势。这些事件可包括例如数据访问(例如,打开文件的请求)、资源访问(例如,打印文档或访问特定存储设备的请求)、程序的所请求的启动,等等。响应于这样的事件而获得的所检测到的姿势被验证,并且该事件响应于用户针对该事件得到认证而被允许继续或被执行(例如,数据访问、资源访问或程序启动仅响应于用户针对该事件得到认证而被允许来被执行)。

本文中所讨论的技术还允许不同的认证参数(例如,姿势的特性、认证所需的姿势(例如,因素)的数量等)由不同的实体(例如,远程服务、企业管理服务等)指定且由系统100实施,同时始终保持一致的用户体验。例如,企业管理服务可指示PIN将具有某些特性(例如,是特定的长度),并且这可被包括在姿势验证数据128中,使得只有当用户具有带必备特性的PIN时该用户才被认证。

在此处的讨论中,提到了双因素认证,这两个因素包括姿势和用户凭证的知识。然而,应当注意的是,此处所讨论的框架支持附加的因素。这些附加的因素可例如在姿势验证系统124中被指定,并且只有在这些附加的因素被满足的情况下,用户才由姿势验证系统124认证。例如,可向姿势系统106要求两个或更多个不同的姿势(例如,PIN,以及实现姿势系统106的设备与实现用户代理104的设备处于相同的地理位置(或者处于用户的家的地理位置))。作为另一示例,从姿势系统106要求的不同姿势可包括用户示出他或她的面部、使他或她的指纹被扫描、键入PIN、说出秘密字词,以及设备的GPS位置具有特定坐标。

在一个或多个实施例中,系统100还支持恢复用户所遗忘的姿势。一些姿势(例如,生物计量信息)可能不是可被忘记的,但是一些姿势(密码、PIN)可能是可被忘记的。姿势的副本被存储、由与用户相关联的另一密码或账户(诸如在线服务账户密码、企业域密码,等等)保护。该密码是例如用户代理104可访问的密码。保护可以采取各种形式,诸如基于密码的加密、受保护的姿势存储在只有提供密码的情况下才可访问的区域中,等等。如果用户忘记了他或她的姿势,则该用户可请求姿势的恢复,响应于此,用户代理104(或者替换地,姿势系统106或认证系统108)提示用户输入另一密码(用于另一帐户的密码)、验证该用户输入了正确的密码,并且响应于用户输入了正确的密码来解密和/或获得姿势并通知用户该姿势(和/或允许用户重置姿势)。

在一个或多个实施例中,本文中所讨论的技术还提供跨多个设备的对用户的持续认证。用户的认证记录可由用户代理104(或者替换地,姿势系统106或认证系统108中的一者或两者)来维护,并且用户可自动地向与主机设备102处于相同地理位置的其他设备进行认证。例如,如果主机设备102是台式PC,并且用户已向台式PC上的用户代理104认证了他或她自己,并且用户接着将平板计算机带入与台式PC同处的相同房间中,则台式PC上的用户代理104可向平板计算机(例如,向运行在平板计算机上的用户代理的另一实例)传达该用户已被认证的指示。该用户可因而自动登录到平板计算机而不需要重新输入姿势。

还应当注意,本文中所讨论的技术可被用来提供对各种不同类型的设备或组件的访问权,并且不限于登录到程序或设备上。例如,用户可由认证系统108认证,并且用户代理104(例如,通过I/O系统112或在实现用户代理104的计算设备上运行的另一程序或插件)向另一设备或组件传达(从认证系统108接收到的)认证结果的指示。这样的设备或组件可以是灯开关(例如,用来打开灯)、门锁(例如,用来允许用户打开门)、调温装置(例如,用来允许用户改变温度)、炉子(例如,用来允许用户打开燃烧器或烤箱),等等。

还应当注意,如以上所讨论的,用户代理104可以在计算设备的操作系统中实现。在计算设备的操作系统中实现用户代理104允许利用由该操作系统使用的设置和配置页面或技术来改变所使用的姿势、恢复被遗忘的姿势,等等。例如,为了改变用于特定姿势系统的姿势,用户可访问操作系统的设置或配置页面。作为操作系统的一部分的用户代理104提示用户输入他或她期望的姿势,并将该姿势保存为姿势验证数据126。归因于用户访问他或她所习惯的作为操作系统的一部分的设置和配置页面,这进一步保持了以上所讨论的一致的用户体验。

本文中所讨论的技术支持各种使用场景。作为示例,用户代理104可以在作为台式PC的主机设备102上实现,并且姿势系统106和认证系统108两者均可以在智能电话上实现。用户通过向电话输入PIN来登录他或她的台式PC,该电话提供向台式PC认证用户的信息或数据。

作为另一示例,用户代理104和认证系统108可以在平板计算机上实现,并且姿势系统106可以在通常由用户穿戴的智能腕带上实现。作为银行服务的远程服务提供程序或插件,该程序或插件与用户代理104运行在相同的平板计算机上。银行服务使用其信任的规程为平板计算机上的银行服务建立用户凭证118。一旦那些用户凭证被存储在用户凭证存储116中,并且用于验证用户的姿势被存储在姿势验证存储126中,用户就可以被认证以与银行服务联用。例如,每当认证系统108验证智能腕带在与平板计算机相同的地理位置时,对用户进行认证的信息或数据被提供给用户代理,并且用户代理104将该用户被授权来使用银行服务的指示传达给平板计算机上的银行程序或插件。

还应当注意,本文中所讨论的技术提供了可扩展的多因素用户认证框架。各种组件(用户代理、姿势系统和认证系统)可如使用该框架的开发人员所期望地在各种不同的设备上实现。此外,各种程序、插件、远程服务等可利用本文中所讨论的框架,从而允许跨那些各种程序、插件、远程服务等的针对用户认证的一致的用户体验。

这种可扩展性允许开发人员设计和实现他们自己的姿势系统和认证系统,以及经由API方法或由用户代理展示的其他通信技术来与用户代理通信。这些不同的姿势系统可支持不同类型的姿势,并且这些认证系统可按各种方式来实现并提供用户凭证的各种不同类型的安全存储。然而,用户代理能够与这些各种不同的姿势系统和认证系统通信并与其联合操作。

虽然本文中参考特定模块讨论了特定功能,但应注意,本文中讨论的个体模块的功能可被分成多个模块,和/或多个模块的至少一些功能可被组合在单个模块中。附加地,本文讨论的执行某一动作的特定模块包括该特定模块本身执行该动作或另选地该特定模块调用或与其他方式访问执行该动作的另一组件或模块(或与该特定模块联合执行该动作)。因而,执行某一动作的特定模块包括该特定模块本身执行该动作或由该特定模块调用或以其他方式访问的另一模块执行该动作。

图5在500概括地示出了包括示例计算设备502的示例系统,该示例系统表示可以实现本文中所描述的各种技术的一个或多个系统和/或设备。计算设备502可以是,例如,服务提供方的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统、和/或任何其他合适的计算设备或计算系统。

所示的示例计算设备502包括处理系统504、一个或多个计算机可读介质506,以及相互通信地耦合的一个或多个I/O接口508。尽管没有示出,计算设备502可进一步包括系统总线或将各种组件相互耦合的其他数据和命令传输系统。系统总线可以包括不同总线结构中的任一个或其组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线体系结构中的任一种的处理器或局部总线。也构想了各种其他示例,诸如控制和数据线。

处理系统504表示使用硬件执行一个或多个操作的功能。因此,处理系统504被示为包括可被配置成处理器、功能块等的硬件元件510。这可包括在作为专用集成电路或使用一个或多个半导体构成的其他逻辑设备的硬件中的实现。硬件元件510不受形成它们的材料或者其中利用的处理机制的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这一上下文中,处理器可执行指令可以是可电子地执行的指令。

计算机可读介质506被示为包括存储器/存储512。存储器/存储512表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储512可包括易失性介质(如随机存取存储器(RAM))和/或非易失性介质(如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储512可包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移动硬盘驱动器、光盘等)。计算机可读介质506可以下面进一步描述的各种方式来配置。

一个或多个输入/输出接口508表示允许用户向计算设备502输入命令和信息的功能,并且还允许使用各种输入/输出设备向用户和/或其他组件或设备呈现信息。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,电容性的或被配置来检测物理触摸的其他传感器)、相机(例如,可采用可见或诸如红外频率的不可见波长来将不涉及触摸的移动检测为姿势),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备,等等。因此,计算设备502可以下面进一步描述的各种方式来配置以支持用户交互。

计算设备502还包括代理或系统514。代理或系统514是用户代理、姿势系统、认证系统或其某种组合,如以上所讨论的。代理或系统514可以是例如图1-3的用户代理104、图1-3的姿势系统106、图1-3的认证系统108或其某种组合。

本文可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般而言,此类模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等。本文使用的术语“模块”、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的各特征是平台无关的,从而意味着该技术可在具有各种处理器的各种计算平台上实现。

所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质传输。计算机可读介质可包括可由计算设备502访问的各种介质。作为示例而非限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”指相对于仅信号传输、载波或信号本身而言,启用对信息的持久存储和/或有形存储的介质和/或设备。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据等的方法或技术来实现的诸如易失性和非易失性、可移动和不可移动介质和/或存储设备的硬件。该计算机可读存储介质的示例包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、硬盘、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可适用于存储所需信息并可由计算机访问的其他存储设备、有形介质或制品。

“计算机可读信号介质”可以指被配置成诸如经由网络向计算设备502的硬件传输指令的信号承载介质。信号介质通常用诸如载波、数据信号、或其他传输机制等经调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息传送介质。术语“经调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线路连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。

如先前所描述的,硬件元件510和计算机可读介质506代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其可在某些实施例中被采用来实现此处描述的技术的至少某些方面。硬件元件可包括集成电路或片上系统、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),和用硅或其他硬件设备实现的组件。在此上下文中,硬件元件可以充当处理设备,该处理设备执行由该硬件元件以及用于存储供执行的指令的硬件设备(例如前面描述的计算机可读存储介质)所体现的指令、模块和/或逻辑所定义的程序任务。

前面的组合也可被采用来实现本文所述的各种技术。因此,软件、硬件,或模块和其他程序模块可被实现为一个或多个指令和/或在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件510实现的逻辑。计算设备502可被配置成实现对应于软件和/或硬件模块的特定指令和/或功能。因此,将模块实现为可由计算设备502执行为软件的模块可至少部分以硬件完成,例如,通过使用计算机可读存储介质和/或处理系统的硬件元件510。指令和/或功能可以是一个或多个制品(例如,一个或多个计算设备502和/或处理系统504)可执行/可操作的,以实现本文描述的技术、模块、以及示例。

如在图5中进一步例示的,示例系统500使得用于当在个人计算机(PC)、电视设备和/或移动设备上运行应用时的无缝用户体验的普遍存在的环境成为可能。服务和应用在所有三个环境中基本相似地运行,以便当使用应用、玩视频游戏、看视频等时在从一个设备转换到下一设备时得到共同的用户体验。

在示例系统500中,多个设备通过中央计算设备互连。中央计算设备对于多个设备可以是本地的,或者可以位于多个设备的远程。在一个或多个实施例中,中央计算设备可以是通过网络、互联网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。

在一个或多个实施例中,该互连架构使得功能能够跨多个设备递送以向多个设备的用户提供共同且无缝的体验。多个设备的每一个可具有不同的物理要求和能力,且中央计算设备使用一平台来使得为设备定制且又对所有设备共同的体验能被递送到设备。在一个或多个实施例中,创建目标设备的类,且针对设备的通用类来特制体验。设备类可由设备的物理特征、用途类型或其他共同特性来定义。

在各种实现中,计算设备502可采取各种各样不同的配置,诸如用于计算机516、移动设备518和电视机520用途。这些配置中的每一个包括可具有一般不同的配置和能力的设备,并且因而计算设备502可根据不同的设备类中的一个或多个来配置。例如,计算设备502可被实现为计算机516类的设备,该类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。

计算设备502还可被实现为移动设备518类的设备,该类包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备。计算设备502还可被实现为电视机520类的设备,该类包括在休闲观看环境中具有或连接到通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。

本文所描述的技术可由计算设备502的这些各种配置来支持,且不限于在本文描述的各具体示例。这个功能性也可被全部或部分通过分布式系统的使用(诸如如下的经由平台524通过“云”522)来实现。

云522包括和/或代表资源526的平台524。平台524抽象云522的硬件(如,服务器)和软件资源的底层功能性。资源526可包括可在计算机处理在位于计算设备502远程的服务器上执行时使用的应用和/或数据。资源526也可包括在互联网上和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络上提供的服务。

平台524可抽象资源和功能性以将计算设备502与其他计算设备相连接。平台524还可用于抽象资源的缩放以向经由平台524实现的资源526所遇到的需求提供对应的缩放级别。因此,在互联设备的实施例中,本文描述的功能性的实现可分布在系统500上。例如,该功能性可部分地在计算设备502上以及经由抽象云522的功能性的平台524来实现。

在本文的讨论中,描述了各种不同的实施例。要领会和理解,本文描述的每个实施例可以单独或与本文描述的一个或多个其他实施例结合使用。本文所讨论的技术的进一步方面涉及以下实施例中的一个或多个。

一种计算设备,包括:一个或多个处理器;以及其上存储有多个指令的计算机可读存储介质,这些指令响应于由该一个或多个处理器执行而促使该一个或多个处理器:从认证系统接收公钥/私钥对的私钥的知识证明,该私钥的知识证明包括由姿势系统检测到的用户的姿势已被认证系统验证的指示,该姿势指示用户存在于计算设备处;以及至少基于该私钥的知识证明来将用户的认证结果提供给认证结果的请求者。

作为以上所描述的计算设备中的任一者的替换或补充,以下任一者或其组合:该姿势包括个人标识号(PIN)的用户输入;该姿势包括用户的生物计量信息;该姿势包括实现姿势系统的姿势设备的地理位置,该姿势通过指示姿势设备与计算设备处于相同的地理位置来指示用户存在于该计算设备处;该姿势响应于姿势设备和计算设备登录到相同的Wi-Fi网络而指示该姿势设备与该计算设备处于相同的地理位置;该多个指令进一步促使该一个或多个处理器提供一致的用户体验,而不管请求者是在计算设备上运行的程序还是由计算设备访问的远程服务;该多个指令进一步促使该一个或多个处理器重复地接收基于由认证系统以特定间隔接收到的用户的附加姿势的知识证明以用于对该用户的持续认证;私钥的知识证明包括公钥/私钥对被绑定到实现认证系统的认证设备的证明;该多个指令进一步促使该一个或多个处理器储存由与用户相关联的密码保护的姿势的副本以允许该姿势的恢复;该认证系统实施由企业管理服务指定的姿势参数;该多个指令进一步促使该一个或多个处理器:从认证系统接收私钥的知识证明,该私钥的知识证明包括响应于要启动程序的请求而由姿势系统检测到用户的附加姿势的指示;以及只有在私钥的知识证明包括由姿势系统检测到用户的附加姿势的指示的情况下才启动所请求的程序。

一种计算设备中的方法,该方法包括:从认证系统接收公钥/私钥对的私钥的知识证明,该私钥的知识证明包括由姿势系统检测到的用户的姿势已被认证系统验证的指示,该姿势指示用户存在于计算设备处;以及至少基于该私钥的知识证明来将用户的认证结果提供给认证结果的请求者。

作为以上所描述的方法中的任一者的替换或补充,以下任一者或其组合:该姿势包括个人标识号(PIN)的用户输入;该姿势包括用户的生物计量信息;该姿势包括实现姿势系统的姿势设备的地理位置,该姿势通过指示姿势设备与计算设备处于相同的地理位置来指示用户存在于该计算设备处;该姿势设备的地理位置包括从该姿势设备的全球定位系统(GPS)获得的地理位置;该方法进一步包括提供针对用户的认证的一致的用户体验,而不管用户的认证是由在计算设备上运行的程序还是计算设备所访问的远程服务请求的;包括公钥/私钥对被绑定到实现认证系统的认证设备的证明的私钥的知识证明被接收。

一种在认证系统中实现的方法,该方法包括:接收由姿势系统检测到的姿势,该姿势指示用户存在于主机设备处;验证该姿势;响应于该姿势被验证来生成公钥/私钥对的私钥的知识证明,该私钥的知识证明包括该姿势已由认证系统验证的指示;以及将该知识证明传达给主机设备的用户代理。

作为以上所描述的方法中的任一者的替换或补充,以下任一者或其组合:认证系统在与主机设备分开的附加设备中实现;该姿势包括个人标识号(PIN)的用户输入;该姿势包括用户的生物计量信息;该姿势包括实现姿势系统的姿势设备的地理位置,该姿势通过指示姿势设备与主机设备处于相同的地理位置来指示用户存在于该主机设备处;该姿势响应于姿势设备和主机设备登录到相同的Wi-Fi网络而指示该姿势设备与该主机设备处于相同的地理位置;该方法进一步包括提供一致的用户体验,而不管认证结果的请求者是在主机设备上运行的程序还是由主机设备访问的远程服务;该方法进一步包括重复地接收由姿势系统检测到的附加姿势,验证该附加姿势,以及响应于该附加姿势被验证来以特定间隔生成私钥的附加知识证明以用于对用户的持续认证;该私钥的知识证明包括公钥/私钥对被绑定到实现认证系统的认证设备的证明;进一步包括储存由与用户相关联的密码保护的姿势的副本以允许该姿势的恢复;进一步包括实施由企业管理服务指定的姿势参数。

尽管用结构特征和/或方法动作专用的语言描述了本发明主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1