专利名称:用于动态用户认证的方法和设备的制作方法
技术领域:
本发明涉及认证技术,特别涉及用于提供使用可定制的上下文相关的多个验证对象之间的交互的动态用户认证的技术。
背景技术:
对用户的身份声明进行认证是保证用于物理和逻辑访问的系统、网络、服务和设施的安全性的重要步骤。现有用户认证常常在用户对单个验证对象的知识如密码或个人身份号码(PIN)的基础上进行。现有用户认证也可以在拥有单个验证对象如密钥或卡的基础上进行。其它现有认证技术包括使用单个生物测定(biometric)特征作为验证对象,例如指纹、声波纹、虹膜扫描或脸部扫描。
通常,通过比较在试图访问时从用户获得的验证对象和先前存储的对象来进行验证。从而,在指纹的情况下,如果在试图访问时从用户获得的指纹与(可能在某个较早的时候从用户提取的)预先存储的指纹匹配,则准予访问。如果没有发现匹配,则拒绝访问。
然而,这些现有认证技术有很多缺点。例如,密钥或密码可能被盗取,或者生物测定特征可能被泄密,例如使用假指纹。
最新的技术试图使用多于一种生物测定识别技术,例如脸部和声波纹识别。然而,这样的技术通常按顺序且独立地获得并分析每个生物测定特征,并且只是按照预定的静态方式来组合最后的输出,从而并不使用生物测定之间的任何交互。
此外,现有认证技术不能提供足够的灵活性来解决各种特定于用户、特定于交易或者特定于应用的约束或需求。例如,特定于用户的约束可以是在其手指上有伤口的用户可能不能使用指纹识别系统。特定于交易的约束可以是与十美元的交易相比,一百万美元的交易应当需要更高程度的认证。特定于应用的约束可以是基于银行业应用的安全问题可能不适于旅游应用。现有认证方案恰恰不够灵活以处理这些类型的约束或需求。
因此,在已知对安全和认证的日益增长的兴趣以及现有认证系统的缺陷之后,对于提供高度灵活性、准确性、便利性和/或鲁棒性的改进的认证框架,存在着明显的需要。
发明内容
本发明提供一种改进的认证框架,与现有认证框架相比,其提供更大的灵活性、准确性、便利性和鲁棒性。这通过例如允许动态用户认证来实现,该动态用户认证组合使用共享上下文的多个认证对象,并允许可定制的交互设计,以适应变化的用户偏好和交易/应用需求。这种框架有利地提供高度灵活性、准确性、便利性和鲁棒性。
在本发明的一方面,一种用于用户认证的自动技术包括以下步骤/操作。首先,获得用户输入。用户输入的至少一部分与两个或更多验证对象相关。然后,基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略,对用户进行验证。
用户验证步骤/操作优选地根据分别响应于所述两个或更多验证对象的两个或更多验证引擎执行。所述两个或更多验证引擎可分别将所述两个或更多验证对象与至少一个用户模型相比较。该用户模型可基于根据用户注册会话获得的数据而预先产生。
此外,在所述两个或更多验证对象之间共享的上下文可包括一个或更多与用户验证步骤/操作相关的变量。例如,上下文变量可以代表以下的一个或更多(i)用户名;(ii)所述至少一个验证策略中的当前状态;(iii)关于所述两个或更多验证对象的历史;(iv)特定于应用的需求;(v)特定于用户的需求;以及(vi)物理或逻辑变量。此外,所述两个或更多验证对象可以表示可用来验证用户身份、用户的知识以及用户的拥有物(possession)的对象类型。
在本发明的另一方面,用户认证技术是可定制的该技术可包括添加、修改和/或删除验证策略、验证对象类型、用户模型和/或与上下文相关的变量的步骤/操作。这些任务可以在管理会话中完成。
在本发明的另一方面,在灵活的分布式架构中实施用户认证技术,该架构包括耦接到至少一个验证服务器的至少一个客户端设备。客户端设备和验证服务器可一起工作,以执行在此描述的本发明的用户认证技术。
可以根据可扩展标记语言(XML)来实施客户端设备和验证服务器之间的通信接口。客户端设备和验证服务器之间的这种通信接口可以支持验证会话、注册会话和/或管理会话。
在本发明的另一方面,用户认证技术包括使用至少一个验证策略、和用来根据所述至少一个验证策略验证用户的验证装置,其中,可以根据验证装置作为状态机来实施所述至少一个验证策略。应当理解,在此提到的验证装置可以用多种实施来实现,例如可用硬件、软件和/或它们的组合来实施的验证模块。
在本发明的另一方面,用户认证技术包括使用至少一个验证对象、和用来根据所述至少一个验证对象验证用户的验证装置,其中,所述至少一个验证对象为以下之一(i)可用于验证,而不使用相关验证引擎;(ii)不需要用与所述至少一个验证对象有关的用户数据来预先注册;(iii)动态的;(iv)隐含的(implicit);(v)能够从另一对象继承至少一个属性;(vi)其特征在于多个输入;(vii)被加权;以及(viii)能够被操纵。对于隐含,优选地意味着该对象不需要用户输入,例如基于呼叫者id的对象。对于继承,优选地意味着一个对象可以从另一对象继承属性,例如,如果一对象被称为颜色,则可以创建被称为汽车颜色的新对象,其继承来自父对象(颜色)的属性。
在本发明的另一方面,用户认证技术包括使用至少一个用户模型、和用来根据所述至少一个用户模型验证用户的验证装置,其中,所述至少一个用户模型为以下之一(i)表示一个或更多用户偏好;以及(ii)能够被修改,以便在后续用户验证中使用。
根据结合附图阅读的对本发明的说明性实施例的以下详细描述,本发明的这些和其它目的、特征及优点将变得清楚。
图1是示出根据本发明一个实施例的用于实施使用多个验证对象的可定制验证的认证系统的客户端-服务器架构的方框图;图2是示出根据本发明一个实施例的用于实施使用多个验证对象的可定制验证的示例性计算系统环境的方框图;图3是示出根据本发明一个实施例的多个验证对象的示例性规定(specification)的图;图4是示出根据本发明一个实施例的包括多个验证对象的用户模型的示例性规定的图;图5是示出根据本发明一个实施例的用于动态用户认证的使用多个验证对象的可定制验证策略的示例性规定的图;图6是示出图5的示例性验证策略的状态转变的状态转变图;以及图7是示出用于图5的示例性验证策略的验证客户端设备和验证服务器之间的验证会话的流程图。
具体实施例方式
以下描述将使用示例性客户端-服务器系统架构来说明本发明。然而,应当理解,本发明不限于与任何特定的系统架构一起使用。而是,本发明可以更一般地应用到希望提供一认证框架的任意系统架构,其中,该认证框架提供高度灵活性、准确性、便利性和/或鲁棒性。也就是说,本发明的技术可以在由合适的网络耦接的单个计算机系统或多个计算机系统上实施,其示例将在下面描述。
如将在此详细地举例说明的那样,本发明提供一种包括多个验证对象的新编程模型,其允许认证过程的完全定制,以解决各种各样的特定于用户、特定于交易、特定于应用的限制和其它相关需求。
本发明还允许可实时响应用户与系统之间交互的改变的动态用户认证过程。高度灵活的架构允许随时添加新验证对象和验证策略。共同的上下文和相关数据结构被包括在内,使得整个认证交互可以在此共享的上下文上工作。
在一个实施例中,交互设计基于使用XML(可扩展标记语言)、作为统计状态机实施的认证策略。此外,存在指定相关认证对象(例如,要询问的问题、要执行的操作等)的文件、和包含用户简档(profile)(例如,用户选择的认证对象和正确响应、用户偏好等)的文件,二者均可以使用XML来实施。
基于起作用的(基于用户偏好和交易或应用需求选择的)认证策略,使用共享上下文上的操作,还利用起作用的认证对象和感兴趣的用户简档,动态地确定整个认证交互。
与现有认证系统相比,这种方案提供了显著改进的认证能力,并且保证了非常高程度的准确性、灵活性、便利性和鲁棒性。
此外,如将在下面详细地举例说明的那样,本发明的认证技术使用以下组件(1)验证对象和验证引擎;(2)验证策略和验证策略管理器;以及(3)用户模型。
验证对象是可用于验证用户身份的目的的对象,例如用户的生物测定特征(例如声波纹、指纹、脸部扫描、虹膜扫描、手写签名、键盘动态(dynamics)等)、用户的知识(例如密码、口令(passphrase)、对个人问题的回答等)、以及用户的拥有物(例如密钥、卡、令牌、证书、蜂窝电话或家庭电话传送呼叫者id信息、具有客户端软件的个人或手持计算机、用户位置等)。应当理解,上面的示例性对象列表不是毫无遗漏的,此外,本发明不意欲局限于任何特定对象。
验证引擎用来将验证对象与存储在用户模型中的表示相匹配。验证引擎的示例包括指纹识别系统,用来匹配用户的指纹;评估对问题的口头回答的传统系统,例如语音响应系统;提取并识别用户的口头表达的传统系统(其中,该传统系统还可包括用于生成合成问题和提示的语音合成系统),例如语音或声波纹识别系统(其可包括自然理解技术);呼叫者id识别系统,用来提取并匹配用户的电话号码;证章阅读器,用来扫描用户的证章或卡;PIN确认系统,用来确认用户的PIN;脸部识别系统,用来提取并匹配用户的脸部扫描;虹膜识别系统,用来提取并匹配用户的虹膜扫描;笔迹识别系统,用来识别用户的笔迹;键盘动态识别器,用来匹配用户的键盘动态;以及在此讨论的和/或可用其它方式得知的其它特定形态的引擎。应当理解,由于这些类型的引擎是众所周知的,因此对这样的引擎细节的进一步描述是不必要的,因此在这里将不提供该描述。同样,应当理解,上面的示例性引擎列表不是毫无遗漏的,此外,本发明不意欲局限于任何特定的验证引擎。
尽管验证引擎通常通过比较用户的输入和当用户注册时创建的用户模型来进行用户验证,但本发明不限于需要用户注册的验证引擎。也可以使用不需要用户注册的非监督验证引擎。当使用非监督验证引擎时,可以采用单个用户模型,包括验证引擎测量的用户属性。例如,可以使用以下验证引擎声音口音(accent)识别、语言辨别和脸部特征检测(例如,眼睛颜色、眼镜检测)。在此情况下,这些单独的验证引擎均不需要用户注册,并且使用一个用户模型,其表述用户的讲话口音、语言、眼睛颜色以及他/她是否戴眼镜。
这样,本发明认识到尽管可以使用单独的验证引擎来执行以预先定义的静态方式操作的简单验证步骤,但是,当使用多个验证对象来执行动态用户认证时,为了获得更大程度的准确性和灵活性,更通用的框架是有必要的。本发明提供了这种改进的认证框架。
为了实现这个和其它目标,本发明引入了管理用户和包括认证系统的整个系统之间、以及各种验证引擎之间的交互的验证策略的思想。可以编写任意数目的验证策略,以满足各种各样的特定于用户、特定于交易或特定于应用的认证需要,包括实时改变的需要。
将要看到的是,这些验证策略由验证策略管理器管理,该验证策略管理器使用在所有验证对象之间共享的共同上下文上的操作来获得认证系统的最大可编程性。
在本发明的一个实施例中,验证策略实施对一个或更多验证对象操作的有限状态机。从初始状态开始,当操纵各种验证对象时,发生到其它状态的转变,其中包括用户被接受或拒绝的最终状态。在某些情况下,可能存在多个准予用户接受的状态,每个状态具有它自己的安全性等级(例如低安全性、中安全性、高安全性等),以应付所处理交易的变化安全性需要。通过在验证对象注册表(registry)中包括新对象的规定,验证策略管理器允许随时添加新验证对象,随后,可以使用调用该新验证对象的验证策略。
通常,当用户在系统中注册时,使用用户提供的输入(例如,语音样本、指纹样本、对个人问题的回答等)、或通过其它方式获取的输入(以往交易的细节、最新帐单中的余额、所颁发的钥匙或证章的序列号、包含在智能卡或客户端软件中的加密密钥等)来建立用户模型。
在需要时,例如在发出了新帐单并且余额改变时,或者在可获得更多语音样本时,可以实时更新用户模型。单独用户模型包含关于与该用户相关的所有验证对象的信息,包括与验证对象相关的任何用户偏好(例如,用户可能偏爱关于颜色而非数字的问题)。用户模型还优选地支持验证对象的非平凡(nontrivial)操纵,例如要求用户相加其社会保险号码的第一和第三数字。同样,上述示例的任何一个都不意欲限制本发明。
在给出了以上对本发明的一些原理和特征的一般性描述之后,现在将结合附图给出这些原理和特征的说明性实施例。
首先参考图1,该方框图示出了根据本发明一个实施例的用于实施使用多个验证对象的可定制验证的认证系统的客户端-服务器架构。如图所示,认证系统100包括通过网络适配器106耦接的验证客户端设备102和验证服务器104。验证客户端102具有上下文108以及与其相关的应用110。验证服务器104包括验证策略管理器112和多个验证引擎114-1到114-N,其中,N可以是任意整数2、3、4...,并且表示本发明的特定实施可支持的验证对象族或类型的数目。认证系统100还包括数据管理器116、验证对象存储库118、验证策略存储库120、以及用户模型存储库122。尽管数据管理器116以及数据存储器118、120和122被示出为在验证服务器方框之外,但是应当理解,可以在验证服务器上实施它们。
验证客户端设备102负责与用户接口,并收集来自用户的输入,通过网络适配器106与验证服务器104通信,并与应用110通信。在本发明的一个实施例中,验证客户端设备102还负责获取并维护上下文108。
在替换实施例中,可以将上下文108存储在可由系统100的其它组件访问的中央数据库(未示出)中。这种实施允许验证客户端设备102和验证服务器104之间的无状态操作,使得对于验证过程中的不同回合(turn)可以使用不同的服务器,从而提供保护以防止特定服务器在验证过程的中间发生故障,并且,这种实施还允许改进的服务器资源的负载均衡。
上下文108记录用于验证过程的所有相关变量,例如(1)用户名;(2)起作用的验证策略中的当前状态;(3)关于被调用的验证对象的历史,以及与调用有关的分数和结果;(4)特定于交易的需求(例如,所希望的准确性等级、交易的性质等);(5)特定于用户的需求(例如,患感冒的用户可能偏向于不依赖声波纹匹配等);以及(6)其它物理和逻辑变量(例如,网络连接的类型——远程或本地、语音信道的质量等)。
上下文108还可以记录表示来自外部验证源(未示出)的验证分数的其它变量。例如,进入银行的顾客在入口处刷了他的银行卡之后,可能已经这么做了,并且,该信息可以作为外部分数而包括在上下文108中,并且可用于柜台或自动柜员机处的后续认证过程。
最初包括在上下文108中的变量是与最初建立时的验证对象和其它已知需求有关的系统默认变量。然而,当把另外的验证对象添加到系统100中时,或者当发现新需求时,可以将用户定义的变量添加到上下文108中。
网络适配器106允许客户端设备102和验证服务器104之间的通信。网络适配器106实施网络传送协议,例如标准传输控制协议(TCP)/因特网协议(IP)、或者安全套接字层(SSL)协议。应当理解,在单个计算机系统上实施认证系统100的实施例中,不需要网络适配器。
如图所示,验证服务器104包括验证策略管理器112和一组验证引擎114-1到114-N。每个验证引擎对给定验证对象或验证对象族(类型)进行操作。例如,指纹验证引擎可以对特定指纹或不同类型的指纹(例如,大拇指纹、食指纹等)进行操作。类似地,知识验证引擎可以对不同类型的盘问-响应问题进行操作。
这一灵活的架构允许容易地添加新验证引擎和验证对象。要添加的验证引擎可以是新类型或现有类型。例如,可以将脸部识别引擎添加到先前包括了声波纹和指纹识别引擎的验证服务器中,或者可以添加第二声波纹识别引擎(例如,其可以来自不同的制造商)。类似地,可以将新验证对象添加到新验证引擎或现有验证引擎中(例如,将新问题添加到现有知识验证引擎中)。
验证策略管理器112解释用于给定用户模型的验证策略,并驱动整个认证过程。策略管理器112从验证客户端设备102接收当前上下文108,在该上下文上工作,合并当前验证对象的更新后的状态,并将更新后的上下文和在验证过程期间要采取的下一步骤的指定一起返回给验证客户端设备102。
在本发明的一个实施例中,验证策略管理器112负责调用有限状态机中的状态,解释状态机的条件,并且转移到下一状态。验证策略管理器112是为认证过程做出最后的接受或拒绝决定的实体,并且,在某些情况下,假如起作用的验证策略允许的话,如果当前的交易需要中间决定则做出这样的决定。
数据管理器116组件控制包括验证对象存储库118、验证策略存储库120和用户模型存储库122的外部存储资源。这些资源可以由验证服务器104(由验证策略管理器112或单独的验证引擎114-1到114-N)直接访问。在替换实施例中,这些资源可以由验证客户端设备102访问,并通过网络适配器106输送到验证服务器104。
应用110是在准予访问之前需要为其进行用户认证的应用。示例性应用包括银行业应用、旅游应用和电子邮件应用。应用110负责提供特定于应用和特定于交易的信息及需求。应当理解,本发明不限于任何特定应用。
在本发明的一个实施例中,验证客户端设备102使用XML消息接口与验证服务器104通信。该接口支持的示例性功能可包括以下操作打开通信信道;关闭验证或注册会话;
开始用户注册并创建用户模型;结束用户注册并关闭注册会话;开始对验证对象评分;结束对验证对象评分;开始验证会话;继续验证会话,以确定策略内的下一状态或输出决定;添加新验证对象;添加新验证策略;删除验证策略;删除上下文;更新验证对象,以对现有验证对象进行改变;更新用户模型,以对现有用户模型进行改变;更新验证策略,以对现有验证策略进行改变;查询用户模型,以获得用户模型内的信息;查询验证对象,以获得验证对象内的信息;查询验证策略,以获得验证策略内的信息;获得有效验证对象的列表;添加上下文变量;设置上下文变量的当前值;获得上下文变量的当前值;以及获得所有上下文变量的列表和它们的当前值。
应当理解,以上操作列表不是毫无遗漏的,并且本发明不限于这些特定示例性操作。
此外,在替换实施例中,应当理解,与验证服务器相关的组件本身可以通过网络适配器106互相通信。因而,例如,一个或更多验证引擎114可以通过网络适配器106与验证策略管理器112通信。对于验证策略管理112和数据管理器116,以及数据管理器116和数据存储库118、120和122,可以存在类似的分布式布置。因而,应当理解,图1示出的组件互连是说明性的,并且,因此,可以实施其它合适的互连来提供本发明的认证功能性。
现在参考图2,该方框图示出了根据本发明一个实施例的用于实施使用多个验证对象的可定制验证的示例性计算系统环境。作为示例,计算系统200可以代表分布式计算系统的至少一部分,其中,用户通过计算机系统202(被说明性地称为“客户端”或客户端设备)经由网络206与另一计算机系统204(被说明性地称为“服务器”)通信。该网络可以是计算机系统可通过其通信的任意合适的网络,例如,因特网或万维网、局域网等。然而,本发明不限于任何特定类型的网络。实际上,应当理解,可以在没有网络的情况下直接链接计算机系统。
此外,尽管在图2中为了简单起见仅示出了两个计算机系统,但是应当理解,网络可以链接多个客户端设备和多个服务器。然而,还应当清楚,本发明的技术可以在单个计算机系统上实施,其中,例如,用户直接与执行认证操作的计算机系统交互。
参考图1,应当理解,可以通过计算机系统202实施客户端设备102,并且,可以通过计算机系统204实施验证服务器104(及其组件)、数据管理器116、以及各个对象、策略和用户模型存储库(118、120和122)。因此,将根据网络206来实施网络适配器106。
因而,应当理解,图2一般性地示出了通过网络通信的每个计算机系统的示例性架构。如图所示,计算机系统202包括全部通过计算机总线214-A耦接的处理器208-A、存储器210-A和I/O设备212-A。类似地,计算机系统204包括全部通过计算机总线214-B耦接的处理器208-B、存储器210-B和I/O设备212-B。
应当理解,在此使用的术语“处理器”意欲包括一个或更多处理设备,包括中央处理单元(CPU)或其它处理电路。此外,在此使用的术语“存储器”意欲包括与处理器或CPU相关的存储器,例如RAM、ROM、固定的永久存储设备(例如,硬盘驱动器)、或可拆卸的永久存储设备(例如,磁盘或CDROM)。此外,在此使用的术语“I/O设备”意欲包括一个或更多用于输入数据到处理单元的输入设备(例如,键盘、鼠标)、以及一个或更多用于提供与处理单元相关的结果的输出设备(例如,CRT显示器)。此外,与计算机系统202相关的I/O设备被理解为包括收集与认证系统支持的验证对象相关的特定数据所需的那些设备,例如用来捕捉用于声波纹识别的语音数据和/或对所提出的问题的回答的麦克风、用来将这种问题输出给用户的扬声器、脸部扫描仪、虹膜扫描仪、指纹扫描仪等。
还应当理解,图2示出的客户端计算机系统可包括被编程为实施本发明的技术的计算机系统,例如个人计算机、个人数字助理、蜂窝电话等。同样地,图2示出的服务器计算机系统可包括被编程为实施本发明的技术的计算机系统,例如个人计算机、微型计算机、小型计算机等。然而,本发明不限于任何特定的计算机架构。
因此,如在此描述的用于执行本发明的方法的软件指令或代码可被存储在一个或更多相关存储设备如ROM、固定或可拆卸存储器中,并在准备使用时被加载到RAM中,并由CPU执行。
现在参考图3,示出了验证对象的注册表的示例。在此特定实施例中,使用XML来表示注册表300,并将其存储在验证对象存储库118(图1)中。
该规定包含对所有注册的验证对象的描述,其可以在添加新验证对象时被更新。此示例中的第一对象(302)是Date-of-Birth(生日)(DOB)对象,其属于问题-回答(QA)类型,并且,负责对此对象进行操作的验证引擎是知识验证引擎。还可以包括所提出的提示,以便在调用此对象时提示用户做出所需的响应,但是,如果必要的话,可以由验证客户端来修改或替换该提示。“迷惑度(perplexity)”是表示与验证对象相关的困难的量,并且,验证策略管理器在进行验证决定时可以任选地使用它。
此示例中的第二对象(304)是Caller-id(呼叫者id),在电话连接的情况下,其试图将发起呼叫的电话的电话号码与相关用户模型中的电话号码相匹配。由于可以从电话基础设施自动获得这一信息而无需来自用户的任何显式输入,因此不指定提示。
此示例中的第三对象(306)是Voiceprint(声波纹)对象,并且,在此情况下,由于声波纹验证引擎对一种类型的验证对象进行操作,因此不指定类型。在假定声波纹是不能被盗取的生物测定特征,则在此示例中指定了高迷惑度。
第四和第五对象(308和310)示出了该规定的分级属性,由此,CAR_COLOR对象继承了来自父对象COLOR的默认属性。
此示例中的最后两个对象(312和314)是动态验证对象的示例,由此,所希望的响应动态地改变,并且,在此示例中,从应用而不是用户模型获得正确响应。当前余额(CUR_BALANCE)对象(312)是数值类型(AP_NUM)的特定于应用的对象,而最后交易日期(LAST_TRANSACTION_DATE)对象(314)是字符串类型的特定于应用的对象。
现在参考图4,示出了用户模型的示例。在此特定实施例中,使用XML来表示用户模型400,并将其存储在用户模型存储库122(图1)中。
用户模型包含对用户已经为其提供了注册数据的验证对象的描述。第一对象(402)是Caller-ID对象,在此示例中,该用户对其的正确响应是914-945-3000。用户对此对象的偏好度可被任选地包括在内,并在可能的时候,当选择具有较高偏好度的对象时,由验证策略使用。
第二和第三对象(DOB 404和COLOR 406)相似。在此示例中,由于该用户有两辆车,因此第四对象(车的颜色或CAR_COLOR 408)有两个响应,并且任何一个响应都可以作为正确回答而被接受。第五对象(410)是需要模型参数的声波纹对象,其中该对象可存储在文件中,并且包括了文件名。最后两个对象(CUR_BALANCE 412和LAST_TRANSACTION_DATE 414)没有包括任何正确响应,这是因为它们是动态验证对象,并且必须从应用获得当前的正确响应。
如上所述,根据本发明,可以实时更新或删除任何对象,并且可以实时添加新对象。
现在参考图5,示出了验证策略的示例。在此特定实施例中,验证策略500作为有限状态机来实施,并且使用XML来表示。对应的有限状态机图在图6中示出。验证策略500优选地存储在验证策略存储库120(图1)中。
验证策略500描述了与银行业应用相关的简单策略。更具体地说,该策略管理这样的情形用户(可能是银行客户)正试图访问他/她的银行帐户,并且,认证系统正通过多个验证对象,例如该银行客户的电话号码、该银行客户的生日、该银行客户的汽车的颜色、该银行客户的声波纹等,来验证该用户的身份。然而,如前所述,本发明不限于任何特定策略或应用。以下说明性描述将引用位于验证策略500的左手侧的行号(例如,第1-53行)。
首先,在图5中,以默认值初始化诸如“curBalance”(第4行)和“lastTransactionDate”(第6行)的上下文变量,以处理诸如“CUR_BALANCE”和“LAST_TRANSACTION_DATE”的动态验证对象。随后,使用来自应用的输入更新这些变量。变量“minVoiceprintScore”(第5行)用来指定对于声波纹匹配可接受的最小分数。此变量的默认值由验证策略指定。不同的策略可以具有不同的默认值(例如,较严格的策略可具有较高的最小分数)。在替换实施例中,可以利用从用户模型获得的值(考虑特定于用户的需求)或从应用获得的值(考虑特定于交易或特定于应用的需求)来覆写该默认值。
接下来,指定一组与策略相关的条件,这些条件随后将被用来确定状态转变或评估验证对象。用来定义这些条件的表达式可包括上下文变量、数值常数和字符串常量。该表达式可包含诸如逻辑与(&)、逻辑或(|)、等于(=)、不等于(!=)、小于(<)、小于或等于(<=)、大于(>)、大于或等于(>=)、乘(*)、除(/)、加(+)和减(-)的运算。
例如,如果迄今为止调用的验证对象的总数目为1(_curObjectNum=1),并且它是匹配或者不存在失配(_curWrongNum=0),则满足条件“ONE_OK”(第10行),该条件是以后用来确定状态转变的条件。不同种类的另一示例是条件“CUR_BALANCE_TEST”(第15行)。此条件用来评估当前余额(“CUR_BALANCE”)验证对象。在此情况下,例如,因为近似的回答是符合要求的,所以允许5%的误差。
根据这些条件,定义了一组状态。在此示例中,有4个状态“接受”(ACCEPT)(第22行)、“拒绝”(REJECT)(第24行)、“开始”(START)(第27行)和“帐户”(ACCOUNT)(第40行)。“接受”和“拒绝”是做出了最后的验证决定的最终状态。“开始”是初始状态,并且包含验证对象“CALLER_ID”、“DOB”和“CAR_COLOR”。默认的是,随机选择验证对象,但是可以任选地指定相关权重,以修改对象可能被选中的概率。如果满足了前两个条件(ONE_OK或TWO_OK_ONE_BAD)之一,则发生向“帐户”状态的转变,而如果满足了第三条件(TWO_BAD),则发生向“拒绝”状态的转变。
在“帐户”状态中,不指定权重,所以全部三个对象具有相等的被随机选中的概率。此外,评估这些对象需要使用不同的测试,并且,从先前定义的列表中选择这些对象。基于所满足的条件,发生向“接受”状态或“拒绝”状态的转变,并且,对应的最终决定被发送到验证客户端设备102(图1)。
在替换实施例中,可以在中间状态做出中间决定。例如,在“开始”状态中,如果满足了某些条件,则可以做出接受该用户进行低安全性的交易的决定,而在“接受”状态中,可以做出接受该用户进行交易的最终决定。
现在参考图6,该状态转变图示出了图5的示例性验证策略的状态转变。从而,图6的状态图600示出了与验证策略500相关的4个状态,即,“开始”(状态602)、“帐户”(状态604)、“接受”(状态606)和“拒绝”(状态608)。状态之间的箭头表示如上面在图5的验证策略500的上下文中描述的状态之间的转变条件。
最后参考图7,该流程图示出了用于图5的示例性验证策略的验证客户端设备和验证服务器之间的验证会话。例如,这种验证会话可发生在图1的验证客户端设备102和验证服务器104之间。
在一个实施例中,存在三种会话(它们全都包括打开和关闭会话)(1)管理会话,其中执行诸如添加/更新/删除策略、添加/更新/删除对象、添加上下文变量等的操作;(2)注册会话,其中执行诸如创建/更新/删除用户模型等的操作;以及(3)验证会话,其中进行诸如对验证对象评分、继续验证会话并确定下一状态、输出验证决定、更新/删除上下文、设置/获得上下文变量的值、查询用户模型脸证对象/验证策略等的操作。
可以根据认证系统的管理员、通过客户端设备或直接在验证服务器处执行管理会话操作。可以根据用户、通过客户端设备或直接在验证服务器处执行注册和验证会话。
图7的流程图示出了给定图5的验证策略的情况下的验证会话的示例性操作流程700。
如图所示,在步骤702,客户端发起与服务器的验证会话,利用默认的上下文指定策略名称(SIMPLE_BANK_POLICY)和用户名(John Doe)。服务器检索所引用的策略和用户模型。
服务器在所述策略和用户模型上运行,并确定要调用的第一验证对象(在此示例中,DOB)。在步骤704,服务器更新上下文,并将对该对象和上下文的请求发送到客户端。
在步骤706,客户端获取对所调用的验证对象的响应(“DOB=08-02-1975”),并将该响应与当前的上下文一起发送给服务器。如上所述,在使用多于一个服务器的实施例中,不需要将响应发送到初始服务器,而是可以将它发送到认证系统中的另一服务器。这是因为可存在于这种实施例中的通信的无状态客户端-服务器性质。
然后,在步骤708,服务器(初始的或其它服务器)对验证对象评分,更新上下文、确定策略中的下一状态、并从可用对象的列表中选择下一个验证对象(在此示例中,CUR_BALANCE),并将其与更新后的上下文一起发送给客户端。
由于CUR_BALANCE对象是具有频繁改变的回答的动态对象,因此在步骤710,客户端利用从应用获得的当前值(curBalance=10000)更新相关的上下文变量。在步骤712,服务器返回对步骤710的确认。
在步骤714,客户端获取对所调用的验证对象的响应(CUR_BALANCE=10000),并将该响应与当前的上下文一起发送给服务器。
然后,在步骤716,服务器对验证对象评分,确定该策略已被满足,并输出“接受”决定。然后,客户端结束验证会话。
应当理解,注册会话和管理会话将具有各自的特定于在那些会话中执行的操作的客户端和服务器之间的请求-响应对。还应当理解,在单个计算机系统上实施认证系统的实施例中,当执行与特定会话相关的操作时,用户直接与该单个计算机系统交互。
尽管在这里参考附图描述了本发明的说明性实施例,但是应当理解,本发明不限于这些具体实施例,并且在不脱离本发明的范围或精神的情况下,本领域技术人员可以进行各种其它改变和修改。
权利要求
1.一种在执行用户认证时使用的设备,包括至少一个处理器,用于(i)获得用户输入,其中,用户输入的至少一部分与两个或更多验证对象相关;以及(ii)基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略,验证用户;以及存储器,耦接到所述至少一个处理器,用于存储与用户验证操作相关的用户输入和结果的至少之一。
2.如权利要求1所述的设备,其中,所述至少一个处理器还用于根据分别响应于所述两个或更多验证对象的两个或更多验证过程来执行用户验证操作。
3.如权利要求2所述的设备,其中,所述两个或更多验证过程分别将所述两个或更多验证对象与至少一个用户模型相比较。
4.如权利要求3所述的设备,其中,所述至少一个用户模型被预先存储在存储器中,并且可以由所述至少一个处理器访问。
5.如权利要求4所述的设备,其中,在所述两个或更多验证对象之间共享所述至少一个用户模型。
6.如权利要求3所述的设备,其中,用可扩展标记语言实施所述至少一个用户模型。
7.如权利要求1所述的设备,其中,所述至少一个验证策略被预先存储在存储器中,并且可以由所述至少一个处理器访问。
8.如权利要求1所述的设备,其中,用可扩展标记语言实施所述至少一个验证策略。
9.如权利要求1所述的设备,其中,上下文包括一个或更多与用户验证操作相关的变量。
10.如权利要求9所述的设备,其中,所述一个或更多上下文变量表示以下的一个或更多(i)用户名;(ii)所述至少一个验证策略中的当前状态;(iii)关于所述两个或更多验证对象的历史;(iv)特定于应用的需求;(v)特定于用户的需求;以及(vi)物理或逻辑变量。
11.如权利要求1所述的设备,其中,所述两个或更多验证对象表示可用来验证用户的身份、用户的知识和用户的拥有物的对象类型的至少之一。
12.如权利要求1所述的设备,其中,所述至少一个处理器还用来接受为用户验证操作中的后续使用而进行的验证策略、验证对象类型、用户模型和与上下文相关的变量的至少之一的添加、修改和删除的至少之一。
13.一种用户认证系统,其中,该用户认证系统根据至少一个客户端设备工作,该系统包括至少一个服务器,耦接到所述至少一个客户端设备,其中,所述至少一个服务器从所述至少一个客户端设备获得用户输入,其中,用户输入的至少一部分与两个或更多验证对象相关,此外,所述至少一个服务器基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略来验证用户。
14.如权利要求13所述的系统,其中,用户预先注册数据,所述数据的至少一部分用来生成用户模型,使得所述至少一个服务器在用户验证操作期间使用所述至少一个用户模型。
15.如权利要求13所述的系统,其中,所述至少一个服务器还包括两个或更多用于执行用户验证操作的验证引擎,所述两个或更多验证引擎分别响应于所述两个或更多验证对象。
16.如权利要求13所述的系统,其中,上下文包括一个或更多与用户验证操作相关的变量,并被保持在所述至少一个客户端设备和所述至少一个服务器上。
17.如权利要求16所述的系统,其中,所述一个或更多上下文变量表示以下的一个或更多(i)用户名;(ii)所述至少一个验证策略中的当前状态;(iii)关于所述两个或更多验证对象的历史;(iv)特定于应用的需求;(v)特定于用户的需求;以及(vi)物理或逻辑变量。
18.如权利要求13所述的系统,其中,所述两个或更多验证对象表示可用来验证用户的身份、用户的知识和用户的拥有物的对象类型的至少之一。
19.如权利要求13所述的系统,其中,所述至少一个服务器用来接受为用户验证操作中的后续使用而进行的验证策略、验证对象类型、用户模型和与上下文相关的变量的至少之一的添加、修改和删除的至少之一。
20.一种自动的用户认证方法,该方法包括以下步骤获得用户输入,其中,用户输入的至少一部分与两个或更多验证对象相关;以及基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略,验证用户。
21.如权利要求20所述的方法,其中,根据分别响应于所述两个或更多验证对象的两个或更多验证引擎,执行用户验证步骤。
22.如权利要求21所述的方法,其中,所述两个或更多验证引擎分别将所述两个或更多验证对象与至少一个用户模型相比较。
23.如权利要求22所述的方法,其中,在所述两个或更多验证对象之间共享所述至少一个用户模型。
24.如权利要求22所述的方法,其中,基于根据用户注册会话获得的数据,预先产生所述至少一个用户模型。
25.如权利要求20所述的方法,其中,上下文包括一个或更多与用户验证步骤相关的变量。
26.如权利要求25所述的方法,其中,所述一个或更多上下文变量表示以下的一个或更多(i)用户名;(ii)所述至少一个验证策略中的当前状态;(iii)关于所述两个或更多验证对象的历史;(iv)特定于应用的需求;(v)特定于用户的需求;以及(vi)物理或逻辑变量。
27.如权利要求20所述的方法,其中,所述两个或更多验证对象表示可用来验证用户的身份、用户的知识和用户的拥有物的对象类型至少之一。
28.如权利要求20所述的方法,还包括以下步骤接受为用户验证操作中的后续使用而进行的验证策略、验证对象类型、用户模型和与上下文相关的变量的至少之一的添加、修改和删除的至少之一。
29.一种用于在用户认证中使用的产品,包括含有一个或更多程序的机器可读介质,其中,当所述程序被执行时,其实施以下步骤获得用户输入,其中,用户输入的至少一部分与两个或更多验证对象相关;以及基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略,验证用户。
30.如权利要求29所述的产品,其中,根据分别响应于所述两个或更多验证对象的两个或更多验证引擎,执行用户验证步骤。
31.如权利要求30所述的产品,其中,所述两个或更多验证引擎分别将所述两个或更多验证对象与至少一个用户模型相比较。
32.如权利要求29所述的产品,其中,在所述两个或更多验证对象之间共享所述至少一个用户模型。
33.如权利要求32所述的产品,其中,基于根据用户注册会话获得的数据,预先产生所述至少一个用户模型。
34.如权利要求29所述的产品,其中,上下文包括一个或更多与用户验证步骤相关的变量。
35.如权利要求34所述的产品,其中,所述一个或更多上下文变量表示以下的一个或更多(i)用户名;(ii)所述至少一个验证策略中的当前状态;(iii)关于所述两个或更多验证对象的历史;(iv)特定于应用的需求;(v)特定于用户的需求;以及(vi)物理或逻辑变量。
36.如权利要求29所述的产品,其中,所述两个或更多验证对象表示可用来验证用户的身份、用户的知识和用户的拥有物的对象类型至少之一。
37.如权利要求29所述的产品,还包括以下步骤接受为用户验证操作中的后续使用而进行的验证策略、验证对象类型、用户模型和与上下文相关的变量的至少之一的添加、修改和删除的至少之一。
38.一种认证系统,包括验证管理器;以及验证装置,耦接到验证管理器;其中,验证管理器用于控制以下步骤(i)根据验证装置验证用户;以及(ii)为后续用户验证定制用户验证装置。
39.如权利要求38所述的系统,其中,用户验证装置定制操作包括验证策略、验证对象类型、用户模型和与验证上下文相关的变量的至少之一的添加、修改和删除的至少之一。
40.如权利要求38所述的系统,其中,用户验证装置定制操作还包括定制用户验证装置,以允许处理特定于用户的约束、特定于应用的约束、以及特定于交易的约束的至少之一。
41.一种认证系统,包括验证管理器;以及两个或更多验证引擎,耦接到验证管理器;其中,验证管理器用于控制以下步骤(i)获得用户输入,其中,用户输入的至少一部分与两个或更多验证对象相关;以及(ii)基于所述两个或更多验证对象,根据在所述两个或更多验证对象之间共享的上下文上工作的至少一个验证策略,使用所述两个或更多验证引擎来验证用户。
42.如权利要求41所述的系统,其中,验证策略管理器还用于控制至少一个新验证引擎的添加、修改和删除的至少之一。
43.如权利要求42所述的系统,其中,所述至少一个新验证引擎响应于现有验证对象和新验证对象之一。
44.如权利要求41所述的系统,其中,验证管理器和所述两个或更多验证引擎的至少一个通过网络耦接。
45.如权利要求41所述的系统,其中,验证管理器和所述两个或更多验证引擎与验证服务器相关,此外,认证系统包括与验证服务器通信的客户端设备。
46.如权利要求45所述的系统,其中,上下文可存储在可由至少客户端设备和验证服务器访问的中央位置处,使得客户端设备和验证服务器能够参与无状态通信。
47.如权利要求41所述的系统,其中,认证系统还包括数据存储装置,用于存储用来执行用户验证的验证策略、所述两个或更多验证策略的规定、以及用户模型的至少之一。
48.如权利要求47所述的系统,其中,验证管理器、所述两个或更多验证引擎、以及耦接到验证管理器的客户端设备之一可访问数据存储装置。
49.一种用户认证系统,其中,该用户认证系统根据至少一个客户端设备工作,该系统包括至少一个服务器,耦接到所述至少一个客户端,其中,所述至少一个服务器从所述至少一个客户端设备获得用户输入,并基于用户输入的至少一部分来验证用户,此外,根据可扩展标记语言来实施所述至少一个客户端设备和所述至少一个服务器之间的通信接口。
50.如权利要求49所述的系统,其中,所述至少一个客户端设备和所述至少一个服务器之间的通信接口支持验证会话、注册会话和管理会话的至少之一。
51.一种认证系统,包括至少一个验证策略;以及验证装置,用于根据所述至少一个验证策略来验证用户,其中,可根据验证装置作为状态机来实施所述至少一个验证策略。
52.如权利要求51所述的系统,其中,状态机包括输出决定的最终状态和中间状态的至少之一。
53.如权利要求51所述的系统,其中,所述至少一个验证策略是动态的。
54.如权利要求51所述的系统,其中,所述至少一个验证策略基于一个或更多能够转移到一个或更多不同状态的条件。
55.一种认证系统,包括至少一个验证对象;以及验证装置,用于根据所述至少一个验证对象来验证用户,其中,所述至少一个验证对象为以下的至少一项(i)可用于验证,而不使用相关的验证引擎;(ii)不需要利用与所述至少一个验证对象有关的用户数据来预先注册;(iii)动态的;(iv)隐含的;(v)能够从另一对象继承至少一个属性;(vi)其特征在于多个输入;(vii)被加权;以及(viii)能够被操纵。
56.如权利要求55所述的系统,其中,验证对象具有与其相关的迷惑度值。
57.如权利要求56所述的系统,其中,与验证装置相关的验证策略使用迷惑度值。
58.一种认证系统,包括至少一个用户模型;以及验证装置,用于根据所述至少一个用户模型来验证用户,其中,所述至少一个用户模型为以下的至少一项(i)表示一个或更多用户偏好;以及(ii)能够被修改,以便在后续用户验证中使用。
59.一种认证系统,包括验证管理器;以及一个或更多验证引擎,耦接到验证管理器;其中,验证管理器用于控制以下步骤(i)获得用户输入,其中,用户输入的至少一部分与一个或更多验证对象相关;(ii)获得与外部源相关的数据;以及(iii)根据在所述一个或更多验证对象之间共享的上下文和外部源数据上工作的至少一个验证策略,使用基于所述一个或更多验证对象的所述一个或更多验证引擎并使用外部源数据,验证用户。
60.一种认证系统,包括至少一个验证策略;以及验证装置,用于根据所述至少一个验证策略来验证用户,其中,所述至少一个验证策略基于至少一个验证对象、一个或更多上下文变量和外部源数据。
61.一种自动的用户认证方法,该方法包括以下步骤根据验证装置验证用户;以及为后续用户验证定制用户验证装置。
62.一种自动的用户认证方法,该方法包括以下步骤获得用户输入;以及基于用户输入的至少一部分,根据至少一个验证策略来验证用户,其中,可以作为状态机实施所述至少一个验证策略。
63.如权利要求62所述的方法,其中,验证步骤还包括输出中间决定和最终决定的至少之一。
64.一种自动的用户认证方法,该方法包括以下步骤获得用户输入,其中,用户输入的至少一部分与至少一个验证对象相关;以及根据所述至少一个验证对象来验证用户,其中,所述至少一个验证对象为以下的至少一项(i)可用于验证,而不使用相关的验证引擎;(ii)不需要利用与所述至少一个验证对象有关的用户数据来预先注册;(iii)动态的;(iv)隐含的;(v)能够从另一对象继承至少一个属性;(vi)其特征在于多个输入;(vii)被加权;以及(viii)能够被操纵。
65.一种自动的用户认证方法,该方法包括以下步骤获得至少一个用户模型;以及根据所述至少一个用户模型来验证用户,其中,所述至少一个用户模型为以下的至少一项(i)表示一个或更多用户偏好;以及(ii)能够被修改,以便在后续用户验证中使用。
66.一种自动的用户认证方法,该方法包括以下步骤获得至少一个验证策略;以及根据所述至少一个验证策略来验证用户,其中,所述至少一个验证策略基于至少一个验证对象、一个或更多上下文变量和外部源数据。
全文摘要
提供了一种允许动态用户认证的认证框架,该动态用户认证组合使用共享上下文的多个认证对象,并允许可定制的交互设计,以适应变化的用户偏好和交易/应用需求。这种框架提供高度灵活性、准确性、便利性和鲁棒性。在本发明的一个说明性方面,一种用于用户认证的自动技术包括以下步骤/操作。首先,获得用户输入。用户输入的至少一部分与两个或更多验证对象相关。然后,基于该两个或更多验证对象,根据在该两个或更多验证对象之间共享的上下文上工作的至少一个验证策略来验证用户。本发明的用户认证技术可优选地在灵活的分布式架构中实施,该架构包括耦接到至少一个验证服务器的至少一个客户端设备。客户端设备和验证服务器可以一起工作,以执行本发明的用户认证技术。
文档编号G06F21/00GK1688953SQ03824522
公开日2005年10月26日 申请日期2003年7月21日 优先权日2002年10月30日
发明者甘尼什·N·拉马斯瓦米, 兰·齐尔卡, 奥利格·亚历克桑德罗维奇 申请人:国际商业机器公司