用于改进计算机标识的系统和方法

文档序号:108376 发布日期:2021-10-15 浏览:23次 >En<

阅读说明:本技术 用于改进计算机标识的系统和方法 (System and method for improving computer identification ) 是由 J.特鲁尼克 K.马尼万南 M.拉拉吉 D.K.帕特尔 于 2018-11-30 设计创作,主要内容包括:一种用于改进计算机标识的处理器实施的方法包括将浏览器指纹识别测试传输到一个或多个计算装置以及从所述一个或多个计算装置接收至少包括处理经过时间和散列代码的测试数据。所述方法包括确定平均处理经过时间以及通过将每个计算装置的所述散列代码彼此进行比较,确定所述浏览器指纹识别测试的唯一性水平。(A processor-implemented method for improving computer identification includes transmitting a browser fingerprinting test to one or more computing devices and receiving test data including at least a processing elapsed time and a hash code from the one or more computing devices. The method includes determining an average processing elapsed time and determining a level of uniqueness of the browser fingerprinting test by comparing the hash codes of each computing device to each other.)

用于改进计算机标识的系统和方法

技术领域

本发明涉及用于改进计算机通信的可信度的系统和方法。

背景技术

在计算机之间进行通信时,例如在留言板上留言、在评论网站上或通过特定服务提供商或产品商家留下评论、在线购买等,涉及通信两端的双方通常都是陌生人。因此,此类通信的一方可能很难知道对方是否可信。已经开发出各种方法来帮助标识通信的计算机,以确保计算机之间通信的可信度。例如,运营互联网网站的实体可以将“信息记录程序(cookies)”上传到访问稍后可能被标识的网站的计算机上。然而,访问计算机的用户可能仅删除这些信息记录程序,就破坏了标识方法。其它增加可信度的方法各有利弊。

发明内容

下文呈现对本公开的简化概述以便提供对本公开的一些方面的基本理解。此概述并非本公开的详尽综述。所述概述并不意图标识本公开的关键或极其重要的元件,或并不意图划定本公开的范围。以下概述仅以简化形式呈现本公开的一些概念,作为对以下提供的更详细描述的序言。

在一些实施例中,本公开描述了一种用于标识改进的浏览器指纹识别技术的系统和方法,所述改进的浏览器指纹识别技术可以实施成更加有效地标识服务器或其它实体可与之通信的计算装置。所述系统可以包括将指纹识别测试方法传输到一个或多个计算装置,以及在指纹识别测试已经运行之后检取测试结果。所述系统还包括对汇总的测试结果进行分析,以确定指纹识别测试的改进的唯一性和时间性能。

附图说明

通过参考结合附图考虑的详细描述可以更好地理解本发明。图中的组件未必按比例绘制,而是侧重于图示本发明的原理。在图中,相同附图标号贯穿不同视图标示对应的部分。

图1是包括如本文所公开的用于改进的计算机标识的系统的系统的实施例的元件图示;

图2是示例计算装置的实施例的元件示意图;

图3是服务器类型计算装置的实施例的元件示意图;

图4是示出根据本公开的改进的计算机标识系统的实施例的系统元件的框图;

图5是使用本文所描述的系统改进计算机标识的过程的实施例的流程图;以及

图6是使用本文所描述的系统改进计算机标识的过程的另一实施例的流程图。

所属领域的普通技术人员将了解,为了简单和清晰起见而示出图中的元件,因此并未示出所有连接和选项,以避免模糊本发明的各方面。例如,通常不描绘在商业上可行的实施例中有用或必要的常见但很好理解的元件,以便有助于不大受妨碍地查看本公开的这些各种实施例。应进一步了解,可以特定的发生次序描述或描绘某些动作和/或步骤,而所属领域的技术人员应理解,实际上不要求此类关于顺序的特定性。还应理解,本文中所用的术语和表达相对于其对应的相应查询和研究领域来进行定义,除非本文中已经另外阐述了特定含义。

具体实施方式

现将参考附图在下文更充分地描述本发明,附图形成本发明的一部分并且以图解方式示出具体示范性实施例,本发明可通过所述具体示范性实施例实践。这些图示和示范性实施例的呈现应理解为,本公开是一个或多个发明的原理的范例,且并非意图将任何一个发明限制于所示实施例。本发明可以许多不同形式体现,且不应被理解为限于本文中阐述的实施例;实际上,提供这些实施例以使本公开透彻和完整,且将使本发明的范围完全传达给所属领域的技术人员。此外,本发明可以体现为方法或装置。因此,本发明可以采取完全硬件实施例、完全软件实施例或组合了软件和硬件方面的实施例的形式。因此,以下详细描述不应被视为具有限制意义。

本文所描述的改进的计算机标识系统和方法可以提供确定参与特定计算机通信的风险的改进方法。例如,系统可以帮助处理购买或其它交易的信用卡公司确定最好或更好的方式来确定所述信用卡公司过去是否参与了与所述计算装置进行的成功交易。如果信用卡公司或其它交易或通信处理器确信其已使用与特定用途相关联的计算装置成功进行了非欺诈性交易,则信用卡公司可以继续进行额外的交易,确信欺诈的风险可能比使用未知的计算装置要低。

