无密码软件系统用户认证

文档序号:1189444 发布日期:2020-09-22 浏览:7次 >En<

阅读说明:本技术 无密码软件系统用户认证 (Password-free software system user authentication ) 是由 G·F·吉拉杰克 J·罗 H·V·斯特朗 戴吾伦 于 2018-11-05 设计创作,主要内容包括:作为用以标识用户的认证过程的一部分来接收数据。这样的数据表征由用户根据期望的生物特征序列与至少一个输入设备交互而产生的用户生成的生物特征序列。此后,如果至少一个机器学习模型的输出高于阈值,则使用所接收的数据和该至少一个机器学习模型来认证用户,其中该至少一个机器学习模型是使用由多个用户生成的生物特征序列(例如,根据期望的生物特征序列的历史上的用户生成的生物特征序列等)生成的经验导出的历史数据而被训练的。可以提供表征该认证的数据。还描述了相关的装置、系统、技术和物品。(The data is received as part of an authentication process to identify the user. Such data characterizes a user-generated biometric sequence produced by a user interacting with at least one input device according to a desired biometric sequence. Thereafter, if an output of at least one machine learning model is above a threshold, the user is authenticated using the received data and the at least one machine learning model, wherein the at least one machine learning model is trained using empirically derived historical data generated by a plurality of user-generated biometric sequences (e.g., user-generated biometric sequences over a history of expected biometric sequences, etc.). Data characterizing the authentication may be provided. Related apparatus, systems, techniques, and articles are also described.)

无密码软件系统用户认证

相关申请的交叉引用

本申请要求于2017年11月9日提交的美国专利申请第15/808,533号的优先权,该申请的全部内容通过引用并入本文。

技术领域

本文中描述的主题涉及使用包括基于生物特征的认证的无密码技术来向软件系统认证用户。

背景技术

为了访问信息技术(IT)资源(例如,(多个)软件应用、数据等),用户经常需要向提供IT资源的系统进行认证。例如,如果用户希望通过在线银行应用访问其个人支票帐户,则用户可能需要输入用户名、密码等和/或提供附加认证码(例如,银行提供给与用户相关联的已知设备的临时代码)。尽管这些认证措施通常可以提高安全性并且减少用户的个人信息可能遭到破坏的可能性,但是通常这些措施的规避方案会被方案并且被加以利用。

发明内容

作为用以标识用户的认证过程的一部分,接收数据。这样的数据表征用户生成的生物特征序列,其是由用户根据期望的生物特征序列与至少一个输入设备交互而生成的。此后,如果使用由多个用户生成的生物特征序列(例如,根据期望的生物特征序列的历史上的用户生成的生物特征序列等)生成的经验导出的历史数据而训练的至少一个机器学习模型的输出高于阈值,则使用所接收的数据和该至少一个机器学习模型来认证用户。表征该认证的数据可以被提供。

期望的生物特征序列可以是预定义的,或者替代地,可以被动态地选择或生成。例如,期望的生物特征序列可以使用至少一个生物特征序列生成机器学习模型来动态地生成。

作为在认证过程之前的训练过程的一部分,可以使用训练数据。这样的训练数据可以形成经验导出的历史数据的至少一部分。至少一个机器学习模型的训练可以是静态的,也可以是持续的(即,至少一个机器学习模型可以是自适应的并且不断地完善自身,等等)。

认证可以包括初始确定用户是否正确地完成了生物特征序列。

至少一个机器学习模型可以包括利用以下中的至少一项的模型:有监督学习、无监督学习、半监督学习或强化学习。例如,至少一个机器学习模型可以利用以下中的一项或多项:随机森林、最近邻居模型、朴素贝叶斯、决策树、线性回归模型、支持向量机(SVM)、神经网络、k均值聚类、贝叶斯方法、统计方法、引导程序模型、Q学习模型、时差(TD)模型或深度对抗网络。

数据的供应(provision)可以包括如果所接收的数据被成功认证,则提供对生物特征密码密钥的访问。在一些变型中,可以在呈现给用户的图形用户界面中提供提示,以促使用户提供字母数字密码。此后,可以经由图形用户界面接收包括输入的密码的用户生成的输入。然后可以使用生物特征密码密钥对密码进行本地加密。此外,生物特征密码密钥可以用于解密本地存储的域密码。

