Bezpieczny zdecentralizowany komunikator oparty na sieci Thread i najnowszych standardach kryptograficznych
Rozmiar pliku: 3.02 MB
Praca magisterska obroniona w PJATK.
Tytuł: Bezpieczny zdecentralizowany komunikator oparty na sieci Thread i najnowszych standardach kryptograficznych
Autorzy: Paweł Barczykowski, Aureliusz Sobieraj
Promotor: dr inż. Mariusz Trzaska, prof. PJATK
Streszczenie:
Niniejsza praca przedstawia projekt oraz implementację zdecentralizowanego komunikatora tekstowego, zapewniającego szyfrowanie wiadomości od końca do końca odporne na ataki z wykorzystaniem komputerów kwantowych. System zbudowano w oparciu o sieć kratową działającą na protokole Thread (IEEE 802.15.4), co eliminuje konieczność stosowania centralnej infrastruktury serwerowej. Rolę węzłów sieci
pełnią mikrokomputery Raspberry Pi z modułami radiowymi przeprogramowanymi na OpenThread, na których działa aplikacja backendowa napisana w języku Java z wykorzystaniem frameworka Spring Boot, reaktywnego stosu Spring WebFlux oraz interfejsu GraphQL. W odróżnieniu od istniejących rozwiązań komunikatorów zdecentralizowanych, system łączy sieć kratową o niskim poborze energii z kryptografią
postkwantową, co stanowi podejście dotychczas niestosowane w tej klasie urządzeń.
pełnią mikrokomputery Raspberry Pi z modułami radiowymi przeprogramowanymi na OpenThread, na których działa aplikacja backendowa napisana w języku Java z wykorzystaniem frameworka Spring Boot, reaktywnego stosu Spring WebFlux oraz interfejsu GraphQL. W odróżnieniu od istniejących rozwiązań komunikatorów zdecentralizowanych, system łączy sieć kratową o niskim poborze energii z kryptografią
postkwantową, co stanowi podejście dotychczas niestosowane w tej klasie urządzeń.
Bezpieczeństwo komunikacji oparto na dwóch uzupełniających się mechanizmach kryptograficznych. Nawiązanie sesji realizowane jest przez protokół PQX3DH, stanowiący rozszerzenie standardowego protokołu X3DH o hybrydową wymianę kluczy z wykorzystaniem mechanizmu enkapsulacji Kyber-768, należącego do rodziny algorytmów postkwantowych zatwierdzonych przez NIST. Dalsza wymiana wiadomości zabezpieczona jest protokołem podwójnej zapadki, zapewniającym utajnianie z wyprzedzeniem oraz bezpieczeństwo po naruszeniu. Klucze kryptograficzne przechowywane są w Magazynie kluczy Android i chronione uwierzytelnieniem biometrycznym.
Klientem systemu jest natywna aplikacja na platformę Android, napisana w języku Kotlin, z interfejsem użytkownika zbudowanym w Jetpack Compose, komunikująca się z węzłem sieci za pomocą biblioteki Apollo Kotlin oraz przechowująca historię rozmów lokalnie w bazie Room.
Przeprowadzone testy w konfiguracji dwu- i trójwęzłowej potwierdziły stabilność i poprawność działania systemu. Ponad siedmiodniowy test długotrwałej pracy sieci zakończył się stuprocentowym wskaźnikiem dostarczenia wiadomości, a uzgodnienie klucza sesji PQX3DH wykazało pełną zgodność po obu stronach komunikacji we wszystkich przeprowadzonych próbach. Uzyskane wyniki potwierdzają, że
połączenie zdecentralizowanej sieci Thread z postkwantowym szyfrowaniem od końca do końca stanowi realną alternatywę dla komunikatorów opartych na scentralizowanej infrastrukturze.
Przeprowadzone testy w konfiguracji dwu- i trójwęzłowej potwierdziły stabilność i poprawność działania systemu. Ponad siedmiodniowy test długotrwałej pracy sieci zakończył się stuprocentowym wskaźnikiem dostarczenia wiadomości, a uzgodnienie klucza sesji PQX3DH wykazało pełną zgodność po obu stronach komunikacji we wszystkich przeprowadzonych próbach. Uzyskane wyniki potwierdzają, że
połączenie zdecentralizowanej sieci Thread z postkwantowym szyfrowaniem od końca do końca stanowi realną alternatywę dla komunikatorów opartych na scentralizowanej infrastrukturze.
Słowa kluczowe: komunikacja zdecentralizowana, sieć kratowa, Thread, szyfrowanie od końca do końca, kryptografia postkwantowa, PQX3DH, Kyber-768, podwójna zapadka, Android, Spring Boot
