鲁棒的计算设备标识框架的制作方法

文档序号:11476014阅读:157来源:国知局
鲁棒的计算设备标识框架的制造方法与工艺

本公开总体上涉及计算设备的标识,并且更加具体地涉及解决由被克隆设备和复制设备标识符提出的挑战的更加鲁棒的设备标识框架。



背景技术:

设备标识框架允许服务器唯一地标识请求访问由服务器托管的信息和资源的客户端计算设备。设备信息框架用于各种应用,包括认证、软件许可、数字内容许可、软件更新通知和目标内容分发。例如,设备标识框架可以结合向客户提供在有限时间内对有限资源(诸如,软件程序或多媒体内容)的免费或折扣访问的试验程序来实现。这样的试验程序依赖于设备标识框架来唯一地并且可靠地标识各个设备。否则,客户可能通过例如每个月在30天试验程序中重复地注册来滥用试验程序。设备标识框架还用于分析目的,例如以跟踪上述免费试验的接收者多频繁地选择最终购买初始被采样的软件或内容。并且作为又一示例,设备标识框架也可以实现为组合基于知识的认证(诸如秘密、图案等)与基于设备的认证(诸如所标识的计算机、智能电话等)的两因子认证过程的部分。不管具体实现,现有的设备标识框架通常使用设备标识符,设备标识符包括标识具体客户端计算设备的信息作为其名称暗示。设备标识符可以基于例如制造商提供的标识号码、机器标识码、电话号码、移动标识符、序列号、版本号、硬件配置、或性能规范。理想情况下,设备标识符不能由客户来操纵,并且关于可能与给定服务器交互的所有其他设备来唯一地标识具体的客户端设备。

在理论上,唯一地分配的设备标识符支持鲁棒的设备标识框架,其使得服务器能够可靠地标识与服务器交互的客户端。然而,实际上,不容易仅依赖于源自于客户端的设备标识符用于设备标识的原因有几个。首先,在很多情况下,客户端不能被信任以用相同的设备标识符来可靠地标识本身。这可能是因为,客户端具有不稳定的硬件配置或者在设备标识符计算逻辑方面具有缺陷。或者,可能是因为,用户已经变化、没有如实描述、或者在恶意企图下操纵设备标识符。仅依赖于源自于客户端的设备标识符不明智的另一原因在于,不能确保给定设备标识符真实地唯一。这在制造商通常在向其设备分配标识符时不细心的情况下尤其是真的。当设备被虚拟化或克隆时,也可能发生复制设备标识符,例如通过狡猾的用户寻求采用由软件供货商或内容提供商提供的基于设备的许可。这导致某种程度上的混乱情况,其中具有复制标识符的一些设备可接受(例如在不细心的制造商的情况下),而具有复制标识符的其他设备不是(例如在被克隆设备的狡猾的用户的情况下)。尝试通过操纵如何在初始分配设备标识符来解决这一混乱对现有的许可框架和安装的计算设备配置产生明显的挑战,并且因此从可缩放性的角度来看没有被认为是可行的解决方案。因此,需要一种更加鲁棒的设备标识框架。理想情况下,这样的框架解决有被克隆设备和复制设备标识符产生的挑战,并且可以在没有从根本上改变现有的客户端架构或客户端服务器通信系统的情况下来实现。



技术实现要素:

本发明的一方面提供了一种用于在客户端服务器计算环境中标识客户端设备的计算机实现的方法,方法可以包括:由服务器从客户端设备接收已经向客户端设备分配的设备标识符;由服务器获取第一刷新令牌;从服务器向客户端设备发送第一刷新令牌;由服务器从未标识的设备接收设备标识符和第二刷新令牌;确定第一刷新令牌和第二刷新令牌相同;以及基于确定将未知设备标识为客户端设备。

本发明的另一方面提供了一种设备标识系统,可以包括存储器设备和在操作上耦合至存储器设备的处理器,其中处理器被配置成执行存储在存储器设备中的指令,指令在被执行时引起处理器执行用于在客户端服务器计算环境中标识客户端设备的过程,过程可以包括:由服务器从客户端设备接收已经由客户端设备生成的根随机全局唯一标识符(rrg)以及第一刷新令牌;使用所接收的rrg来在由服务器管理的数据库中查找第二刷新令牌;确定第一刷新令牌关于第二刷新令牌过期;向客户端设备分配新的rrg(rrg-new);获取新的刷新令牌;使新的rrg与数据库中的新的刷新令牌相关联;以及向客户端设备发送包括新的rrg和新的刷新令牌的元组。

本发明的又一方面提供了一种非瞬态计算机可读介质,其上编码有指令,指令在由一个或多个处理器执行时引起用于在客户端服务器计算环境中标识客户端设备的过程被执行,过程可以包括:由服务器从客户端设备接收已经向客户端设备分配的设备标识符(did)以及已经由客户端设备生成的根随机全局唯一标识符(rrg);由服务器获取对应于客户端设备的服务器发出的唯一标识符(siui);由服务器获取第一刷新令牌(rt-1);在由服务器管理的数据库中创建链条目,其中链条目包括<did,rrg>→<siui>→{rt-1},其中{rt-1}是包括第一刷新令牌的集合;向客户端设备发送响应元组<rrg,rt-1>;从客户端设备接收修改后的响应元组<did,rrg,rt-1>;响应于接收到已修改的响应元组,获取第二刷新令牌rt-2;向包括第一刷新令牌的集合添加第二刷新令牌rt-2;以及向客户端设备发送已更新的响应元组<rrg,rt-2>。

附图说明

图1是示意性地图示在客户端服务器计算环境中发生并且根据改进的设备标识框架做出的示例通信的数据流程图;

图2是示意性地图示解决由被克隆设备和复制设备标识符产生的挑战的示例设备标识框架的所选择的部件的框图;

图3a到图3d包括图示用于在客户端服务器计算环境中向服务器设备标识客户端设备的示例方法的流程图;

图4a和图4b包括图示用于在设备标识框架中区分被克隆设备的示例方法的流程图;

图5a和图5b包括图示用于在客户端服务器计算环境中标识客户端设备与服务器设备的示例方法的流程图,其中客户端设备生成多个唯一的设备标识符值;以及

图6是图示用于在客户端服务器计算环境中标识客户端设备的计算机实现的方法的流程图。

具体实施方式