生物特征密码密钥可以基于用于执行期望的生物特征序列的计算设备的一个或多个属性以编程方式来生成。

所接收的数据可以包括矢量中形成用户生成的生物特征序列的一部分的各种动作值的矢量化。在这种情况下,认证包括:使用至少一个机器学习模型的每个部分分别确定形成矢量的一部分的每个动作值指示用户生成的生物特征序列是由期望用户执行的。此外,对于每个成功认证的动作值,可以提供生物特征密码密钥的对应部分,并且可以连结生物特征密码密钥的各部分以产生最终的生物特征密码密钥。

在一些变型中,阈值可以是静态的并且是预定义的。此外,阈值对应于置信度水平。这样的置信度水平可以动态地改变。

提供表征认证的数据可以包括以下中的一项或多项:使这样的数据被显示在电子视觉显示器中;将这样的数据加载到存储器中;以物理持久性方式存储这样的数据;向远程计算设备传输这样的数据。

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

本文中描述的主题提供了很多技术优势。例如,当前主题提供了用于对用户进行生物特征认证的增强技术,从而降低了未授权用户访问软件系统的可能性。而且,当前主题的优点在于,它提供了更高级别的安全性,同时在一些实现中,避免了使用字母数字密码的需求,字母数字密码本质上通常是简单的并且易于破解。

在附图和以下描述中阐述了本文中描述的主题的一个或多个变型的细节。从说明书和附图以及从权利要求书中,本文中描述的主题的其他特征和优点将很清楚。

附图说明

图1是示出用户在机器学习模型训练时段执行预定义的生物特征序列的图;

图2是示出用户在机器学习模型训练时段执行唯一的生物特征序列的图;

图3是示出第一认证工作流的过程流程图;

图4是示出第二认证工作流的过程流程图;

图5是示出第三认证工作流的过程流程图;

图6是示出执行生物特征序列的用户的认证的过程流程图;以及

图7是示出用于实现本文中描述的各方面的计算设备的图。

具体实施方式

当前主题涉及用于访问软件系统/计算资源的无密码认证技术的系统、装置、方法和计算机程序产品。这些技术可以是独立的,也可以与其他技术结合使用,诸如常规的用户名/密码登录提示等。此外,与试图模仿用户动作的恶意行为者相反,这些技术利用机器学习将用户的动作更准确地表征为真实动作。

本文中的认证技术可以利用生物特征序列,该生物特征序列涉及用户使用计算设备的一个或多个输入设备(例如,平板电脑、移动电话、膝上型计算机、台式机、IoT设备等)采取一系列移动/动作。

特别地,机器学习模型用于表征和区分特定用户在认证过程中如何处理诸如触摸屏、键盘、触控板和/或鼠标等输入设备。如本文中使用的认证序列可以包括生物特征序列,其中输入设备用于执行动作序列。这些动作可以是移动(例如,根据需要大量单独移动的网格或其他图案)、图形用户界面(GUI)元素的激活、输入设备元件的激活(例如,单击按钮,移动跟踪板或滚轮,等等)。

在一些变型中,为了使机器学习模型适合于特定用户,必须首先训练这些机器学习模型。训练时段要求用户多次重复生物特征序列。认证应用可以例如提示用户多次执行该序列,可能需要连续数天(被视为“训练时段”),以便机器学习模型可以不断地对其自身进行微调。在一些其他变型中,训练是连续的(即,模型是自适应的,等等),因为可以针对生物特征序列的每个后续执行基于用户动作来对模型进行“微调”。

在一些变型中,可以使用两个因素来分析生物特征序列。首先,可以确定用户是否完成了生物特征序列。该确定不一定需要使用机器学习模型。第二,可以确定在完成生物特征序列时的用户行为是否可能已经由对应用户执行。第二个确定可以使用在训练时段所训练的至少一个机器学习模型。

在某些情况下,生物特征序列是预定义的,以使得用户多次重复已知序列并且现场序列的一部分的每个动作被表征。例如,参考图1的图100,计算设备(例如,移动电话等)的GUI可以包括点的网格,并且在用户在“Z”的每个点处激活输入设备的情况下,预定义的生物特征序列要求用户跨网格的点输入向后的“Z”。在其他情况下,参考图2的图200,生物特征序列由用户在训练时段生成。例如,用户可以选择经由计算设备的输入设备创建螺旋形状,并且在训练时段多次重复这种形状。可选地,用户还可以在沿着螺旋线的各个点处激活输入设备(例如,在螺旋线的开始和结束时按下触摸屏等)。