在一些实施例中,标识过去曾用于欺诈活动的特定计算装置也可能有用。例如,如果用户的智能手机或其它计算装置被盗,则其可能被用于进行欺诈或其它有问题的交易。一旦所述活动被标识为欺诈,交易处理器可以将所述特定计算装置标识为带有增大的欺诈可能性,并且例如拒绝批准来自所述装置的活动。对于例如信用卡发行方或其它银行或金融实体之类的实体,能够关联计算装置是否已用于先前的交易可能有助于确定风险,例如特定交易的风险。在一些实施例中,计算装置可能先前已用于攻击或尝试黑客攻击,或者所述装置可能被报告为被盗。

传统上,发行方或任何其它交易处理器可能已使用信息记录程序来标识具有用于给定活动的特定网络浏览器的特定计算装置。由于用户在安装信息记录程序后可能会对其进行阻止或擦除,因此还开发了其它技术。例如,一些实体可以使用浏览器指纹识别来帮助标识计算装置和浏览器组合。浏览器指纹识别可以由收集的关于远程计算装置的信息构成,即使信息记录程序被阻止或擦除,这些信息也可以帮助标识用户或计算装置。在一些浏览器指纹识别系统中,网站运营商、交易处理器、信用卡发行方或其它实体可以存储访问网站或以其它方式在线通信的计算装置的浏览器指纹。通过参考这些数据库,公司或其它在线实体可以确定关于匹配先前使用的浏览器指纹的计算装置的信息,例如与所述计算装置进一步交互的相对风险水平。

浏览器指纹识别可以各种方式实现,每种方式都包括优点和缺点。例如,一些类型的浏览器指纹识别可能包括收集浏览器类型和版本(例如,谷歌浏览器、微软IE浏览器、苹果浏览器、火狐浏览器等)、浏览器可以在其上运行的操作系统(例如,视窗操作系统、苹果系统、Linux操作系统等)、浏览器上的活动插件、时区、语言,屏幕分辨率、字体以及各种其它活动浏览器或装置设置。尽管许多装置上的许多用户可以使用任何给定的设置,但是可以基于上文所描述的所有数据点的特定组合来缩小特定用户和装置的范围。在一些系统中,这种类型的浏览器指纹识别可以相对快速地完成(例如,在大约5-10秒内),但是可能具有有限的能力来缩小具有匹配指纹的计算装置和浏览器组合的数量。换句话说,一些浏览器指纹识别系统可能工作得很快,但可能在可达到的唯一性水平上受到限制。

一些系统可以使用可以称为帆布指纹识别的另一类型的浏览器指纹识别。在帆布指纹识别中,用于编程网站或其它在线软件的编程代码(例如,Java、HTML5等)可以包括用于确定特定计算装置的浏览器指纹的代码。例如,在HTML5编码语言中,代码可能包括一个称为“帆布”的元素。在一个实施例中,当计算装置访问网页或使用基于网络的软件应用程序时,指纹识别脚本可以使用计算装置的例如图形处理单元(GPU)或其它处理器之类的硬件和软件以给定的字体或大小绘制文本或其它图像。在一些实施例中,绘制的文本或图像是在隐藏的帆布上创建的,使得它实际上对计算装置的用户不可见,但是在计算装置本身上存在。在一些实施例中,指纹识别脚本还可以向文本或图像绘图添加背景色。

然后,编程脚本可以发起例如帆布API的到数据URL(ToDataURL)方法之类的应用程序编程接口(API)以可以数据URL格式返回帆布像素数据。安装在计算装置中的GPU或其它处理器的变化可能引起图像数据表示方式的变化,从而产生唯一的指纹。数据URL可以包含特定格式的绘制图像表示,例如便携式图形格式(PNG)、JPEG或其它合适的格式。在一些实施例中,数据URL基本上可以是帆布上表示的二进制像素数据的编码表示。然后,编程脚本可以使用来自数据URL的文本编码像素数据的散列函数(即,采用“散列”)来产生表示绘制图像的散列值。散列函数可以是将任意大小的数据映射到可以与其它散列进行比较的固定大小的任何函数。散列值是接着可以存储或与先前产生的散列进行比较的指纹。如果浏览器指纹识别已经成功,则散列值可以是相对唯一的,因为它仅匹配之前使用的相同计算装置和浏览器组合,或者至少很少匹配其它计算装置。换句话说,在一些实施例中,如果当前计算装置的散列值与先前通信或交易的散列值匹配,则先前使用的计算装置与用于当前活动的计算装置相同的可能性提高。

浏览器指纹识别的方法可以通过其“唯一性”来测量。例如,100%的唯一性将意味着浏览器指纹识别方法可以产生对给定计算装置绝对唯一的散列值或其它标识数据。换句话说,浏览器指纹识别方法中100%的唯一性可能意味着将没有其它计算装置具有匹配的指纹。0%的唯一性可能意味着所有其它计算装置都将具有匹配指纹。大多数浏览器指纹识别方法具有在0%与100%之间的某处的唯一性。在一些实施例中,帆布指纹识别可以与其它浏览器指纹识别方法相结合,以增加结果的唯一性。