根据本文中公开的实施例中的某些实施例,通过使用结合例行客户端服务器通信被交换的"刷新令牌"在时间周期上跟踪客户端设备来实现更加鲁棒的设备标识框架。在这样的实施例中,客户端与服务器之间的每个通信循环包括在服务器处记录的刷新令牌。所记录的刷新令牌被映射到服务器生成的设备标识符和客户端生成的设备标识符二者。当客户端与服务器之间发生通信时,令牌的链(每个通信循环一个令牌)被渐进地记录在服务器处。如果服务器接收到过期的或者无序的令牌(其基于所记录的链的渐进被期望),则建议从作为另一客户端设备的未认证副本的客户端设备传输所接收的通信。例如,如果服务器已经记录向具体客户端发送的刷新令牌的有序链{α,β,γ},则服务器期望从客户端接收的下一通信包含最近发送的刷新令牌γ。如果下一接收的通信包含过期刷新令牌β,则建议从作为另一客户端设备的未认证副本的客户端设备接收本通信。因此通过使用在客户端与服务器之间交换的设备标识符和令牌的组合实现了更加鲁棒的设备标识架构。这解决了与仅依赖于设备标识符的现有系统相关联的很多缺陷。另外,由于这样的框架使用在服务器处生成和分析的刷新令牌,所以实现几乎不需要或者不需要现有的基于客户端的系统。大量备选实施例鉴于本公开将很清楚。

图1是示意性地图示在客户端服务器计算环境中发生并且根据改进的设备标识框架做出的示例通信的数据流程图。客户端服务器计算环境包括与一个或多个客户端设备300通信的服务器100。第一客户端设备300a向服务器100传输包括标识元组<did,rrg-1>的第一通信①。如本文中使用的,缩写"did"指代"设备标识符",其是意图向服务器唯一地标识具体客户端设备的数据串,然而,出于以上概括的原因,这样的标识通常不可靠。did通常在初始由客户端设备的制造商来分配。如本文中使用的,缩写"rrg"指代"根随机全局唯一标识符",其是由客户端设备在初始操作时随机生成的数据串。在一个实施例中,rrg包括可以用字母字符串表示的256字节的值。在其他实施例中也可以使用其他值长度。在其中使用若干不同rrg值的实现中,命名rrg-x指代第x个rrg。因此,did和rrg都起源于客户端服务器计算环境的客户端侧。

服务器100包括数据库122等,数据库122包括具有以下格式的多个链条目:<did,rrg>→<siui>→{rt-1,rt-2,rt-3,……,rt-n}。每个接收的标识元组<did,rrg>被映射到对应siui。如本文中使用的,缩写"siui"指代"服务器发出的唯一标识符",其是由服务器随机生成并且与由服务器接收的具体的标识元组<did,rrg>关联的数据串。在一个实施例中,siui包括可以用字母字符串表示的256字节值。在其他实施例中也可以使用其他值长度。在其中使用若干不同siui值的实现中,命名siui-x指代第x个siui。同样,每个<did,rrg>→<siui>映射被进一步映射到一个或多个rt值的集合{rt-1,rt-2,rt-3,……,rt-n}。如本文中使用的,缩写"rt"指代"刷新令牌",其是也由服务器随机生成并且对应于服务器与具体客户端设备之间的通信循环的数据串。因此,如果服务器和具体的客户端设备具有一个通信循环(例如,如果客户端设备已经接触服务器并且服务器已经响应,反之亦然),则所得到的rt值的集合具有单个元素{rt-1}。在一个实施例中,rt包括可以用字母字符串表示的256字节值。在其他实施例中也可以使用其他值长度。命名rt-x指代第x个rt。rt值的集合{rt-1,rt-2,rt-3,……,rt-n}在本文中称为"rt集合"。因此,siui和rt二者都源自于客户端服务器计算环境的服务器侧。

在从第一客户端设备300a接收到标识元组<did,rrg-1>时,服务器100生成新的siui-1,新的siui-1对应于第一客户端设备300a并且被映射到即将到来的元组<did,rrg-1>。这一映射存储在数据库122中。另外,服务器100生成新的rt-1并且创建新的rt集合{rt-1}。这一新的rt集合也存储在数据库122中,并且被映射到现有的<did,rrg-1>→<siui-1>映射,如以上描述的。结果是呈现为<did,rrg-1>→<siui-1>→{rt-1}的数据库122中的链条目。服务器100使用包括响应元组<rrg-1,rt-1>的第二通信②来响应于第一客户端设备300a。在接收到这一响应元组时,第一客户端设备300a本地存储rt-1。

当第一客户端设备300a稍后向服务器100传输第三通信③时,其包括具有其即将离开的传输的响应元组<did,rrg-1,rt-1>。服务器100尝试将即将到来的rt-1与数据库122中和<did,rrg-1>和<siui-1>相关联的rt集合中的最近的rt相匹配。如果匹配存在,则生成下一rt-2并且添加其以形成已更新rt集合{rt-1,rt-2}。服务器100使用包括已更新响应元组<rrg-1,rt-2>的第四通信④来响应于第一客户端设备300a。当第一客户端设备300a和服务器100继续彼此通信时,数据库122中与<did,rrg-1>和<siui-1>相关联的rt集合继续生长,从而形成表示第一客户端设备300a与服务器100之间的序列客户端服务器通信循环的链。这些连续的序列通信循环在本文中称为用例1,并且可以理解为其中没有遇到任何克隆或复制客户端设备的基线使用情况。

仍然参考图1中图示的示例实施例,在服务器100与第一客户端设备300a之间的第一通信循环完成之后(也就是,在第二通信②发生之后)的某个点,可以克隆第一客户端设备300a以产生第二客户端设备300b。可能的克隆事件在图1中用符号●表示。这可以通过恶意用户寻求采用由软件供货商或内容提供商提供的基于设备的许可来实现。或者,其可以在没有恶意的情况下来进行,例如由将现有的设备信息复制到新的设备以快速地配置新设备的技术管理员来进行。不管克隆的动机,本文中公开的某些实施例很适合检测这样的克隆。具体地,当克隆第一客户端设备300a时,所得到的第二客户端设备300b继承了先前从服务器100接收的响应元组<rrg-1,rt-1>。克隆过程因此可以理解为从第一客户端设备300a(被克隆设备)向第二客户端设备300b(克隆设备)传播先前接收的rt-1。当第二客户端设备300b开始与服务器100通信时,这一接下来的通信⑤包括具有其即将离开的传输的响应元组<did,rrg-1,rt-1>。服务器100尝试将即将到来的rt-1与数据库122中和<did,rrg-1>和<siui-1>相关联的rt集合中的最近的rt相关联。如果服务器100已经响应于第一客户端设备300a,则该最近的rt是rt-2。无法匹配这些rt值(本文中称为"冲突状态")向服务器100表明所接收到的通信⑤从在过期rt上从未认证源接收的设备来传输,诸如从被克隆客户端设备。以这一方式检测未认证复制设备标识符在本文中称为用例2,并且可以理解为被克隆设备使用情况。如果服务器100尚未响应于第一客户端设备300a,则来自第二客户端设备300b的通信被认为是合法的,并且来自第一客户端设备300a的随后的通信被认为包含未认证复制设备标识符。