在另一变型中,生物特征序列不是预定义的,而是动态地生成的,或者是从大量可用的生物特征序列中随机选择的。无论哪种情况,机器学习都可以用于生成/修改用户输入的“规则”或“序列类型”,以使模型识别特定用户的能力最大化。可以根据机器学习算法来动态地修改生物特征序列,以减少第三方成功执行生物特征序列的可能性(由机器学习模型确定)。换言之,机器学习模型(关于生物特征序列生成)可以不断地试验哪些动作/序列构成生物特征序列。

在训练时段在每次执行生物特征序列期间记录表征生物特征序列的各种属性。例如,对于图1示例,绘制形成向后的“Z”的一部分的每条线的速度、在向后的“Z”的每个端点处的静止时间量、每条线的XY坐标偏差、对每条线和/或在每个端点处施加的压力等。

在一个示例中,属性的值可以填充表征以下各项的20维矢量:

左键单击或拖放的时间

右键单击的时间

双击时间1

双击时间2

双击时间3

鼠标移动或拖放的方向

鼠标移动或拖放形成的线

鼠标移动或拖放的线速度

鼠标移动或拖放形成的曲线

鼠标移动或拖放的曲线速度

鼠标移动或拖放的曲线加速度

鼠标移动或拖放的曲线比率

鼠标移动或拖放的偏移

鼠标移动或拖放的错误

鼠标移动或拖放的可变性

鼠标移动或拖放的曲率

鼠标移动或拖放的弯曲速率

鼠标移动或拖放的弯曲速度

鼠标移动或拖放的弯曲加速度

鼠标移动或拖放的角速度

矢量中的各种属性可以用于生成用户唯一的生物特征密码密钥。该生物特征密码密钥可以通过使用例如AES 256算法等来对矢量进行加密来生成。在其他变型中,生物特征密码密钥可以由产品基于一个或多个计算设备特定属性以编程方式生成,并且该密钥然后与矢量相关联。

在一些变型中,生物特征密码密钥可以是密钥部分的连结,每个密钥部分对应于矢量中的属性之一。例如,生物特征密码密钥可以被存储为不同密钥部分中的一部分,并且仅当条件(由机器学习模型确定)认为属性值指示正确的用户执行了生物特征序列的该部分时,才返回每个密钥部分。

在运行时间期间(即,在训练时段等之后),用户被提示或以其他方式引起经由计算设备的界面输入生物特征序列(直接通过触摸屏和附接的按钮,或者经由外部输入设备,诸如鼠标、键盘、触控板、滚球等)。最初,对生物特征序列进行分析以确保其被适当完成(例如,输入设备进行了适当的运动等)。如果该分析表明序列已经适当完成,则将用户生成的生物特征序列输入(直接或基于预定义的属性进行矢量化之后)到至少使用在训练时段生成的生物特征序列所被训练的至少一个机器学习模型中。

在某些情况下,还可以使用从其他用户生成的数据(例如,表征在执行相同或相似的生物特征序列时其他用户的行为的数据)来训练至少一个机器学习模型。

至少一个机器学习模型的输出可以例如是得分(例如,置信度得分等),该得分表征用户已经生成经由计算设备(直接或经由***设备)输入的生物特征序列的可能性。在某些情况下,可以利用得分阈值(其可以随用户而改变,或者可以基于用户行为而自适应地改变),该得分阈值在被超过时指示输入的生物特征序列是由用户执行的。当得分指示动作是期望用户的动作时,可以使某些或全部生物特征密码密钥可用。在某些情况下,生物特征序列的每个属性可以具有不同的关键部分,当成功确定这样的属性指示对应的用户行为是用户的行为时,该关键部分将被返回。

可以使用各种类型的机器学习模型,包括基于监督学习、无监督学习、半监督学习和/或强化学习的模型。此外,如上所述,可以以并行或以级联布置来使用多个机器学习模型,在级联布置中,模型的输出用作其他模型的输入(或部分输入)。可以使用的监督学习模型包括:随机森林、最近邻居模型、朴素贝叶斯、决策树、线性回归模型、支持向量机(SVM)和/或神经网络。可以使用的无监督学习模型包括k均值聚类、贝叶斯方法(包括半参数和非参数方法)、统计方法(诸如引导程序)等。半监督学习可以结合监督学习和无监督学习模型两者中的元素。强化学习模型可以包括Q学习模型、时差(TD)模型、深度对抗网络等。