时间可能是浏览器指纹识别的另一因素。通常,产生更大的唯一性的指纹识别方法往往比产生更少的唯一性的指纹识别方法花费更多的时间。例如,基于浏览器类型、操作系统、字体类型和其它浏览器设置检取指纹可以相对较快地完成,至少部分是因为所述方法仅涉及检取已存储的数据。然而,因为此类方法中的可变数据点可能较少,所以唯一性可能相对较低。另一方面,由于所涉及的计算步骤,帆布指纹识别可能花费更多的时间,但可能会产生更多唯一的指纹识别。在一些实施例中,时间(且因此,唯一性值)甚至可以在不同类型的帆布指纹识别中变化。例如,第一类型的帆布指纹识别可以花费相对较短的时间绘制非常简单的图像或文本,而第二类型的帆布指纹识别可以花费相对较长的时间绘制具有更多颜色等的更复杂的图像。

然而,基于浏览器指纹识别方法需要相对长期的时间来处理,网站或其它在线软件的用户可能没有耐心等待通信或其它交易得到批准。因此,理想的浏览器指纹识别技术可以在确定计算机装置的指纹所花费的时间与实现的唯一性水平之间取得平衡。例如,在一些指纹识别方法中,实现50%的唯一性水平可能花费不到一秒的时间,但对于某些网站或软件运营商来说,50%的唯一性可能风险太大。另一方面,在一些指纹识别方法中,实现99%的唯一性可能花费超过一分钟的时间,这对于某些应用程序来说可能是可以接受的,但是对于其它应用程序来说等待的时间太长。

因此,操作不同类型的网站或基于浏览器的软件的不同实体对于例如确定指纹的平均时间、最长时间和唯一性水平之类的变量可能具有不同的可接受阈值。例如,信用卡处理器或欺诈带有相对较高金融风险的另一实体可能会确定在批准交易之前需要相对较长的等待时间,因此可能会选择具有较高唯一性但处理时间相对较长的指纹识别方法。其它风险较低(lower-stake)的网站运营商,例如留言板或评论网站,可能会接受较低的唯一性水平以换取快速的指纹处理时间。

在一些实施例中,本文提供的改进的计算机标识系统可以提供用于标识浏览器指纹识别技术的方法和系统,所述方法和系统提供唯一性与处理时间之间的理想平衡。如上文所描述的,这两个因素之间的理想平衡可能取决于用户或应用程序而不同。传统上,确定这种理想平衡提供了技术挑战,因为执行特定指纹识别方法的时间可能取决于特定计算装置和浏览器而变化。因此,为了在确定理想的指纹识别方法时考虑处理时间,在大量不同类型的计算装置上测试任何指纹识别方法以确定跨代表性的一组不同装置的平均处理时间可能是有利的。在一些实施例中,本公开描述了通过创建一个或多个唯一性测试(即,指纹识别方法)来实现此结果,从而基于测试返回散列代码并且测量执行经过时间。唯一性测试可以在一组不同的装置和浏览器上运行以进行确定,并且来自每个测试的数据可以返回到中央服务器,所述中央服务器可以记录每个装置浏览器上运行的每个测试的散列代码和执行经过时间。在一些实施例中,系统可以使用服务器数据创建报告,所述服务器数据描述通过特定测试实现的唯一性、平均经过时间、每种类型装置的时间或与确定特定指纹识别测试是否可有用相关的任何其它数据。

在图1中示出了可以在物理上被配置成实施改进的计算机标识系统和方法的样例计算系统50中的一些元件的高级图示。系统50可以包括任何数目的计算装置55,例如智能电话或平板计算机、移动计算装置、可穿戴移动装置、台式计算机、笔记本电脑或允许用户与例如数字通信网络60之类的数字通信网络相互联系的任何其它计算装置。与数字通信网络60的连接可以是有线的或无线的,并且可以通过互联网或者通过蜂窝网络或任何其它合适的连接服务进行。至少一个测试服务器85可以连接到数字通信网络60。测试服务器85可以由各种类型的各方中的一方操作,所述一方例如信用卡发行方、商家、网站运营商、金融服务实体、银行等。尽管此处未示出,但也可以经由数字通信网络60连接各种其它计算机服务器,例如商家服务器、支付服务器、一个或多个发行方服务器、令牌服务器等。测试服务器85还可以直接或通过数字通信网络60连接到至少一个指纹数据库90。在一些实施例中,数据库90可以包含在测试服务器85上,如下面关于图3更详细地描述的。

在一个实施例中,计算装置55可以是使用例如电池的便携式电源操作的装置。计算装置55还可以具有显示器56,所述显示器可以是或可以不是触敏显示器。更具体地,显示器56可以具有电容传感器,例如,可以用于向计算装置55提供输入数据的电容传感器。在其它实施例中,可以使用例如箭头、滚轮、键盘等输入板57向计算装置55提供输入。此外,计算装置55可以具有可以接受和存储口头数据的麦克风58、用以接受图像的相机59和用以传送声音的扬声器61。

