国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      魯棒的計算設(shè)備標識框架的制作方法

      文檔序號:11476014閱讀:173來源:國知局
      魯棒的計算設(shè)備標識框架的制造方法與工藝

      本公開總體上涉及計算設(shè)備的標識,并且更加具體地涉及解決由被克隆設(shè)備和復(fù)制設(shè)備標識符提出的挑戰(zhàn)的更加魯棒的設(shè)備標識框架。



      背景技術(shù):

      設(shè)備標識框架允許服務(wù)器唯一地標識請求訪問由服務(wù)器托管的信息和資源的客戶端計算設(shè)備。設(shè)備信息框架用于各種應(yīng)用,包括認證、軟件許可、數(shù)字內(nèi)容許可、軟件更新通知和目標內(nèi)容分發(fā)。例如,設(shè)備標識框架可以結(jié)合向客戶提供在有限時間內(nèi)對有限資源(諸如,軟件程序或多媒體內(nèi)容)的免費或折扣訪問的試驗程序來實現(xiàn)。這樣的試驗程序依賴于設(shè)備標識框架來唯一地并且可靠地標識各個設(shè)備。否則,客戶可能通過例如每個月在30天試驗程序中重復(fù)地注冊來濫用試驗程序。設(shè)備標識框架還用于分析目的,例如以跟蹤上述免費試驗的接收者多頻繁地選擇最終購買初始被采樣的軟件或內(nèi)容。并且作為又一示例,設(shè)備標識框架也可以實現(xiàn)為組合基于知識的認證(諸如秘密、圖案等)與基于設(shè)備的認證(諸如所標識的計算機、智能電話等)的兩因子認證過程的部分。不管具體實現(xiàn),現(xiàn)有的設(shè)備標識框架通常使用設(shè)備標識符,設(shè)備標識符包括標識具體客戶端計算設(shè)備的信息作為其名稱暗示。設(shè)備標識符可以基于例如制造商提供的標識號碼、機器標識碼、電話號碼、移動標識符、序列號、版本號、硬件配置、或性能規(guī)范。理想情況下,設(shè)備標識符不能由客戶來操縱,并且關(guān)于可能與給定服務(wù)器交互的所有其他設(shè)備來唯一地標識具體的客戶端設(shè)備。

      在理論上,唯一地分配的設(shè)備標識符支持魯棒的設(shè)備標識框架,其使得服務(wù)器能夠可靠地標識與服務(wù)器交互的客戶端。然而,實際上,不容易僅依賴于源自于客戶端的設(shè)備標識符用于設(shè)備標識的原因有幾個。首先,在很多情況下,客戶端不能被信任以用相同的設(shè)備標識符來可靠地標識本身。這可能是因為,客戶端具有不穩(wěn)定的硬件配置或者在設(shè)備標識符計算邏輯方面具有缺陷。或者,可能是因為,用戶已經(jīng)變化、沒有如實描述、或者在惡意企圖下操縱設(shè)備標識符。僅依賴于源自于客戶端的設(shè)備標識符不明智的另一原因在于,不能確保給定設(shè)備標識符真實地唯一。這在制造商通常在向其設(shè)備分配標識符時不細心的情況下尤其是真的。當設(shè)備被虛擬化或克隆時,也可能發(fā)生復(fù)制設(shè)備標識符,例如通過狡猾的用戶尋求采用由軟件供貨商或內(nèi)容提供商提供的基于設(shè)備的許可。這導(dǎo)致某種程度上的混亂情況,其中具有復(fù)制標識符的一些設(shè)備可接受(例如在不細心的制造商的情況下),而具有復(fù)制標識符的其他設(shè)備不是(例如在被克隆設(shè)備的狡猾的用戶的情況下)。嘗試通過操縱如何在初始分配設(shè)備標識符來解決這一混亂對現(xiàn)有的許可框架和安裝的計算設(shè)備配置產(chǎn)生明顯的挑戰(zhàn),并且因此從可縮放性的角度來看沒有被認為是可行的解決方案。因此,需要一種更加魯棒的設(shè)備標識框架。理想情況下,這樣的框架解決有被克隆設(shè)備和復(fù)制設(shè)備標識符產(chǎn)生的挑戰(zhàn),并且可以在沒有從根本上改變現(xiàn)有的客戶端架構(gòu)或客戶端服務(wù)器通信系統(tǒng)的情況下來實現(xiàn)。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的一方面提供了一種用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的計算機實現(xiàn)的方法,方法可以包括:由服務(wù)器從客戶端設(shè)備接收已經(jīng)向客戶端設(shè)備分配的設(shè)備標識符;由服務(wù)器獲取第一刷新令牌;從服務(wù)器向客戶端設(shè)備發(fā)送第一刷新令牌;由服務(wù)器從未標識的設(shè)備接收設(shè)備標識符和第二刷新令牌;確定第一刷新令牌和第二刷新令牌相同;以及基于確定將未知設(shè)備標識為客戶端設(shè)備。

      本發(fā)明的另一方面提供了一種設(shè)備標識系統(tǒng),可以包括存儲器設(shè)備和在操作上耦合至存儲器設(shè)備的處理器,其中處理器被配置成執(zhí)行存儲在存儲器設(shè)備中的指令,指令在被執(zhí)行時引起處理器執(zhí)行用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的過程,過程可以包括:由服務(wù)器從客戶端設(shè)備接收已經(jīng)由客戶端設(shè)備生成的根隨機全局唯一標識符(rrg)以及第一刷新令牌;使用所接收的rrg來在由服務(wù)器管理的數(shù)據(jù)庫中查找第二刷新令牌;確定第一刷新令牌關(guān)于第二刷新令牌過期;向客戶端設(shè)備分配新的rrg(rrg-new);獲取新的刷新令牌;使新的rrg與數(shù)據(jù)庫中的新的刷新令牌相關(guān)聯(lián);以及向客戶端設(shè)備發(fā)送包括新的rrg和新的刷新令牌的元組。

      本發(fā)明的又一方面提供了一種非瞬態(tài)計算機可讀介質(zhì),其上編碼有指令,指令在由一個或多個處理器執(zhí)行時引起用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的過程被執(zhí)行,過程可以包括:由服務(wù)器從客戶端設(shè)備接收已經(jīng)向客戶端設(shè)備分配的設(shè)備標識符(did)以及已經(jīng)由客戶端設(shè)備生成的根隨機全局唯一標識符(rrg);由服務(wù)器獲取對應(yīng)于客戶端設(shè)備的服務(wù)器發(fā)出的唯一標識符(siui);由服務(wù)器獲取第一刷新令牌(rt-1);在由服務(wù)器管理的數(shù)據(jù)庫中創(chuàng)建鏈條目,其中鏈條目包括<did,rrg>→<siui>→{rt-1},其中{rt-1}是包括第一刷新令牌的集合;向客戶端設(shè)備發(fā)送響應(yīng)元組<rrg,rt-1>;從客戶端設(shè)備接收修改后的響應(yīng)元組<did,rrg,rt-1>;響應(yīng)于接收到已修改的響應(yīng)元組,獲取第二刷新令牌rt-2;向包括第一刷新令牌的集合添加第二刷新令牌rt-2;以及向客戶端設(shè)備發(fā)送已更新的響應(yīng)元組<rrg,rt-2>。

      附圖說明

      圖1是示意性地圖示在客戶端服務(wù)器計算環(huán)境中發(fā)生并且根據(jù)改進的設(shè)備標識框架做出的示例通信的數(shù)據(jù)流程圖;

      圖2是示意性地圖示解決由被克隆設(shè)備和復(fù)制設(shè)備標識符產(chǎn)生的挑戰(zhàn)的示例設(shè)備標識框架的所選擇的部件的框圖;

      圖3a到圖3d包括圖示用于在客戶端服務(wù)器計算環(huán)境中向服務(wù)器設(shè)備標識客戶端設(shè)備的示例方法的流程圖;

      圖4a和圖4b包括圖示用于在設(shè)備標識框架中區(qū)分被克隆設(shè)備的示例方法的流程圖;

      圖5a和圖5b包括圖示用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備與服務(wù)器設(shè)備的示例方法的流程圖,其中客戶端設(shè)備生成多個唯一的設(shè)備標識符值;以及

      圖6是圖示用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的計算機實現(xiàn)的方法的流程圖。

      具體實施方式

      根據(jù)本文中公開的實施例中的某些實施例,通過使用結(jié)合例行客戶端服務(wù)器通信被交換的"刷新令牌"在時間周期上跟蹤客戶端設(shè)備來實現(xiàn)更加魯棒的設(shè)備標識框架。在這樣的實施例中,客戶端與服務(wù)器之間的每個通信循環(huán)包括在服務(wù)器處記錄的刷新令牌。所記錄的刷新令牌被映射到服務(wù)器生成的設(shè)備標識符和客戶端生成的設(shè)備標識符二者。當客戶端與服務(wù)器之間發(fā)生通信時,令牌的鏈(每個通信循環(huán)一個令牌)被漸進地記錄在服務(wù)器處。如果服務(wù)器接收到過期的或者無序的令牌(其基于所記錄的鏈的漸進被期望),則建議從作為另一客戶端設(shè)備的未認證副本的客戶端設(shè)備傳輸所接收的通信。例如,如果服務(wù)器已經(jīng)記錄向具體客戶端發(fā)送的刷新令牌的有序鏈{α,β,γ},則服務(wù)器期望從客戶端接收的下一通信包含最近發(fā)送的刷新令牌γ。如果下一接收的通信包含過期刷新令牌β,則建議從作為另一客戶端設(shè)備的未認證副本的客戶端設(shè)備接收本通信。因此通過使用在客戶端與服務(wù)器之間交換的設(shè)備標識符和令牌的組合實現(xiàn)了更加魯棒的設(shè)備標識架構(gòu)。這解決了與僅依賴于設(shè)備標識符的現(xiàn)有系統(tǒng)相關(guān)聯(lián)的很多缺陷。另外,由于這樣的框架使用在服務(wù)器處生成和分析的刷新令牌,所以實現(xiàn)幾乎不需要或者不需要現(xiàn)有的基于客戶端的系統(tǒng)。大量備選實施例鑒于本公開將很清楚。

      圖1是示意性地圖示在客戶端服務(wù)器計算環(huán)境中發(fā)生并且根據(jù)改進的設(shè)備標識框架做出的示例通信的數(shù)據(jù)流程圖??蛻舳朔?wù)器計算環(huán)境包括與一個或多個客戶端設(shè)備300通信的服務(wù)器100。第一客戶端設(shè)備300a向服務(wù)器100傳輸包括標識元組<did,rrg-1>的第一通信①。如本文中使用的,縮寫"did"指代"設(shè)備標識符",其是意圖向服務(wù)器唯一地標識具體客戶端設(shè)備的數(shù)據(jù)串,然而,出于以上概括的原因,這樣的標識通常不可靠。did通常在初始由客戶端設(shè)備的制造商來分配。如本文中使用的,縮寫"rrg"指代"根隨機全局唯一標識符",其是由客戶端設(shè)備在初始操作時隨機生成的數(shù)據(jù)串。在一個實施例中,rrg包括可以用字母字符串表示的256字節(jié)的值。在其他實施例中也可以使用其他值長度。在其中使用若干不同rrg值的實現(xiàn)中,命名rrg-x指代第x個rrg。因此,did和rrg都起源于客戶端服務(wù)器計算環(huán)境的客戶端側(cè)。

      服務(wù)器100包括數(shù)據(jù)庫122等,數(shù)據(jù)庫122包括具有以下格式的多個鏈條目:<did,rrg>→<siui>→{rt-1,rt-2,rt-3,……,rt-n}。每個接收的標識元組<did,rrg>被映射到對應(yīng)siui。如本文中使用的,縮寫"siui"指代"服務(wù)器發(fā)出的唯一標識符",其是由服務(wù)器隨機生成并且與由服務(wù)器接收的具體的標識元組<did,rrg>關(guān)聯(lián)的數(shù)據(jù)串。在一個實施例中,siui包括可以用字母字符串表示的256字節(jié)值。在其他實施例中也可以使用其他值長度。在其中使用若干不同siui值的實現(xiàn)中,命名siui-x指代第x個siui。同樣,每個<did,rrg>→<siui>映射被進一步映射到一個或多個rt值的集合{rt-1,rt-2,rt-3,……,rt-n}。如本文中使用的,縮寫"rt"指代"刷新令牌",其是也由服務(wù)器隨機生成并且對應(yīng)于服務(wù)器與具體客戶端設(shè)備之間的通信循環(huán)的數(shù)據(jù)串。因此,如果服務(wù)器和具體的客戶端設(shè)備具有一個通信循環(huán)(例如,如果客戶端設(shè)備已經(jīng)接觸服務(wù)器并且服務(wù)器已經(jīng)響應(yīng),反之亦然),則所得到的rt值的集合具有單個元素{rt-1}。在一個實施例中,rt包括可以用字母字符串表示的256字節(jié)值。在其他實施例中也可以使用其他值長度。命名rt-x指代第x個rt。rt值的集合{rt-1,rt-2,rt-3,……,rt-n}在本文中稱為"rt集合"。因此,siui和rt二者都源自于客戶端服務(wù)器計算環(huán)境的服務(wù)器側(cè)。

      在從第一客戶端設(shè)備300a接收到標識元組<did,rrg-1>時,服務(wù)器100生成新的siui-1,新的siui-1對應(yīng)于第一客戶端設(shè)備300a并且被映射到即將到來的元組<did,rrg-1>。這一映射存儲在數(shù)據(jù)庫122中。另外,服務(wù)器100生成新的rt-1并且創(chuàng)建新的rt集合{rt-1}。這一新的rt集合也存儲在數(shù)據(jù)庫122中,并且被映射到現(xiàn)有的<did,rrg-1>→<siui-1>映射,如以上描述的。結(jié)果是呈現(xiàn)為<did,rrg-1>→<siui-1>→{rt-1}的數(shù)據(jù)庫122中的鏈條目。服務(wù)器100使用包括響應(yīng)元組<rrg-1,rt-1>的第二通信②來響應(yīng)于第一客戶端設(shè)備300a。在接收到這一響應(yīng)元組時,第一客戶端設(shè)備300a本地存儲rt-1。

      當?shù)谝豢蛻舳嗽O(shè)備300a稍后向服務(wù)器100傳輸?shù)谌ㄐ泞蹠r,其包括具有其即將離開的傳輸?shù)捻憫?yīng)元組<did,rrg-1,rt-1>。服務(wù)器100嘗試將即將到來的rt-1與數(shù)據(jù)庫122中和<did,rrg-1>和<siui-1>相關(guān)聯(lián)的rt集合中的最近的rt相匹配。如果匹配存在,則生成下一rt-2并且添加其以形成已更新rt集合{rt-1,rt-2}。服務(wù)器100使用包括已更新響應(yīng)元組<rrg-1,rt-2>的第四通信④來響應(yīng)于第一客戶端設(shè)備300a。當?shù)谝豢蛻舳嗽O(shè)備300a和服務(wù)器100繼續(xù)彼此通信時,數(shù)據(jù)庫122中與<did,rrg-1>和<siui-1>相關(guān)聯(lián)的rt集合繼續(xù)生長,從而形成表示第一客戶端設(shè)備300a與服務(wù)器100之間的序列客戶端服務(wù)器通信循環(huán)的鏈。這些連續(xù)的序列通信循環(huán)在本文中稱為用例1,并且可以理解為其中沒有遇到任何克隆或復(fù)制客戶端設(shè)備的基線使用情況。

      仍然參考圖1中圖示的示例實施例,在服務(wù)器100與第一客戶端設(shè)備300a之間的第一通信循環(huán)完成之后(也就是,在第二通信②發(fā)生之后)的某個點,可以克隆第一客戶端設(shè)備300a以產(chǎn)生第二客戶端設(shè)備300b??赡艿目寺∈录趫D1中用符號●表示。這可以通過惡意用戶尋求采用由軟件供貨商或內(nèi)容提供商提供的基于設(shè)備的許可來實現(xiàn)。或者,其可以在沒有惡意的情況下來進行,例如由將現(xiàn)有的設(shè)備信息復(fù)制到新的設(shè)備以快速地配置新設(shè)備的技術(shù)管理員來進行。不管克隆的動機,本文中公開的某些實施例很適合檢測這樣的克隆。具體地,當克隆第一客戶端設(shè)備300a時,所得到的第二客戶端設(shè)備300b繼承了先前從服務(wù)器100接收的響應(yīng)元組<rrg-1,rt-1>??寺∵^程因此可以理解為從第一客戶端設(shè)備300a(被克隆設(shè)備)向第二客戶端設(shè)備300b(克隆設(shè)備)傳播先前接收的rt-1。當?shù)诙蛻舳嗽O(shè)備300b開始與服務(wù)器100通信時,這一接下來的通信⑤包括具有其即將離開的傳輸?shù)捻憫?yīng)元組<did,rrg-1,rt-1>。服務(wù)器100嘗試將即將到來的rt-1與數(shù)據(jù)庫122中和<did,rrg-1>和<siui-1>相關(guān)聯(lián)的rt集合中的最近的rt相關(guān)聯(lián)。如果服務(wù)器100已經(jīng)響應(yīng)于第一客戶端設(shè)備300a,則該最近的rt是rt-2。無法匹配這些rt值(本文中稱為"沖突狀態(tài)")向服務(wù)器100表明所接收到的通信⑤從在過期rt上從未認證源接收的設(shè)備來傳輸,諸如從被克隆客戶端設(shè)備。以這一方式檢測未認證復(fù)制設(shè)備標識符在本文中稱為用例2,并且可以理解為被克隆設(shè)備使用情況。如果服務(wù)器100尚未響應(yīng)于第一客戶端設(shè)備300a,則來自第二客戶端設(shè)備300b的通信被認為是合法的,并且來自第一客戶端設(shè)備300a的隨后的通信被認為包含未認證復(fù)制設(shè)備標識符。

      如以上指出的,在一些情況下,多個不相關(guān)的設(shè)備可以具有相同的設(shè)備標識符。這例如可以在設(shè)備制造商在向其設(shè)備分配標識符時不小心的情況下或者在兩個設(shè)備制造商不知不覺地產(chǎn)生具有相同標識符的設(shè)備的情況下發(fā)生。然而,具有相同設(shè)備標識符的兩個不相關(guān)的設(shè)備仍然生成不同的rrg值。因此,如圖1中圖示的,與第一客戶端設(shè)備300a和第二客戶端設(shè)備300b具有相同did的第三客戶端設(shè)備300c通過發(fā)送包括標識元組<did,rrg-2>的第一通信①來與服務(wù)器100發(fā)起通信。由于數(shù)據(jù)庫122中不存在這樣的元組,所以服務(wù)器100將第三客戶端設(shè)備300c視為新的設(shè)備,并且因此不觸發(fā)沖突狀態(tài)。服務(wù)器100因此使用包括響應(yīng)元組<rrg-2,rt-1>的第二通信②來響應(yīng)于第三客戶端設(shè)備300c,如本文中描述的。第一客戶端設(shè)備300a和第三客戶端設(shè)備300c因此彼此不受影響,即使它們共享相同的did。這一并行操作在本文中稱為用例3,并且可以理解為復(fù)制設(shè)備標識符使用情況。

      在圖1中圖示并且在以上描述的示例實現(xiàn)說明了本文中公開的某些實施例如何解決現(xiàn)有的設(shè)備標識框架的缺陷。例如,由于不穩(wěn)定的硬件配置、軟件缺陷或者由于具有惡意的用戶,使用服務(wù)器生成的siui來補充客戶端提供的did的框架不易受did的客戶端側(cè)操縱的影響。同樣,構(gòu)建對應(yīng)于客戶端服務(wù)器通信循環(huán)的刷新令牌的服務(wù)器側(cè)鏈使得服務(wù)器能夠獨立地驗證具體的通信與從具體客戶端設(shè)備接收的其他通信連續(xù),并且因此使得能夠更加可靠地檢測被克隆設(shè)備。另外,使用rrg補充did的框架使得具有相同標識符的不相關(guān)的設(shè)備能夠獨立地操作并且沒有彼此干擾。這使得服務(wù)器能夠區(qū)分具有復(fù)制標識符的彼此相關(guān)的設(shè)備(例如,通過克隆操作)以及具有復(fù)制標識符的彼此不相關(guān)的設(shè)備(例如,由于設(shè)備初始制造有復(fù)制標識符)。由于圖1中圖示的示例設(shè)備標識框架可以被實現(xiàn)而沒有在本質(zhì)上改變現(xiàn)有的客戶端服務(wù)器通信系統(tǒng)并且基本上沒有修改現(xiàn)有的客戶端設(shè)備架構(gòu),所以其可以用直接方式在現(xiàn)有的系統(tǒng)上實現(xiàn)。這提供了其他解決方案缺乏的可縮放程度。這些和其他優(yōu)點鑒于本公開將很清楚。

      如本文中使用的,術(shù)語"計算設(shè)備"除了其原始含義還指代具有處理器、存儲器和能夠用于訪問設(shè)備或與設(shè)備交互的輸入/輸出部件的裝置。計算設(shè)備通常還包括被配置成實現(xiàn)某些功能的一個或多個軟件模塊、以及能夠?qū)崿F(xiàn)這樣的實現(xiàn)的硬件。計算設(shè)備的示例包括手持計算機、蜂窩電話、平板計算機、智能電話、膝上型計算機、臺式計算機和機頂盒。"客戶端計算設(shè)備"之地啊在客戶端服務(wù)器計算環(huán)境中操作并且請求訪問由服務(wù)器托管的信息或資源的計算設(shè)備。

      如本文中使用的,術(shù)語"數(shù)據(jù)結(jié)構(gòu)"除了其原始含義還指代在計算機可訪問存儲器中存儲和組織數(shù)據(jù)使得數(shù)據(jù)能夠由應(yīng)用或軟件模塊來使用的方式。在其最簡形式中,數(shù)據(jù)結(jié)構(gòu)可以是例如一個或多個存儲位置的集合。在一些情況下,數(shù)據(jù)結(jié)構(gòu)可以實現(xiàn)為所謂的記錄、有時稱為結(jié)構(gòu)體或元組,并且可以具有任何適當數(shù)目的字段、元素或存儲位置。還應(yīng)當理解,數(shù)據(jù)結(jié)構(gòu)可以包括感興趣的數(shù)據(jù)或者指代能夠找到感興趣的數(shù)據(jù)的存儲位置的指針。數(shù)據(jù)結(jié)構(gòu)可以具有任何適當?shù)男问?,諸如例如查找表或索引格式;陣列格式;具有任意合適數(shù)目的節(jié)點的散列表格式、圖形、樹或分層格式;包括數(shù)據(jù)字段的對象格式;或者以上的組合。數(shù)據(jù)結(jié)構(gòu)可以包括用于訪問和修改其中存儲的數(shù)據(jù)的結(jié)構(gòu)和格式的可執(zhí)行代碼。在更加一般的意義上,數(shù)據(jù)結(jié)構(gòu)可以實現(xiàn)為能夠存儲具體值的數(shù)據(jù)集,而沒有被約束為任何具體順序或格式。在一個實施例中,數(shù)據(jù)結(jié)構(gòu)包括具有以下格式的多個鏈條目:<did,rrg>→<siui>→{rt-1,rt-2,rt-3,……,rt-n},其中rt集合{rt-1,rt-2,rt-3,……,rt-n}表示服務(wù)器與設(shè)備之間的通信循環(huán),其用did、rrg和siui值表示。

      系統(tǒng)架構(gòu)

      圖2是示意性地圖示抵抗被克隆設(shè)備和復(fù)制設(shè)備標識符提出的設(shè)備標識挑戰(zhàn)的示例設(shè)備標識框架10的所選擇的部件的框圖??蚣?0使得服務(wù)器例如能夠區(qū)分具有復(fù)制標識符的彼此相關(guān)的客戶端設(shè)備(例如,通過克隆操作)以及具有復(fù)制標識符的彼此不相關(guān)的設(shè)備(例如由于設(shè)備初始制造有復(fù)制標識符)??蚣?0可以理解為包括服務(wù)器100,服務(wù)器100能夠經(jīng)由網(wǎng)絡(luò)200與一個或多個客戶端設(shè)備300通信。網(wǎng)絡(luò)200也可以用于訪問可選的補充資源,諸如云存儲資源和網(wǎng)絡(luò)管理資源。在一些情況下,這樣的補充資源被省略,對應(yīng)功能由服務(wù)器100本身來提供,或者被一起省略。另外,雖然服務(wù)器100和客戶端設(shè)備300在圖2中圖示為直接連接至網(wǎng)絡(luò)200,然而在其他實現(xiàn)中,它們可以通過一個或多個其他網(wǎng)絡(luò)或通信信道遠程耦合至網(wǎng)絡(luò)200。

      在一個實施例中,服務(wù)器100包括托管、分發(fā)或管理可用于客戶端設(shè)備300的數(shù)字資源的一個或多個企業(yè)級服務(wù)器設(shè)備。在包括多個服務(wù)器的實現(xiàn)中,多個服務(wù)器由負載平衡系統(tǒng)可選地來管理。服務(wù)器100能夠使得其可用于客戶端設(shè)備300的資源的示例包括軟件、多媒體內(nèi)容、數(shù)字資產(chǎn)、和基于云的存儲資源。在一些實現(xiàn)中,基于試驗來向客戶端設(shè)備300提供數(shù)字資源,諸如通過在有限的時間內(nèi)提供對資源的免費或折扣訪問。在其他實現(xiàn)中,僅向持有有效許可的客戶端提供對資源的不受限訪問。服務(wù)器100可以被配置成通過建立和強迫管理如何使得資源可用于客戶端的規(guī)則來管理數(shù)字資源的分發(fā)。為此,服務(wù)器100通常得益于可靠地標識和區(qū)分請求訪問托管的資源的具體客戶端設(shè)備300的能力。因此,在某些實現(xiàn)中,服務(wù)器100包括被配置成實現(xiàn)與設(shè)備標識框架10相關(guān)聯(lián)的各種功能的一個或多個軟件模塊、以及實現(xiàn)這樣的實現(xiàn)的硬件。實現(xiàn)硬件的示例包括處理器110、存儲器120、通信模塊150、以及總線或互連190。實現(xiàn)軟件的示例包括操作系統(tǒng)140、令牌管理模塊160、沖突觸發(fā)模塊170和用戶界面模塊180。

      雖然圖2中為了清楚僅圖示一個代表性客戶端設(shè)備300,然而應(yīng)當理解,通常,框架10可以包括幾十個、幾百個、幾千個或者實際上任意合適數(shù)目的與服務(wù)器100通信的客戶端設(shè)備。因此,本文中提及單數(shù)"客戶端設(shè)備"應(yīng)當被理解為包括也具有多個客戶端設(shè)備的實施例??蛻舳嗽O(shè)備300可以包括例如選自以下的一個或多個設(shè)備:臺式計算機、膝上型計算機、工作站、平板計算機、智能電話、手持計算機、機頂盒、企業(yè)級設(shè)備、或者能夠與服務(wù)器100通信的任何其他這樣的設(shè)備。在某些實施例中可以使用不同設(shè)備的組合。如圖2中圖示的,客戶端設(shè)備300可選地包括本地安全高速緩存322,其可以用于存儲刷新令牌、響應(yīng)元組、以及從服務(wù)器100接收的或者被高速緩存用于向服務(wù)器100傳輸?shù)钠渌麛?shù)字條目。在一個實施例中,本地安全高速緩存322被配置成限制或防止用戶訪問或操縱存儲在其中的條目。

      再次參考圖2中圖示的服務(wù)器100的示例實現(xiàn),處理器110包括任意合適的處理器,并且可以包括一個或多個協(xié)處理器或控制器,諸如圖形處理單元,以幫助控制和處理與服務(wù)器100相關(guān)聯(lián)的操作。存儲器120可以使用任意合適類型的數(shù)字存儲裝置來實現(xiàn),諸如以下中的一項或多項:磁盤驅(qū)動器、獨立磁盤冗余陣列(raid)、通用串行總線(usb)驅(qū)動、閃存存儲器、隨機存取存儲器(ram)、或者以上的任意合適的組合。因此,在某些實施例中,存儲器120包括多個數(shù)字存儲設(shè)備的分布式系統(tǒng),這些數(shù)字存儲設(shè)備中的一個或多個可以彼此遠離并且經(jīng)由網(wǎng)絡(luò)200可訪問。存儲器120可選地托管數(shù)據(jù)庫122,數(shù)據(jù)庫122可以用于存儲標識元組、siui值、和rt集合之間的映射,如所描述的。在一些情況下,存儲器120還可選地用于存儲由沖突觸發(fā)模塊170提供的被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172。

      操作系統(tǒng)140包括任意合適的操作系統(tǒng),諸如androidtm(加利福尼亞州山景城的google公司)、(華盛頓州雷德蒙德的microsoft公司)、或者(加利福尼亞州庫比蒂諾的apple公司)。鑒于本公開應(yīng)當理解,本文中提供的技術(shù)可以不關(guān)于結(jié)合服務(wù)器100提供的具體操作系統(tǒng)來實現(xiàn),并且因此也可以使用任意合適的現(xiàn)有的或者隨后開發(fā)的平臺來實現(xiàn)。通信模塊150是實現(xiàn)到網(wǎng)絡(luò)200以及其他計算設(shè)備和資源的有線或無線連接的任何適當?shù)木W(wǎng)絡(luò)芯片或芯片集。通信模塊150也可以被配置成經(jīng)由總線或互連190來提供設(shè)備內(nèi)通信。

      仍然參考圖2,令牌管理模塊160包括在計算機可讀介質(zhì)上編碼的指令,這些指令在使用處理器執(zhí)行時引起各種不同令牌管理處理中的一個或多個處理被調(diào)用。一個這樣的處理調(diào)用數(shù)字令牌的管理獲取,諸如siui值(從siui池162獲取)、rt值(從rt池164獲取)、和rrg值(基于隨機算法生成)。令牌管理過程還可以涉及分析從客戶端設(shè)備300接收的即將到來的元組并且生成合適的響應(yīng)元組。其可以包括從服務(wù)器數(shù)據(jù)庫122中提取信息或者向服務(wù)器數(shù)據(jù)庫122存儲映射。例如,在一個實現(xiàn)中,當客戶端設(shè)備300與服務(wù)器100之間發(fā)生通信時,令牌管理過程在數(shù)據(jù)庫122中記錄令牌的鏈,每個通信循環(huán)一個令牌??梢曰诹钆频慕邮諄順俗R可能是其他客戶端設(shè)備的副本的客戶端,該令牌關(guān)于基于所記錄的鏈的漸進期望的而過期。這些和其他功能可以由令牌管理模塊160來提供,如轉(zhuǎn)而描述的。

      沖突觸發(fā)模塊170包括在計算機可讀介質(zhì)上編碼的指令,這些指令在使用處理器執(zhí)行時引起各種不同沖突觸發(fā)過程中的一個或多個被調(diào)用。一個這樣的過程涉及編譯和維持被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172。如下面更加詳細地描述的,被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172提供對被克隆客戶端設(shè)備之間的關(guān)系的見解,從而使得分析者能夠標識其他克隆源自于其的源設(shè)備。這可以通過例如在被檢測為彼此的克隆的設(shè)備的siui值之間建立鏈接來實現(xiàn)。在某些實施例中,沖突觸發(fā)過程編譯和維持定義被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172的元數(shù)據(jù)。在這樣的實現(xiàn)中,元數(shù)據(jù)可以保存在數(shù)據(jù)庫122中。轉(zhuǎn)而描述由沖突觸發(fā)模塊170提供的功能。

      用戶界面模塊180包括在計算機可讀介質(zhì)上編碼的指令,這些指令在使用處理器執(zhí)行時引起用戶界面被生成。在一個實現(xiàn)中,用戶界面被配置成顯示關(guān)于與服務(wù)器100交互的各種客戶端設(shè)備的信息以及具體地關(guān)于服務(wù)器100已經(jīng)檢測到的沖突狀態(tài)的信息。這樣的信息可選地以被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172的形式來提供。用戶界面還可以被配置成接收用戶輸入,用戶輸入定義如何報告操作數(shù)據(jù)并且更加具體地設(shè)備標識框架10如何操作。為此,由用戶界面模塊180生成的用戶界面可以包括諸如菜單欄、工具欄、對話框、控制面板、下拉菜單、情境菜單、復(fù)選框、無線電按鈕等元件。

      本文中公開的實施例可以用各種形式的硬件、軟件、固件或?qū)S锰幚砥鱽韺崿F(xiàn)。例如,在一個實施例中,非瞬態(tài)計算機可讀介質(zhì)上編碼有指令,這些指令在由一個或多個處理器執(zhí)行時實現(xiàn)本文中公開的設(shè)備標識框架中的一個或多個。指令可以使用任意合適的編程語言來編碼,諸如scala、c、c++、面向?qū)ο蟮腸、swift、javascript、java、visualbasic.net、basic,或者備選地使用定制或?qū)S弥噶罴瘉砭幋a。這樣的指令可以用一個或多個計算機軟件應(yīng)用或小程序的形式來提供,這些計算機軟件應(yīng)用或小程序在存儲器設(shè)備上有形地實施并且可以由具有任意合適的架構(gòu)的計算機來執(zhí)行。在一個實施例中,系統(tǒng)可以被托管在給定網(wǎng)站上并且例如使用javascript或者另一合適的基于瀏覽器的技術(shù)來實現(xiàn)。

      本文中公開的功能可以被合并到大量計算環(huán)境中,諸如網(wǎng)絡(luò)業(yè)務(wù)分析應(yīng)用;許可內(nèi)容分發(fā)框架;以及軟件分發(fā)、激活和更新通知系統(tǒng)。例如,在一個實現(xiàn)中,設(shè)備標識框架10結(jié)合試驗程序來實現(xiàn),試驗程序向客戶提供在有限周期內(nèi)對軟件應(yīng)用的免費訪問。如本文中公開地處理在試驗周期的激活期間發(fā)生的客戶端服務(wù)器通信,從而使得管理員能夠更加容易標識重復(fù)地嘗試注冊試驗程序的客戶。本文中公開的設(shè)備標識框架可以包括任何數(shù)目的不同的模塊、子模塊或者具有不同功能的其他部件,并且可以向另外的部件或服務(wù)提供信息或者從另外的部件或服務(wù)接收信息。這些模塊可以用于例如訪問云存儲資源或網(wǎng)絡(luò)管理資源。更加一般地,說明中沒有反映的其他部件和功能鑒于本公開將很清楚,并且應(yīng)當理解,本公開并非意圖限于任何具體的硬件或軟件配置。因此,在其他實施例中,圖2中圖示的部件可以包括另外的、更少的或者備選的子部件。

      上述非瞬態(tài)計算機可讀介質(zhì)可以是用于存儲數(shù)字信息的任意合適的介質(zhì),諸如硬盤驅(qū)動、服務(wù)器、閃存存儲器、ram或以上的任意組合。在備選實施例中,本文中公開的計算機和模塊可以用硬件來實現(xiàn),包括門水平邏輯、諸如現(xiàn)場可編程門陣列(fpga),或者備選地包括專用半導(dǎo)體、諸如專用集成電路(asic)。其他實施例可以使用具有以下各項的微控制器來實現(xiàn):用于接收和輸出數(shù)據(jù)的大量輸入/輸出端口、以及用于執(zhí)行本文中公開的各種功能的大量嵌入式例程。應(yīng)當理解,可以在這一點上使用硬件、軟件和固件的任意合適的組合,并且本公開并非意圖限于任何具體的系統(tǒng)架構(gòu)。

      方法:基線(用例1)

      圖3a到圖3d包括圖示用于在客戶端服務(wù)器計算環(huán)境中向服務(wù)器設(shè)備標識客戶端設(shè)備示例方法1000的流程圖。方法1000在本文中也稱為用例1??梢?,方法1000包括大量階段和子過程,其順序可以根據(jù)實施例而變化。然而,當作為總體來考慮時,這些階段和子過程形成解決由被克隆設(shè)備和復(fù)制設(shè)備標識符引入的挑戰(zhàn)的改進的設(shè)備標識框架的部分。在一個實施例中,本框架根據(jù)本文中公開的某些技術(shù)來響應(yīng)于在客戶端服務(wù)器計算環(huán)境中檢測到的通信。方法1000可以使用例如在圖2中圖示并且在本文中描述的系統(tǒng)架構(gòu)來實現(xiàn)。然而,在其他實施例中也可以使用其他系統(tǒng)架構(gòu),這鑒于本公開很清楚。為此,圖3a到圖3d所示的各種功能與圖2中圖示的具體部件之間的關(guān)聯(lián)并非意圖暗示任何結(jié)構(gòu)或使用限制。相反,其他實施例可以包括例如不同程度的集成,其中多個功能由一個系統(tǒng)或模塊來有效地執(zhí)行。例如,在備選實施例中,使用單個模塊來管理令牌并且響應(yīng)于所檢測到的沖突狀態(tài)。因此,其他實施例取決于實現(xiàn)粒度可以具有更少或更多的模塊。大量變化和備選配置鑒于本公開將很清楚。

      方法1000在客戶端服務(wù)器計算環(huán)境中實現(xiàn),其中(a)多個客戶端設(shè)備請求訪問由服務(wù)器托管的信息、資源或者信息和資源,并且(b)服務(wù)器致力于區(qū)分來自各個客戶端設(shè)備的通信。在這一上下文中,方法1000從具體的客戶端設(shè)備300準備向服務(wù)器100提交請求開始。為此,客戶端設(shè)備300定義"初始標識元組"<did,rrg>。參見圖3a中的附圖標記1110。在此,did表示與客戶端設(shè)備300相關(guān)聯(lián)的設(shè)備標識符,諸如可以在初始由制造商來分配。did意圖向服務(wù)器唯一地標識具體的客戶端設(shè)備,然而,這樣的標識可能并不一定是穩(wěn)定的或者可靠的。rrg表示根隨機全局唯一標識符,其由客戶端設(shè)備300在初始操作時隨機地生成。在一個實施例中,rrg包括可以用字母字符串表示的256字節(jié)值。在其他實施例中可以使用其他值長度??蛻舳嗽O(shè)備300組合did和rrg以形成初始標識元組??蛻舳嗽O(shè)備300然后例如通過初始服務(wù)器請求向服務(wù)器100發(fā)送初始標識元組。參見圖3a中的附圖標記1120。

      在服務(wù)器100接收到初始標識元組時,由令牌管理模塊160調(diào)用的令牌管理過程從siui池162獲取siui。參見圖3a中的附圖標記1140。在此,siui表示由服務(wù)器100隨機生成的服務(wù)器發(fā)出的唯一標識符。因此,可以將siui池162理解為提供可用siui值的儲存庫。在一個實施例中,使用字母字符空間256使用標準隨機數(shù)生成器來生成siui池162中的令牌值。在生成隨機數(shù)之后,進行復(fù)制值的可選檢查。因此,在一個實施例中,siui包括可以用字母字符串表示的256字節(jié)值。在其他實施例中可以使用其他值長度。由令牌管理模塊160調(diào)用的令牌管理過程還從rt池164獲取rt。參見圖3a中的附圖標記1150。在此,rt表示由服務(wù)器100隨機生成的刷新令牌。因此,可以將rt池164理解為提供可用rt值的儲存庫。在一個實施例中,使用字母字符空間256使用標準隨機數(shù)生成器來生成rt池164中的令牌值。在生成隨機數(shù)之后,進行復(fù)制值的可選檢查。因此,在一個實施例中,rt包括可以用字母字符串表示的256字節(jié)值。在其他實施例中可以使用其他值長度。

      由令牌管理模塊160調(diào)用的令牌管理過程將從客戶端設(shè)備300接收的初始標識元組映射到所獲取的siui,從而形成映射<did,rrg>→<siui>,其被保存在服務(wù)器數(shù)據(jù)庫122中。參見圖3a中的附圖標記1160。鏈條目<did,rrg>→<siui>→{rt}也保存在服務(wù)器數(shù)據(jù)庫122中。參見圖3a中的附圖標記1170。在此,{rt}表示rt值的集合。開始,{rt}僅包括初始從rt池164獲取的rt值。當其他客戶端與服務(wù)器100之間的附加通信被處理時,數(shù)據(jù)庫122將生長以包含各種客戶端的用其did、rrg和siui值標識的大量這樣的鏈條目。由令牌管理模塊160調(diào)用的令牌管理過程定義"響應(yīng)元組"<rrg,rt>。參見圖3b中的附圖標記1210。通信模塊150被配置成向從服務(wù)器100向客戶端設(shè)備300發(fā)送的響應(yīng)附加這一響應(yīng)元組。參見圖3b中的附圖標記1220。

      客戶端設(shè)備300將所接收的響應(yīng)元組<rrg,rt>存儲在本地安全高速緩存322中。參見圖3b中的附圖標記1230。在準備再次與服務(wù)器100通信時,客戶端設(shè)備300將其did附接至所保存的響應(yīng)元組以形成已修改響應(yīng)元組<did,rrg,rt>。參見圖3b中的附圖標記1240??蛻舳嗽O(shè)備300可以在初始從服務(wù)器100接收到響應(yīng)元組之后很好地響應(yīng)于服務(wù)器,具體地,在其中發(fā)生明顯的客戶端側(cè)處理或用戶交互的實現(xiàn)中。在一些情況下,例如由于did計算邏輯的缺陷,客戶端設(shè)備300可以在不同的時間生成不同的did值。因此確定由客戶端設(shè)備300生成的did值是否穩(wěn)定,并且具體地,確定先前生成的did是否匹配隨后生成的did。參見圖3b中的附圖標記1250。這可以通過比較兩個did值來完成。如果客戶端設(shè)備300生成不穩(wěn)定的did值,則與服務(wù)器100的隨后通信被不同地配置和處理,這轉(zhuǎn)而參考用例4來討論。另一方面,如果用于形成已修改響應(yīng)元組的隨后生成的did匹配初始標識元組中存在的did,則通過隨后的服務(wù)器請求向服務(wù)器100發(fā)送已修改響應(yīng)元組<did,rrg,rt>。參見圖3b中的附圖標記1260。

      在接收到已修改響應(yīng)元組時,由令牌管理模塊160調(diào)用的令牌管理過程提取did和rrg值。參見圖3c中的附圖標記1410。使用這些提取的值,搜索數(shù)據(jù)庫122以標識和檢索相關(guān)聯(lián)的siui和rt集合。參見圖3c中的附圖標記1420。分析rt集合并且標識最近添加的rt值。該值在本文中稱為rt-server,因為其存儲在服務(wù)器100處。參見圖3c中的附圖標記1430。同樣,作為已修改響應(yīng)元組的部分的從客戶端設(shè)備300接收的rt值在本文中稱為rt-client。參見圖3c中的附圖標記1440。確定rt-server和rt-client是否相同。參見圖3c中的附圖標記1450。如果否,則表明服務(wù)器100與保持相同的did和rrg的另一客戶端之間已經(jīng)發(fā)生了其他通信,這轉(zhuǎn)而將關(guān)于用例2來討論。

      另一方面,如果rt-server和rt-client相同,則由令牌管理模塊160調(diào)用的令牌管理過程從rt池164獲取下一可用rt。參見圖3c中的附圖標記1460。將數(shù)據(jù)庫122中存儲的rt值更新為包括這一新獲取的rt作為rt集合中包含的最新rt。參見圖3d中的附圖標記1510。因此,可以將rt集合理解為揭示一系列rt值,每個rt值表示服務(wù)器100與客戶端設(shè)備300之間的通信循環(huán)。因此rt集合可以理解為提供已經(jīng)在服務(wù)器100與具體客戶端之間發(fā)生的通信的記錄,其用映射的did、rrg和siui值來標識。在檢測到非連續(xù)通信時,可以表示作為先前與服務(wù)器100通信的另一設(shè)備的克隆的設(shè)備。

      由令牌管理模塊160調(diào)用的令牌管理過程更新響應(yīng)元組以使用從rt池164獲取的較新的rt來代替現(xiàn)有rt-client。參見圖3d中的附圖標記1520。通信模塊150可以被配置成確定是否要發(fā)生另外的客戶端服務(wù)器通信。參見圖3d中的附圖標記1530。如果是,則將響應(yīng)元組返回客戶端設(shè)備300,如本文中描述的??蛻舳嗽O(shè)備300按照類似于處理先前接收的響應(yīng)元組的方式來處理該響應(yīng)元組。在客戶端與服務(wù)器之間交換已更新rt并且在數(shù)據(jù)庫122中維持一系列交換后的rt值這一過程可以無限期地繼續(xù)。一旦沒有另外的客戶端服務(wù)器通信要發(fā)生,則方法1000結(jié)束。方法1000可以理解為基線用戶場景,因為其適應(yīng)其中沒有遇到復(fù)制設(shè)備并且服務(wù)器100從客戶端設(shè)備300接收的rt值的序列沒有遇到不期望的終端或復(fù)制的情況。

      在一些情況下,siui池162和rt池164中的一者或二者有可能變?yōu)榭?。如果發(fā)生這一情況,則令牌管理模塊160可以被配置成發(fā)起清除操作,在清除操作中,將數(shù)據(jù)庫122中存儲的rt集合縮短為空集合,并且將所有即將到來的客戶端通信視為提供初始標識元組的初始客戶端聯(lián)系。這包括忽略最近發(fā)出的rt以及先前的rrg和siui映射。雖然沖突狀態(tài)有可能在清除操作之后在這一第一通信循環(huán)期間沒有檢測的情況下發(fā)生,然而在隨后的通信循環(huán)上有可能檢測到任何復(fù)制設(shè)備。

      方法:被克隆設(shè)備(用例2)

      如以上指出的,數(shù)據(jù)庫122中維持的rt集合包括對應(yīng)于從服務(wù)器100向客戶端300發(fā)送的即將離開的響應(yīng)元組的rt值的序列。因此,在正常操作下,例如,其中沒有遇到任何復(fù)制設(shè)備,則從客戶端設(shè)備300接收的響應(yīng)元組中包含的rt值匹配數(shù)據(jù)庫122中存儲的值。當這些值之間發(fā)生失配時,表明服務(wù)器100與保持復(fù)制did和rrg的另一客戶端之間已經(jīng)發(fā)生其他通信。具體地,這表示具體的客戶端設(shè)備可能已經(jīng)被克隆,例如通過虛擬化過程??寺 ⑻摂M化或者復(fù)制客戶端設(shè)備300可能產(chǎn)生其中具有相同的did和rrg值的兩個客戶端設(shè)備嘗試與服務(wù)器100建立單獨的通信循環(huán)的情況。這是因為,克隆操作引起克隆保持與被克隆設(shè)備相同的<did,rrg,rt>。由于設(shè)備克隆和虛擬化技術(shù)已經(jīng)被細化和改進,所以更加容易可靠地復(fù)制由被克隆設(shè)備保持的did和rrg值。

      圖4a和圖4b包括圖示用于區(qū)分設(shè)備標識框架中的被克隆設(shè)備的示例方法2000的流程圖。方法2000在本文中也稱為用例2??梢?,方法2000包括大量階段和子過程,其順序可以根據(jù)實施例而變化。然而,當作為總體來考慮時,這些階段和子過程形成解決由被克隆設(shè)備和復(fù)制設(shè)備標識符引入的挑戰(zhàn)的改進的設(shè)備標識框架的部分。在一個實施例中,本框架根據(jù)本文中公開的某些技術(shù)來響應(yīng)于在客戶端服務(wù)器計算環(huán)境中檢測到的通信。方法2000可以使用例如在圖2中圖示并且在本文中描述的系統(tǒng)架構(gòu)來實現(xiàn)。然而,在其他實施例中也可以使用其他系統(tǒng)架構(gòu),這鑒于本公開很清楚。為此,圖4a和4b所示的各種功能與圖2中圖示的具體部件之間的關(guān)聯(lián)并非意圖暗示任何結(jié)構(gòu)或使用限制。相反,其他實施例可以包括例如不同程度的集成,其中多個功能由一個系統(tǒng)或模塊來有效地執(zhí)行。例如,在備選實施例中,使用單個模塊來管理令牌并且響應(yīng)于所檢測到的沖突狀態(tài)。因此,其他實施例取決于實現(xiàn)粒度可以具有更少或更多的模塊。大量變化和備選配置鑒于本公開將很清楚。

      方法2000響應(yīng)于確定從客戶端設(shè)備300接收的rt(rt-client)不匹配數(shù)據(jù)庫122中存儲的rt集合中由服務(wù)器100保持的最近rt(rt-server)來被調(diào)用。參見圖3c中的附圖標記1450。這將在至少一個客戶端服務(wù)器通信循環(huán)完成之后發(fā)生,如以上用例1中描述的。一旦rt-client與rt-server之間發(fā)生失配,則方法2000被調(diào)用,并且由令牌管理模塊160調(diào)用的令牌管理過程生成要與發(fā)送無序rt的設(shè)備相關(guān)聯(lián)的新的rrg,其在本文中稱為rrg-new。參見圖4a中的附圖標記2110。如同初始生成的rrg,在一個實施例值,rrg-new包括可以用字母字符串表示的256字節(jié)值。在其他實施例中可以使用其他值長度。從siui池162獲取下一可用siui,其在本文中稱為siui-next。參見圖4a中的附圖標記2120。同樣,從rt池164獲取下一可用rt,其在本文中稱為rt-next。參見圖4a中的附圖標記2140。獲取新的rrg、siui和rt值使得服務(wù)器100能夠唯一地標識復(fù)制客戶端設(shè)備。

      使用rrg-new,定義新的"克隆標識元組"<did,rrg-new>。參見圖4a中的附圖標記2150。由令牌管理模塊160調(diào)用的令牌管理過程將克隆標識令牌映射到所獲取的siui-next,從而形成映射<did,rrg-new>→<siui-next>,其被保存在服務(wù)器數(shù)據(jù)庫122中。參見圖4a中的附圖標記2160。將對應(yīng)的鏈條目<did,rrg-new>→<siui-next>→{rt-next}也保存在服務(wù)器數(shù)據(jù)庫122中。參見圖4a中的附圖標記2170。由令牌管理模塊160調(diào)用的令牌管理過程定義響應(yīng)元組<rrg-new,rt-next>。參見圖4b中圖示的附圖標記2210。

      當從客戶端設(shè)備300接收的rt不匹配數(shù)據(jù)庫122中存儲的rt集合中由服務(wù)器100保持的最近rrt時,表明在服務(wù)器100與保持復(fù)制did和rrg的另一客戶端之間已經(jīng)發(fā)生其他通信。這被稱為沖突狀態(tài)。有用的是,記錄沖突狀態(tài),并且具體地記錄哪些設(shè)備發(fā)送沖突rt值。如果一個設(shè)備是很多被克隆設(shè)備的源(通常就是這樣),則鏈接提供沖突rt值的設(shè)備使得能夠標識虛擬化設(shè)備的整個組。因此,在某些實施例值,由沖突觸發(fā)模塊170調(diào)用的沖突觸發(fā)過程還被配置成以被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172產(chǎn)生條目{siui-old→siui-next}。參見圖4b中的附圖標記2220。在此,siui-old指代從復(fù)制客戶端設(shè)備接收的復(fù)制siui,而siui-next指代在方法2000的過程中生成的取代siui。

      在某些實施例中,可以在圖形上渲染被檢測沖突的數(shù)據(jù)結(jié)構(gòu),如圖4b中圖示的。在這一示例表示中,可以虛擬化用siui-0標識的起源客戶端設(shè)備以形成用siui-1標識的第一復(fù)制客戶端設(shè)備,第一復(fù)制客戶端設(shè)備轉(zhuǎn)而被虛擬化以形成用siui-2標識的第二復(fù)制客戶端設(shè)備,以此類推。在一些情況下,可以將具體的客戶端設(shè)備克隆多次,諸如在用siui-5標識的客戶端設(shè)備的情況下。被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172的圖形表示使得能夠快速地標識復(fù)制設(shè)備的源(圖示示例中的siui-0)。同樣,也可以很容易地標識鏈接至起源客戶端設(shè)備的所有設(shè)備。這一功能在復(fù)制設(shè)備上檢測到安全漏洞的情況下特別有用,因為通常也需要標識復(fù)制設(shè)備的源。由沖突觸發(fā)模塊170調(diào)用的沖突觸發(fā)過程還可選地被配置成響應(yīng)于檢測到?jīng)_突狀態(tài)而進行任何其他合適的動作,諸如發(fā)送通知或者限制對服務(wù)器資源的訪問。這樣的動作可以關(guān)于沖突設(shè)備來進行,或者關(guān)于經(jīng)由被檢測沖突的數(shù)據(jù)結(jié)構(gòu)172鏈接至其的所有設(shè)備來進行。

      圖4a和圖4b中圖示的方法2000針對被檢測為提供不期望rt的設(shè)備有效地定義新的rrg、siui和rt值。這一特殊處理向復(fù)制設(shè)備提供新的路徑,從而避免了與現(xiàn)有的客戶端設(shè)備的沖突,從而促進了服務(wù)器與兩個設(shè)備的通信。即使可以存在大量復(fù)制設(shè)備,方法2000仍然能夠應(yīng)用于每個這樣的設(shè)備,其中每個復(fù)制設(shè)備接收其自己的新的rrg和siui值,并且因此具有其自己的新的路徑。一旦針對具體的設(shè)備定義了新的且唯一的響應(yīng)元組<rrg-new,rt-next>,則可以將其返回給客戶端設(shè)備300,其在此如以上結(jié)合用例1描述地被處理。這繼續(xù)在客戶端與服務(wù)器之間交換已更新rt并且在數(shù)據(jù)庫122中維持一系列已交換rt值(其被鏈接至唯一的<did,rrg-new>→<siui-new>映射)的迭代過程。

      方法:復(fù)制設(shè)備標識符(用例3)

      如以上指出的,存在很多如下情況:其中多個不相關(guān)的客戶端設(shè)備可以具有相同的設(shè)備標識符。這可能在例如以下情況下發(fā)生:其中設(shè)備制造商在向其設(shè)備分配標識符時不小心,或者其中兩個設(shè)備制造商不知不覺地生產(chǎn)具有相同標識符的設(shè)備。然而,具有相同設(shè)備標識符的兩個不相關(guān)的客戶端設(shè)備將生成不同的rrg值。因此,當兩個這樣的設(shè)備初始按照本文中公開的設(shè)備標識框架與服務(wù)器建立聯(lián)系時,這兩個設(shè)備中的第一設(shè)備生成響應(yīng)元組<did,rrg-1,rt>,這兩個設(shè)備中的第二設(shè)備生成響應(yīng)元組<did,rrg-2,rt>。由于服務(wù)器沒有從這兩個設(shè)備接收到相同的rrg值,所以這些設(shè)備獨立地工作并且不生成沖突狀態(tài)。

      方法:不穩(wěn)定的設(shè)備標識符(用例4)

      如以上指出的,在很多情況下,不能信任客戶端設(shè)備以在每次客戶端聯(lián)系服務(wù)器時通過相同的設(shè)備標識符來可靠地標識其本身。這可以是因為客戶端具有不穩(wěn)定的硬件配置或者在設(shè)備標識符計算邏輯方面存在缺陷。可以操縱客戶端通信協(xié)議以旁路限于單個設(shè)備的軟件或內(nèi)容許可。不管原因如何,如果單個客戶端設(shè)備300生成多個did值,則方法1000可以被修改以符合這樣的行為。這樣的符合在本文中稱為用例4,并且可以理解為不穩(wěn)定的設(shè)備標識符場景。

      圖5a和圖5b包括圖示用于在客戶端服務(wù)器計算環(huán)境中向服務(wù)器設(shè)備標識客戶端設(shè)備的示例方法4000的流程圖,其中客戶端設(shè)備生成多個唯一的設(shè)備標識符值。方法4000在本文中也稱為用例4。可見,方法4000包括大量階段和子過程,其順序可以根據(jù)實施例而變化。然而,當作為總體來考慮時,這些階段和子過程形成解決由被克隆設(shè)備和復(fù)制設(shè)備標識符引入的挑戰(zhàn)的改進的設(shè)備標識框架的部分。在一個實施例中,本框架根據(jù)本文中公開的某些技術(shù)來響應(yīng)于在客戶端服務(wù)器計算環(huán)境中檢測到的通信。方法4000可以使用例如在圖2中圖示并且在本文中描述的系統(tǒng)架構(gòu)來實現(xiàn)。然而,在其他實施例中也可以使用其他系統(tǒng)架構(gòu),這鑒于本公開很清楚。為此,圖5a和圖5b所示的各種功能與圖2中圖示的具體部件之間的關(guān)聯(lián)并非意圖暗示任何結(jié)構(gòu)或使用限制。相反,其他實施例可以包括例如不同程度的集成,其中多個功能由一個系統(tǒng)或模塊來有效地執(zhí)行。例如,在備選實施例中,使用單個模塊來管理令牌并且響應(yīng)于所檢測到的沖突狀態(tài)。因此,其他實施例取決于實現(xiàn)粒度可以具有更少或更多的模塊。大量變化和備選配置鑒于本公開將很清楚。

      方法4000響應(yīng)于確定客戶端設(shè)備300生成不穩(wěn)定的did值并且具體地響應(yīng)于確定先前生成的did不匹配隨后生成的did來被調(diào)用。參見圖3b中的附圖標記1250。這將在至少一個客戶端服務(wù)器通信循環(huán)完成之后發(fā)生,如以上在用例1中描述的。一旦觀察到不穩(wěn)定的did生成,則方法4000被調(diào)用并且客戶端設(shè)備300定義已修改響應(yīng)元組,已修改響應(yīng)元組包括先前生成的did(本文中稱為did-old)和隨后生成的did(本文中稱為did-new)二者。參見圖5a中的附圖標記4110。這樣的已修改響應(yīng)元組的一個示例是<did-new,rrg,rt,did-old>。在某些實施例值,這一數(shù)據(jù)從本地存儲高速緩存322中提取??蛻舳嗽O(shè)備300通過隨后的服務(wù)器請求向服務(wù)器發(fā)送這一已修改響應(yīng)元組。參見圖5a中的附圖標記4120。這向服務(wù)器100有效地提供客戶端設(shè)備300在時間周期上產(chǎn)生的did值的列表。在某些實施例中,在接收到已修改響應(yīng)令牌時,由令牌管理模塊160調(diào)用的令牌管理過程通過對did-old和did-new執(zhí)行逐比特or操作來導(dǎo)出新的偽服務(wù)器側(cè)設(shè)備標識符(pdid)。參見圖5a中的附圖標記4140。在備選實施例中,使用不同的操作來組合did-old和did-new,諸如連結(jié)操作或逐比特and操作。

      從客戶端設(shè)備100接收的已修改響應(yīng)元組中提取rrg。參見圖5a中的附圖標記4150。使用導(dǎo)出的pdid值和所提取的rrg值,搜索數(shù)據(jù)庫122以標識和檢索相關(guān)聯(lián)的siui和rt集合。參見圖5a中的附圖標記4160。分析rt集合并且標識最近添加的rt值。這一值在本文中稱為rt-server,因為其存儲在服務(wù)器100處。參見圖5a中的附圖標記4170。同樣,作為已修改響應(yīng)元組的部分的從客戶端設(shè)備300接收的rt值在本文中稱為rt-client。參見圖5b中的附圖標記4210。確定rt-server和rt-client是否相同。參見圖5b中的附圖標記4220。如果否,則表明服務(wù)器100與生成相同的did值--did-old和did-new--的另一客戶端之間已經(jīng)發(fā)生其他通信。這可以在設(shè)備虛擬化操作中復(fù)制相同的有缺陷的邏輯的情況下發(fā)生。在這種情況下,使用pdid而非標準did來調(diào)用用例2。

      另一方面,如果rt-server和rt-client相同,則由令牌管理模塊160調(diào)用的令牌管理過程從siui池162獲取下一可用siui,其在本文中稱為siui-next。參見圖5b中的附圖標記4230。同樣,從rt池164獲取下一可用rt,其在本文中稱為rt-next。參見圖5b中的附圖標記4240。將已修改客戶端標識元組<pdid,rrg>映射到所獲取的siui-next,從而形成映射<pdid,rrg>→<siui-next>,其被保存在服務(wù)器數(shù)據(jù)庫122中。對應(yīng)的鏈條目<pdid,rrg>→<siui-next>→{rt-next}也保存在服務(wù)器數(shù)據(jù)庫122中。參見圖5b中的附圖標記4250。由令牌管理模塊160調(diào)用的令牌管理過程還定義已更新響應(yīng)元組<rrg,rt-next>。參見圖5b中的附圖標記4260??梢詫⑦@一已更新響應(yīng)元組返回給客戶端設(shè)備300,其在此如以上結(jié)合用例1描述地被處理。這繼續(xù)在客戶端與服務(wù)器之間交換已更新rt并且在數(shù)據(jù)庫122中維持一系列已交換rt值(其被鏈接至唯一的<pdid,rrg>→<siui-new>映射)的迭代過程。

      雖然在產(chǎn)生兩個不同的did值--did-old和did-new--的客戶端設(shè)備的上下文中描述方法4000,然而其也可以用在其中客戶端設(shè)備(a)在提供did-old和did-new之間重復(fù)地交替或者(b)在每個通信循環(huán)中繼續(xù)提供新的did值的應(yīng)用中。由客戶端設(shè)備提供的已修改響應(yīng)元組提供先前生成的did值的序列歷史。對所有接收的did值執(zhí)行的逐比特or操作繼續(xù)以生成唯一的pdid值,其可以用于標識具體的客戶端設(shè)備并且檢索相關(guān)聯(lián)的siui和rt集合。方法沒有受到siui值的丟失的不利影響,因為可以使用pdid值來唯一地標識客戶端設(shè)備。

      如果生成多個did值的客戶端設(shè)備被克隆,并且所得到的復(fù)制設(shè)備生成多個did值的相同序列,則建議did計算邏輯缺陷從源設(shè)備被傳播給其克隆。在這種情況下,可以調(diào)用與用例2相關(guān)聯(lián)的方法以解決其中檢測到rt適配的情況。參見圖5b中的附圖標記4220。另一方面,如果生成多個did值的客戶端設(shè)備被克隆,并且所得到的復(fù)制設(shè)備產(chǎn)生不同的設(shè)備標識符,則可以調(diào)用與用例3相關(guān)聯(lián)的方法。

      另外的示例實施例

      各種變化和配置鑒于本公開將很清楚。比如,如圖6中圖示的,一個示例實施例提供用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的計算機實現(xiàn)的方法6000。方法6000包括由服務(wù)器從客戶端設(shè)備接收向客戶端設(shè)備分配的did。參見圖6中的附圖標記6100。另外參見圖3a中的附圖標記1110和1120,其表示用于向服務(wù)器設(shè)備標識客戶端設(shè)備的方法1000包括通過初始服務(wù)器請求向服務(wù)器發(fā)送初始標識元組<did,rrg>。

      方法6000還包括由服務(wù)器獲取第一rt。參見圖6中的附圖標記6200。另外參見圖3a中的附圖標記1150,其表示用于向服務(wù)器設(shè)備標識客戶端設(shè)備的方法1000包括從rt池獲取rt。

      方法6000還包括從服務(wù)器向客戶端設(shè)備發(fā)送第一rt。參見圖6中的附圖標記6300。另外參見圖3b中的附圖標記1210和1220,其表示用于向服務(wù)器設(shè)備標識客戶端設(shè)備的方法1000包括向從服務(wù)器向客戶端設(shè)備發(fā)送的響應(yīng)附加響應(yīng)元組<rrg,rt>。

      方法6000還包括由服務(wù)器從未標識設(shè)備接收did和第二rt。參見圖6中的附圖標記6400。另外參見圖3b中的附圖標記1240和1260,其表示用于向服務(wù)器設(shè)備標識客戶端設(shè)備的方法1000包括通過隨后的服務(wù)器請求向服務(wù)器發(fā)送已修改響應(yīng)元組,其中已修改響應(yīng)元組通過向從服務(wù)器向客戶端設(shè)備先前發(fā)送的響應(yīng)元組附加客戶端did來形成。

      方法6000還包括確定第一rt值和第二rt值相同。參見圖6中的附圖標記6500。另外參見圖3c中的附圖標記1450,其表示用于向服務(wù)器設(shè)備標識客戶端設(shè)備的方法1000包括確定rt-server和rt-client相同。在此,rt-server定義為從服務(wù)器數(shù)據(jù)庫檢索的rt集合中的最新rt,并且rt-client定義為已修改響應(yīng)元組中從客戶端接收的rt。參見圖3c中的附圖標記1430和1440。

      方法6000還包括基于確定將未知設(shè)備標識為客戶端設(shè)備。參見圖6中的附圖標記6600。另外參見圖3c中的附圖標記1460和圖3d中的附圖標記1510,其表示在沒有新的設(shè)備標識令牌值、諸如新的rrg或siui值的情況下生成已更新響應(yīng)元組。

      在一些情況下,方法還包括由服務(wù)器在包括did的初始標識元組中從客戶端設(shè)備接收由客戶端設(shè)備生成的rrg。在一些情況下,(a)方法還包括由服務(wù)器在包括did的初始標識元組中從客戶端設(shè)備接收由客戶端設(shè)備生成的rrg;并且(b)在包括第一rt的響應(yīng)元組中從服務(wù)器向客戶端發(fā)送rrg。在一些情況下,在由未知設(shè)備生成的已修改響應(yīng)元組中接收did和第二rt。在一些情況下,(a)方法還包括由服務(wù)器在包括did的初始標識元組中從客戶端設(shè)備接收由客戶端設(shè)備生成的rrg;并且(b)還從未標識設(shè)備接收did和rrg。在一些情況下,服務(wù)器包括從其獲取第一rt的rt池。在一些情況下,方法還包括(a)由服務(wù)器生成對應(yīng)于客戶端設(shè)備的siui;并且(b)在siui、所接收的did和第一rt之間形成關(guān)聯(lián)關(guān)系,其中關(guān)聯(lián)關(guān)系形成在由服務(wù)器管理的數(shù)據(jù)庫中。在一些情況下,方法還包括(a)由服務(wù)器在包括did的初始標識元組中從客戶端設(shè)備接收由客戶端設(shè)備生成的rrg;并且(b)將初始標識元組映射到由服務(wù)器管理的數(shù)據(jù)庫中的第一rt;其中(c)做出決定還包括使用did來從數(shù)據(jù)庫中提取第一rt。

      另一示例實施例提供設(shè)備標識系統(tǒng)。系統(tǒng)包括存儲器設(shè)備。系統(tǒng)還包括在操作上耦合至存儲器設(shè)備的處理器。處理器被配置成執(zhí)行存儲器設(shè)備中存儲的指令,這些指令在被執(zhí)行時引起處理器執(zhí)行用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的過程。過程包括由服務(wù)器從客戶端設(shè)備接收由客戶端設(shè)備生成的rrg和第一rt。過程還包括使用所接收的rrg在由服務(wù)器管理的數(shù)據(jù)庫中查找第二rt。過程還包括確定第一rt關(guān)于第二rt過期。過程還包括向客戶端設(shè)備分配新的rrg(rrg-new)。過程還包括獲取新的rt。過程還包括使rrg-new與數(shù)據(jù)庫中新的rt相關(guān)聯(lián)。過程還包括向客戶端設(shè)備發(fā)送包括rrg-new和新的rt的元組。在一些情況下,(a)在包括多個不同did值的響應(yīng)元組中接收rrg和第一rt;(b)過程還包括通過對多個不同did值執(zhí)行逐比特or操作來生成偽服務(wù)器側(cè)設(shè)備標識符(pdid);以及(c)使rrg-new與數(shù)據(jù)庫值的新的rt相關(guān)聯(lián)還包括將元組<pdid,rrg-new>映射到包括新的rt的rt集合。在一些情況下,獲取新的rt包括從由服務(wù)器托管的rt池獲取新的rt。在一些情況下,(a)在包括did的響應(yīng)元組中接收rrg和第一rt;(b)數(shù)據(jù)庫包括響應(yīng)元組到siui-1的映射,siui-1與客戶端設(shè)備相關(guān)聯(lián);(c)過程還包括獲取新的siui-2并且使新的siui-2與客戶端設(shè)備相關(guān)聯(lián);以及(d)過程還包括以被檢測沖突的數(shù)據(jù)結(jié)構(gòu)產(chǎn)生新的條目{siui-1→siui-2}。在一些情況下,(a)在包括did的響應(yīng)元組中接收rrg和第一rt;(b)數(shù)據(jù)庫包括響應(yīng)元組到與客戶端設(shè)備相關(guān)聯(lián)的siui的映射;(c)過程還包括定義克隆標識元組<did,rrg-new>;(d)過程還包括獲取新的siui;以及(e)過程還包括在數(shù)據(jù)庫中產(chǎn)生包括克隆標識元組到新的siui的已更新映射的鏈條目,新的siui又被映射到包括新的rt的rt集合。在一些情況下,(a)在包括did的響應(yīng)元組中接收rrg和第一rt;以及(b)過程還包括定義包括did和新的rrg的克隆標識元組。在一些情況下,(a)在包括did的響應(yīng)元組中接收rrg和第一rt;以及(b)使用rrg和did二者查找第二rt。在一些情況下,(a)在包括did的響應(yīng)元組中接收rrg和第一rt;(b)由客戶端設(shè)備生成rrg;以及(c)由客戶端設(shè)備的制造商分配did。

      另一示例實施例提供其上編碼有指令的非瞬態(tài)計算機可讀介質(zhì),這些指令在由一個或多個處理器執(zhí)行時引起用于在客戶端服務(wù)器計算環(huán)境中標識客戶端設(shè)備的過程被執(zhí)行。過程包括由服務(wù)器從客戶端設(shè)備接收向客戶端設(shè)備分配的did和由客戶端設(shè)備生成的rrg。過程還包括由服務(wù)器獲取對應(yīng)于客戶端設(shè)備的siui。過程還包括由服務(wù)器獲取第一刷新令牌(rt-1)。過程還包括在由服務(wù)器管理的數(shù)據(jù)庫中創(chuàng)建鏈條目,其中鏈條目包括<did,rrg>→<siui>→{rt-1},其中{rt-1}是包括rt-1的集合。過程還包括向客戶端設(shè)備發(fā)送響應(yīng)元組<rrg,rt-1>。過程還包括從客戶端設(shè)備接收已修改響應(yīng)元組<did,rrg,rt-1>。過程還包括響應(yīng)于接收到已修改響應(yīng)元組來獲取第二刷新令牌rt-2。過程還包括向包括第一rt的集合添加第二刷新令牌rt-2。過程還包括向客戶端設(shè)備發(fā)送已更新響應(yīng)元組<rrg,rt-2>。在一些情況下,從由服務(wù)器托管的siui池來獲取siui。在一些情況下,集合中的rt的量對應(yīng)于在服務(wù)器與客戶端設(shè)備之間發(fā)生的通信循環(huán)的量。在一些情況下,(a)從rt池獲取第一rt值和第二rt值;以及(b)過程還包括響應(yīng)于確定rt池耗盡來清空集合并且重置rt池。

      出于說明和描述的媒體呈現(xiàn)了以上描述。其并非意圖排他或者將本公開限于具體的所描述的實施例。因此,很多修改和變化鑒于本公開是可能的。因此,意圖在于,本發(fā)明的范圍不受本詳細描述的限制,而由所附權(quán)利要求來限制。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1