基于由带外数据衍生的数字指纹信号验证用户的制作方法

文档序号:11288396阅读:275来源:国知局
基于由带外数据衍生的数字指纹信号验证用户的制造方法与工艺

相关申请的交叉引用

本申请要求于2014年10月17日递交的、序列号为62/065,535、题为“用于将本地软件应用程序与非本地软件应用程序耦合的技术(techniquesforcouplingnativesoftwareapplicationswithnon-nativesoftwareapplications)”的美国临时申请的权益,其所有内容通过引用并入本文中。

本说明书涉及用于基于分析由带外数据(即,不是由用户直接提供的数据)衍生(derive)的数字指纹信号提供用户验证服务的框架。



背景技术:

典型的用户授权系统是基于用户提供的数据(如,用户电话号码、邮箱地址、个人信息诸如社会安全号码、登录用户名和密码中的一个或结合)。如果这种类型的数据被窃取(如,通过身份窃取或黑客攻击),恶意用户可以代替所述数据的合法拥有者使用所述数据以被授权。由于数据窃取变得越来越普遍,当基于用户提供的数据处理授权请求时,标准用户授权系统很难区分真实用户和欺诈用户。

现有用来验证代表用户的授权请求的方法显示出多种问题,使得当前系统不足、无效和/或诸如此类。通过应用努力、创造和革新,改进这些方法的解决方案已经被实现并结合本发明的实施例进行了描述。



技术实现要素:

总的来说,本发明的实施例在此提供了用于基于分析由带外数据(即,不是由用户直接提供的数据)衍生的数字指纹信号提供用户验证服务的系统、方法和计算机可读介质。

在一些实施例中,嵌入宿主(host)在由用户访问的客户端设备上的应用程序(下文中称为“app”)中的数字指纹引擎读取不同的设备或用户数据,然后创建代表本地存储在所述设备上的带外数据的一组经编码的用户验证数据(下文中称为“数字指纹”)。所述数据可包括某一个或多个个人数据项(如,联系人、日历、照片项等)、设备序列号、设备uuid号、设备电话号码以及诸如此类。在一些实施例中,所述用户验证数据使用单向编码方案被编码(如,编码为由散列函数生成的散列(hash))。

在一些实施例中,所述app配置成通过云端联系商务服务器(businessserver),并且一组数字指纹被包含在从所述客户端设备发送至商务服务器的授权请求中。在一些实施例中,数字指纹验证服务通过确定一组数字指纹是否匹配所存储的代表一组之前已验证用户的一组数字指纹中的任何一个来验证该组数字指纹。在一些实施例中,从所述数字指纹验证服务返回的验证结果被所述商务服务器在处理授权请求中使用。

在此描述的所述系统和所述技术可提供一个或多个下列优势。

所述带外数据对黑客不可用,从而提供附加信息用于在验证授权请求并非来自于欺骗性用户中使用。由于所述编码方案不是可逆的,所以数据的编码确保用户的隐私受到保护。因而,可以将所述数字指纹进行比较以供验证,但所述用户身份是匿名的。

多个业务可共享相同的数字指纹验证服务,优化所述验证过程的效率。在一些实施例中,所述数字指纹引擎的实例可集成到宿主在相同客户端设备上的多个app中,并且所生成的数字指纹可被高速缓存。一旦用户通过由一个app发送的授权请求得到验证,通过任意其他app发送的代表相同用户的授权请求可被更快的处理。

此说明书中描述的主题的一个或多个实施例的细节在下面的描述和附图中被详细阐述。通过所述描述、附图和权利要求,主题的其它特征、方面和优点将变得显而易见。

附图说明

现在参考附图用通用术语对本发明进行描述,这些附图不一定按比例绘制,并且其中:

图1示出了根据本文所讨论的一些实施例的、可以配置为实现一系列事件的示例性系统,其中的至少一些事件可以响应于用户与所述系统的交互,基于分析由带外数据衍生的用户验证信号来促进提供用户验证服务;

图2为根据本文所讨论的一些实施例的、用于生成由本地存储在由用户访问的客户端设备上的数据衍生的一组用户验证信号的示范性方法的流程图;

图3为根据本文所讨论的一些实施例的、用于响应于接收到指纹验证请求来验证一组数字指纹的示范性方法的流程图;以及

图4描绘了能够具体化本发明的一部分的计算机系统。

具体实施方式

