Bachelor's Thesis

Optimizing JShelter Performance

Final Thesis 2.66 MB

Author of thesis: Ing. Martin Zmitko

Acad. year: 2022/2023

Supervisor: Ing. Radek Hranický, Ph.D.

Reviewer: Ing. Libor Polčák, Ph.D.

Abstract:

This thesis aims to lessen the impact of JShelter on the browsing experience. The goal was accomplished by measuring the performance of JShelter and analyzing the hotspots that impacted browsing performance the most. Finally, optimizations based on analysis results while leaving the high provided level of protection uncompromised were proposed and implemented. JShelter's fingerprinting protections based on image and audio data processing were optimized by extending them with a more efficient implementation using WebAssembly, which, in some cases, was faster by up to 50 times. The performance while loading web pages was increased with changes in configuration loading and injection mechanisms, on average by 13.5 %.

Keywords:

JShelter, fingerprinting, browser extension, web security, JavaScript, profiling, optimization, WebAssembly, AssemblyScript

Date of defence

12.06.2023

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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 přítomných. 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 B.

Topics for thesis defence

  1. V sekci 3.1 necitujete publikaci [20], i když z ní zjevně vycházíte. Obdobně postupujete i v jiných místech kapitoly 3. Dopustil jste se tohoto prohřešku jednorázově, nebo jste podobně postupoval i v jiných částech práce?
  2. Proč nebyly výsledky práce průběžně reportovány projektu JShelter a NSCL?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Dr. Ing. Otto Fučík (člen)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Vladimír Bartík, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)

Supervisor’s report
Ing. Radek Hranický, Ph.D.

Během řešení se objevilo několik překážek, které byly způsobeny náročností zadání. Pan Zmitko nicméně všechny úspěšně překonal a výsledkem je vynikající BP. Oceňuji především kvalitní realizaci experimentů a důsledné zhodnocení výsledků. Výsledky práce jsou přínosné a budou integrovány do nástroje JShelter.


Hodnotím na pomezí "A" a "B", blíže k "A".

Evaluation criteria Verbal classification
Informace k zadání

Cílem práce bylo identifikovat a optimalizovat kritická místa nástroje JShelter. Zadání bylo náročnější s ohledem na nutnost zorientovat se v poměrně rozsáhlém kódu od více různých autorů. Další překážkou byla absence vhodných nástrojů pro profilování kódu u rozšíření webových prohlížečů. Zadání považuji za splněné v plném rozsahu.

Práce s literaturou

Student využil doporučené literatury a další si sám aktivně dohledal. Práce obsahuje celkem 25 zdrojů. Kvalita i kvantita je na bakalářskou práci nadprůměrná.

Aktivita během řešení, konzultace, komunikace

Student byl během řešení aktivní a na konzultace docházel připraven. Mírné zpoždění práce nabrala při profilaci nástroje JShelter a identifikaci kritických míst. To bylo ale způsobeno spíše náročností zadání než nezodpovědností studenta. Student nicméně zdržení dohnal a práci stihl zdárně dokončit.

Aktivita při dokončování

Práci jsem k připomínkování obdržel sice v předstihu, bohužel však v nekompletní verzi. Student nicméně mé připomínky zapracoval a chybějící pasáže dopracoval do kvalitní podoby.

Publikační činnost, ocenění

Zdrojové kódy optimalizovaného rozšíření student zveřejnil na portálu Github pod licencí GNU GPL v3.0.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Libor Polčák, Ph.D.

Pan Zmitko dokázal splnit zadání práce. Navrhovaná urychlení vyžadovala detailní pochopení cizího kódu. Výsledky práce ukazují výrazná urychlení. Autor výsledky práce prezentoval na meetingu projektu JShelter a sklidil úspěch. Navrhuji práci hodnotit jako výbornou.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Zadání vyžadovalo pochopit technolgie okolo webových rozšíření, JavaScriptu, WebAssembly, měření a zlepšování výkonu a další. Vzhledem k tomu, že jde spíše o témata z magisterského studia, hodnotím zadání jako obtížnější.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Text práce je obsahově i délkou spíše v rozsahu práce diplomové. Ze čtení jsem neměl pocit, že by se nějaká část měla odstranit.

Prezentační úroveň technické zprávy

Práce má logickou strukturu a velmi pěkně se čte.

Dojem však kazí nepravdivé informace, které se v práci vyskytují. Např. na str. 10 je uvedeno, že JShelter brání pasivnímu získávání otisku, ale to není pravda.

90
Formální úprava technické zprávy

Obrázky 4.1 a 4.2 jsou čitelné jen v elektronické verzi práce s velkým zvětšením. Narazil jsem ještě na jiné velmi drobné typografické nedostatky. Celkově je však práce typograficky i jazykově zdařilá.

85
Práce s literaturou

Práce odkazuje na celou řadu zdrojů.

Zarazilo mě však, že sekce 3.1 zjevně přebírá klasifikaci ze článku, kde jsem hlavním autorem, aniž by tento článek v daném místě řádně ocitovala. Podobně by se dalších částech kapitoly 3.1 dalo najít řada míst, kde by se dalo odkázat na zdroj [20], či na zdroj ve [20] obsažený. Např. v sekci 3.2.3 je citovaná práce [18] a žádná další literatura, i když jsou v textu odstavce zmíněné informace, které v [18] zmíněné nejsou (implementace byla později změněna).

85
Realizační výstup

Práce obsahuje testy. Autorův přínos je jasně patrný. Rychlost kódu je dokumentována relevantními měřeními a pochopitelně okomentována.

100
Využitelnost výsledků

Je škoda, že výsledky práce nebyly průběžně reportovány projektu JShelter. Na druhou stranu historie v gitu odhaluje vynikající práci autora. Jednotlivé úpravy jsou správně rozdělené a jasně a detailně komentované. Po dodatečném ověření správnosti lze očekávat převzetí celé řady, ne-li všech úprav projektem JShelter.

Topics for thesis defence:
  1. V sekci 3.1 necitujete publikaci [20], i když z ní zjevně vycházíte. Obdobně postupujete i v jiných místech kapitoly 3. Dopustil jste se tohoto prohřešku jednorázově, nebo jste podobně postupoval i v jiných částech práce?
  2. Proč nebyly výsledky práce průběžně reportovány projektu JShelter a NSCL?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová