渐进式身份验证安全适配器的制作方法

文档序号:20999993发布日期:2020-06-05 22:35阅读:191来源:国知局
渐进式身份验证安全适配器的制作方法

本文描述的主题涉及用于使用各种身份验证模式提供对资源的访问的增强技术,各种身份验证模式包括使用机器学习的至少一个模式。



背景技术:

人工智能,特别是机器学习,正越来越多地被用于用户的身份验证,以为他们提供对资源的访问。一个特定类型的被广泛采用的基于机器学习的身份验证是面部识别,诸如某些智能手机上提供的面部识别。面部识别作为一个身份验证解决方案,本质上有一些缺点。例如,人的面部图像是不稳定的,在不同的光照条件下总是存在差异,并且使得人的外貌每天都有轻微的变化。因此,在实践中,形成身份验证解决方案一部分的面部识别算法必须具有可变的错误接受率和错误拒绝率。对面部识别配置的不适当设置可能会无意中增加错误接受率,并导致不准确的用户身份验证。

此外,基于机器学习的身份验证技术,如果没有得到适当的训练,更容易受到各种攻击路径的影响。例如,在利用基于机器学习的身份验证技术的应用中可能存在实施方式漏洞。可能会经由图像、视频、3-d打印机表示、虚拟现实、增强现实等来欺骗人的身份。这种攻击对面部识别身份验证解决方案的影响可能是严重的,因为它们可能允许非法访问手机、建筑处所或任何其他正在被使用的应用。非法访问手机可能允许手机上的银行凭证和私密照片及数据被盗,而非法访问建筑处所将导致员工中毒或非法访问源代码。同时,训练不当的基于机器学习的身份验证解决方案可能会有高的错误率,这会阻碍合法用户对资源的访问,给现实生活带来不便和混乱。



技术实现要素:

在第一方面,从请求者接收用于向用户提供对资源的访问的身份验证数据。身份验证数据封装了第一身份验证解决方案和第二身份验证解决方案两者都需要的用于提供对资源的访问的数据。第一和第二身份验证解决方案的身份验证模式可以不同,其中第二身份验证解决方案利用至少一个机器学习模型。此后,使用接收到的身份验证数据,启动第一和第二身份验证解决方案两者。从第一和第二身份验证解决方案两者接收身份验证结果。如果接收到的两个身份验证结果都指示用户的身份验证成功,则向请求者提供对资源的访问。

如果身份验证结果中的至少一个指示用户的身份验证不成功,则可以阻止请求者访问资源。此外,具有这种变型,可以向请求者提供(例如,显示、传输、存储等)用户的身份验证不成功的指示。

如果第一身份验证解决方案指示用户的身份验证不成功,而第二身份验证解决方案指示用户的身份验证成功,则可以阻止请求者访问资源。此外,具有这种变型,可以向请求者提供(例如,显示、传输、存储等)用户的身份验证不成功的指示。

如果第一身份验证解决方案指示用户的身份验证成功,并且第二身份验证解决方案指示用户的身份验证不成功,则可以检查用户的可靠性比率,该可靠性比率表征第二身份验证解决方案所利用的机器学习模型的训练水平。如果可靠性比率高于预定义阈值,则可以向请求者提供对资源的访问。替代地,如果可靠性比率低于预定义阈值,则可以阻止请求者访问资源。

第二身份验证解决方案可以利用从用户导出的生物数据(biometricdata)。生物数据可以包括例如以下中的一个或多个:面部图像、声音记录、语音记录、指纹或手印。

资源可以采取不同的形式,诸如数字/计算资源,包括计算机系统、软件应用或计算机数据文件。可替代地,资源可以是物理资产,诸如门、锁或其他物理世界项目或障碍。

还描述了存储指令的非暂时性计算机程序产品(即,物理实现的计算机程序产品),当由一个或多个计算系统的一个或多个数据处理器执行时,该指令使得至少一个数据处理器执行本文的操作。类似地,还描述了可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器的计算机系统。存储器可以临时或永久存储指令,指令使得至少一个处理器执行本文描述的一个或多个操作。此外,方法可以由单个计算系统内或分布在两个或多个计算系统当中的一个或多个数据处理器来实施。这种计算系统可以经由一个或多个连接来连接并交换数据和/或命令或其他指令等,该一个或多个连接包括但不限于通过网络(例如,因特网、无线广域网、局域网、广域网、有线网络等)的连接、经由多个计算系统中的一个或多个之间的直接连接等。

本文描述的主题提供了许多技术优势。例如,当前主题可用于在正训练相应模型的同时选择性地装载基于机器学习的身份验证技术。这种布置是有利的,因为机器学习需要许多高质量的训练数据来训练模型,并且数据的质量对这种模型的准确度有直接影响。特别地,对于监督学习,覆盖不同种类可能数据的标记训练数据集对于训练稳定和可靠的模型是重要的。

本文描述的主题的一个或多个变型的细节在附图和下面的描述中阐述。本文描述的主题的其他特征和优点将从描述和附图以及权利要求中变得明显。

附图说明

图1是示出用于实施渐进式安全适配器的计算环境的图;

图2是示出诸如图1所示的组件当中的数据交换的第一图;

图3是示出诸如图1所示的组件当中的数据交换的第二图;

图4是示出诸如图1所示的组件当中的数据交换的第三图;

图5是示出用于为访问资源提供渐进式身份验证技术的技术的过程流程图;和

图6是用于实施本文描述和示出的方面的计算设备的方面的图。

各个附图中相似的参考符号指示相似的元件。

具体实施方式

图1是逻辑架构图100,其中请求者110(即,被用户访问的计算节点)通过执行点(enforcementpoint)120耦合到渐进式安全适配器130(progressivesecurityadapter,pasa)。pasa130可以选择性地访问使用不同身份验证模式的第一身份验证解决方案140和第二身份验证解决方案150。例如,第一身份验证解决方案140可以是密码(password)/口令码(passcode)身份验证解决方案,其基于存储在数据库160(可由这样的第一身份验证解决方案140访问)内的数据来确认输入数据的准确度。第二身份验证解决方案150可以是利用机器学习的身份验证解决方案。在一些情况下,第二身份验证解决方案150是独立的(即,它是完全训练的,等等),而在其他情况下,第二身份验证解决方案150可以访问、更新或以其他方式利用存储在训练数据数据库170中的训练数据。示例模式包括面部识别、语音识别、生物识别(例如由触摸板、键盘、相机检测的指纹、手印、用户移动,等等)。如下所述,pasa130可以基于来自身份验证解决方案140、150中的一个或多个身份验证解决方案的反馈来提供对资源180的访问。资源180可以是例如数据(例如,文本、音频、视频等)、计算机系统,或者它可以是允许访问物理资产的触发器。例如,资源180可以是打开安全门或大门的指令。

再次参考图1,执行点120可以表示负责将源自请求者110的请求转发到身份验证解决方案的一个或多个系统。具体地,执行点120可以拦截来自请求者110的身份验证请求,然后将它们(全部或在解析或以其他方式修改之后)中继到pasa130。请求者110可以向执行点120发送身份验证请求。这些身份验证请求可以封装各种类型的数据,诸如用户名/密码组合和/或表示生物属性的数据(例如,表征从电话、门铃、亭子上的相机获得的面部图像的向量,等等)。

利用并入pasa130的当前计算框架,pasa130可以在第一身份验证解决方案140(在一些实施方式中,其可以被表征为传统身份验证解决方案)和第二身份验证解决方案150(其使用机器学习)之间进行协调。应当理解,第一身份验证解决方案140也可以使用机器学习。在这种情况下,与第二身份验证解决方案150相比,第一身份验证解决方案140可以具有更高水平的训练,使得其在这种给定时刻潜在地更可靠。此外,在一些情况下,第一身份验证解决方案140的输出可以用于训练第二身份验证解决方案150,如以下关于正常模式和简单模式所述。

此外,只有当第二身份验证解决方案150已经被适当训练或以其他方式提供高于预定义或期望阈值的准确度时,或者当满足其他条件时,pasa130才可以选择性地激活第二身份验证解决方案150。例如,pasa130可以考虑被保护的资源180的敏感度、第二身份验证解决方案150的历史可靠性(平均以及对于特定请求者两者)、以及第二身份验证解决方案150的可靠性阈值。应当理解,根据期望的配置,pasa130也可以用于在多于两个的身份验证解决方案之间切换。例如,当第一次访问资源180和/或基于请求用户110的角色时,可能需要多于两个的身份验证解决方案。

