MeshCore encryptie details
Alles over de huidige MeshCore encryptie: AES-128, MAC-controle, gedeelde sleutels en het praktische security model
Hoe MeshCore je data beveiligt
De huidige MeshCore implementatie gebruikt volgens de upstream broncode en documentatie AES-128 block-encryptie met een HMAC-SHA256 MAC die wordt afgekapt. Dat is iets anders dan AES-256.
Het security model is grotendeels gebaseerd op gedeelde sleutels: wie de juiste sleutel heeft, kan relevante privé payloads ontsleutelen. Dat is praktisch voor mesh-netwerken, maar vraagt ook om zorgvuldige omgang met sleutels en verwachtingen.
In deze technische gids leggen we uit wat er nu aantoonbaar in MeshCore zit, wat dat betekent voor privacy, en waar de beperkingen liggen. Zo blijft de uitleg technisch nuttig zonder meer te claimen dan de implementatie waarmaakt.
Security lagen in MeshCore
Payload-encryptie (AES-128)
Privé payloads worden versleuteld voordat ze over de radio gaan. In de huidige implementatie gebeurt dat met AES-128. Alleen nodes met de juiste gedeelde sleutel kunnen de inhoud lezen.
Device-level keys
Elk device heeft een unieke device key voor admin functies. Dit voorkomt dat willekeurige mensen je node kunnen herconfigureren, zelfs op een public channel.
Integriteit en beheer
MeshCore gebruikt daarnaast een MAC om gewijzigde ciphertext te detecteren. Voor beheer- en adminfuncties gelden aparte sleutels en rechten, zodat niet iedereen je node kan aanpassen.
Huidige encryptie-opzet
Volgens de huidige MeshCore broncode wordt een payload versleuteld met AES-128 block-encryptie. De officiële documentatie noemt daarbij zero padding en een HMAC-SHA256 MAC die voor transport wordt afgekapt.
Encryption process: 1. Gedeelde sleutel → AES-128 encryptie van de payload 2. Laatste blok wordt indien nodig met null-bytes aangevuld 3. Over de ciphertext wordt een MAC berekend 4. Ontvanger controleert eerst de MAC en ontsleutelt daarna de payload
Dit model is relatief licht en eenvoudig voor embedded hardware. Tegelijk is het minder modern dan schema's met een IV/nonce en authenticated encryption, dus het is verstandig om geen zwaardere claims te doen dan de implementatie ondersteunt.
PSK key management
Key generatie
Gebruik sterke, willekeurige gedeelde sleutels. In de MeshCore documentatie en broncode kom je 16-byte secrets tegen voor de huidige encryptielaag; in andere delen van het systeem kunnen langere secret-waarden voorkomen. Kies in elk geval geen zwakke of voorspelbare sleutel.
Key distributie
Gedeelde sleutels moeten veilig worden gedeeld met groepsleden. Doe dat via een vertrouwd kanaal of directe configuratie, en nooit via publieke radio of een onbeveiligd bericht.
Key rotatie
Wissel sleutels als daar aanleiding voor is, bijvoorbeeld wanneer een apparaat zoekraakt of iemand de groep verlaat. Dat beperkt de schade als een sleutel ooit uitlekt.
Default keys
Ga er niet vanuit dat standaard- of publiek gedeelde sleutels privacy geven. Zodra veel mensen dezelfde sleutel kennen, is de vertrouwelijkheid in de praktijk weg.
Technische specificaties
| Parameter | Waarde | Beschrijving |
|---|---|---|
| Encryption algorithm | AES-128 block-encryptie | Huidige implementatie in de broncode gebruikt AES128 op 16-byte blokken |
| Key length | 128 bits (16 bytes) | De encryptiefunctie gebruikt een 16-byte sleutel voor de packet-encryptie |
| Padding | Zero padding | De laatste block wordt met null-bytes aangevuld als de payload niet exact past |
| Hardware acceleration | Ja (ESP32) | Op geschikte hardware kan AES efficiënt worden uitgevoerd |
| Performance impact | <1 ms per packet | De cryptolaag is relatief licht voor embedded apparaten |
| Integriteitscontrole | HMAC-SHA256 (afgekapt) | De documentatie noemt een afgekorte MAC over de ciphertext |
Voordelen van MeshCore encryptie
Praktische basisbeveiliging
MeshCore biedt een echte encryptielaag voor privé verkeer. Dat is beter dan onversleuteld uitzenden, maar het blijft belangrijk om nuchter te blijven over de precieze sterkte van de huidige opzet.
Efficient op embedded hardware
De gebruikte cryptolaag is licht genoeg voor embedded hardware en voegt in de praktijk weinig extra belasting toe.
Gedeelde sleutels voor besloten gebruik
Voor kleinere groepen is een gedeelde sleutel praktisch: iedereen met de juiste configuratie kan meedoen zonder zware certificaat-infrastructuur.
Eenvoudig te configureren
De configuratie blijft relatief eenvoudig. Je hoeft geen uitgebreide PKI of certificaatbeheer op te zetten om privé verkeer mogelijk te maken.
Transparant voor gebruiker
Encryptie gebeurt automatisch. Gebruiker merkt niets van encrypt/decrypt proces. Berichten zijn gewoon leesbaar in de app.
Admin channel protection
Beheerfuncties zijn gescheiden van normaal verkeer, zodat niet iedere deelnemer automatisch ook adminrechten heeft.
Veelgestelde vragen
Zijn alle berichten versleuteld in MeshCore?
Nee. Publiek verkeer blijft publiek. Voor privé verkeer gebruikt MeshCore een encryptielaag met gedeelde sleutels, maar niet elk berichttype of elke situatie moet je automatisch als volledig privé beschouwen.
Kan iemand mijn berichten onderscheppen en lezen?
Op publiek verkeer: ja, dat kan worden meegelezen. Op privé verkeer met de juiste sleutel is de inhoud niet direct leesbaar voor buitenstaanders. LoRa blijft wel een broadcast-medium, dus metadata en verkeerspatronen blijven een aandachtspunt.
Hoe veilig is de huidige MeshCore encryptie echt?
Sterker dan onversleutelde radio, maar niet iets wat je als state-of-the-art authenticated encryption moet presenteren. De huidige implementatie gebruikt AES-128 block-encryptie met MAC-controle; dat is bruikbaar, maar de gekozen modus heeft ook bekende beperkingen.
Wat gebeurt er als iemand mijn PSK te weten komt?
Dan kan die persoon privé verkeer dat op die sleutel vertrouwt in principe meelezen of nabootsen. Wissel de sleutel daarom direct als je denkt dat die is uitgelekt, en deel sleutels alleen via een vertrouwd kanaal.
Ondersteunt MeshCore end-to-end encryptie tussen individuen?
Je moet hier voorzichtig mee zijn. LocalMesh presenteert MeshCore liever niet als een klassiek per-gebruiker E2E-model zoals bij moderne chatapps. De huidige implementatie draait vooral om gedeelde sleutels en protocol-encryptie voor privé verkeer.
Heeft encryptie invloed op bereik of batterijduur?
De impact is doorgaans klein. Encryptie kost altijd iets aan verwerking, maar op moderne boards is dat in de praktijk meestal niet de bottleneck vergeleken met radio, antenne, plaatsing en netwerkdichtheid.
Beveilig je MeshCore communicatie
Klaar om een versleuteld mesh-netwerk op te zetten? Kies je apparaat en configureer je privé verkeer met realistische verwachtingen over de huidige MeshCore encryptie.