當第三方服務收集各種人的資訊,並利用這些資訊幫助在其他線上使用者的海洋中識別他們時,就會發生對使用者的線上追蹤。這種對特定資訊的收集通常被稱為"指紋",攻擊者通常利用它來獲取使用者的資訊。今天,研究人員宣佈,他們成功地利用WebGL(網路圖形庫)的優勢,為每一顆GPU建立了一個獨特的指紋,以此追蹤線上使用者。
這個漏洞之所以有效,是因為每塊矽片在製造時都有自己的變化和獨特的特徵,就像每個人都有一個獨特的指紋一樣。即使在確切的處理器型號中,矽料的差異也使每個產品與眾不同,這就是為什麼你不能將每一枚處理器超頻到相同的頻率,所謂晶片“體質”存在差異的原因。
如果有人能精確地探索GPU的差異,並利用這些差異透過這些特徵來識別線上使用者,會發生什麼?這正是建立DrawnApart的研究人員所想到的。使用WebGL,他們運行了一個GPU工作負載,在16個數據收集處識別了超過176個測量值。這是在GLSL(OpenGL著色語言)中使用頂點操作完成的,工作負載被阻止在處理單元的網路上隨機分佈。
DrawnApart可以測量和記錄完成頂點渲染的時間,記錄渲染的確切路線,處理停滯功能,以及更多。這使得該框架能夠發出獨特的資料組合,變成GPU的指紋,可以線上利用。在下面的圖中你可以看到兩個GPU(相同型號)的資料跟蹤記錄,從中可以顯示出變化。
WebGL API的創造者Khronos Group已經成立了一個工作小組來處理這種情況,並防止API洩露過多的資訊來線上追蹤使用者。如果你想了解更多關於這項技術的資訊,你可以在ArXiv上閱讀更多細節:
https://arxiv.org/pdf/2201.09956.pdf