图2是构成计算装置55的实施例的物理元件的简化图示,并且图3是构成例如测试服务器85之类的服务器类型计算装置的实施例的物理元件的简化图示。参考图2,示出了样例计算装置55,所述样本计算装置根据图1中示出的计算系统50的一部分在物理上被配置。计算装置55可以具有根据计算机可执行指令在物理上被配置的处理器1451。在一些实施例中,处理器可以被特别设计或配置成优化服务器85与计算装置55之间的与本文所描述的支付选择服务有关的通信。计算装置55可以具有例如可以是可再充电的电池的便携式电源1455。所述计算装置还可以具有辅助显示视频和声音的声音和视频模块1461,并且可以在不使用时关闭以节约电力和电池寿命。计算装置55还可以具有易失性存储器1465和非易失性存储器1471。计算装置55可以具有GPS能力,所述GPS能力可以是单独电路,或者可以是处理器1451的一部分。还可以存在输入/输出总线1475,其使数据往返于各种用户输入/输出装置,例如麦克风、相机59、显示器56或其它输入/输出装置。计算装置55还可以通过无线装置或有线装置来控制例如与图1中的通信网络60之类的网络的通信。当然,这只是计算装置55的一个实施例,并且计算装置55的数目和类型仅受想象力的限制。

构成例如测试服务器85之类的服务器的实施例的物理元件进一步在图3中示出。在一些实施例中,支付服务器被特别配置成运行如本文所描述的支付选择服务。在高水平,测试服务器85可以包括数字存储装置,例如磁盘、光盘、快闪存储装置、非易失性存储装置等。结构化数据可以存储在数字存储装置中,例如存储在数据库中。更具体地,服务器85可以具有根据计算机可执行指令在物理上被配置的处理器1500。在一些实施例中,处理器1500可以被特别设计或配置成优化在例如计算装置55之类的便携式计算装置与服务器85之间的关于如本文所描述的支付选择服务的通信。服务器85还可以具有辅助显示视频和声音的声音和视频模块1505,并且可以在不使用时关闭以节约电力和电池寿命。服务器85还可以具有易失性存储器1510和非易失性存储器1515。

用于数字存储结构化数据的数据库1525可以存储在存储器1510或1515中,或者可以是分开的。数据库1525可以是如图1所示的指纹数据库90那样的数据库,或者在一些实施例中可以是不同的数据库。数据库1525还可以是服务器的云的一部分,并且可以跨多个服务器以分布方式存储。还可以存在输入/输出总线1520,其使数据往返于各种用户输入装置,例如麦克风、相机、显示监视器或屏幕等。输入/输出总线1520还可以通过无线装置或有线装置来控制与例如通信网络60之类的网络的通信。在一些实施例中,用于运行改进的计算机标识系统的计算机标识控制器可以位于计算装置55上。然而,在其它实施例中,计算机标识控制器可以位于测试服务器85上,或者位于计算装置55和服务器85两者上。当然,这只是测试服务器85的一个实施例,并且本文考虑了其它类型的服务器。

计算装置55能够与计算机服务器或例如测试服务器85之类的多个服务器通信。计算装置55能够采用多种方式进行通信。在一些实施例中,通信可以是有线的,例如通过以太网线缆、USB线缆或RJ6线缆进行通信。在其它实施例中,通信可以是无线的,例如通过Wi-Fi(802.11标准)、蓝牙、蜂窝通信或近场通信装置进行通信。通信可以涉及服务器,或者可以通过数字通信网络60(诸如蜂窝服务)、通过互联网、通过专用网络、通过蓝牙等进行。

在一些实施例中,测试服务器85可以与改进的计算机标识系统相关联,并且可以将信息发送到与执行如本文所描述的浏览器指纹识别操作相关联的计算装置55并且可以从所述计算装置接收信息。具体地,例如一个或多个网络浏览器或其它基于网络的应用之类的软件可以包括在计算装置55上,从而允许经由数字通信网络60与测试服务器进行通信。在一些实施例中,软件可以是用户可以通过其完成例如银行业务、汇款、商家购买等交易或用于执行其它类型的在线通信活动的应用程序。在一些实施例中,软件可以是包括在计算装置55上的网络浏览器的附加件。在一些实施例中,软件可以是安装在计算装置55上的应用程序,其允许使用用户计算装置上的其它应用程序,例如由银行、在线商家、电子邮件服务、支付提供商、网站等提供的应用程序。

图4是大体上示出了可以根据本公开确定有效的浏览器指纹识别方法或技术的改进的计算机标识系统100的实施例100的数据流程图。在102处,可以将指纹识别测试上传到测试服务器85。指纹识别测试可以是被设计成执行例如上文所描述的各种浏览器指纹识别方法中的任何一种的编程脚本。例如,指纹识别测试可以包括帆布指纹识别、收集浏览器设置和操作系统信息等。在一些实施例中,指纹识别测试可以包括遵循类似于以下伪代码的脚本的帆布指纹识别方法:

创建测试图像、绘制:

球体和立方体

添加照明

创建基线图像、绘制:

角锥体和立方体

添加照明

时间增量基线=测试图像经过时间

时间增量基线=基线图像经过时间

测试图像散列=散列(测试图像)