有不同类型的认证工作流可以结合本文中描述的无密码技术来使用。

在一个工作流程中,代理可以用于基于生物特征序列来生成生物特征密码密钥,并且可以用于获取域密码以创建所存储的加密密码(基于在训练时段生成的所生成的生物特征密码密钥和用户提供的域密码的组合),一旦用户输入相同或相似(在预定义的得分阈值等范围内)生物特征序列,该所存储的加密密码即可以用于后续认证。参考图3的处理流程图300,最初,在310处,用户尝试登录到客户端设备的操作系统(例如,WINDOWS等),并且被呈现以图形用户界面中的登录屏幕。此后,在320处,经由图形用户界面和(多个)输入设备,用户通过执行在训练时段指定的生物特征序列来通过认证工作流。可以验证该生物特征序列(即,可以确认生物特征序列已经被适当执行),并且此外,可以是其他用户行为属性数据(其表征如何适当地执行了生物特征序列)。在成功认证之后,在330处,可以确定用户需要对用户的当前域密码进行实时(线上(in-line))加密。接下来,在340处,可以在图形用户界面中呈现附加屏幕,以提示用户输入域密码,并且然后可选地,第二次确认域密码。在成功确认域密码之后,在350处,基于对可用于后续重用的(多个)安全容器的确定,然后在客户端设备上安全地供应域密码。例如,可以将与域密码相对应的加密密码值本地存储在诸如可信平台模块(TPM)等安全容器中,或者替代地,如果TPM不可用,则可以将加密密码值存储在HKLM注册表中。

另一认证工作流涉及后续登录,其中使用实时收集的生物特征密码密钥(从计算设备中的用户生成的生物特征序列中导出的)来解密加密的密码。参考图4的处理流程图400,最初,在410处,用户尝试登录到客户端设备的操作系统(例如,WINDOWS等)和域。此后,经由图形用户界面向用户呈现具有认证工作流的登录屏幕,该认证工作流提示用户输入生物特征序列。接下来,在420处,接收到用户生成的输入,并且确定用户适当地执行了形成认证工作流的一部分的预定生物特征序列。此后,在430处,可以确定在适当地执行生物特征序列时的用户行为是否指示该生物特征序列是由期望用户执行的。例如,基于可以区分另一用户行为来表示一个用户行为的一组预定义特征(例如,矢量化属性等),可以通过至少一个模型为每个特征生成置信度得分。当置信度得分高于可接受阈值(其可以固定或变化)时,将返回生物特征密码密钥的一部分。可以重复该迭代过程,直到对每个输入/动作进行了评分,这导致所有返回的密钥部分被连结以成为最终的生物特征密码密钥。随后,在440处,可以使用最终的生物特征密码密钥对本地存储的加密值进行解密(例如,使用AES 256算法等),以产生域密码。稍后,在450处,操作系统证书提供者可以使用解密的域密码将用户登录到操作系统和域。

另一认证工作流涉及其中密码已经到期和/或重复输入无效密码(导致系统锁定用户)的场景。参考图5的图500,在510处,向用户呈现图形用户界面,以允许他或她尝试登录到操作系统和域。此后,用户执行上述生物特征序列。接下来,在520处,在成功完成生物特征序列(序列和用户行为方面)之后,提取所设置的域密码。然后,操作系统在530处指示密码已经到期或以其他方式无效。然后,在540处,确定用户需要线上重新供应域密码。接下来,在550处,在图形用户界面中示出了另一屏幕,该屏幕提示用户输入域密码并且可选地然后第二次确认域密码。

然后,在560处,基于对可用安全容器的确定,安全地重新供应域密码。该重新供应可以包括使用至少一个模型基于可以标识一个用户行为与另一用户行为的一组预定义特征(即,矢量化属性等)为每个特征生成置信度得分。当置信度得分高于可接受阈值时,将返回生物特征密码密钥的一部分。可以重复该过程,直到对每个输入进行了评分,并且所有返回的密钥部分被连结以成为最终的生物特征密码密钥。然后,使用生物特征密码密钥使用例如AES 256算法对域密码进行加密。然后,可以将加密的密码值本地存储在安全容器中,例如可信平台模块(TPM)(如果有)。替代地,如果TPM不可用,则可以将加密的密码值存储在HKLM注册表中。

