diplomová práce

Peer-to-Peer (P2P) aplikace pro zasílání zpráv

Text práce 2.85 MB Příloha 417.72 kB

Autor práce: Ing. Jan Filip Žáček

Ak. rok: 2025/2026

Vedoucí: Ing. Minh Tran

Oponent: Ing. Petr Ilgner, Ph.D.

Abstrakt:

Diplomová práce se zaměřuje na oblast decentralizované komunikace, která představuje
alternativu k centralizovaným platformám závislým na serverové infrastruktuře třetích
stran a náchylným ke sběru dat nebo cenzuře.
Řešeným problémem je návrh a implementace bezpečné P2P chatovací aplikace fungující
výhradně přes Bluetooth, bez nutnosti síťového připojení nebo registrace účtu, určené
pro malé až středně velké skupiny uživatelů na mobilních zařízeních.
Teoretická část práce popisuje historii a architekturu P2P sítí a dále se věnuje klíčovým
mechanismům využívaným v těchto systémech, včetně směrovacích protokolů, vyhledávání uzlů, bootstrappingu, správy dat a kryptografických metod.
Na základě této analýzy byl vytvořen funkční prototyp aplikace. Byly navrženy a implementovány tři vlastní protokoly: protokol pro opětovné připojení k místnosti, protokol pro
mesh směrování přes mezilehlé uzly a transportní protokol pro serializaci zpráv. Autentizace je postavena na Schnorrově protokolu s Fiat-Shamirovou transformací tak, aby heslo
místnosti nebylo během handshaku přenášeno. Veškerá následná komunikace je chráněna
symetrickým šifrováním s autentizací. Aplikace je navržena pro multiplatformní nasazení,
avšak testování probíhalo výhradně na zařízeních Android z důvodu omezené podpory
Bluetooth Classic v multiplatformním vývoji.
Výsledný prototyp potvrzuje realizovatelnost bezpečné decentralizované P2P komunikace
na mobilních zařízeních. Komunikace v režimu jeden na jednoho byla ověřena end-to-end,
zatímco komunikace v mesh scénáři je architektonicky podporována, avšak nebyla plně
ověřena z důvodu nedostatečného počtu dostupného hardwaru při testování.

Klíčová slova:

Peer–to–Peer, Decentralizované Posílání Zpráv, Neinteraktivní Schnorrův Protokol, Fiat–Shamirova Transformace, Zabezpečené Posílání Zpráv, Bluetooth, Mesh, Kotlin Multiplatform, Mobilní Aplikace

Termín obhajoby

09.06.2026

Výsledek obhajoby

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

znamkaBznamka

Klasifikace

B

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil diplomovou práci a odpověděl na otázky členů komise a oponenta. Otázky: 1) Jak by se navržená aplikace vypořádala s tím, kdy by byla dostupná Bluetooth spojení obsazena jinými BT zařízeními (např. sluchátka, hodinky)? Bylo by výhodnější použití GATT? 2) Identifikátor místnosti je odvozován z názvu Bluetooth adaptéru a je aktivně zveřejňován okolním zařízením. Může to vést k odhalení existence místnosti a oslabení soukromí i anonymity uživatelů? 3) Myslíte si, že použitý směrovací algoritmus je správná volba pro vaši aplikaci?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační bezpečnost (MPC-IBE)

Složení komise

prof. Ing. Jan Hajný, Ph.D. (předseda)
JUDr. Ing. František Kasl, Ph.D. (místopředseda)
Ing. Jan Látal, Ph.D. (člen)
Ing. Petr Ilgner, Ph.D. (člen)
Ing. František Urban, Ph.D. (člen)
Ing. Willi Lazarov (člen)
Ing. Peter Balušík (člen)
doc. Ing. Karol Molnár, Ph.D. (člen)

Posudek vedoucího
Ing. Minh Tran

Diplomová práce se zabývá návrhem a implementací decentralizované P2P chatovací aplikace fungující výhradně přes Bluetooth bez serverové infrastruktury nebo registrace účtu. V teoretické části jsou přehledně pokryty principy P2P sítí, směrovací protokoly, bootstrapping a kryptografické mechanismy. Praktická část se věnuje návrhu tří vlastních komunikačních protokolů (BFP, BNP a BTP) nad vrstvou Bluetooth RFCOMM, autentizaci na bázi Schnorrova protokolu s Fiat-Shamirovou transformací a šifrování AES-256-GCM s PBKDF2. Zadání práce je splněno a výsledný prototyp je veřejně dostupný na GitHubu.