下面参考附图更加完整描述本发明,其中本发明的一些而并非所有实施例被示出。事实上,本发明可以许多不同的形式实现,而不应解释为限制于在此提出的实施例;当然,提供这些实施例,使得本公开将满足可适用的法律要求。相同的数字在整个说明书中指代相同的元件。

如本文所述,系统组件可以可通信地耦合到彼此中的一个或更多个。尽管所述组件被描述为独立的或不同的,但是所述组件中的两个或多个可组合成单个过程或例程。本文通过举例提供了组件功能性描述,包括分开负责不同功能。功能性职责的其他组群或其他划分可以根据需要或根据设计偏好进行。

如本文所采用的,术语“数据”、“内容”、“信息”以及类似的术语可互换使用,以指代根据各种示例性实施例的能够被捕获、发送、接收、显示和/或存储的数据。因而,任意这种术语的使用不应被认为限制本发明的精神和范围。进一步,这里计算机设备被描述为从另一计算设备接收数据,所述数据可从另一计算设备直接接收,或可通过一个或更多个中间计算设备间接接收,比如,举例来说,一个或更多个服务器、中继、路由器、网络接入点、基站和/或诸如此类。类似地,这里计算设备被描述为发送数据至另一计算设备,所述数据可以直接发送至另一计算设备,或可通过一个或更多个中间计算设备间接发送,比如,举例来说,一个或更多个服务器、中继、路由器、网络接入点、基站和/或诸如此类。

如本文所采用的,术语“带外数据”是指不是由用户直接提供的任意类型或来源的数据(举例来说,用户设备上的数据,比如包括其联系通讯簿、音乐选择以及诸如此类的用户个人数据),和关于所述用户怎样连接所述设备的数据(举例来说,无线运营商信息、电缆提供者连接数据,以及诸如此类)。带外数据可以超出所述用户的修改能力(例如,无线运营商提供的基于蜂窝塔的用户位置);可以对所述用户来说很难轻易编辑(举例来说,移动电话的序列号);或可以是用户可访问的(举例来说,通讯簿)。

如本文所采用的,术语“本地存储的数据”是指存储在设备的永久(内部)存储器中的数据,存储在设备的“添加”型存储器(举例来说,sd卡存储器或微型sd存储器存储)上的数据和/或存储在设备的“虚拟存储器存储”(例如,与设备相关联的googledrive、dropbox、microsoftonedrive以及诸如此类)的数据。

如本文所采用的,术语“指纹”、“数字指纹”和“用户认证数字指纹”可互换使用以指代代表本地存储在该设备上的带外数据的经编码的用户验证数据。

如本文所采用的,术语应用程序或“app”用来指代在设备上执行的软件应用程序。术语“移动app”用来指代宿主在移动设备(举例来说,移动电话、平板电脑、笔记本电脑以及诸如此类)上的app。

如本文所采用的,术语“散列函数”用来指代可用于将任意尺寸的数字数据映射成另一组数字数据(如,固定尺寸)的任意函数。通过散列函数返回的值可被称作散列值,散列码或散列。

就这一点而言,在此描述的是关于基于分析由带外数据(即不是用户直接提供的数据)衍生的数字指纹信号来提供用于提供用户验证服务的框架的技术的示例。

图1示出了示例性的系统100,其可被配置成实现一系列事件,至少一些事件可以响应用户与所述系统的交互,基于分析由带外数据衍生的用户验证信号(在下文中为“数字指纹”)来促进提供数字指纹验证服务。在实施例中,所述系统100为基于云端的系统,其包括用户与之交互的客户端设备110,所述客户端设备110配置成宿主(host)至少一个app115,所述app115通过云端120连接至商务服务器130,并且其包括数字指纹引擎117,数字指纹引擎117用于生成数字指纹,数字指纹包含一组由位于客户端设备110的数据源119a-x中的一个或组合衍生的用户验证信号;商务服务器130,其配置成从app115接收用户授权请求112,所述授权请求包括用户标识数据和由数字指纹引擎117生成的数字指纹,所述商务服务器130进一步配置成基于除了使用客户档案(profile)存储库135验证所述用户标识信息以外还验证所述数字指纹来授权用户,以及将授权结果134返回至app115;以及数字指纹验证服务140,其配置成接收包括至少一个数字指纹的指纹验证请求132、验证接收到的数字指纹、以及将验证结果144返回至指纹验证请求132的启动程序。

