Bachelor's Thesis

Modern approaches to authentication in multiplatform client applications

Final Thesis 6.64 MB Appendix 7.72 MB

Author of thesis: Bc. Adam Kubát

Acad. year: 2025/2026

Supervisor: Ing. Minh Tran

Reviewer: Ing. Petr Dzurenda, Ph.D.

Abstract:

This thesis addresses the design and implementation of an authentication system for a loyalty programme incorporating multi-factor authentication. The system combines biometric face recognition using the ArcFace model with authentication via password, PIN code and biometrics. User private keys are protected in the hardware storage of the end device through Android Keystore and iOS Secure Enclave. The thesis describes the system architecture utilising edge devices for face recognition, a server layer for identity verification and a mobile application as an authenticator. Communication between components is secured through JWT tokens. The practical part focuses on the development of the authenticator application in Kotlin Multiplatform targeting the Android and iOS platforms. The thesis also includes testing of the reliability of biometric recognition under various conditions and an evaluation of system compatibility.

Keywords:

Identification, authentication, authorization, biometrics, facial recognition, Kotlin Multiplatform, multi-factor authentication, ArcFace, Android Keystore, Secure Enclave, JWT, loyalty program, OAuth 2.0

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci a odpověděl na otázky členů komise a oponenta. Otázky: 1) Popište pomocí sekvenčního diagramu životní cyklus mobilního autentikátoru od fáze registrace až po autentizaci. 2) V rámci procesu autentizace dosahujete přesnosti 0,736. Jaký vliv na dosažené výsledky měly vámi navržené optimalizační mechanismy a volba trénovacího a testovacího datasetu? 3) Z jakého důvodu byla přesnost a spolehlivost biometrického ověření obličeje testována pouze na pěti fotografiích jednoho uživatele? 4) Jaké jsou rozdíly implementace v Android a iOS s přihlédnutím na použité knihovny a multiplatformu?

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (BPC-IBE)

Composition of Committee

doc. Ing. Jan Jeřábek, Ph.D. (předseda)
doc. Ing. Ivo Lattenberg, Ph.D. (místopředseda)
Mgr. Martin Erlebach (člen)
Ing. Eva Holasová, Ph.D. (člen)
Ing. Petr Ilgner, Ph.D. (člen)
Ing. Kryštof Zeman, Ph.D. (člen)
Ing. Martin Rusz, Ph.D. (člen)

Supervisor’s report
Ing. Minh Tran

Bakalářská práce se zabývá návrhem a implementací multiplatformní mobilní aplikace autentizátoru pro věrnostní program VUT v Kotlin Multiplatform. Výsledkem je funkční Android aplikace implementující vícefaktorovou autentizaci zahrnující přihlášení heslem a PIN kódem, biometrické ověření, přihlášení prostřednictvím Google a pozvánkový systém s věkovou verifikací přes BankID. Zadání bylo splněno. Implementace pro platformu iOS zůstala nedokončena z důvodu nedostupnosti vývojového prostředí macOS.

Silnou oblastí je implementace biometrické autentizace s asymetrickým klíčovým párem EC P-256 uloženým v Android Keystore s podporou StrongBox nebo TEE. Použití třídy BIOMETRIC_STRONG a nastavení politiky invalidace klíče při přidání nové biometriky svědčí o důkladném porozumění bezpečnostním mechanismům platformy. Challenge-response protokol inspirovaný standardem FIDO2 je implementován správně, včetně invalidace nonce po každém použití jako ochrany proti útokům přehráním. Pozvánkový systém s nezávislým ověřením BankID tokenu na straně serveru je architektonicky čistě navržen. Propojení teoretické části s implementací je konzistentní a pečlivě zdůvodněné.

Hlavním nedostatkem je použití SHA-256 bez funkce pro derivaci klíče pro hashování hesel i PIN kódů, přestože student v bezpečnostní analýze sám identifikuje PBKDF2 nebo Argon2 jako vhodnou alternativu a tuto jednoduchou opravu neimplementoval. Benchmark modelu ArcFace byl proveden na velmi malém vzorku dvou osob, z něhož nelze statisticky vyvozovat obecnou přesnost systému.

Student docházel na konzultace pravidelně, plnil dohodnuté milníky. Rozsah práce je přiměřený tématu, text je jazykově na dobré úrovni s konzistentní terminologií a literatura pokrývá relevantní standardy a primární zdroje. Práci doporučuji k obhajobě s celkovým hodnocením 90 bodů / A. Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Petr Dzurenda, Ph.D.

Prezentační úroveň práce i její rozsah jsou na dobré úrovni. Z formálního hlediska práce obsahuje několik nedostatků: některé zkratky nejsou definovány při prvním výskytu, některé obrázky mají nedostatečné rozlišení a některé stránky obsahují větší množství nevyužitého prostoru apod. Práce s odbornou literaturou je na dobré úrovni, avšak některé reference jsou uváděny nejednoznačně. Autor například uvádí více referencí za jedním odstavcem, takže není zřejmé, ke kterým tvrzením se jednotlivé odkazy vztahují. Naopak některé reference jsou redundantní, kdy student v rámci jedné kapitoly odkazuje za každým odstavcem na stejný zdroj. Po odborné stránce je práce na velmi dobré úrovni. Student navrhl a implementoval prototyp mobilní aplikace fungující jako mobilní autentikátor. Mobilní autentikátor pro věrnostní program kombinuje biometrické rozpoznávání obličeje založené na modelu ArcFace s autentizací pomocí hesla, PIN kódu a biometrických mechanismů zařízení. Komunikace mezi jednotlivými komponentami systému je zabezpečena pomocí tokenů JWT a OAuth 2.0. V práci postrádám popis komunikačního modelu systému a životního cyklu mobilního autentikátoru. Výsledky přesnosti biometrické autentizace jsou sice uvedeny, avšak není zřejmé, jakým způsobem k nim student dospěl. Celkově hodnotím práci známkou A, 90 bodů. Topics for thesis defence:
  1. Popište pomocí sekvenčního diagramu životní cyklus mobilního autentikátoru od fáze registrace až po autentizaci.
  2. V rámci procesu autentizace dosahujete přesnosti 0,736. Jaký vliv na dosažené výsledky měly vámi navržené optimalizační mechanismy a volba trénovacího a testovacího datasetu?
  3. Z jakého důvodu byla přesnost a spolehlivost biometrického ověření obličeje testována pouze na pěti fotografiích jednoho uživatele?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

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