如以上指出的,在一些情况下,多个不相关的设备可以具有相同的设备标识符。这例如可以在设备制造商在向其设备分配标识符时不小心的情况下或者在两个设备制造商不知不觉地产生具有相同标识符的设备的情况下发生。然而,具有相同设备标识符的两个不相关的设备仍然生成不同的rrg值。因此,如图1中图示的,与第一客户端设备300a和第二客户端设备300b具有相同did的第三客户端设备300c通过发送包括标识元组<did,rrg-2>的第一通信①来与服务器100发起通信。由于数据库122中不存在这样的元组,所以服务器100将第三客户端设备300c视为新的设备,并且因此不触发冲突状态。服务器100因此使用包括响应元组<rrg-2,rt-1>的第二通信②来响应于第三客户端设备300c,如本文中描述的。第一客户端设备300a和第三客户端设备300c因此彼此不受影响,即使它们共享相同的did。这一并行操作在本文中称为用例3,并且可以理解为复制设备标识符使用情况。

在图1中图示并且在以上描述的示例实现说明了本文中公开的某些实施例如何解决现有的设备标识框架的缺陷。例如,由于不稳定的硬件配置、软件缺陷或者由于具有恶意的用户,使用服务器生成的siui来补充客户端提供的did的框架不易受did的客户端侧操纵的影响。同样,构建对应于客户端服务器通信循环的刷新令牌的服务器侧链使得服务器能够独立地验证具体的通信与从具体客户端设备接收的其他通信连续,并且因此使得能够更加可靠地检测被克隆设备。另外,使用rrg补充did的框架使得具有相同标识符的不相关的设备能够独立地操作并且没有彼此干扰。这使得服务器能够区分具有复制标识符的彼此相关的设备(例如,通过克隆操作)以及具有复制标识符的彼此不相关的设备(例如,由于设备初始制造有复制标识符)。由于图1中图示的示例设备标识框架可以被实现而没有在本质上改变现有的客户端服务器通信系统并且基本上没有修改现有的客户端设备架构,所以其可以用直接方式在现有的系统上实现。这提供了其他解决方案缺乏的可缩放程度。这些和其他优点鉴于本公开将很清楚。

如本文中使用的,术语"计算设备"除了其原始含义还指代具有处理器、存储器和能够用于访问设备或与设备交互的输入/输出部件的装置。计算设备通常还包括被配置成实现某些功能的一个或多个软件模块、以及能够实现这样的实现的硬件。计算设备的示例包括手持计算机、蜂窝电话、平板计算机、智能电话、膝上型计算机、台式计算机和机顶盒。"客户端计算设备"之地啊在客户端服务器计算环境中操作并且请求访问由服务器托管的信息或资源的计算设备。

如本文中使用的,术语"数据结构"除了其原始含义还指代在计算机可访问存储器中存储和组织数据使得数据能够由应用或软件模块来使用的方式。在其最简形式中,数据结构可以是例如一个或多个存储位置的集合。在一些情况下,数据结构可以实现为所谓的记录、有时称为结构体或元组,并且可以具有任何适当数目的字段、元素或存储位置。还应当理解,数据结构可以包括感兴趣的数据或者指代能够找到感兴趣的数据的存储位置的指针。数据结构可以具有任何适当的形式,诸如例如查找表或索引格式;阵列格式;具有任意合适数目的节点的散列表格式、图形、树或分层格式;包括数据字段的对象格式;或者以上的组合。数据结构可以包括用于访问和修改其中存储的数据的结构和格式的可执行代码。在更加一般的意义上,数据结构可以实现为能够存储具体值的数据集,而没有被约束为任何具体顺序或格式。在一个实施例中,数据结构包括具有以下格式的多个链条目:<did,rrg>→<siui>→{rt-1,rt-2,rt-3,……,rt-n},其中rt集合{rt-1,rt-2,rt-3,……,rt-n}表示服务器与设备之间的通信循环,其用did、rrg和siui值表示。

系统架构

图2是示意性地图示抵抗被克隆设备和复制设备标识符提出的设备标识挑战的示例设备标识框架10的所选择的部件的框图。框架10使得服务器例如能够区分具有复制标识符的彼此相关的客户端设备(例如,通过克隆操作)以及具有复制标识符的彼此不相关的设备(例如由于设备初始制造有复制标识符)。框架10可以理解为包括服务器100,服务器100能够经由网络200与一个或多个客户端设备300通信。网络200也可以用于访问可选的补充资源,诸如云存储资源和网络管理资源。在一些情况下,这样的补充资源被省略,对应功能由服务器100本身来提供,或者被一起省略。另外,虽然服务器100和客户端设备300在图2中图示为直接连接至网络200,然而在其他实现中,它们可以通过一个或多个其他网络或通信信道远程耦合至网络200。

在一个实施例中,服务器100包括托管、分发或管理可用于客户端设备300的数字资源的一个或多个企业级服务器设备。在包括多个服务器的实现中,多个服务器由负载平衡系统可选地来管理。服务器100能够使得其可用于客户端设备300的资源的示例包括软件、多媒体内容、数字资产、和基于云的存储资源。在一些实现中,基于试验来向客户端设备300提供数字资源,诸如通过在有限的时间内提供对资源的免费或折扣访问。在其他实现中,仅向持有有效许可的客户端提供对资源的不受限访问。服务器100可以被配置成通过建立和强迫管理如何使得资源可用于客户端的规则来管理数字资源的分发。为此,服务器100通常得益于可靠地标识和区分请求访问托管的资源的具体客户端设备300的能力。因此,在某些实现中,服务器100包括被配置成实现与设备标识框架10相关联的各种功能的一个或多个软件模块、以及实现这样的实现的硬件。实现硬件的示例包括处理器110、存储器120、通信模块150、以及总线或互连190。实现软件的示例包括操作系统140、令牌管理模块160、冲突触发模块170和用户界面模块180。

虽然图2中为了清楚仅图示一个代表性客户端设备300,然而应当理解,通常,框架10可以包括几十个、几百个、几千个或者实际上任意合适数目的与服务器100通信的客户端设备。因此,本文中提及单数"客户端设备"应当被理解为包括也具有多个客户端设备的实施例。客户端设备300可以包括例如选自以下的一个或多个设备:台式计算机、膝上型计算机、工作站、平板计算机、智能电话、手持计算机、机顶盒、企业级设备、或者能够与服务器100通信的任何其他这样的设备。在某些实施例中可以使用不同设备的组合。如图2中图示的,客户端设备300可选地包括本地安全高速缓存322,其可以用于存储刷新令牌、响应元组、以及从服务器100接收的或者被高速缓存用于向服务器100传输的其他数字条目。在一个实施例中,本地安全高速缓存322被配置成限制或防止用户访问或操纵存储在其中的条目。

再次参考图2中图示的服务器100的示例实现,处理器110包括任意合适的处理器,并且可以包括一个或多个协处理器或控制器,诸如图形处理单元,以帮助控制和处理与服务器100相关联的操作。存储器120可以使用任意合适类型的数字存储装置来实现,诸如以下中的一项或多项:磁盘驱动器、独立磁盘冗余阵列(raid)、通用串行总线(usb)驱动、闪存存储器、随机存取存储器(ram)、或者以上的任意合适的组合。因此,在某些实施例中,存储器120包括多个数字存储设备的分布式系统,这些数字存储设备中的一个或多个可以彼此远离并且经由网络200可访问。存储器120可选地托管数据库122,数据库122可以用于存储标识元组、siui值、和rt集合之间的映射,如所描述的。在一些情况下,存储器120还可选地用于存储由冲突触发模块170提供的被检测冲突的数据结构172。

操作系统140包括任意合适的操作系统,诸如androidtm(加利福尼亚州山景城的google公司)、(华盛顿州雷德蒙德的microsoft公司)、或者(加利福尼亚州库比蒂诺的apple公司)。鉴于本公开应当理解,本文中提供的技术可以不关于结合服务器100提供的具体操作系统来实现,并且因此也可以使用任意合适的现有的或者随后开发的平台来实现。通信模块150是实现到网络200以及其他计算设备和资源的有线或无线连接的任何适当的网络芯片或芯片集。通信模块150也可以被配置成经由总线或互连190来提供设备内通信。

仍然参考图2,令牌管理模块160包括在计算机可读介质上编码的指令,这些指令在使用处理器执行时引起各种不同令牌管理处理中的一个或多个处理被调用。一个这样的处理调用数字令牌的管理获取,诸如siui值(从siui池162获取)、rt值(从rt池164获取)、和rrg值(基于随机算法生成)。令牌管理过程还可以涉及分析从客户端设备300接收的即将到来的元组并且生成合适的响应元组。其可以包括从服务器数据库122中提取信息或者向服务器数据库122存储映射。例如,在一个实现中,当客户端设备300与服务器100之间发生通信时,令牌管理过程在数据库122中记录令牌的链,每个通信循环一个令牌。可以基于令牌的接收来标识可能是其他客户端设备的副本的客户端,该令牌关于基于所记录的链的渐进期望的而过期。这些和其他功能可以由令牌管理模块160来提供,如转而描述的。

冲突触发模块170包括在计算机可读介质上编码的指令,这些指令在使用处理器执行时引起各种不同冲突触发过程中的一个或多个被调用。一个这样的过程涉及编译和维持被检测冲突的数据结构172。如下面更加详细地描述的,被检测冲突的数据结构172提供对被克隆客户端设备之间的关系的见解,从而使得分析者能够标识其他克隆源自于其的源设备。这可以通过例如在被检测为彼此的克隆的设备的siui值之间建立链接来实现。在某些实施例中,冲突触发过程编译和维持定义被检测冲突的数据结构172的元数据。在这样的实现中,元数据可以保存在数据库122中。转而描述由冲突触发模块170提供的功能。

用户界面模块180包括在计算机可读介质上编码的指令,这些指令在使用处理器执行时引起用户界面被生成。在一个实现中,用户界面被配置成显示关于与服务器100交互的各种客户端设备的信息以及具体地关于服务器100已经检测到的冲突状态的信息。这样的信息可选地以被检测冲突的数据结构172的形式来提供。用户界面还可以被配置成接收用户输入,用户输入定义如何报告操作数据并且更加具体地设备标识框架10如何操作。为此,由用户界面模块180生成的用户界面可以包括诸如菜单栏、工具栏、对话框、控制面板、下拉菜单、情境菜单、复选框、无线电按钮等元件。

本文中公开的实施例可以用各种形式的硬件、软件、固件或专用处理器来实现。例如,在一个实施例中,非瞬态计算机可读介质上编码有指令,这些指令在由一个或多个处理器执行时实现本文中公开的设备标识框架中的一个或多个。指令可以使用任意合适的编程语言来编码,诸如scala、c、c++、面向对象的c、swift、javascript、java、visualbasic.net、basic,或者备选地使用定制或专用指令集来编码。这样的指令可以用一个或多个计算机软件应用或小程序的形式来提供,这些计算机软件应用或小程序在存储器设备上有形地实施并且可以由具有任意合适的架构的计算机来执行。在一个实施例中,系统可以被托管在给定网站上并且例如使用javascript或者另一合适的基于浏览器的技术来实现。

本文中公开的功能可以被合并到大量计算环境中,诸如网络业务分析应用;许可内容分发框架;以及软件分发、激活和更新通知系统。例如,在一个实现中,设备标识框架10结合试验程序来实现,试验程序向客户提供在有限周期内对软件应用的免费访问。如本文中公开地处理在试验周期的激活期间发生的客户端服务器通信,从而使得管理员能够更加容易标识重复地尝试注册试验程序的客户。本文中公开的设备标识框架可以包括任何数目的不同的模块、子模块或者具有不同功能的其他部件,并且可以向另外的部件或服务提供信息或者从另外的部件或服务接收信息。这些模块可以用于例如访问云存储资源或网络管理资源。更加一般地,说明中没有反映的其他部件和功能鉴于本公开将很清楚,并且应当理解,本公开并非意图限于任何具体的硬件或软件配置。因此,在其他实施例中,图2中图示的部件可以包括另外的、更少的或者备选的子部件。

上述非瞬态计算机可读介质可以是用于存储数字信息的任意合适的介质,诸如硬盘驱动、服务器、闪存存储器、ram或以上的任意组合。在备选实施例中,本文中公开的计算机和模块可以用硬件来实现,包括门水平逻辑、诸如现场可编程门阵列(fpga),或者备选地包括专用半导体、诸如专用集成电路(asic)。其他实施例可以使用具有以下各项的微控制器来实现:用于接收和输出数据的大量输入/输出端口、以及用于执行本文中公开的各种功能的大量嵌入式例程。应当理解,可以在这一点上使用硬件、软件和固件的任意合适的组合,并且本公开并非意图限于任何具体的系统架构。

方法:基线(用例1)

图3a到图3d包括图示用于在客户端服务器计算环境中向服务器设备标识客户端设备示例方法1000的流程图。方法1000在本文中也称为用例1。可见,方法1000包括大量阶段和子过程,其顺序可以根据实施例而变化。然而,当作为总体来考虑时,这些阶段和子过程形成解决由被克隆设备和复制设备标识符引入的挑战的改进的设备标识框架的部分。在一个实施例中,本框架根据本文中公开的某些技术来响应于在客户端服务器计算环境中检测到的通信。方法1000可以使用例如在图2中图示并且在本文中描述的系统架构来实现。然而,在其他实施例中也可以使用其他系统架构,这鉴于本公开很清楚。为此,图3a到图3d所示的各种功能与图2中图示的具体部件之间的关联并非意图暗示任何结构或使用限制。相反,其他实施例可以包括例如不同程度的集成,其中多个功能由一个系统或模块来有效地执行。例如,在备选实施例中,使用单个模块来管理令牌并且响应于所检测到的冲突状态。因此,其他实施例取决于实现粒度可以具有更少或更多的模块。大量变化和备选配置鉴于本公开将很清楚。

方法1000在客户端服务器计算环境中实现,其中(a)多个客户端设备请求访问由服务器托管的信息、资源或者信息和资源,并且(b)服务器致力于区分来自各个客户端设备的通信。在这一上下文中,方法1000从具体的客户端设备300准备向服务器100提交请求开始。为此,客户端设备300定义"初始标识元组"<did,rrg>。参见图3a中的附图标记1110。在此,did表示与客户端设备300相关联的设备标识符,诸如可以在初始由制造商来分配。did意图向服务器唯一地标识具体的客户端设备,然而,这样的标识可能并不一定是稳定的或者可靠的。rrg表示根随机全局唯一标识符,其由客户端设备300在初始操作时随机地生成。在一个实施例中,rrg包括可以用字母字符串表示的256字节值。在其他实施例中可以使用其他值长度。客户端设备300组合did和rrg以形成初始标识元组。客户端设备300然后例如通过初始服务器请求向服务器100发送初始标识元组。参见图3a中的附图标记1120。

在服务器100接收到初始标识元组时,由令牌管理模块160调用的令牌管理过程从siui池162获取siui。参见图3a中的附图标记1140。在此,siui表示由服务器100随机生成的服务器发出的唯一标识符。因此,可以将siui池162理解为提供可用siui值的储存库。在一个实施例中,使用字母字符空间256使用标准随机数生成器来生成siui池162中的令牌值。在生成随机数之后,进行复制值的可选检查。因此,在一个实施例中,siui包括可以用字母字符串表示的256字节值。在其他实施例中可以使用其他值长度。由令牌管理模块160调用的令牌管理过程还从rt池164获取rt。参见图3a中的附图标记1150。在此,rt表示由服务器100随机生成的刷新令牌。因此,可以将rt池164理解为提供可用rt值的储存库。在一个实施例中,使用字母字符空间256使用标准随机数生成器来生成rt池164中的令牌值。在生成随机数之后,进行复制值的可选检查。因此,在一个实施例中,rt包括可以用字母字符串表示的256字节值。在其他实施例中可以使用其他值长度。

由令牌管理模块160调用的令牌管理过程将从客户端设备300接收的初始标识元组映射到所获取的siui,从而形成映射<did,rrg>→<siui>,其被保存在服务器数据库122中。参见图3a中的附图标记1160。链条目<did,rrg>→<siui>→{rt}也保存在服务器数据库122中。参见图3a中的附图标记1170。在此,{rt}表示rt值的集合。开始,{rt}仅包括初始从rt池164获取的rt值。当其他客户端与服务器100之间的附加通信被处理时,数据库122将生长以包含各种客户端的用其did、rrg和siui值标识的大量这样的链条目。由令牌管理模块160调用的令牌管理过程定义"响应元组"<rrg,rt>。参见图3b中的附图标记1210。通信模块150被配置成向从服务器100向客户端设备300发送的响应附加这一响应元组。参见图3b中的附图标记1220。

客户端设备300将所接收的响应元组<rrg,rt>存储在本地安全高速缓存322中。参见图3b中的附图标记1230。在准备再次与服务器100通信时,客户端设备300将其did附接至所保存的响应元组以形成已修改响应元组<did,rrg,rt>。参见图3b中的附图标记1240。客户端设备300可以在初始从服务器100接收到响应元组之后很好地响应于服务器,具体地,在其中发生明显的客户端侧处理或用户交互的实现中。在一些情况下,例如由于did计算逻辑的缺陷,客户端设备300可以在不同的时间生成不同的did值。因此确定由客户端设备300生成的did值是否稳定,并且具体地,确定先前生成的did是否匹配随后生成的did。参见图3b中的附图标记1250。这可以通过比较两个did值来完成。如果客户端设备300生成不稳定的did值,则与服务器100的随后通信被不同地配置和处理,这转而参考用例4来讨论。另一方面,如果用于形成已修改响应元组的随后生成的did匹配初始标识元组中存在的did,则通过随后的服务器请求向服务器100发送已修改响应元组<did,rrg,rt>。参见图3b中的附图标记1260。

在接收到已修改响应元组时,由令牌管理模块160调用的令牌管理过程提取did和rrg值。参见图3c中的附图标记1410。使用这些提取的值,搜索数据库122以标识和检索相关联的siui和rt集合。参见图3c中的附图标记1420。分析rt集合并且标识最近添加的rt值。该值在本文中称为rt-server,因为其存储在服务器100处。参见图3c中的附图标记1430。同样,作为已修改响应元组的部分的从客户端设备300接收的rt值在本文中称为rt-client。参见图3c中的附图标记1440。确定rt-server和rt-client是否相同。参见图3c中的附图标记1450。如果否,则表明服务器100与保持相同的did和rrg的另一客户端之间已经发生了其他通信,这转而将关于用例2来讨论。

另一方面,如果rt-server和rt-client相同,则由令牌管理模块160调用的令牌管理过程从rt池164获取下一可用rt。参见图3c中的附图标记1460。将数据库122中存储的rt值更新为包括这一新获取的rt作为rt集合中包含的最新rt。参见图3d中的附图标记1510。因此,可以将rt集合理解为揭示一系列rt值,每个rt值表示服务器100与客户端设备300之间的通信循环。因此rt集合可以理解为提供已经在服务器100与具体客户端之间发生的通信的记录,其用映射的did、rrg和siui值来标识。在检测到非连续通信时,可以表示作为先前与服务器100通信的另一设备的克隆的设备。

由令牌管理模块160调用的令牌管理过程更新响应元组以使用从rt池164获取的较新的rt来代替现有rt-client。参见图3d中的附图标记1520。通信模块150可以被配置成确定是否要发生另外的客户端服务器通信。参见图3d中的附图标记1530。如果是,则将响应元组返回客户端设备300,如本文中描述的。客户端设备300按照类似于处理先前接收的响应元组的方式来处理该响应元组。在客户端与服务器之间交换已更新rt并且在数据库122中维持一系列交换后的rt值这一过程可以无限期地继续。一旦没有另外的客户端服务器通信要发生,则方法1000结束。方法1000可以理解为基线用户场景,因为其适应其中没有遇到复制设备并且服务器100从客户端设备300接收的rt值的序列没有遇到不期望的终端或复制的情况。