第二身份验证解决方案150(以及在一些变型中,第一身份验证解决方案140)可以使用各种类型的机器学习模型。示例性机器学习模型包括但不限于逻辑回归、支持向量机、神经网络(例如,并发神经网络、递归神经网络、深度学习等)、随机森林等等。在一些情况下,可以使用特定用户独有的用户身份验证数据来训练这些模型,在其他情况下,可以使用从一组用户获得的身份验证数据来训练这些模型,在又一其他情况下,可以使用用户独有的身份验证数据和来自一组用户的身份验证数据的组合来训练这些模型。

在一些变型中,当满足各种模式时,pasa130可以选择性地在第一验证解决方案140和第二身份验证解决方案150之间切换。本文为了说明的目的,这些模式可以包括严格模式、正常模式和简单模式。例如,当请求被pasa130接收时,模式可以被触发。例如,请求可能针对需要更高级别身份验证的资源180和/或请求可能来自需要更高级别身份验证的用户,或者相反。

严格模式可以用于高度敏感的资源180,其中第一身份验证解决方案140和第二身份验证解决方案150两者的输出都用于确定是否提供对资源180的访问。

正常模式可用于中等敏感资源180,使得在正训练第二身份验证解决方案150的同时,第一身份验证解决方案140的输出被赋予比第二身份验证解决方案150的输出更大的权重。如果在第一身份验证解决方案140和第二身份验证解决方案150的输出之间发生冲突,在一些变型中,警告(即,消息、电子邮件等)可以被给出(例如,显示给安全警卫、通过电子邮件发送给系统管理员,等等)来确认请求者110的身份。在一些情况下,第一身份验证解决方案140和第二身份验证解决方案150的冲突的输出可以形成训练数据170的一部分(训练数据170反过来用于训练用作第二身份验证解决方案150的一部分的(多个)模型)。

在简单模式下,第二身份验证解决方案150在其被充分训练后优先。在这种情况下,第一身份验证解决方案140可以用于提供形成训练数据170的一部分的标记训练数据(以实现监督/半监督学习)。附加地或替代地,在简单模式下,第一身份验证解决方案140在足够的训练后可用于为其识别可靠性(经由第二身份验证解决方案150)不满足最小可靠性阈值的个人提供双重验证。

图2是示出了处于严格模式时图1的组件当中的各种数据交换的信令图200。最初,在204,请求者110向执行点120发送具有传统身份验证数据(例如,安全卡令牌)以及基于机器学习的数据(例如,面部图像等)的身份验证请求。在208,执行点120聚集这种数据(如果它们从不同的源导出)并且然后将请求转发给pasa130。pasa130随后在212从第二身份验证解决方案150请求身份验证(使用基于机器学习的数据),第二身份验证解决方案150在216将由此而来的结果返回给pasa130。此外,在220,pasa130从第一身份验证解决方案140请求身份验证(使用传统身份验证数据),第一身份验证解决方案140在224将由此而来的结果返回给pasa130。基于这两个结果,pasa130然后或者(i)在228请求资源180,并且如果这两个结果都指示身份验证,则在232将资源180返回给请求者110,或者(ii)在236将指示身份验证失败的错误或其他消息返回给请求者110。

图3是示出了处于简单模式时图1的组件当中的各种数据交换的信令图300。最初,在304,请求者110向执行点120发送具有传统身份验证数据(例如,安全卡令牌)以及基于机器学习的数据(例如,面部图像等)的身份验证请求。在308,执行点120聚集这种数据(如果它们从不同的源导出)并且然后将请求转发给pasa130。pasa130随后在312从第二身份验证解决方案150请求身份验证(使用基于机器学习的数据),第二身份验证解决方案150在316将由此而来的结果返回给pasa130。此外,在320,pasa130从第一身份验证解决方案140请求身份验证(使用传统身份验证数据),第一身份验证解决方案140在324将由此而来的结果返回给pasa130。基于这两个结果,pasa130然后(i)在328请求资源180,并且如果两个返回的结果都指示身份验证,则在332将资源180返回给请求者110,(ii)如果两个身份验证解决方案140、150都指示失败,则在336将指示身份验证失败的错误或其他消息返回给请求者110,或者(iii)如果只有第一身份验证解决方案140指示失败,则在340将指示身份验证失败的错误或其他消息返回给请求者110。如果只有第二身份验证解决方案150指示身份验证失败,则在344,检查请求者110的可靠性比率。可靠性比率可以通过两个身份验证解决方案之间的一致的身份验证结果计数除以总的身份验证请求计数的百分比来计算。如果可靠性比率低于预定义阈值,则在348,向请求者110发送指示身份验证失败的错误或其他消息。如果可靠性比率高于预定义阈值,则在352,资源180被提供给请求者110。在诸如向安全警卫发出通知,请求他或她确认尝试获得对资源180的访问的人的物理身份的这种情况下,可以提供其他消息/指示。