散列基线图像=散列(基线图像)

服务器.发送(测试数据、测试名称、装置标识符)

在此示例性实施例中,指纹识别测试可以包括指令网络浏览器或GPU绘制球体和立方体的名称为“测试图像”的图像,并且向所述图像添加照明的编程脚本。类似地,脚本可以包括通过绘制角锥体和立方体并且添加照明来创建名称为“基线图像”的图像的指令。本领域的普通技术人员将认识到,只要在随后的测试和跨装置中使用相同的指令,就可以在其它实施例中或跨不同测试使用其它形状。

然后可以创建表示所绘制图像的归一化散列代码或散列值。在一些实施例中,添加照明可导致形状(例如,球体、角锥体)中的一个遮蔽另一图像(例如,立方体)。在一些实施例中,指令浏览器添加照明可能会跨硬件和/或软件组合产生关于如何计算图像的差异。例如,运行网络浏览器的装置可能会与运行网络浏览器的装置不同地计算所指令的图像。在装置和软件组合之间的计算中的这种差异可产生装置之间不同的归一化散列代码或散列值,从而产生唯一性。

如上文示例性伪代码所示,用于执行指纹识别测试的编程脚本可以包括收集时序和散列数据。例如,“时间增量基线”可以包括存储测试计算装置完成“测试图像”的图像绘制过程的经过时间,并且“时间增量基线”可以包括存储测试计算装置执行“基线图像”的图像绘制过程的经过时间。此外,“测试图像散列”可以包括存储表示测试图像的压缩散列代码或散列值,并且“散列基线图像”可以包括存储表示基线图像的压缩散列代码。

在104处,用于运行指纹识别测试的编程脚本或其它信息可以经由例如互联网或出于指纹识别测试或其它目的而建立的任何局域网(LAN)之类的数字通信网络60传输到各种计算装置55a-e。在一些实施例中,计算装置55a-d的群组可以是运行操作系统、网络浏览器等任何组合的任何数目的装置。在一些实施例中,出于对计算装置和软件的离散组合进行指纹识别测试的特定目的,装置55a-e可以设置在封闭的LAN中。在此类实施例中,指纹识别测试的传输可以由从测试服务器85进入指纹识别测试的装置浏览器发起。在一些实施例中,指纹识别测试的传输可以作为触发网络浏览器或其它基于网络的软件来检取测试或者通过从测试服务器85推送测试的结果而发生。在106、110、114、118和122处,各种不同的计算装置55a、55b、55c、55d和55e可以接收指纹识别测试并且在特定计算装置的网络浏览器或其它应用程序上运行所述指纹识别测试。计算装置55a-e可以从测试产生数据,例如装置标识符、测试ID、散列代码、测试经过时间、浏览器设置、操作系统等。在108、112、116、120和124处,计算装置55a-e可以将测试数据传输到测试服务器85,所述测试服务器可以在128处接收测试数据。

测试服务器85可以在130处将接收的测试数据存储在指纹数据库90中。在一些实施例中,可以组织指纹数据库90中的测试数据,使得基于各种变量对接收的特定类型的测试数据进行分类。例如,对于在其上运行指纹测试的每个装置,指纹数据库90可以存储包括测试运行时间、浏览器类型、装置类型、浏览器设置、所绘制图像的散列代码等的数据。此外,在可以运行多种类型的指纹测试的一些实施例中,数据库90还可以存储所分类的测试结果,这些测试结果是在例如第一测试、第二测试等测试下产生的。在132处,测试服务器85可以从指纹数据库90检取测试数据以进行汇总。可以对汇总的指纹测试结果进行分析,以确定可以用于确定任何给定指纹识别测试的可行性和有用性的数据中的广泛或具体的倾向。例如,由测试服务器85检取的汇总测试数据可以包括在特定类型的装置或装置/浏览器组合上或者跨所有装置和装置/浏览器组合进行的特定指纹识别测试的最长运行时间和最短运行时间的数据。汇总测试数据还可以包括跨装置、浏览器等任何组合的平均测试运行时间。

在一些实施例中,由测试服务器85对特定指纹识别测试的汇总测试数据进行分析可以包括基于检取到的唯一散列代码的数目或百分比来确定指纹识别测试的唯一性水平。例如,可以在100个不同的计算装置上运行特定指纹识别测试,各自产生由服务器85接收并且存储在指纹数据库90中的散列代码。在一些实施例中,测试服务器85可以对100个散列代码进行分析并且确定100个散列代码中的97个是唯一的。在一些实施例中,特定散列代码可以被认为是其它99个散列代码中没有一个与特定散列代码匹配的“唯一”。在100个散列代码中的97个是唯一的实施例中,可以认为特定指纹识别测试具有97%的唯一性水平。类似地,另一指纹识别测试可能产生95%或90%或85%或80%或99%的唯一性水平,或产生0%与100%之间的任何其它唯一性水平。所属领域的技术人员将了解,可以使用任何数目的计算装置对任何特定指纹识别方法或测试进行测试,并且因此可以返回或多或少的细粒度唯一性水平。例如,如果在1,000个计算装置上对特定指纹识别方法进行测试,并且汇总测试数据指示1,000个装置中的925个返回唯一的散列代码,则可以确定特定测试具有92.5%的唯一性水平。

