bakalářská práce

Optimalizace výkonu nástroje JShelter

Text práce 2.66 MB

Autor práce: Ing. Martin Zmitko

Ak. rok: 2022/2023

Vedoucí: Ing. Radek Hranický, Ph.D.

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

Abstrakt:

Cílem této práce je zmírnit dopad nástroje JShelter na výkon při prohlížení webu. Toho bylo docíleno měřením výkonu nástroje JShelter a analýzou jeho kritických míst s největším vlivem na plynulost prohlížení, na jejímž základu byly navrhnuty a implementovány optimalizace, které plynulost zlepšily se zachováním stejně vysoké úrovně ochrany. Mechanizmy ochran založené na zpracování objemných zvukových a obrazových dat byly zrychleny rozšířením o efektivnější implementaci využívající technologii WebAssembly, což přineslo až padesátinásobné zrychlení. Celkový výkon načítání stránek byl zlepšen úpravami mechanizmů načítání konfigurace a zavádění ochrany do stránek, průměrně o 13,5 %.

Klíčová slova:

JShelter, fingerprinting, rozšíření prohlížeče, webová bezpečnost, JavaScript, profilování, optimalizace, WebAssembly, AssemblyScript

Termín obhajoby

12.06.2023

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

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.

Otázky k obhajobě

  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?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

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)

Posudek vedoucího
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".

Kritérium hodnocení Slovní hodnocení
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.

Výsledný počet bodů navržený vedoucím: 90

Známka navržená vedoucím: A

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.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: 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í

Stupeň hodnocení: zadání splněno

Rozsah technické zprávy

Stupeň hodnocení: 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.

Otázky k obhajobě:
  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?
Výsledný počet bodů navržený oponentem: 90

Známka navržená oponentem: A

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová