Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Ing. Jiří Šotola
Acad. year: 2025/2026
Supervisor: Ing. Libor Polčák, Ph.D.
Reviewer: Ing. Vladimír Veselý, Ph.D.
This master’s thesis focuses on the analysis of browser fingerprinting scripts and methods for limiting their tracking capabilities while preserving the usability of web applications. The thesis summarizes the principles of browser fingerprinting, commonly used identification techniques, and the most frequently exploited web APIs, including Canvas, WebGL, AudioContext, and Navigator API. It also discusses defensive mechanisms against fingerprinting, particularly techniques based on value unification and modification of web API outputs. In the practical part, a dataset of currently used fingerprinting scripts was created, and a testing environment for automated evaluation of script behavior under different browser and device configurations was designed and implemented. The experiments were conducted both with and without the JShelter browser extension and focused on analyzing the stability, similarity, and environment dependency of generated fingerprints. The results demonstrate that individual scripts rely on different combinations of APIs and exhibit varying sensitivity to configuration changes and privacy protection mechanisms.
browser fingerprint, browser fingerprinting, privacy protection, JavaScript, web APIs, Canvas, WebGL, AudioContext, JShelter, fingerprinting scripts, user tracking, web security
Date of defence
23.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
D
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných, např. ohledně důvodů pro uvedení některých grafů v příloze namísto hlavní části technické zprávy či použitých testovacích skriptů pro srovnání frameworků. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm E - dostatečně.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Computer Networks (NNET)
Composition of Committee
doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda) doc. Ing. Tomáš Martínek, Ph.D. (místopředseda) Ing. Zbyněk Křivka, Ph.D. (člen) Ing. Ivana Burgetová, Ph.D. (člen) Ing. Matěj Grégr, Ph.D. (člen) Ing. Šárka Květoňová, Ph.D. (člen)
Supervisor’s reportIng. Libor Polčák, Ph.D.
Pan Jiří Šotola podle mého názoru prokázal schopnosti vyžadované k úspěšnému obhájení své diplomové práce. Nakonec se s náročným tématem dokázal vypořádat a naměřené výsledky jsou užitečné.
Práce navazuje na projekty řešené mj. v rámci FIT týkající se rozšíření JShelter. Cílem práce bylo najít a analyzovat skripty počítající otisk prohlížeče. S dosažnými výsledky jsem spokojen jen částečně, protože některé části mohly být řešeny, či prezentovány lépe:
V závěru student pracoval dobře, ale nedůslednost v dřívějších fázích a zmatečnost ve vyjadřování vedly k pozdnímu dokončování ve spěchu, což se projevuje překlepy, nejasnými větami i aplikaci chybných měření (sekce Obecné pouštění rozšíření JShelter). Textovou část práce jsem viděl, ale nebyla v pochopitelném stavu. Na výsledném textu jde vidět, že si student vzal mé rady k srdci a většinu zapracoval. Především kapitola testování by potřebovala ještě revizi, aby byla dobře pochopitelná.
V současném stavu výsledky práce publikovatelné nejsou, ale je možné, že mě výsledky práce k publikaci inspirují.
Student využíval literaturu doporučenou i vlastní. Ze začátku jsem měl pocit, že se v literatuře ztrácí. Na pozdějších konzultacích se již student v problematice orientoval.
Student byl aktivní průběžně, ale ne vždy byl připraven.
Grade proposed by supervisor: C
Reviewer’s reportIng. Vladimír Veselý, Ph.D.
Práce je solidní inženýrské dílo, jehož hezké průměrné hodnocení zbytečně kazí zapomenutá věta z konverzace s AI/vedoucím v technické zprávě. Výslednou známku (tedy buď C, nebo D) nechávám na komisi.
Evaluation level: zadání splněno
Zadání bylo splněno. K bodu 6 (prezentace zjisteni projektu JShelter) práce konstatuje záměr výsledky prezentovat, avšak neobsahuje za mě explicitní potvrzení, že k prezentaci skutečně došlo a její závěry. Nicméně vzhledem k tomu, že je vedoucí práce hlavním vývojářem JShelter, tak to lze brát jako lichou poznámku.
Evaluation level: je v obvyklém rozmezí
Práce má 71 stran textu v husté LaTeXové šabloně, se všemi pomocnými provozy pak 91 stránek. Dle nástroje https://app.fit.vut.cz/theses-checker/ na počítání normostran, má 104,22 normostran, je tedy mírně nad standard pro DP.
Práce má logickou strukturu a jednotlivé kapitoly kopírují body zadání: teorie (Kapitoly 2-4) -> implementace (Kapitola 5) -> testování a analýza (Kapitola 6). Oceňuji, že výsledky v kapitole 6 jsou podávány unifromě pro každý skript.
Za závažnou chybu snižující hodnocení prezentační úrovně považuji přítomnost fragmentu konverzace s AI nástrojem (či vedoucím?) na straně 62 v druhé polovině. Text obsahuje: "[...] Ne, to tam nevydávej, spíš tam napiš, že se primárně neprojevil. a ještě tam nech ty hodnoty, co byly v předchozím. Ostatně co jsem ti poslal, těch 53 [...]", kterážto se omylem dostala do odevzdaného textu technické zprávy.
Práce je psána v češtině a je bez zásadnějších prohřešků vůči gramatice.
Zde pár šotků, kteří utekli:
Student v práci cituje z pro diplomovou práci průměrného množství zdrojů (53 pramenů). Majoritu z nich tvoří online zdroje - těm, které jsou jen referencemi na domovské stránky technologií, by slušela spíš reference pod čarou. Literaturu tvoří i vědecké články, které jsou korektně využívány a interpretovány.
Nicméně využívání pramenů za každou jednotlivou sdělenou větou (příkladem [1] na str. 5, [38] str. 23, [45] na str.29) mi místy v textu přijde až rušivé a raději bych volil seskupení všech myšlenek z jednoho zdroje do stejného odstavce. Další drobnou výhradou je zařazení komerčního slovníčku (zdroj [34], soax.com) jako opory pro věcná tvrzení; vhodnejší by byly více primarní zdroje.
Bohužel i přes tři emaily v kopii na vedoucího se mi studenta nepodařilo dostat ke konzultaci k výsledné práci a zejména demonstraci implementace.
Realizační výstup tvoří jednotky zdrojových kódů v JavaScriptu, HTML a JSON, které konfigurují testovací prostředí a analyzují běh skriptů v nich. Student implementaci doprovodil vhodnou dokumentací, díky které se dají reprodukovat výsledky.
Výsledky měření představují dataset chování konkrétních knihoven v čase, ke kterému se dá vracet či navazovat v rámci vědeckých článků. Samotná implementace v Playwright má evidentně limity své použitelnosti pro komplexní analýzu API - to ale neznamená, že se je nepodaří v budoucnu odstranit či najít jiný vhodnější testovací framework.
Evaluation level: průměrně obtížné zadání
Práce je součástí dlouhodobých výzkumných aktivit NES@FIT. Cílem práce bylo rešeršovat skripty využívající malé lži, vybrat z nich vhodnou podmnožinu, programaticky je testovat a analyzovat v kontextu rozšíření JShelter. Zadání tak, jak jej specifikoval vedoucí, považuji za průměrně obtížné.
Grade proposed by reviewer: D
Responsibility: Mgr. et Mgr. Hana Odstrčilová