图4是示出了处于简单模式时图1的组件当中的各种数据交换的信令图400。最初,在404,请求者110向执行点120发送具有基于机器学习的数据(例如,面部图像等)的身份验证请求。在408,执行点120将请求转发给pasa130。pasa130随后在412从第二身份验证解决方案150请求身份验证(使用基于机器学习的数据),第二身份验证解决方案150在416将由此而来的结果返回给pasa130。如果第二身份验证解决方案150的身份验证成功,则在420,pasa130请求资源180,并且在424,资源180被提供给请求者110。

如果第二身份验证解决方案150的身份验证不成功,则在428,pasa请求执行点120,以在432请求请求者110获得适合于第一身份验证解决方案140的身份验证数据(例如,传统身份验证数据等)。请求者110最终获得这种身份验证数据,并且在436,将其转发到执行点120,以便在440中继到pasa130。然后,在444,pasa130将最近接收到的身份验证数据发送到第一身份验证解决方案140,第一身份验证解决方案140反过来在448检查该身份验证数据是否足以用来使用第一身份验证解决方案140的技术来对请求者110进行身份验证。如果这种身份验证成功,则在452,pasa130发送对要被发送的资源180的请求,在456,该要被发送的资源180被直接发送给请求者110。如果这种身份验证不成功,则在460,指示如果这种身份验证不成功的消息或其他指示可以被发送回请求者110。然后可以更新用户的可靠性比率。

图5是示出布置的过程流程图500,其中在510从请求者接收身份验证数据。身份验证数据用于向用户提供对资源的访问,并且它可以封装第一身份验证解决方案和第二身份验证解决方案两者都需要的用于提供对资源的访问的数据。第一身份验证解决方案和第二身份验证解决方案使用或以其他方式基于不同的身份验证模式,其中第二身份验证解决方案利用至少一个机器学习模型。然后,在520,使用接收到的身份验证数据启动第一身份验证解决方案和第二身份验证解决方案。随后,在530,从第一身份验证解决方案和第二身份验证解决方案两者接收身份验证结果。在540,如果接收到的两个身份验证结果都指示用户的身份验证成功,则向请求者提供对资源的访问。

图6是示出用于实施本文描述的各个方面的示例计算设备架构的图600。总线604可以用作互连硬件的其他图示组件的信息高速通道。标记为中央处理器(centralprocessingunit,cpu)的处理系统608(例如,给定计算机或多个计算机处的一个或多个计算机处理器/数据处理器)可以执行执行程序所需的计算和逻辑操作。诸如只读存储器(readonlymemory,rom)612和随机存取存储器(randomaccessmemory,ram)616的非暂时性处理器可读存储介质可以与处理系统608通信,并且可以包括用于这里指定的操作的一个或多个编程指令。可选地,程序指令可以存储在非暂时性计算机可读存储介质上,诸如存储在磁盘、光盘、可记录存储设备、闪存或其他物理存储介质上。

在一个示例中,磁盘控制器648可以将一个或多个可选磁盘驱动器连接到系统总线604。这些磁盘驱动器可以是:诸如660的外部或内部软盘驱动器;外部或内部cd-rom、cd-r、cd-rw或者dvd;或者诸如652的固态驱动器;或者外部或内部硬盘驱动器656。如前面所指示的,这些不同的磁盘驱动器652、656、660和磁盘控制器是可选的设备。系统总线604还可以包括至少一个通信端口620,以允许与物理地连接到计算系统或通过有线或无线网络在外部可用的外部设备进行通信。在一些情况下,通信端口620包括或以其他方式包括网络接口。

