Ahogy korábban a cache stealing ötlete, úgy a böngészők JavaScript alapú azonosítása is felvetődött a rendszerujjlenyomat kutatás során. Egyszerű teszteket hajtottunk végre, hogy az ötlet életképességét teszteljük; az eredményeinket alább közöljük. A bejegyzés egy kétrészes sorozat része, amelynek első részében saját kísérleteink eredményét közöljük, a másodikban pedig külföldi kutatók eredményeiről tudósítunk.
Az ötlet: a script tízszer lefuttatja a tesztet, az eredményből megtartjuk a minimum, maximum és módusz (vagy ha nincs akkor átlag) értékeket. Kezdetben készítünk egy statisztikai mintát úgy, hogy sok különböző gépen, lehetőleg többféle böngészőn lefuttatjuk a tesztet, és az eredmény mellé feljegyezzük a processzor típusát és sebességét. Ezt követően, ha megfelelően nagy mintával rendelkezünk, egy ismeretlen gép sebessége (esetleg típusa) behatárolható lesz a mért adatok és a böngésző alapján – így pedig ha több paramétert is vizsgálunk (több típusú teszt végrehajtásával), ujjlenyomattal is ellátható lesz.
![]()
Böngésző sebességtesztek (a tesztek 2011. márciusban készültek)
Az elkészített tesztből kiderül, hogy a böngésző típusa nagyságrendileg meghatározza a mérés eredményét, ezért tehát fontos tényező. Ahogy a tesztekből is látszik, az IE nagyon szép fejlődést mutat, a 8-as verziónál több mint 27-szer gyorsabb lett a 9-es. Ezzel felhozta magát a modern böngészők szintjére, a Chrome, az Opera és a Safari mellé. A Firefox fejlesztői sem tétlenkedtek, a 4.0-s verzió olyan gyorsra sikerült, hogy a teljes mezőnyt maga mögött hagyta. A százezres teszten 0 és 1 milliszekundum alatt teljesített, ezért érdemesnek találtam megnövelni egymillióra a ciklusok számát, hogy pontosabb értéket kapjunk.
A tesztet újra futtattuk egy gépen, de már egymilliószor futtatva egy egyszerűbb műveletet. Az eredmény az alábbi ábrán látható.
![]()
Egymillió egyszerű művelet végrehajtási ideje különböző böngészőkben (2011. március)
A Firefox 4 több mint 6-szor gyorsabb lett az aktuális Chrome verziónál, az Internet Explorer pedig feljött a harmadik helyre, maga mögé utasítva az Operát és a Safarit. (Érdekesség, hogy az Internet Explorer 64 bites verziója csak fele olyan gyors, mint 32 bites társa.)
Az eddig végzett teszt hátránya, hogy kevés művelettípust használ (inkrementálás, függvényhívás). Egyéb objektumok kezelésével, illetve számításigényesebb műveletekkel komplexebb vizsgálatot végeztünk, amivel a gyakorlatban is tapasztalható sebesség-különbség is jobban kivehető.
Komplex vizsgálat műveletei: DOM bejárás és adatok kinyerése jQuery segítségével. Ehhez sok objektumot kell kezelni, karakterláncok összehasonlítását is végre kell hajtani, és persze a bejárást megvalósító algoritmus is számításigényes. Az eredmények az eddigiektől eltérőek lettek.
![]()
Komplex művelet végrehajtási ideje különböző böngészőkben (2011. március)
A kétféle vizsgálatot érdemes összehasonlítani! Látható, hogy DOM bejárás szempontjából a leggyorsabb böngésző az Opera, de itt már nem nagyságrendbeli, csupán 2-4-szeres eltérésekről van szó. Említésre méltó, hogy az Opera gyorsabban végezte el a komplexebb műveletet, mint az egyszerű, gyakori feladatot. A többi böngészőnek ehhez jóval több időre volt szüksége. A legnagyobb időbeli eltérést a Firefox produkálta annak ellenére, hogy az előző tesztet ő nyerte.
![]()
Egyszerű és komplex művelet végrehajtási idejének összehasonlítása (2011. március)
A jobb oldali diagramon látható a futásidő változása a komplexitás növelésével. A bal oldali diagramon a két feladat futásidejének különbsége látható böngésző szerint.
Bár az eredmények már böngészőnként, platformonként eléggé eltérnek (ami a böngészőfüggetlen ujjlenyomatkészítést kizárja), a mérést sajnos befolyásolják a környezeti hatások: például ha sok program fut, akkor lassabban fut le a teszt. Ez leginkább az egymagos processzoroknál okoz gondot. Ebből következik, hogy több mérést is kellene végezni, és a legjobb mért eredményt letárolni. Szerencsés esetben előfordulhat olyan eset, amikor csak a böngésző fut. A második probléma az, hogy még a százezres teszt is erőforrás-igényes, régebbi konfigurációk esetén több másodpercet is igénybe vehet, és addig a felhasználó nem tudja használni a böngészőt. Így élesben, felhasználó azonosítására praktikusan nem használható ez a technika. Ezen okok miatt a módszer a nyomkövetés hatékonyabbá tétele szempontjából zsákutca, ellenben kaptunk egy átfogó képet a modern böngészők sebességéről.
A következő bejegyzés friss kutatási eredményekről számol be: külföldi kutatók sikeresen létrehoztak egy hasonló elven működő, többlépcsős algoritmust, ami képes a böngészőt azonosítani pusztán a teljesítménye alapján.
Boda Károly és Gulyás Gábor
(2011. márciusi eredmények alapján)
Összesen 0 hozzászólás látható.
Nincsenek hozzászólások.
Bárki hozzászólhat, nem regisztrált beküldő esetén egyik adat megadása sem kötelező - a hozzászólás akár névtelen is lehet.