在一些实施例中,数字指纹验证服务140被部署成独立的基于云端的服务,其使用存储用户的数字指纹的指纹存储库145来处理来自于一组不同的业务的数字指纹验证请求132,所述用户之前已经与该组中业务的至少一个交互过。在一些可选的实施例中,数字指纹验证服务140被部署成商务服务器130的组件,以及指纹存储库145存储之前已经与该业务交互过的用户的数字指纹。数字指纹验证服务140的部署选择是实现方式决定,而并非本发明的关键。

在一些实施例中,数字指纹引擎117可以是集成到被设计成通过云端120连接至商务服务器130的任何app115中的独立的功能性组件。在数字指纹验证服务140被实现为独立服务的一些实施例中,数字指纹验证服务140可提供软件开发工具包(sdk),以促进将数字指纹引擎117实例连同app的原始功能一起被集成至app中。因而,例如,在一些实施例中,所生成的相同组的数字指纹可由若干app访问,这些app各自包括数字指纹引擎117的实例并宿主在同一客户端设备上,以通过与那些app中的任何一个进行交互来验证与一组商务服务器中的任何一个连接的用户。

在一些实施例中,数字指纹引擎117读取不同的设备或用户数据119a-x,然后创建一个或更多个代表本地存储在所述设备上的带外数据的数字指纹。所述数据可包括某一或多个个人数据项(如,联系人、日历、照片项和音乐选择)、设备序列号、设备uuid号、设备电话号码等等。一个或更多个数字指纹可随后与所存储的代表先前已验证的用户的数字指纹进行匹配,以确定在以后此同一用户何时登录相同的应用程序或另一应用程序。

在一些实施例中,所生成的一组数字指纹可本地高速缓存在客户端设备上,以供数字指纹引擎117以后访问。在一些实施例中,数字指纹引擎117可进一步配置成确定用于生成经高速缓存的指纹的所述本地数据是否已发生变化(如,添加、删除或修改数据),以及如果所述数据已发生变化,则重新生成数字指纹。在一些实施例中,数字指纹引擎117可通知数字指纹验证服务140数字指纹已经发生变化,从而提供重新生成的数字指纹和/或代表所述变化的变量(delta),以便数字指纹验证服务140可更新在指纹存储库145中存储的数字指纹。

图2为用于生成由本地存储在被用户访问的客户端设备上的数据衍生的一组用户验证信号的示例性方法200的流程框图。为了方便起见,将关于系统描述方法200,所述系统包括一个或更多个计算设备并执行方法200。特别地,将关于由数字指纹引擎117生成数字指纹来描述方法200。

在实施例中,所述系统从本地存储在客户端设备110上的数据119a-x检索205描述与用户验证信号相关联的一组属性的属性数据。

在实施例中,所述系统采用单向编码算法将属性数据映射210成替代(alternate)编码。例如,在一些实施例中,单向编码算法为散列函数,并且替代编码为散列。此单向确保被生成的用户验证信号将起到用于验证特定用户的指纹的作用,但也确保用户的信息保持匿名。编码算法的选择是实现方式选择,并非本发明的关键。

为了示例而非限制而呈现的示例性的用户验证信号是用户的音乐指纹,在一些实施例中,其代表:在用户的音乐库中(存储的或流化/收听的)的每一歌曲或专辑的散列的一个或组合;指示对于每一音乐类型(如,说唱乐、爵士乐、乡村音乐)被存储的不同歌曲的相对数量的直方图(计数);以及指示对于每一音乐类型被收听(如,用于流账户使用的,其有时不能存储只能播放)的不同歌曲的相对数量的直方图(计数)。例如,如果用户验证信号指示用户在客户端设备上列出了70%的说唱歌曲,其可能将之前为该用户生成的用户列出90%的经典音乐的信号(可能从不同的客户端设备生成)相匹配。

为了示例而非限制而呈现的用户验证信号的第二个示例是用户的物理运动数据。现在,用户的步行风格(加速、减速类型)常常存储在用户的手机上。此数据也可以提供用户的“运动指纹”—步行风格,等等。运动数据不仅仅是巨大的物理运动类型(步行),也可以是用户的在触摸屏上的一个或更多个手指输入的用户手指输入(笔画类型、弧形、压力、样式、时间延迟、方向等等)的风格/速度。一些人总是采用一个手指在触摸屏上“打字”,其他人用两个手臂支撑平板电脑并且采用两个或更多不同的手指“打字”,等等。