操作系统证书提供者可以使用所提供的域密码将用户登录到操作系统和域。

图6是过程流程图,其中在610处,作为用于标识用户的认证过程的一部分来接收数据,该数据表征用户生成的生物特征序列。用户生成的生物特征序列是由用户根据期望的生物特征序列与至少一个输入设备进行交互而生成的。此后,在620处,如果使用由多个用户生成的生物特征序列(例如,根据期望的生物特征序列的历史上的用户生成的生物特征序列等)生成的经验导出的历史数据而训练的至少一个机器学***)。在其他情况下,阈值可以基于从至少一个机器学***的另一映射,并且这样的映射可以动态地改变。随后,在630处,提供表征认证的数据(例如,加载到存储器中,存储,显示,传输,等等)。

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

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

本文中描述的计算机组件、软件模块、功能、数据存储和数据结构可以直接或间接地彼此连接,以允许其操作所需要的数据流。还应当注意,模块或处理器包括但不限于执行软件操作的代码单元,并且可以例如被实现为代码的子例程单元,或者被实现为代码的软件功能单元,或者被实现为对象(如面向对象的范例),或者被实现为applet,或者以计算机脚本语言来实现,或者被实现为另一种计算机代码。根据当前情况,软件组件和/或功能可以位于一个计算机上,也可以分布在多个计算机上。

图7是示出用于实现本文中描述的各个方面的示例计算设备架构的图。总线704可以用作互连硬件的其他所示组件的信息高速公路。标记为CPU(中央处理单元)的处理系统708(例如,给定计算机或多个计算机处的一个或多个计算机处理器/数据处理器)可以执行执行程序所需要的计算和逻辑运算。非暂态处理器可读存储介质(诸如只读存储器(ROM)712和随机存取存储器(RAM)716)可以与处理系统708通信,并且可以包括用于此处指定操作的一个或多个编程指令。可选地,程序指令可以存储在诸如磁盘、光盘、可记录存储设备、闪存或其他物理存储介质等非暂态计算机可读存储介质上。

在一个示例中,磁盘控制器748可以将一个或多个可选磁盘驱动器接口到系统总线704。这些磁盘驱动器可以是外部或内部软盘驱动器(诸如760)、外部或内部CD-ROM、CD-R、CD-RW或DVD或固态驱动器(诸如752)、或者外部或内部硬盘驱动器756。如前所述,这些各种磁盘驱动器752、756、760和磁盘控制器是可选设备。系统总线704还可以包括至少一个通信端口720,以允许与物理连接到计算系统或通过有线或无线网络从外部可获取的外部设备通信。在某些情况下,通信端口720包括(include)或以其他方式包括(comprise)网络接口。

为了提供与用户的交互,本文中描述的主题可以在计算设备上实现,该计算设备具有用于向用户显示从总线704获取的信息的显示设备740(例如,CRT(阴极射线管)或LCD(液晶显示器)显示器)、以及用户可以用来向计算机提供输入的输入设备732(诸如键盘和/或指示设备(例如,鼠标或轨迹球)和/或触摸屏。其他种类的设备也可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、通过麦克风736的听觉反馈、或触觉反馈);并且来自用户的输入可以以任何形式接收,包括声音、语音或触觉输入。输入设备732和麦克风736可以通过输入设备接口728耦合到总线704并且经由总线704传送信息。诸如专用服务器等其他计算设备可以省略显示器740和显示接口724、输入设备732、麦克风736和输入设备接口728中的一种或多种。

在上面的描述中以及在权利要求中,诸如“至少一个”或“一个或多个”等短语之后可以出现元素或特征的组合列表。术语“和/或”还可以出现在两个或更多个元素或特征的列表中。除非与其使用的上下文隐式地或明显地相反,否则该短语旨在表示单独列出的任何元素或特征、或者与任何其他所述的元素或特征组合使用任何所述的元素或特征。例如,短语“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一起”。另外,上面和权利要求中的术语“基于”的使用旨在表示“至少部分基于”,这样也允许未引用的功能特征或元素。

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

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于高效多径传输的技术

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类