Egy nemzetközi kutatócsoport, amelyben ausztrál, francia és izraeli kutatók dolgoztak, egy meglehetősen különleges tanulmányt publikált a minap, amely egy új technikáról szól: a DrawnApart névre keresztelt projekt a felhasználók GPU alapú követésének lehetőségét mutatja be. A működő példakód segítségével viszonylag könnyen és gyorsan lehet követni az egyes felhasználók online térben történő „mozgását”, ehhez pedig a GPU egyedi „ujjlenyomatát” használják, amit egy elég gyors profilozást követően lehet elkészíteni. A rajta alapuló felhasználó-követés lénygében valós időben történik.
Hogy mi teszi lehetővé a sok-sok azonos GPU-t használó felhasználó egymástól történő megkülönböztetését? A GPU lapkák – és lényegében szinte minden hasonlóan komplex elektronikai komponens – esetében a gyártási szórás miatt számos paramétert lehet figyelni, amelyek eltérőek lehetnek. Gyakorlatilag nincs is két egyforma GPU, valamilyen szinten mindegyik különbözik a másikban bizonyos paraméterek terén.
Ezért is van az, hogy egyes grafikus processzorok és processzorok sokkal jobb tuningpotenciállal rendelkeznek, mint társaik. Az egyes példányok között egyedi különbségek mutatkoznak mind teljesítmény, mind fogyasztás, mind pedig feldolgozással kapcsolatos képességek terén, így megfelelően kifinomult módszerekkel ezekből a különbségekből egyedi profil hozható létre.
A kutatók egy WebGL alapú modellt hoztak létre, ami a platformok közötti kompatibilitása miatt sokféle hardveren lefuttatható, természetesen webböngészőn keresztül, így nemcsak a dGPU, de az iGPU is profilozhatóvá válhat – és ebből a szempontból nemcsak a PC-k vannak veszélyben, hanem a mobileszközök is. A DrawnApart névre keresztelt technika gyakorlatilag 176-nál is több mérést végez el 16 adatgyűjtő pontban, ehhez pedig rövid GLSL (OpenGL Shadig Language) alapú vertex műveleteket végez, ami egyedi és megismételhető eredményt ad, ugyanis ugyanazokon a feldolgozó egységeken fut le minden esetben a kód, nem véletlenszerűen szétosztott formában.
A kiértékelő algoritmus le tudja mérni az egyes vertex-műveletekhez szükséges időt, illetve számos egyéb grafika-specifikus munkafolyamatot is kezelni tud, így a végén egy kész profilt „dob ki”.
A kutatócsapat tagjai szerint ez az első olyan tanulmány, ami a gyártásból fakadó hardverkülönbségeket adatvédelmi kontextusban vizsgálja, és egyben arra is lehetőséget ad, hogy azonos hardver- és szoftver-konfigurációval rendelkező gépeket is pontosan és megbízhatóan meg lehessen különböztetni egymástól. A kutatók szerint az aktuális ujjlenyomat készítő módszerekhez képest 67%-kal gyorsabban működik az új megoldás, ami nem elhanyagolható előny.
Az adatok alapján egy GPU „ujjlenyomata” gyakorlatilag 8 másodperc alatt elkészíthető az általuk kifejlesztett módszerrel, de a következő generációs API-k, illetve az internettel kapcsolatos fejlődő technológiák jóvoltából sokkal gyorsabban és pontosabban is elkészíthetőek lesznek ezek az ujjlenyomatok. Példaként a WebGPU-t említették, amelynél a compute shader műveletek már a webböngészőn keresztül működhetnek, így nagyságrendekkel hatékonyabb és gyorsabb lesz a munka.
A kutatók ki is próbáltak egy compute shader alapú algoritmust, ami a DrawnApart koncepcióját használja, és rendkívül megdöbbentő eredményt tapasztaltak: az ujjlenyomat-készítési pontosság 98%-ra nőtt, a profilozáshoz pedig nem 8 másodperc, hanem mindössze 150 milliszekundum kellett. Utóbbi alapján lényegében elég lesz annyi idő a GPU profilozáshoz, amennyibe egy félreklikkelés kerül. Ez nem túl jó hír, ugyanis a személyes adatvédelem és a kiberbiztonság számára új kihívásokat jelent, amelyeket valamilyen módon le kell küzdeni.
A Khronos Group, a WebGL könyvtár fejlesztője már létre is hozott egy technikai csoportot, amelynek az a feladata, hogy olyan módszereket találjon, amelyekkel az efféle profilozást meg lehet nehezíteni, illetve az esetleges negatív hatásait tompítani lehet. Az opciók között a folyamat lefutásához szükséges idő mérésének tiltása, a párhuzamos végrehajtás megelőzése, szkriptblokkolás és számos egyéb módszer szerepel, de a munka még tart.


