在实施例中,数字指纹可包括大量的编码值,每一编码值代表客户端设备内的不同的数据元素。在一些实施例中,数据元素的最小阈值尺寸可包含在所生成的数字指纹中,以确保将来的比较将基于有代表性的数据量。因而,例如,包括仅仅3个联系人的通讯簿将不被包含在所生成的数字指纹中。在一些实施例中,为能够快速匹配,验证信号可通过对本地存储的数据源进行二次抽样(subsample)来导出,所述数据源包括满足最小阈值尺寸的大量的数据元素。在一些实施例中,可以使用一组不同的二次抽样算法对数据源进行随机二次抽样以生成多个数据集。

作为示例而非限制的例子,可基于与客户端设备的联系人列表中的1000个联系人中的每一个相关联的属性生成指纹。每一个联系人的内容(在全部或预定数量的属性字段中的数据)可被散列,并且与联系人相对应的经散列的信息可被包含在指纹中。应当注意的是,例如,指纹可包括来自所有联系人、前n个联系人、最后n个联系人的经散列的属性,所述前n个联系人以特定的字母开头,或以其他预定的规则开头。n可以是任何整数。所述规则的选择并非本发明的关键。

在一些实施例中,指纹生成的时间变量可被包括在用户验证信号中。转向100个元素的联系人列表的示例,当前生成的1000个输出散列可与之前生成的1000个输出散列对比,以观测用户是否很可能“看起来是同一用户”。如果生成两者的时间差小于24小时,则我们可以预测出24小时内发生的通讯簿变化的最大阈值(例如20)。然而,例如,如果变化的数目明显大于该最大阈值(如,在过去24小时中1000个通讯簿中的900个联系人发生变化),则很有可能用户验证信号不代表相同的用户。

在实施例中,所述系统采用用于数字指纹的相同编码算法,将与用户相关联的用户标识数据(如,用户的电话号码,邮件地址,如社保号、登录用户名和密码的个人信息中的一个或组合)映射215到替代编码。在一些实施例中,数字指纹引擎117将所生成的数字指纹的初始设置发送至指纹服务140,其将所生成的数字指纹的初始设置存储在指纹存储库145中,从而数字指纹可用于处理将来的指纹验证请求132。在一些实施例中,指纹中经编码的用户标识数据可用于确定在指纹验证请求132中接收的数字指纹之前已经被存储,与相同的用户相关联。

图3为用于响应于接收到指纹验证请求而验证一组数字指纹的示例性方法300的流程图。为了方便起见,将关于包括一个或更多个计算设备和执行方法300的系统描述方法300。具体地,方法300将关于通过数字指纹验证服务140来验证一组数字指纹而进行描述。

在实施例中,所述系统接收305包括与用户相关联的经编码的验证数据的指纹验证请求。在一些实施例中,经编码的验证数据可包括用户标识数据(如,用户的电话号码,邮件地址,如社保号、登录用户名和密码等个人信息的一个或组合)以及由本地存储在被用户访问的客户端设备上的带外数据衍生的一组数字指纹(如,一个或多个个人数据项(如,联系人、日历、相片项等)、设备序列号、设备uuid号、设备电话号码,等等)。

在实施例中,所述系统通过确定所接收到的经编码的验证数据是否与所存储的代表一组经验证用户的经编码的验证数据(例如,指纹存储库145中存储的经编码的验证数据)中的至少一些相匹配,来验证310所述指纹。

在一些实施例中,数据的验证并不依赖于找到完美的匹配,近似匹配即可满足。转向基于存储在用户的客户端设备上的联系人列表的经散列的指纹的示例,包括在指纹请求中的经编码的验证数据可包括来自最近添加至所述联系人列表的联系人的数据。因而,要被验证的数字指纹可能不能与存储在指纹存储库中的数据精确匹配(如,10个联系人中9个相匹配)。在一些实施例中,所述系统计算代表包含在指纹请求中的经编码的验证数据与所存储的代表已验证用户的数据相匹配的可能性的验证得分。在一些实施例中,所述验证得分与验证得分阈值相比较,并且所述系统基于验证得分是否满足验证得分阈值来计算验证结果。