Nejsilnější stránkou práce je funkční Android prototyp s ověřenou komunikací end-to-end v režimu 1:1 včetně autentizace, šifrování, předání role serveru a persistence dat. Kryptografický návrh je technicky solidní, dobře zdůvodněný a odkazuje na primární zdroje. Architektura aplikace je nadprůměrná, důsledné oddělení vrstev podle Clean Architecture a izolace platformně specifického kódu za rozhraními přispívají k přehlednosti, testovatelnosti a rozšiřitelnosti. Student pracoval samostatně a iniciativně, pravidelně konzultoval a projevoval zájem nad rámec zadání.

Nedostatkem práce je nedokončená implementace mesh komunikace, která představuje architektonicky nejambicióznější část práce. Transportní vrstva pro předávání zpráv přes více hopů nebyla dokončena a funkčnost v režimu 1:N nebyla na fyzických zařízeních potvrzena. Výkonnostní měření by bylo přínosnější provést na reálném Android hardware s více zařízeními a statisticky významými výsledky. Bezpečnostní analýza pokrývá relevantní útoky po vrstvách, ale postrádá formální model hrozeb. Práce obsahuje drobné formální nedostatky, překlepy v textu a duplicitu referencí [37] a [38].

Práci doporučuji k obhajobě s celkovým hodnocením 90 bodů / A. Výsledný počet bodů navržený vedoucím: 90

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

Posudek oponenta
Ing. Petr Ilgner, Ph.D.

Předložená diplomová práce se zabývá návrhem a implementací decentralizované mobilní aplikace pro zasílání zpráv. V práci je kladen vysoký důraz na bezpečnost a anonymitu a poskytuje návrh vlastních Peer-To-Peer (P2P) protokolů. Zadání práce považuji za značně náročné, protože vyžaduje implementaci vlastních protokolů či nasazení pokročilé kryptografie.

Praktickou část tvoří implementace prototypu chatovací aplikace pro platformu Android. Návrh komunikačního protokolu i bezpečnostního modelu považuji za zdařilý, avšak implementace mesh komunikace není úplná. Ačkoliv je použit multiplatformní framework, specifický kód pro iOS a desktop není součástí odevzdané práce, což autor omlouvá nepřipraveností frameworku. Programový kód je přehledný a dobře členěn. Výhradu mám ale ke stylu jeho komentování, v odevzdané verzi se vyskytují některé nic nevysvětlující komentáře (př. „hokus pokus“), mnoho částí je uvozeno jako TODO, což nesvědčí o zcela dokončené aplikaci. Za nešťastné považuji použití fixních časových konstant (sleep) při párování zařízení. Ocenil bych také přiložení zkompilované verze aplikace, zejména proto, že v odevzdané práci chybí postup zprovoznění aplikace, avšak ve webovém repozitáři, na který je v el. příloze uveden odkaz, je návod uveden.

Po formální stránce je práce na přijatelné úrovni. Její formální úroveň bohužel snižují četné překlepy. V seznamu zkratek nejsou uvedeny všechny použité zkratky. Seznam by měl být seřazen alfabeticky, některé zkratky také nejsou vysvětleny při prvním výskytu. Práce s literaturou je dobrá, práce cituje celkem 72 informačních zdrojů, včetně technických standardů nebo akademických prací. Reference [37] je duplicitní. S doporučenou literaturou student nepracoval.

Přes uvedené nedostatky ale s ohledem na obtížnost zadání a s ohledem na to, že se jedná o prototyp, považuji práci za zdařilou a doporučuji ji obhajobě s hodnocením C / 78b. Otázky k obhajobě:
  1. Jak by se navržená aplikace vypořádala s tím, kdy by byla dostupná Bluetooth spojení obsazena jinými BT zařízeními (např. sluchátka, hodinky)? Bylo by výhodnější použití GATT?
  2. Identifikátor místnosti je odvozován z názvu Bluetooth adaptéru a je aktivně zveřejňován okolním zařízením. Může to vést k odhalení existence místnosti a oslabení soukromí i anonymity uživatelů?
Výsledný počet bodů navržený oponentem: 78

Známka navržená oponentem: C

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