在一些情况下,siui池162和rt池164中的一者或二者有可能变为空。如果发生这一情况,则令牌管理模块160可以被配置成发起清除操作,在清除操作中,将数据库122中存储的rt集合缩短为空集合,并且将所有即将到来的客户端通信视为提供初始标识元组的初始客户端联系。这包括忽略最近发出的rt以及先前的rrg和siui映射。虽然冲突状态有可能在清除操作之后在这一第一通信循环期间没有检测的情况下发生,然而在随后的通信循环上有可能检测到任何复制设备。

方法:被克隆设备(用例2)

如以上指出的,数据库122中维持的rt集合包括对应于从服务器100向客户端300发送的即将离开的响应元组的rt值的序列。因此,在正常操作下,例如,其中没有遇到任何复制设备,则从客户端设备300接收的响应元组中包含的rt值匹配数据库122中存储的值。当这些值之间发生失配时,表明服务器100与保持复制did和rrg的另一客户端之间已经发生其他通信。具体地,这表示具体的客户端设备可能已经被克隆,例如通过虚拟化过程。克隆、虚拟化或者复制客户端设备300可能产生其中具有相同的did和rrg值的两个客户端设备尝试与服务器100建立单独的通信循环的情况。这是因为,克隆操作引起克隆保持与被克隆设备相同的<did,rrg,rt>。由于设备克隆和虚拟化技术已经被细化和改进,所以更加容易可靠地复制由被克隆设备保持的did和rrg值。

图4a和图4b包括图示用于区分设备标识框架中的被克隆设备的示例方法2000的流程图。方法2000在本文中也称为用例2。可见,方法2000包括大量阶段和子过程,其顺序可以根据实施例而变化。然而,当作为总体来考虑时,这些阶段和子过程形成解决由被克隆设备和复制设备标识符引入的挑战的改进的设备标识框架的部分。在一个实施例中,本框架根据本文中公开的某些技术来响应于在客户端服务器计算环境中检测到的通信。方法2000可以使用例如在图2中图示并且在本文中描述的系统架构来实现。然而,在其他实施例中也可以使用其他系统架构,这鉴于本公开很清楚。为此,图4a和4b所示的各种功能与图2中图示的具体部件之间的关联并非意图暗示任何结构或使用限制。相反,其他实施例可以包括例如不同程度的集成,其中多个功能由一个系统或模块来有效地执行。例如,在备选实施例中,使用单个模块来管理令牌并且响应于所检测到的冲突状态。因此,其他实施例取决于实现粒度可以具有更少或更多的模块。大量变化和备选配置鉴于本公开将很清楚。

方法2000响应于确定从客户端设备300接收的rt(rt-client)不匹配数据库122中存储的rt集合中由服务器100保持的最近rt(rt-server)来被调用。参见图3c中的附图标记1450。这将在至少一个客户端服务器通信循环完成之后发生,如以上用例1中描述的。一旦rt-client与rt-server之间发生失配,则方法2000被调用,并且由令牌管理模块160调用的令牌管理过程生成要与发送无序rt的设备相关联的新的rrg,其在本文中称为rrg-new。参见图4a中的附图标记2110。如同初始生成的rrg,在一个实施例值,rrg-new包括可以用字母字符串表示的256字节值。在其他实施例中可以使用其他值长度。从siui池162获取下一可用siui,其在本文中称为siui-next。参见图4a中的附图标记2120。同样,从rt池164获取下一可用rt,其在本文中称为rt-next。参见图4a中的附图标记2140。获取新的rrg、siui和rt值使得服务器100能够唯一地标识复制客户端设备。

使用rrg-new,定义新的"克隆标识元组"<did,rrg-new>。参见图4a中的附图标记2150。由令牌管理模块160调用的令牌管理过程将克隆标识令牌映射到所获取的siui-next,从而形成映射<did,rrg-new>→<siui-next>,其被保存在服务器数据库122中。参见图4a中的附图标记2160。将对应的链条目<did,rrg-new>→<siui-next>→{rt-next}也保存在服务器数据库122中。参见图4a中的附图标记2170。由令牌管理模块160调用的令牌管理过程定义响应元组<rrg-new,rt-next>。参见图4b中图示的附图标记2210。

当从客户端设备300接收的rt不匹配数据库122中存储的rt集合中由服务器100保持的最近rrt时,表明在服务器100与保持复制did和rrg的另一客户端之间已经发生其他通信。这被称为冲突状态。有用的是,记录冲突状态,并且具体地记录哪些设备发送冲突rt值。如果一个设备是很多被克隆设备的源(通常就是这样),则链接提供冲突rt值的设备使得能够标识虚拟化设备的整个组。因此,在某些实施例值,由冲突触发模块170调用的冲突触发过程还被配置成以被检测冲突的数据结构172产生条目{siui-old→siui-next}。参见图4b中的附图标记2220。在此,siui-old指代从复制客户端设备接收的复制siui,而siui-next指代在方法2000的过程中生成的取代siui。

在某些实施例中,可以在图形上渲染被检测冲突的数据结构,如图4b中图示的。在这一示例表示中,可以虚拟化用siui-0标识的起源客户端设备以形成用siui-1标识的第一复制客户端设备,第一复制客户端设备转而被虚拟化以形成用siui-2标识的第二复制客户端设备,以此类推。在一些情况下,可以将具体的客户端设备克隆多次,诸如在用siui-5标识的客户端设备的情况下。被检测冲突的数据结构172的图形表示使得能够快速地标识复制设备的源(图示示例中的siui-0)。同样,也可以很容易地标识链接至起源客户端设备的所有设备。这一功能在复制设备上检测到安全漏洞的情况下特别有用,因为通常也需要标识复制设备的源。由冲突触发模块170调用的冲突触发过程还可选地被配置成响应于检测到冲突状态而进行任何其他合适的动作,诸如发送通知或者限制对服务器资源的访问。这样的动作可以关于冲突设备来进行,或者关于经由被检测冲突的数据结构172链接至其的所有设备来进行。

图4a和图4b中图示的方法2000针对被检测为提供不期望rt的设备有效地定义新的rrg、siui和rt值。这一特殊处理向复制设备提供新的路径,从而避免了与现有的客户端设备的冲突,从而促进了服务器与两个设备的通信。即使可以存在大量复制设备,方法2000仍然能够应用于每个这样的设备,其中每个复制设备接收其自己的新的rrg和siui值,并且因此具有其自己的新的路径。一旦针对具体的设备定义了新的且唯一的响应元组<rrg-new,rt-next>,则可以将其返回给客户端设备300,其在此如以上结合用例1描述地被处理。这继续在客户端与服务器之间交换已更新rt并且在数据库122中维持一系列已交换rt值(其被链接至唯一的<did,rrg-new>→<siui-new>映射)的迭代过程。

方法:复制设备标识符(用例3)