以下伪代码可以表示用于汇总由测试服务器85检取的测试数据的编程脚本的示例性实施例:

测试数据(测试名称):

总数=已运行测试装置的计数

唯一=唯一散列代码的计数

唯一性百分比=唯一/总数*100

平均时间=(经过的)总和/总数

最长时间=最长(测试名称)

最短时间=最短(测试名称)

改进的测试唯一性

测试数据(唯一性百分比(测试))>测试数据(唯一性百分比(基线))?

改进的测试时间

测试数据(平均时间(测试))<平均数据(平均时间(基线))?

在此实施例中,测试服务器85可以根据指纹测试方法汇总数据,例如“总数”表示已经在其上运行特定指纹识别测试(例如,“测试名称”)的计算装置的总计数。数据还可以包括从测试检取的唯一散列代码的数目,并且“唯一性百分比”可以是定义为唯一散列代码的数目除以散列代码的总数目(即,被测试的计算装置)乘以一百的唯一性水平。数据可以包括表示跨所有被测试装置运行指纹识别测试的平均经过时间的“平均时间”,所述“平均时间”定义为各个处理经过时间的总和除以被测试装置的总数目。此外,“最长时间”可以是被测试计算装置之间的最长经过时间,并且“最短时间”可以是被测试计算装置之间的最短经过时间。在一些实施例中,测试服务器85还可以包括脚本,以确定与阈值唯一性水平或“基线”唯一性百分比进行比较,特定指纹识别测试方法的唯一性水平是否得到改进。如果特定测试的唯一性大于唯一性的基线水平,则特定指纹识别测试的唯一性可以合格地称为“改进的测试唯一性”。类似地,如果平均经过时间短于基线平均时间或时间阈值,则运行特定指纹测试的平均经过时间可以被认为是“改进的测试时间”。

用户可以设计多个不同类型的指纹识别测试,这些指纹测试以不同的方式确定浏览器指纹,然后使用汇总测试数据来确定哪个或哪些指纹测试总体上或针对特定应用程序是优选的。在一些实施例中,可以运行多种类型的指纹识别测试的测试,以确定唯一性水平达到符合要求的阈值,而不会使平均处理经过时间不合理地长。例如,在一些实施例中,唯一性阈值可以设置为93%并且平均处理时间阈值可以设置为10秒。在一些实施例中,唯一性阈值可以设置为95%并且平均时间阈值可以设置为15秒。在一些实施例中,唯一性阈值可以设置为85%并且时间阈值设置为2秒。通常,最大程度地提高唯一性水平并且最小程度地减短处理经过时间可能被认为是理想的。当然,所属领域技术人员将认识到,取决于应用程序,唯一性水平和处理经过时间的任何组合可以被认为是“理想的”。

在一些实施例中,网站或其它软件应用程序的用户或运营商可以建立唯一性-时间比率(UTR),以确定最有用和最有效的指纹识别测试的类型。例如,在一些实施例中,唯一性-时间比率可以定义为唯一性水平百分比除以运行特定指纹测试的平均处理经过时间:

所属领域技术人员将认识到,如果“时间”是以秒为单位计算的,则UTR可以具有零秒的下限,但具有不受限制的上限。然而,应理解,在某些应用程序中使用不同的时间单位(例如,微秒)可能是合适的。

在一些实施例中,用户可以为可接受的UTR设置阈值水平,尤其是在特定的唯一性或处理经过时间可能不重要的情况下。例如,用户可以确定UTR为50表示唯一性与处理经过时间之间的理想平衡。然而,UTR为75可以通过唯一性和经过时间的基本上无限制的组合来实现,例如100%唯一性和1.33秒、50%唯一性和0.67秒等。在一些实施例中,用户可能倾向于为可以被认为是可接受的UTR,例如90%,在唯一性水平上设置下限或最小唯一性阈值,或者在经过时间上设置上限或最大时间阈值。

图5是示出使用如本文所描述的改进的计算机标识系统的方法的实施例的流程图500。在502处,例如测试服务器85之类的服务器可以经由数据文件、编程脚本或用于存储运行如本文所描述的指纹测试的可执行指令的其它合适数据存储装置或介质来接收特定指纹识别测试或方法。在504处,测试服务器可以将指纹识别测试传输到可以运行指纹识别测试的一个或多个计算装置。在一些实施例中,在触发测试以由在计算装置上运行的网络浏览器运行时,计算装置可以从测试服务器进入指纹识别测试。在506处,测试服务器85可以从一个或多个计算装置接收反映测试数据的测试数据,例如装置类型、操作系统、处理测试的经过时间、图像的散列代码表示等。在508处,服务器85可以将指纹测试数据存储在连接到测试服务器或容纳在测试服务器内的指纹数据库中。测试数据可以存储在指纹数据库90中并且进行分类,以便允许随后的数据分析,从而将从多个不同的指纹识别测试接收的数据进行比较。在510处,服务器85可以检取用于特定指纹识别测试或与特定装置/浏览器组合相关的数据。在一些实施例中,测试服务器85可以检取在每个装置上运行测试的处理经过时间和每个装置的散列代码。在512处,测试服务器85可以汇总测试数据以在一些实施例中确定给定应用程序的理想指纹识别测试方法。例如,在514处,测试服务器可以确定所有被测试装置上用于特定指纹识别测试的平均处理经过时间,并且在516处,基于检取到的散列代码数据确定唯一性水平。在一些实施例中,所述方法另外可以包括将唯一性水平与基线或阈值唯一性水平进行比较,和/或将平均处理经过时间进行比较。在一些实施例中,所述方法另外可以包括将唯一性水平和平均处理经过时间存储在指纹数据库90中,以便与它们所属的特定指纹识别测试相关联。