在一些实施例中,数字指纹验证服务140维持已存储的一组已验证的代表一组黑名单用户的指纹数据(举例来说,已被商业所知具有不良特性如不良信用、逾期付款等等的用户)。在一些实施例中,可将包含在指纹请求中的经编码的验证数据与代表该组黑名单用户的数据相比较,并且如果确定至少有高可能性的匹配,则系统返回指示由指纹所代表的用户未验证的验证结果。

图4代表了能够具体化本发明的一部分的计算机系统400。对于本领域普通技术人员来说显而易见的是,许多其他硬件和软件配置均适用于本发明使用。例如,所述计算机可以是台式、笔记本式、便携式、机架式、智能手机或平板配置。此外,所述计算机可以是一系列网络计算机。进一步,其他微处理器的使用也是可预期的,如奔腾tm或安腾tm微处理器;来自于超微半导体股份有限公司(advancedmicrodevices,inc)的皓龙tm或速龙xptm微处理器;嵌入式处理器,如来自于股份有限公司许可的等等。进一步地,其他类型的操作系统也是可预期的,如来自于微软公司的等等,来自于太阳微系统公司的solaris,linux、unix、或移动操作系统,如来自谷歌公司的来自苹果公司的来自诺基亚公司的等等。在其他实施例中,以上所描述的技术可在芯片或辅助性处理面板上实现。

本发明的各种实施例可以以软件或硬件或两者的结合的逻辑的形式实现。所述逻辑作为适于引导计算机系统的处理器执行在本发明的实施例中公开的一组步骤的指令集,存储在计算机可读或机器可读的非暂时性存储介质中。所述逻辑可构成适于引导信息处理设备执行在本发明的实施例中公开的一组步骤的计算机程序产品的一部分。基于本文所提供的公开和教导,本领域普通技术人员将理解实现本发明的其它方式和/或方法。

本发明的上述实施例是示例性的而非限制。本发明的上述实施例可以以一个或多个组合加以组合,因为各种替代形式和等同形式是可能的。尽管参考移动设备对本发明进行了描述,但需要理解的是,本发明并不限于该类型的设备。尽管通过示例的方式参考某无线通信接口对本发明进行了描述,但需要理解的是,本发明并不限于该类型的无线电、无线或有线通信接口。尽管通过示例的方式参考某操作系统对本发明进行了描述,但需要理解的是,本发明并不限于该类型的操作系统。根据本公开的其它增加、减少或修改是显而易见的,并且旨在落入所附权利要求的范围内。

上文通过参考方法、装置、系统和计算机程序产品的框图和流程图对本发明的实施例进行了描述。需要理解的是,电路图和处理流程图的每一块,以及电路图和处理流程图中块的结合,可分别通过各种包含有计算机程序指令的手段实现。这些计算机程序指令可加载在通用计算机、专用计算机或其他可编程数据处理装置中以产生机器,从而计算机程序产品包括指令,其在计算机或其他可编程数据处理装置上执行,创建出用于实现流程图和一个或多个块中指定的功能的方法。

这些计算机程序指令也可存储在计算机可读的存储设备中,其可指引计算机或其他可编程数据处理装置以特定方式形式工作,从而所述存储在计算机可读存储设备中的指令产生包括计算机可读指令的制品,以用于实现本文所讨论的功能。计算机程序指令也可被加载至计算机或其他可编程数据处理装置上,以使得在所述计算机上或其他可编程装置上执行一系列操作步骤,从而产生计算机实现的过程,如此在计算机或其他可编程装置上执行的所述指令提供用以实现本文所讨论的功能的步骤。

因此,框图和流程图说明的块支持用于执行指定功能的装置的组合,用于执行指定功能的步骤的组合,以及用于执行指定功能的程序指令方法。还应当理解的是,电路图和处理流程图的每个块以及电路图和处理流程图中的块的组合可以由执行特定功能或步骤的基于硬件的专用计算机系统来实现,或由专用硬件和计算机指令的组合来实现。

本领域技术人员可以想到本文所阐述的发明的许多修改和其它实施方案,这些发明属于受益于在上文的描述和相关附图中呈现的教导。例如,虽然在本文讨论了涉及通讯簿和多媒体应用程序的示例,但一些实施例可配置成注释和/或以其他方式再捆绑和分享任何适当类型的媒体。因此,需要理解的是本发明并不限于所揭露的特定实施例,修改和其他实施例旨在被包括在所附权利要求的范围内。尽管本文采用了特定术语,但它们仅用于一般的和描述性意义,而不是为了限定的目的。

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