經(jīng)排列和/或壓縮的形式)來(lái)生成參數(shù)的 置換擴(kuò)展集合90。在對(duì)其應(yīng)用置換的所收集的參數(shù)和虛擬參數(shù)的組合集合中的參數(shù)的數(shù) 目通常將比可以從web瀏覽器收集的不同參數(shù)的可能的數(shù)目低得多,該可能的數(shù)目與跨大 量web瀏覽器的收集的參數(shù)的熵緊密相關(guān)。上面參考的Peter Eckersley的論文報(bào)告了至 少18個(gè)比特的可收集瀏覽器參數(shù)的典型的熵。因?yàn)榇蠖鄶?shù)瀏覽器參數(shù)具有相當(dāng)有限數(shù)目 的不同值(即,8個(gè)比特的熵),這表明Eckersley發(fā)現(xiàn)在他的實(shí)驗(yàn)中的瀏覽器群體上實(shí)際上 可收集大約210個(gè)不同的參數(shù)。典型安裝的web瀏覽器可能包含具有近似50個(gè)不同的可 收集參數(shù)的參數(shù)集合。
[0035] 對(duì)其應(yīng)用置換的所收集的參數(shù)和虛擬參數(shù)的組合集合中的參數(shù)的總數(shù)可以是預(yù) 定的,并且通過(guò)映射功能在對(duì)所收集的參數(shù)的不同集合的操作之間一致地使用。例如,要置 換的參數(shù)的總數(shù)可以被設(shè)置為所收集的參數(shù)的典型數(shù)目的大約兩倍或三倍,例如,使得虛 擬參數(shù)的數(shù)目總是至少與所收集的參數(shù)的數(shù)目相同。
[0036] 可以對(duì)虛擬參數(shù)D分配默認(rèn)值,例如可以所有被分配例如零整數(shù)值的相同的默認(rèn) 值或諸如隨機(jī)值之類(lèi)的不同值。
[0037] 包括虛擬參數(shù)的擴(kuò)展參數(shù)集合的置換的過(guò)程可以以各種方式在由映射功能執(zhí)行 的其他過(guò)程之前、之后或與其組合地被執(zhí)行。置換86可以例如通過(guò)隨機(jī)置換表或其他結(jié)構(gòu) 來(lái)定義,該其他結(jié)構(gòu)定義與虛擬參數(shù)組合的所收集的參數(shù)的重新排序,其中,虛擬參數(shù)通常 散布在所收集的參數(shù)當(dāng)中(反之亦然)。置換86被維持而沒(méi)有由映射功能80進(jìn)行的改變以 用于對(duì)在一段時(shí)間內(nèi)收集的參數(shù)的多個(gè)不同集合的操作,使得從所收集的參數(shù)的對(duì)應(yīng)集合 74、74'、74''生成的置換擴(kuò)展參數(shù)集合90、90'、90''可以用于生成瀏覽器的標(biāo)識(shí)符的多個(gè) 版本 60、60'、60' '。
[0038] 置換86可能在web應(yīng)用70中本地地或者以其他方式在設(shè)備52處生成,或者可以 從遠(yuǎn)程服務(wù)器被傳送到設(shè)備。置換優(yōu)選地被以混淆形式被存儲(chǔ)。在沒(méi)有置換86的知識(shí)的 情況下,對(duì)于攻擊者而言難以從置換擴(kuò)展參數(shù)集合90導(dǎo)出關(guān)于原始參數(shù)51或所收集的參 數(shù)74的信息,這有助于保持機(jī)密性。
[0039] 置換擴(kuò)展參數(shù)集合90被傳遞到確定功能100,該確定功能100被布置為從置換擴(kuò) 展參數(shù)集合確定web瀏覽器50的標(biāo)識(shí)符60。收集功能、映射功能和確定功能可以在多個(gè) 不同的時(shí)間重復(fù)其操作,以確定在那些時(shí)間的標(biāo)識(shí)符60、60'、60' '。在圖3中,所確定的標(biāo) 識(shí)符被示出為從計(jì)算機(jī)設(shè)備52向外傳遞到遠(yuǎn)程實(shí)體53,例如通過(guò)數(shù)據(jù)網(wǎng)絡(luò)到遠(yuǎn)程服務(wù)器。 如果在多個(gè)時(shí)間生成標(biāo)識(shí)符60、60'、60''的多個(gè)版本,則這些可以由遠(yuǎn)程實(shí)體以各種方式 使用,例如以確定瀏覽器的身份保持不變,或者得到或向計(jì)算機(jī)設(shè)備提供對(duì)特定數(shù)據(jù)或資 源的繼續(xù)訪問(wèn)。當(dāng)然,對(duì)標(biāo)識(shí)符或標(biāo)識(shí)符的多個(gè)版本的這樣的比較或類(lèi)似的使用還可以或 替代地在web應(yīng)用70內(nèi)或以其他方式在計(jì)算機(jī)設(shè)備52本身處發(fā)生。
[0040] 在許多應(yīng)用中,所生成的標(biāo)識(shí)符60、60'、60' '將通常在擴(kuò)展時(shí)段內(nèi)不被存儲(chǔ)在計(jì) 算機(jī)設(shè)備52本身處,以減少危害或攻擊的風(fēng)險(xiǎn)。
[0041] 為了在不同的時(shí)間生成相同的標(biāo)識(shí)符,使用預(yù)期在所收集的參數(shù)74內(nèi)的存在和 那些時(shí)間之間的值二者中改變的所收集的參數(shù),確定功能100優(yōu)選地基于置換擴(kuò)展參數(shù) 集合90來(lái)實(shí)現(xiàn)魯棒的身份確定。一些適當(dāng)?shù)聂敯舻纳矸荽_定方案在W02012/122621和 TO2012/122674中被教導(dǎo),并且可以使用置換擴(kuò)展參數(shù)集合90來(lái)應(yīng)用。置換擴(kuò)展參數(shù)集合 非常適合作為對(duì)這樣的方案和算法的輸入,因?yàn)槠渚哂泄潭〝?shù)目的元素,與將在參數(shù)的數(shù) 目方面隨時(shí)間而變化的由收集功能70從web瀏覽器收集的參數(shù)不同。因此,置換擴(kuò)展參數(shù) 集合的使用減少了所收集的參數(shù)中的改變到標(biāo)識(shí)符60的傳播,允許在確定功能100中使用 較簡(jiǎn)單的錯(cuò)誤校正方案。因?yàn)樘鎿Q所收集的參數(shù)或向所收集的參數(shù)添加元素不會(huì)使所有參 數(shù)而僅僅使子集移位,并且這些改變?cè)谡麄€(gè)置換擴(kuò)展參數(shù)集合上分布,所以減少改變的傳 播。
[0042] W02012/122621的教導(dǎo)可以通過(guò)下述來(lái)應(yīng)用:生成與置換擴(kuò)展參數(shù)集合的每個(gè)參 數(shù)相對(duì)應(yīng)的共享,將秘密共享算法應(yīng)用于多個(gè)共享的多個(gè)子集以導(dǎo)出多個(gè)候選標(biāo)識(shí)符,子 集的數(shù)目是根據(jù)對(duì)置換擴(kuò)展參數(shù)集合的參數(shù)與置換擴(kuò)展參數(shù)集合的先前或原始值的差的 容限閾值來(lái)確定的,并且將最普遍的候選標(biāo)識(shí)符值確定為web瀏覽器50的最終標(biāo)識(shí)符。秘 密共享算法可以是(M-k,N)秘密共享算法,其中N是多個(gè)共享的數(shù)目,M〈N,并且k是預(yù)定 常數(shù)。其他細(xì)節(jié)在W02012/122621中提供,其出于此和所有其他目的通過(guò)引用合并于此。
[0043] W02012/122674的教導(dǎo)可以通過(guò)下述來(lái)應(yīng)用:根據(jù)預(yù)定功能來(lái)處理置換擴(kuò)展參數(shù) 集合和指紋以獲得碼符號(hào),指紋與web瀏覽器相關(guān)聯(lián)并且基于來(lái)自映射功能80的較早的置 換擴(kuò)展參數(shù)集合。以該方式,置換擴(kuò)展參數(shù)集合被變換成錯(cuò)誤校正碼。然后,將錯(cuò)誤校正算 法應(yīng)用于碼符號(hào)以獲得標(biāo)識(shí)符60。錯(cuò)誤校正算法可以是里德所羅門(mén)錯(cuò)誤校正碼或類(lèi)似的。 其他細(xì)節(jié)在W02012/122674中提供,其出于此和所有其他目的通過(guò)引用合并于此。
[0044] 確定功能100可能需要初始化,以便于獲得適當(dāng)?shù)牟檎倚畔?lái)將置換擴(kuò)展參數(shù)集 合變換成對(duì)所收集的參數(shù)中的改變適當(dāng)?shù)佤敯舻臉?biāo)識(shí)符60。這可能涉及將較早生成的置換 擴(kuò)展參數(shù)集合或所收集的參數(shù)的集合發(fā)送到遠(yuǎn)程服務(wù)器,該遠(yuǎn)程服務(wù)器計(jì)算適當(dāng)?shù)呐渲脭?shù) 據(jù)以供在計(jì)算機(jī)設(shè)備處使用,并且具體地,計(jì)算錯(cuò)誤校正數(shù)據(jù)以確??梢杂?jì)算正確的標(biāo)識(shí) 符。例如,適當(dāng)?shù)腻e(cuò)誤校正碼可以通過(guò)這樣的服務(wù)器來(lái)提供,其還可以是向計(jì)算機(jī)設(shè)備提供 web應(yīng)用代碼的服務(wù)器。在web應(yīng)用處的錯(cuò)誤校正碼的計(jì)算將頻繁地是不合期望的,由于針 對(duì)攻擊的增加的可能性。為此,所收集的參數(shù)的或置換擴(kuò)展參數(shù)集合的匿名版本(例如,使 用初始收集的參數(shù))可以從計(jì)算機(jī)設(shè)備被發(fā)送到服務(wù)器,所述服務(wù)器然后以配置數(shù)據(jù)的形 式返回錯(cuò)誤校正碼能力。然后,服務(wù)器還知道計(jì)算機(jī)設(shè)備將生成的并且在后續(xù)內(nèi)部計(jì)算和 /或通信協(xié)議中使用的標(biāo)識(shí)符60的值。
[0045] 圖4總結(jié)了由映射功能80與收集功能72和確定功能100組合地執(zhí)行的過(guò)程。收 集功能72例如使用JavaScript元件76來(lái)獲得web瀏覽器的參數(shù)74 (Pl. .. p6)。映射功 能80向所收集的參數(shù)的集合添加多個(gè)虛擬參數(shù)(e7··· e12),其中每一個(gè)具有默認(rèn)的、隨機(jī)的 或其他值88。映射功能80對(duì)所收集的參數(shù)和虛擬參數(shù)D應(yīng)用置換86以輸出置換擴(kuò)展參數(shù) 集合90。映射功能還可以執(zhí)行所收集的參數(shù)74的壓縮和排序(或這樣的過(guò)程中的一些或全 部可能在收集功能72中發(fā)生)。最后,確定功能100處理置換擴(kuò)展參數(shù)集合,以產(chǎn)生web瀏 覽器的標(biāo)識(shí)符60。整個(gè)過(guò)程可以在不同的時(shí)間重復(fù),由所收集的參數(shù)的多個(gè)集合74、74'、 74' '、多個(gè)對(duì)應(yīng)的置換擴(kuò)展參數(shù)集合90、90'、90' '和多個(gè)標(biāo)識(shí)符60、60'、60' '表示,以例如 通過(guò)斷定在標(biāo)識(shí)符60、60'、60' '已經(jīng)改變的情況下身份已經(jīng)改變,而例如提供web瀏覽器 的身份在重復(fù)的過(guò)程之間保持相同或已經(jīng)改變的指示。標(biāo)識(shí)符的重復(fù)計(jì)算可以類(lèi)似地用于 獲得從遠(yuǎn)程實(shí)體53或出于其他目的對(duì)資源的繼續(xù)訪問(wèn)。
[0046] 圖5的流程圖將本發(fā)明的上述實(shí)施例圖示為一系列步驟。這些步驟可以使得駐留 的web應(yīng)