为了确定在最大程度地减短时间的同时最大程度地提高唯一性的理想指纹测试方法,一些实施例可以包括使用采用不同指纹识别测试的迭代过程。通常,在此类实施例中,测试服务器85可以将第一指纹识别测试传输到多个计算装置55,并且接收、存储和分析来自第一指纹识别测试的汇总测试数据。在一些实施例中,如果平均处理经过时间超过最大时间阈值或者唯一性水平小于最小唯一性阈值(或两者,或两者的组合),服务器可以确定新的指纹识别测试并且将新的测试传输到计算装置55,以从新的测试接收与阈值进行比较的测试数据并对其进行分析。可以任何合适的方式确定经过时间的阈值和唯一性水平的阈值,例如通过用户选择或者通过使用先前运行的指纹识别测试或者最知名的指纹识别测试的基线来确定。在一些实施例中,时间和唯一性阈值可以表示特定应用程序以可接受的可信度和速度水平运行的目标。此迭代过程可以无限期地继续,直到满足阈值中的一个或两个为止、直到已经完成预定次数的迭代为止、直到已经实现唯一性水平与经过时间之间的预定比率或关系为止,或者直到可以达到任何其它合适的最终目标为止。

在迭代实施例中,每个随后的指纹识别测试可以任何合适的方式不同,所述方式可以被计算以实现改进的结果,或者甚至可以随机地改变。在一个示例实施例中,第一指纹识别测试可以包括指令每个计算装置55网络浏览器绘制每个具有特定大小的球体和立方体的编程脚本,以及提供背光照明。替代地,第二指纹识别测试可以指令网络浏览器绘制球体和圆锥体,而不是球体和立方体。第三指纹识别测试可以仅指令网络浏览器绘制比第二指纹识别测试中的特定尺寸大的球体和立方体。如所属领域的普通技术人员将了解的,可以运行的不同指纹识别测试的类型可以基本上是无限制的。还应了解,在一些实施例中,可以将每个后续指纹识别测试传输到同一组计算装置,但是在其它实施例中,可以将每个后续指纹识别测试传输到不同组计算装置并且由其运行。

图6是示出以迭代方式使用改进的计算机标识系统来标识改进的指纹识别方法和测试的方法的实施例的流程图600。在602处,可以由测试服务器85接收第一指纹识别测试。在一些实施例中,第一指纹识别测试可以从另一计算装置上传到测试服务器85,或者在服务器本身上编码或以其它方式创建。在604处,可以将第一指纹识别测试传输到一个或多个计算装置,例如计算装置55a-55e。网络浏览器或其它软件可以运行第一指纹识别测试,并且在606处,测试服务器85可以从计算装置55接收第一指纹识别测试的测试数据。测试数据可以包括各种信息中的任何一种,但是至少可以包括在每一个别装置上运行的第一指纹识别测试的处理经过时间,以及表示指纹识别测试绘图或其它图像的结果的散列代码。在608处,测试服务器85可以将第一指纹识别测试的测试数据存储在指纹数据库90中,并且在610处,服务器可以检取并且汇总来自第一指纹识别测试的测试数据。

在一些实施例中,测试服务器85接着可以对来自第一指纹识别测试的测试数据进行分析以随后或同时确定至少两个结果。在612处,测试服务器85可以确定在计算装置上运行第一指纹识别测试的第一平均处理经过时间。在614处,测试服务器85可以例如通过将从每个装置检取到的散列代码进行比较来确定第一唯一性水平。在一些实施例中,测试服务器85可以在616处将第一平均经过时间与预定阈值经过时间值进行比较。如果服务器85确定第一平均经过时间大于阈值经过时间值,则服务器可以在620处确定要传输到一个或多个计算装置并在其上运行的新的(即,第二、第三、第四)指纹识别测试。如果测试服务器85确定第一平均处理经过时间小于时间阈值,则在618处,服务器可以确定第一唯一性水平是否大于阈值唯一性水平值。如果为否,则测试服务器85可以在622处确定要在随后的迭代中运行的新的指纹识别测试。在一些实施例中,如果唯一性水平大于阈值唯一性水平,则测试服务器85可以完成迭代过程。所属领域技术人员将认识到,在一些实施例中,测试服务器85可以在平均处理经过时间比较之前执行唯一性水平阈值比较。在一些实施例中,在唯一性水平可能比处理时间更重要的情况下,经过时间阈值可以设置为相对较高的最大值,并且唯一性水平阈值可以设置为相对较高的最小唯一性水平。或者,在处理经过时间可能比唯一性水平更重要的实施例中,经过时间阈值可以设置为相对较低的最大值,并且唯一性水平阈值可以设置为相对较低的最小唯一性水平。

可以设想,在一些实施例中,可以手动执行上文参考图6所描述的迭代测试过程。例如,用户可以审核每个迭代指纹识别测试的结果,并且选择或设计要评估的后续指纹识别测试。在一些实施例中,迭代过程可以改为自动的,使得改进的计算机标识系统可以确定一个或多个优选的指纹识别技术。在一些实施例中,测试服务器85或指纹数据库90可以包括预定的一组指纹识别测试,这些指纹识别测试可以随机地或基于每个后续测试的结果一个接一个地自动处理。

在一些实施例中,机器学习技术可以用于基于经过时间、唯一性水平或两者的组合来迭代地确定最佳或接近最佳的指纹识别测试。在运行每个指纹识别测试并且接收和分析测试数据之后,服务器85或另一计算组件可以对结果进行分析并且通过自动改变先前测试的各方面来创建新的测试。例如,对于每个随后的指纹识别测试,服务器可以对在指纹识别测试期间绘制的形状、使用的颜色、图像的大小等做出随机或拟随机改变。在一些实施例中,代替随机改变,服务器可以基于在先前迭代中所做的改变来对改进的唯一性或经过时间的趋向进行分析。在此类实施例中,考虑到指纹识别测试参数的特殊性,系统可以识别测试结果中的模式,并且进行额外的修改以优化后续测试。在一些实施例中,如果先前的指纹识别测试产生比之前使用的指纹识别测试更大的唯一性水平或更低的平均处理经过时间,则服务器可以基于先前的指纹识别测试派生出每个后续的指纹识别测试。例如,此类基于机器学习的迭代过程可能不受人类用户对形状应该是什么样子的先入为主的概念的限制。因此,机器学习系统可以确定的参数的组合对于人类用户可能没有考虑到的指纹识别测试而言是最佳的。

本文中所描述的各种参与者和元件可以操作一个或多个计算机设备以促进本文中所描述的功能。上述图中的任何元件,包括任何服务器、用户端或数据库,可以使用任何合适数目的子系统来促进本文中所描述的功能。

本申请中描述的任何软件组件或功能可以实施为可由至少一个处理器使用任何合适的计算机语言(例如Java、C++或Perl)、使用例如常规的或面向对象的技术执行的软件代码或计算机可读指令。在一些示例中,可以对所述至少一个处理器进行专门编程。

软件代码可以作为一系列指令或命令存储在非瞬态计算机可读介质上,所述非瞬态计算机可读介质例如随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质或例如CD-ROM的光学介质。任何此类计算机可读介质可驻存在单个计算设备上或单个计算设备内,并且可以存在于系统或网络内的不同计算设备上或不同计算设备内。

应当理解,如上文所描述的本发明可以使用计算机软件以控制逻辑的形式以模块化或集成方式来实施。基于本公开和本文中所提供的教示,本领域的普通技术人员可能知道并且了解使用硬件和硬件与软件的组合来实施本发明的其它方式和/或方法。

以上描述是说明性的而不是限制性的。在所属领域的技术人员阅读了本公开后,本发明的许多变化将变得显而易见。因此,本发明的范围不应参考以上描述来确定,而是应参考未决的权利要求以及其完整范围或等效物来确定。

在不脱离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。除非明确指示有相反的意思,否则叙述“一”、“一个”或“所述”旨在表示“一个或多个”。

本发明系统的一个或多个元件可以被要求保护为实现特定功能的构件。在使用此类构件加功能元件来描述要求保护的系统的某些元件的情况下,查阅本说明书、附图和权利要求书的所属领域的技术人员应理解,对应的结构是通用计算机、处理器或微处理器,所述微处理器(视具体情况可能被)编程(或物理上被配置成)为使用在没有特殊编程的任何通用计算机中存在的功能来执行特别叙述的功能和/或通过实施一种或多种算法来实现所述功能。如所属领域的技术人员应理解,算法可以在本公开中表达为数学公式、流程图、叙述式和/或向本领域的普通技术人员提供足够的结构以实施所述过程和其等同物的任何其它方式。

虽然本公开可以许多不同的形式体现,但附图和讨论的呈现应理解为,本公开是一个或多个发明的原理的范例,且并非意图将任何一个发明限制于所示实施例。

本公开为上文所描述的长期需要提供解决方案。具体地说,本文所描述的系统和方法可以被配置成有效地为各种应用提供改进的或理想的浏览器指纹识别技术。所属领域的技术人员将易于想到上述系统和方法的其它优势和修改。因此,本公开在其更广泛的方面并不限于上文示出和描述的具体细节、代表性系统和方法以及说明性示例。在不脱离本公开的范围或精神的情况下,可对上述说明书进行各种修改和变化,且希望本公开涵盖所有此类修改和变化,前提条件是所有此类修改和变化在所附权利要求书和其等同物的范围内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:分布式系统中的元数据路由

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!