如以上指出的,存在很多如下情况:其中多个不相关的客户端设备可以具有相同的设备标识符。这可能在例如以下情况下发生:其中设备制造商在向其设备分配标识符时不小心,或者其中两个设备制造商不知不觉地生产具有相同标识符的设备。然而,具有相同设备标识符的两个不相关的客户端设备将生成不同的rrg值。因此,当两个这样的设备初始按照本文中公开的设备标识框架与服务器建立联系时,这两个设备中的第一设备生成响应元组<did,rrg-1,rt>,这两个设备中的第二设备生成响应元组<did,rrg-2,rt>。由于服务器没有从这两个设备接收到相同的rrg值,所以这些设备独立地工作并且不生成冲突状态。

方法:不稳定的设备标识符(用例4)

如以上指出的,在很多情况下,不能信任客户端设备以在每次客户端联系服务器时通过相同的设备标识符来可靠地标识其本身。这可以是因为客户端具有不稳定的硬件配置或者在设备标识符计算逻辑方面存在缺陷。可以操纵客户端通信协议以旁路限于单个设备的软件或内容许可。不管原因如何,如果单个客户端设备300生成多个did值,则方法1000可以被修改以符合这样的行为。这样的符合在本文中称为用例4,并且可以理解为不稳定的设备标识符场景。

图5a和图5b包括图示用于在客户端服务器计算环境中向服务器设备标识客户端设备的示例方法4000的流程图,其中客户端设备生成多个唯一的设备标识符值。方法4000在本文中也称为用例4。可见,方法4000包括大量阶段和子过程,其顺序可以根据实施例而变化。然而,当作为总体来考虑时,这些阶段和子过程形成解决由被克隆设备和复制设备标识符引入的挑战的改进的设备标识框架的部分。在一个实施例中,本框架根据本文中公开的某些技术来响应于在客户端服务器计算环境中检测到的通信。方法4000可以使用例如在图2中图示并且在本文中描述的系统架构来实现。然而,在其他实施例中也可以使用其他系统架构,这鉴于本公开很清楚。为此,图5a和图5b所示的各种功能与图2中图示的具体部件之间的关联并非意图暗示任何结构或使用限制。相反,其他实施例可以包括例如不同程度的集成,其中多个功能由一个系统或模块来有效地执行。例如,在备选实施例中,使用单个模块来管理令牌并且响应于所检测到的冲突状态。因此,其他实施例取决于实现粒度可以具有更少或更多的模块。大量变化和备选配置鉴于本公开将很清楚。

方法4000响应于确定客户端设备300生成不稳定的did值并且具体地响应于确定先前生成的did不匹配随后生成的did来被调用。参见图3b中的附图标记1250。这将在至少一个客户端服务器通信循环完成之后发生,如以上在用例1中描述的。一旦观察到不稳定的did生成,则方法4000被调用并且客户端设备300定义已修改响应元组,已修改响应元组包括先前生成的did(本文中称为did-old)和随后生成的did(本文中称为did-new)二者。参见图5a中的附图标记4110。这样的已修改响应元组的一个示例是<did-new,rrg,rt,did-old>。在某些实施例值,这一数据从本地存储高速缓存322中提取。客户端设备300通过随后的服务器请求向服务器发送这一已修改响应元组。参见图5a中的附图标记4120。这向服务器100有效地提供客户端设备300在时间周期上产生的did值的列表。在某些实施例中,在接收到已修改响应令牌时,由令牌管理模块160调用的令牌管理过程通过对did-old和did-new执行逐比特or操作来导出新的伪服务器侧设备标识符(pdid)。参见图5a中的附图标记4140。在备选实施例中,使用不同的操作来组合did-old和did-new,诸如连结操作或逐比特and操作。

从客户端设备100接收的已修改响应元组中提取rrg。参见图5a中的附图标记4150。使用导出的pdid值和所提取的rrg值,搜索数据库122以标识和检索相关联的siui和rt集合。参见图5a中的附图标记4160。分析rt集合并且标识最近添加的rt值。这一值在本文中称为rt-server,因为其存储在服务器100处。参见图5a中的附图标记4170。同样,作为已修改响应元组的部分的从客户端设备300接收的rt值在本文中称为rt-client。参见图5b中的附图标记4210。确定rt-server和rt-client是否相同。参见图5b中的附图标记4220。如果否,则表明服务器100与生成相同的did值--did-old和did-new--的另一客户端之间已经发生其他通信。这可以在设备虚拟化操作中复制相同的有缺陷的逻辑的情况下发生。在这种情况下,使用pdid而非标准did来调用用例2。

另一方面,如果rt-server和rt-client相同,则由令牌管理模块160调用的令牌管理过程从siui池162获取下一可用siui,其在本文中称为siui-next。参见图5b中的附图标记4230。同样,从rt池164获取下一可用rt,其在本文中称为rt-next。参见图5b中的附图标记4240。将已修改客户端标识元组<pdid,rrg>映射到所获取的siui-next,从而形成映射<pdid,rrg>→<siui-next>,其被保存在服务器数据库122中。对应的链条目<pdid,rrg>→<siui-next>→{rt-next}也保存在服务器数据库122中。参见图5b中的附图标记4250。由令牌管理模块160调用的令牌管理过程还定义已更新响应元组<rrg,rt-next>。参见图5b中的附图标记4260。可以将这一已更新响应元组返回给客户端设备300,其在此如以上结合用例1描述地被处理。这继续在客户端与服务器之间交换已更新rt并且在数据库122中维持一系列已交换rt值(其被链接至唯一的<pdid,rrg>→<siui-new>映射)的迭代过程。

虽然在产生两个不同的did值--did-old和did-new--的客户端设备的上下文中描述方法4000,然而其也可以用在其中客户端设备(a)在提供did-old和did-new之间重复地交替或者(b)在每个通信循环中继续提供新的did值的应用中。由客户端设备提供的已修改响应元组提供先前生成的did值的序列历史。对所有接收的did值执行的逐比特or操作继续以生成唯一的pdid值,其可以用于标识具体的客户端设备并且检索相关联的siui和rt集合。方法没有受到siui值的丢失的不利影响,因为可以使用pdid值来唯一地标识客户端设备。

如果生成多个did值的客户端设备被克隆,并且所得到的复制设备生成多个did值的相同序列,则建议did计算逻辑缺陷从源设备被传播给其克隆。在这种情况下,可以调用与用例2相关联的方法以解决其中检测到rt适配的情况。参见图5b中的附图标记4220。另一方面,如果生成多个did值的客户端设备被克隆,并且所得到的复制设备产生不同的设备标识符,则可以调用与用例3相关联的方法。

另外的示例实施例

各种变化和配置鉴于本公开将很清楚。比如,如图6中图示的,一个示例实施例提供用于在客户端服务器计算环境中标识客户端设备的计算机实现的方法6000。方法6000包括由服务器从客户端设备接收向客户端设备分配的did。参见图6中的附图标记6100。另外参见图3a中的附图标记1110和1120,其表示用于向服务器设备标识客户端设备的方法1000包括通过初始服务器请求向服务器发送初始标识元组<did,rrg>。

