Bachelor's Thesis

Access control and security of an application managing a system based on the OpenCAN protocol

Final Thesis 2.62 MB Appendix 39.65 kB

Author of thesis: Bc. Petr Ondrušek

Acad. year: 2025/2026

Supervisor: Ing. Patrik Dobiáš

Reviewer: Ing. Minh Tran

Abstract:

This bachelor’s thesis addresses the design and implementation of secure user authentication in a multiplatform mobile application built on the Flutter framework, and the design and implementation of secure communication between the mobile application and an ESP32 module via Bluetooth Low Energy. The theoretical part analyses the Flutter framework and the ESP32 platform, their cryptographic and security capabilities including the BLE security model, and addresses the selection of a suitable database solution for the authentication system. The practical result consists of a functional login system of the mobile application connected to an authentication database and a secure communication channel between the application and the ESP32 module. For this channel, zero-knowledge password authentication using the SRP-6a protocol was chosen, followed by key derivation using HKDF-SHA-256 and authenticated encryption using AES-256-GCM. The device password never leaves either party in readable form, and all communication after successful authentication is simultaneously encrypted and protected against modification and replay. The functionality of the entire chain was verified by real interconnection of the firmware with the mobile application.

Keywords:

Flutter, Dart, ESP32, Bluetooth Low Energy, authentication, SRP-6a, AES-256-GCM, HKDF, encrypted communication, mobile application, multiplatform development

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Otázky oponenta: Jak byste přepracoval odvození relačních klíčů, aby útočník, který odposlechne celý SRP handshake, nedokázal odvodit klíče relace? Zadání požaduje rozdělení práv podle rolí, v řešení se ale role jen načítá a podmiňuje navigaci. Jak by vypadalo vynucení oprávnění na straně ESP32 a proč nestačí rozhodovat o přístupu jen v klientské aplikaci? 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.

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (BPC-IBE)

Composition of Committee

doc. Ing. Jiří Hošek, Ph.D. (předseda)
doc. Ing. Petr Sysel, Ph.D. (místopředseda)
Mgr. Andrej Krištofík, Ph.D. (člen)
Ing. Martin Štůsek, Ph.D. (člen)
Ing. Radek Možný, Ph.D. (člen)
Ing. Michal Lares, Ph.D. (člen)
Ing. Patrik Dobiáš (člen)

Supervisor’s report
Ing. Patrik Dobiáš

Bakalářská práce se zabývá řízením přístupu a zabezpečením systému implementujícího OpenCAN, včetně komunikace mezi mobilní aplikací a modulem ESP32. V rámci teoretické části práce se student hlavně zaměřil na možnosti zabezpečení BLE komunikace mezi aplikací a ESP32 pomocí. Na kterou navázal návrhem a výběrem vhodných kryptografických primitiv. V praktické části student implementoval funkční aplikaci umožňující odlišné řízení přístupu na základě uživatelských práv a dále implementoval zabezpečenou komunikaci přes BLE jak na straně aplikace, tak na straně ESP32. Celkový záběr práce je velmi komplexní - zahrnuje mobilní aplikaci, bezpečnou správu uživatelského přístupu prostřednictvím vhodně navržené databáze a komunikaci s ESP32 pomocí vhodně zvolených kryptografických primitiv. Cíle práce úspěšně splnil a výsledná aplikace má využití v rámci práce, kde student pracuje. Po formální stránce je práce na velmi dobré úrovni. Student pracoval převážně samostatně a konzultoval pouze když to bylo potřeba. Práci navrhuji k obhajobě s hodnocením A (98 bodů). Points proposed by supervisor: 98

Grade proposed by supervisor: A

Reviewer’s report
Ing. Minh Tran

Bakalářská práce se zabývá bezpečnou autentizací uživatele v multiplatformní aplikaci ve frameworku Flutter a implementací zabezpečeného komunikačního kanálu mezi aplikací a modulem ESP32 přes Bluetooth Low Energy. Tento kanál zahrnuje autentizaci protokolem SRP-6a, derivaci klíčů funkcí HKDF-SHA-256 i autentizované šifrování AES-256-GCM, je realizován ve firmwaru i mobilní aplikaci a ověřen reálným propojením na Androidu i iOS. Zadání považuji za splněné z větší části, řízení přístupu podle rolí však zůstalo pouze připravené.
Silnou stránkou je promyšlený a věcně správný bezpečnostní návrh. Oceňuji oddělené klíče pro každý směr přenosu, ochranu proti přehrání i vázání šifrového textu na konkrétní charakteristiku. Nadprůměrná je i softwarová architektura, modularizace a oddělení vrstev v aplikaci i firmwaru.
Hlavním nedostatkem je způsob odvození klíčů pro šifrování. Relační klíče se odvozují z hodnoty M2, která se veřejně přenáší po rádiovém kanálu, zatímco sůl i parametry derivace jsou staticky v kódu a lze je získat reverzním inženýrstvím. Pasivní útočník proto dokáže klíče dopočítat a tato část řešení není bezpečná. Dalším nedostatkem je, že zvolený způsob měření výkonu neposkytuje statisticky významné výsledky.
Po formální stránce je text čitelný, dobře strukturovaný a srozumitelný, propojení teoretické a praktické části je konzistentní a práce s literaturou je solidní a opřená o primární zdroje. Práci doporučuji k obhajobě s celkovým hodnocením 82 bodů / B. Topics for thesis defence:
  1. Jak byste přepracoval odvození relačních klíčů, aby útočník, který odposlechne celý SRP handshake, nedokázal odvodit klíče relace?
  2. Zadání požaduje rozdělení práv podle rolí, v řešení se ale role jen načítá a podmiňuje navigaci. Jak by vypadalo vynucení oprávnění na straně ESP32 a proč nestačí rozhodovat o přístupu jen v klientské aplikaci?
Points proposed by reviewer: 82

Grade proposed by reviewer: B

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