为了提供与用户的交互,本文描述的主题可以在计算设备上实施,该计算设备具有用于向用户显示从总线604获得的信息的显示设备640(例如,阴极射线管(cathoderaytube,crt)或液晶显示器(liquidcrystaldisplay,lcd)监视器)以及用户可以通过其向计算机提供输入的诸如键盘和/或指示设备(例如,鼠标或轨迹球)和/或触摸屏的输入设备632。其他类型的输入设备632也可以用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感官反馈(例如,视觉反馈、通过麦克风636的听觉反馈、或者触觉反馈);并且来自用户的输入能够以任何形式被接收,包括声音、语音、或者触觉输入。输入设备632和麦克风636可以通过输入设备接口628耦合到总线604并经由总线604传送信息。诸如专用服务器的其他计算设备可以省略显示器640和显示接口614、输入设备632、麦克风636和输入设备接口628中的一个或多个。

本文描述的主题的一个或多个方面或者特征能够以数字电子电路、集成电路、特别设计的专用集成电路(applicationspecificintegratedcircuits,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)计算机硬件、固件、软件、和/或其组合来实现。这些各种方面或者特征可以包括一个或多个计算机程序中的实施方式,该一个或多个计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用处理器或者通用处理器,该可编程处理器被耦合以便从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令以及向其传送数据和指令。可编程系统或计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户机和服务器的关系是通过在各自的计算机上运行的计算机程序产生的,并且彼此之间具有客户机-服务器关系。

这些计算机程序,也可以被称为程序、软件、软件应用、应用、组件、或者代码,包括用于可编程处理器的机器指令,并且可以以高级程序语言、面向对象的编程语言、函数型编程语言、逻辑编程语言来实施,和/或以汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,诸如例如磁盘、光盘、存储器和可编程逻辑设备(programmablelogicdevice,pld),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质能够非暂时地存储这样的机器指令,诸如例如,像非暂时固态存储器或磁性硬盘驱动器或者任何等效的存储介质那样。机器可读介质可以替代地或附加地以暂时方式存储这样的机器指令,诸如例如,像处理器高速缓存或与一个或多个物理处理器核相关联的其他随机存取存储器那样。

为了提供与用户的交互,本文描述的主题可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如,阴极射线管(cathoderaytube,crt)或液晶显示器(liquidcrystaldisplay,lcd)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)和/或触摸屏。其它种类的设备也能够用来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感官反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且来自用户的输入能够以任何形式被接收,包括声音、语音、或者触觉输入。

在以上描述和权利要求中,诸如“至少一个”或“一个或多个”的短语可以出现在元素或特征的联合列表之后。术语“和/或”也可以出现在两个或更多个元素或特征的列表中。除非与其使用的上下文隐含地或明确地矛盾,否则这种短语旨在单独地表示任何列出的元件或特征,或者任何列举的元件或特征与任何其他列举的元件或特征相结合。例如,短语“a和b中的至少一个”“a和b中的一个或多个;”“a和/或b”各自旨在表示“a单独、b单独或a和b一起”。类似的解释也适用于包括三个或更多个项目的列表。例如,“a、b和c中的至少一个”、“a、b或c中的一个或多个”以及“a,b和/或c”各自旨在表示a单独、b单独、c单独、a和b一起、a和c一起、b和c一起或a、b和c在一起。此外,以上和权利要求中术语“基于”的使用旨在表示“至少部分地基于”,使得未引用的特征或元素也是允许的。

本文描述的主题可以根据期望的配置体现在系统、装置、方法和/或物品中。前面描述中阐述的实施方式并不代表与本文描述的主题一致的所有实施方式。相反,它们仅仅是与所描述的主题相关的方面一致的一些示例。尽管上面已经详细描述了一些变化,但是其他修改或添加也是可以的。具体地,除了本文阐述的特征和/或变化之外,还可以提供其他特征和/或变化。例如,上述实施方式可以针对所公开的特征的各种组合和子组合和/或上面公开的若干进一步特征的组合和子组合。此外,附图中描绘的和/或本文描述的逻辑流程不一定需要所示的特定顺序或次序来实现期望的结果。其他实施方式可以在所附权利要求的范围内。

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