方法6000还包括由服务器获取第一rt。参见图6中的附图标记6200。另外参见图3a中的附图标记1150,其表示用于向服务器设备标识客户端设备的方法1000包括从rt池获取rt。

方法6000还包括从服务器向客户端设备发送第一rt。参见图6中的附图标记6300。另外参见图3b中的附图标记1210和1220,其表示用于向服务器设备标识客户端设备的方法1000包括向从服务器向客户端设备发送的响应附加响应元组<rrg,rt>。

方法6000还包括由服务器从未标识设备接收did和第二rt。参见图6中的附图标记6400。另外参见图3b中的附图标记1240和1260,其表示用于向服务器设备标识客户端设备的方法1000包括通过随后的服务器请求向服务器发送已修改响应元组,其中已修改响应元组通过向从服务器向客户端设备先前发送的响应元组附加客户端did来形成。

方法6000还包括确定第一rt值和第二rt值相同。参见图6中的附图标记6500。另外参见图3c中的附图标记1450,其表示用于向服务器设备标识客户端设备的方法1000包括确定rt-server和rt-client相同。在此,rt-server定义为从服务器数据库检索的rt集合中的最新rt,并且rt-client定义为已修改响应元组中从客户端接收的rt。参见图3c中的附图标记1430和1440。

方法6000还包括基于确定将未知设备标识为客户端设备。参见图6中的附图标记6600。另外参见图3c中的附图标记1460和图3d中的附图标记1510,其表示在没有新的设备标识令牌值、诸如新的rrg或siui值的情况下生成已更新响应元组。

在一些情况下,方法还包括由服务器在包括did的初始标识元组中从客户端设备接收由客户端设备生成的rrg。在一些情况下,(a)方法还包括由服务器在包括did的初始标识元组中从客户端设备接收由客户端设备生成的rrg;并且(b)在包括第一rt的响应元组中从服务器向客户端发送rrg。在一些情况下,在由未知设备生成的已修改响应元组中接收did和第二rt。在一些情况下,(a)方法还包括由服务器在包括did的初始标识元组中从客户端设备接收由客户端设备生成的rrg;并且(b)还从未标识设备接收did和rrg。在一些情况下,服务器包括从其获取第一rt的rt池。在一些情况下,方法还包括(a)由服务器生成对应于客户端设备的siui;并且(b)在siui、所接收的did和第一rt之间形成关联关系,其中关联关系形成在由服务器管理的数据库中。在一些情况下,方法还包括(a)由服务器在包括did的初始标识元组中从客户端设备接收由客户端设备生成的rrg;并且(b)将初始标识元组映射到由服务器管理的数据库中的第一rt;其中(c)做出决定还包括使用did来从数据库中提取第一rt。

另一示例实施例提供设备标识系统。系统包括存储器设备。系统还包括在操作上耦合至存储器设备的处理器。处理器被配置成执行存储器设备中存储的指令,这些指令在被执行时引起处理器执行用于在客户端服务器计算环境中标识客户端设备的过程。过程包括由服务器从客户端设备接收由客户端设备生成的rrg和第一rt。过程还包括使用所接收的rrg在由服务器管理的数据库中查找第二rt。过程还包括确定第一rt关于第二rt过期。过程还包括向客户端设备分配新的rrg(rrg-new)。过程还包括获取新的rt。过程还包括使rrg-new与数据库中新的rt相关联。过程还包括向客户端设备发送包括rrg-new和新的rt的元组。在一些情况下,(a)在包括多个不同did值的响应元组中接收rrg和第一rt;(b)过程还包括通过对多个不同did值执行逐比特or操作来生成伪服务器侧设备标识符(pdid);以及(c)使rrg-new与数据库值的新的rt相关联还包括将元组<pdid,rrg-new>映射到包括新的rt的rt集合。在一些情况下,获取新的rt包括从由服务器托管的rt池获取新的rt。在一些情况下,(a)在包括did的响应元组中接收rrg和第一rt;(b)数据库包括响应元组到siui-1的映射,siui-1与客户端设备相关联;(c)过程还包括获取新的siui-2并且使新的siui-2与客户端设备相关联;以及(d)过程还包括以被检测冲突的数据结构产生新的条目{siui-1→siui-2}。在一些情况下,(a)在包括did的响应元组中接收rrg和第一rt;(b)数据库包括响应元组到与客户端设备相关联的siui的映射;(c)过程还包括定义克隆标识元组<did,rrg-new>;(d)过程还包括获取新的siui;以及(e)过程还包括在数据库中产生包括克隆标识元组到新的siui的已更新映射的链条目,新的siui又被映射到包括新的rt的rt集合。在一些情况下,(a)在包括did的响应元组中接收rrg和第一rt;以及(b)过程还包括定义包括did和新的rrg的克隆标识元组。在一些情况下,(a)在包括did的响应元组中接收rrg和第一rt;以及(b)使用rrg和did二者查找第二rt。在一些情况下,(a)在包括did的响应元组中接收rrg和第一rt;(b)由客户端设备生成rrg;以及(c)由客户端设备的制造商分配did。

另一示例实施例提供其上编码有指令的非瞬态计算机可读介质,这些指令在由一个或多个处理器执行时引起用于在客户端服务器计算环境中标识客户端设备的过程被执行。过程包括由服务器从客户端设备接收向客户端设备分配的did和由客户端设备生成的rrg。过程还包括由服务器获取对应于客户端设备的siui。过程还包括由服务器获取第一刷新令牌(rt-1)。过程还包括在由服务器管理的数据库中创建链条目,其中链条目包括<did,rrg>→<siui>→{rt-1},其中{rt-1}是包括rt-1的集合。过程还包括向客户端设备发送响应元组<rrg,rt-1>。过程还包括从客户端设备接收已修改响应元组<did,rrg,rt-1>。过程还包括响应于接收到已修改响应元组来获取第二刷新令牌rt-2。过程还包括向包括第一rt的集合添加第二刷新令牌rt-2。过程还包括向客户端设备发送已更新响应元组<rrg,rt-2>。在一些情况下,从由服务器托管的siui池来获取siui。在一些情况下,集合中的rt的量对应于在服务器与客户端设备之间发生的通信循环的量。在一些情况下,(a)从rt池获取第一rt值和第二rt值;以及(b)过程还包括响应于确定rt池耗尽来清空集合并且重置rt池。

出于说明和描述的媒体呈现了以上描述。其并非意图排他或者将本公开限于具体的所描述的实施例。因此,很多修改和变化鉴于本公开是可能的。因此,意图在于,本发明的范围不受本详细描述的限制,而由所附权利要求来限制。

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