MeshCore szczegóły szyfrowania
Wszystko o bieżącym szyfrowaniu MeshCore: AES-128, walidacja MAC, współdzielone sekrety i praktyczny model bezpieczeństwa
Jak MeshCore chroni Twoje dane
Według aktualnego kodu źródłowego i dokumentacji MeshCore bieżąca implementacja używa szyfrowania blokowego AES-128 razem ze skróconą MAC HMAC-SHA256. To nie jest to samo co AES-256.
Model bezpieczeństwa MeshCore opiera się na szyfrowaniu symetrycznym: każdy posiadający PSK może szyfrować i deszyfrować wiadomości. Jest to proste, ale skuteczne w przypadku sieci kratowych, w których masz zamkniętą grupę.
W tym przewodniku technicznym wyjaśniamy, jak działa szyfrowanie, jak zarządzać kluczami, jakie istnieją środki bezpieczeństwa i jakie są ograniczenia. Przed skonfigurowaniem szyfrowanej sieci zapoznaj się z kompromisami w zakresie bezpieczeństwa.
Warstwy zabezpieczeń w MeshCore
Szyfrowanie payloadu (AES-128)
Prywatne payloady są szyfrowane, zanim trafią do radia. W obecnej implementacji używa się do tego AES-128. Tylko węzły z poprawnym współdzielonym sekretem mogą odczytać treść.
Klucze na poziomie urządzenia
Każde urządzenie ma unikalny klucz urządzenia do funkcji administracyjnych. Zapobiega to ponownej konfiguracji Twojego węzła przez przypadkowe osoby, nawet na kanale publicznym.
Bezpieczeństwo kanału administratora
Kanały administracyjne zawsze mają oddzielny PSK. Zdalna konfiguracja jest możliwa tylko dla autoryzowanych węzłów posiadających klucz administratora.
Obecny model szyfrowania
Na podstawie aktualnego kodu źródłowego payload jest szyfrowany przy użyciu AES-128 w trybie blokowym. Oficjalna dokumentacja wspomina też o zero padding i skróconej HMAC-SHA256 do kontroli integralności.
Proces szyfrowania: 1. PSK (256-bitowy) + Licznik pakietów (IV) → AES-CTR 2. Ładunek zwykłego tekstu, zaszyfrowany strumień XOR → Tekst zaszyfrowany 3. Tekst zaszyfrowany + licznik wysyłany drogą radiową 4. Odbiorca: deszyfrowanie AES-CTR z tym samym PSK + licznikiem → Zwykły tekst
Zaletą trybu CTR jest to, że szyfrowanie i deszyfrowanie to ta sama operacja (XOR). Jest to szybkie na chipach ESP32, które mają sprzętową akcelerację AES. 256-bitowy klucz jest niezwykle trudny do wykorzystania metodą brute-force (zajęłoby to miliardy lat).
Zarządzanie kluczami PSK
Generacja klucza
PSK to 256-bitowe (32 bajty) losowe klucze. Zwykle reprezentowany jako ciąg base64 lub szesnastkowy. Generuj klucze za pomocą kryptograficznie bezpiecznego generatora losowego, a nie „hasła123”!
Dystrybucja klucza
PSK muszą być bezpiecznie udostępniane członkom grupy. Za pomocą kodu QR, konfiguracji USB lub bezpiecznego kanału. Nigdy nie wysyłaj kluczy za pośrednictwem niezaszyfrowanego radia lub publicznego Internetu.
Rotacja klucza
Ze względu na najlepszą praktykę w zakresie bezpieczeństwa okresowo zmieniaj PSK. Zwłaszcza, gdy członkowie grupy odchodzą. MeshCore obsługuje wiele kluczy jednocześnie, zapewniając płynne przejście.
Domyślne klucze
Kanał główny często nie posiada PSK (publicznego). Kanały dodatkowe zwykle korzystają z niestandardowych PSK. Istnieje standardowy klucz „AQ==”, ale jest on niebezpieczny, ponieważ wszyscy go znają!
Specyfikacje techniczne
| Parametr | Wartość | Opis |
|---|---|---|
| Algorytm szyfrowania | AES-128 w trybie blokowym | Bieżąca implementacja używa AES128 na blokach 16-bajtowych |
| Długość klucza | 128 bitów (16 bajtów) | Funkcja szyfrowania pakietów używa klucza 16-bajtowego |
| IV (wektor inicjujący) | Licznik pakietów | Unikalna wartość na pakiet, zapobiega atakom typu „replay”. |
| Przyspieszenie sprzętowe | Tak (ESP32) | ESP32 ma sprzętowy AES do szybkiego szyfrowania/deszyfrowania |
| Wpływ na wydajność | <1 ms na pakiet | Znikomy narzut dzięki sprzętowemu AES |
| Przekaż tajemnicę | NIE | Klucz symetryczny, bez PFS jak w TLS |
Korzyści z szyfrowania MeshCore
Bezpieczeństwo na poziomie wojskowym
Prywatny ruch MeshCore jest wyraźnie lepiej chroniony niż otwarta transmisja radiowa, ale ta strona nie powtarza już starych twierdzeń o AES-256.
Wydajny na sprzęcie wbudowanym
Sprzętowy AES na ESP32 sprawia, że szyfrowanie jest superszybkie (<1 ms). Brak zauważalnego wpływu na żywotność baterii i opóźnienia.
Klucze na kanał
Każdy kanał ma swój własny PSK. Różne poziomy bezpieczeństwa: publiczne kanały główne, prywatne kanały dodatkowe. Elastyczny w zależności od przypadku użycia.
Łatwy w konfiguracji
Konfiguracja PSK jest prosta: wpisz jeden 32-bajtowy klucz i gotowe. Brak skomplikowanego zarządzania certyfikatami, jak w przypadku protokołu TLS/HTTPS.
Przejrzyste dla użytkownika
Szyfrowanie odbywa się automatycznie. Użytkownik nie zauważa niczego na temat procesu szyfrowania/deszyfrowania. Wiadomości można odczytać w aplikacji.
Ochrona kanału administratora
Funkcje administracyjne są zawsze szyfrowane. Uniemożliwia atakującym przejęcie lub zmianę konfiguracji węzła drogą radiową.
Często zadawane pytania
Czy wszystkie wiadomości są szyfrowane w MeshCore?
Nie, szyfrowane są tylko wiadomości na kanałach z PSK. Podstawowy kanał jest często publiczny (bez PSK) i służy do ogólnej komunikacji. Możesz ustawić kanały dodatkowe jako prywatne, korzystając z własnego PSK. Ty wybierasz dla każdego kanału, czy szyfrowanie jest włączone.
Czy ktoś może przechwycić i przeczytać moje wiadomości?
Na kanałach publicznych bez PSK: tak, każdy z węzłem MeshCore może czytać dalej. Na kanałach szyfrowanych: nie, tylko osoby posiadające PSK mogą odszyfrować. LoRa radio jest nadawane, więc szyfrowanie jest niezbędne dla zachowania prywatności.
Na ile użyteczne jest obecne szyfrowanie MeshCore?
Jest wyraźnie lepsze niż wysyłanie wszystkiego otwartym tekstem przez radio, ale nie należy przedstawiać go jako najnowocześniejszego modelu authenticated encryption. Obecna implementacja używa szyfrowania blokowego AES-128 z walidacją MAC i ma znane ograniczenia.
Co się stanie, jeśli ktoś dowie się o moim PSK?
Wtedy ta osoba będzie mogła czytać i wysyłaćwszystkie wiadomości na tym kanale. Jest to wada szyfrowania symetrycznego. Dlatego natychmiast przełącz PSK, jeśli podejrzewasz, że klucz wyciekł. Udostępniaj PSK wyłącznie bezpiecznymi kanałami (nie drogą radiową!).
Czy MeshCore obsługuje kompleksowe szyfrowanie między osobami?
MeshCore ma szyfrowanie na poziomie kanału, a nie kompleksowe dla każdego użytkownika. Wszystkie węzły na zaszyfrowanym kanale mogą czytać nawzajem wiadomości. W przypadku prawdziwego E2E musiałbyś zbudować dodatkową warstwę szyfrowania na górze (prawdopodobnie za pomocą wtyczek).
Czy szyfrowanie wpływa na zasięg lub żywotność baterii?
Nie, znikomy wpływ. Sprzętowy AES na ESP32 jest superszybki (<1 ms na wiadomość). Nie zauważysz żadnej różnicy w zasięgu, prędkości lub żywotności baterii pomiędzy kanałami szyfrowanymi i niezaszyfrowanymi. Szyfrowanie jest bezpłatne pod względem wydajności.
Zabezpiecz swoją komunikację MeshCore
Gotowy do skonfigurowania szyfrowanej sieci mesh? Wybierz swoje urządzenie i skonfiguruj ruch prywatny z realistycznymi oczekiwaniami wobec obecnego szyfrowania MeshCore.