Security & Encryptie

MeshCore encryptie details

Alles over AES-256 encryptie, PSK key management, het security model en per-channel versleuteling in MeshCore mesh-netwerken

Hoe MeshCore je data beveiligt

MeshCore gebruikt AES-256 encryptie om berichten te beveiligen. Dit is dezelfde military-grade encryptie die door banken en overheden wordt gebruikt. Elk channel kan een eigen PSK (Pre-Shared Key) hebben voor private communicatie.

Het security model van MeshCore is gebaseerd op symmetric encryption: iedereen met de PSK kan berichten encrypten en decrypten. Dit is eenvoudig maar effectief voor mesh-netwerken waar je een gesloten groep hebt.

In deze technische gids leggen we uit hoe de encryptie werkt, hoe je keys beheert, welke veiligheidsmaatregelen er zijn, en wat de limitaties zijn. Begrijp de security trade-offs voor je een versleuteld netwerk opzet.

Security lagen in MeshCore

🔐

Channel encryption (AES-256)

Elk channel kan encrypted zijn met een PSK. Berichten worden encrypted voordat ze de radio opgaan. Alleen nodes met de juiste PSK kunnen 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.

🛡️

Admin channel security

Admin channels hebben altijd een aparte PSK. Remote configuratie is alleen mogelijk voor geauthoriseerde nodes met de admin key.

AES-256-CTR encryptie

MeshCore gebruikt AES-256 in CTR mode (Counter Mode). Dit is een stream cipher die efficient werkt op low-power embedded devices. Elke packet krijgt een unieke counter value als initialization vector (IV).

Encryption process:
1. PSK (256-bit) + Packet Counter (IV) → AES-CTR
2. Plaintext payload XOR encrypted stream → Ciphertext
3. Ciphertext + Counter sent over radio
4. Receiver: AES-CTR decryption with same PSK + Counter → Plaintext

Het voordeel van CTR mode is dat encryptie en decryptie dezelfde operatie zijn (XOR). Dit is snel op ESP32 chips die hardware AES acceleratie hebben. De 256-bit key is extreem moeilijk te brute-forcen (zou miljarden jaren duren).

PSK key management

Key generatie

PSKs zijn 256-bit (32 bytes) random keys. Meestal weergegeven als base64 of hex string. Genereer keys met cryptographisch veilige random generator, niet "password123"!

Key distributie

PSKs moeten veilig worden gedeeld met groepsleden. Via QR code, USB configuratie, of secure channel. Stuur nooit keys via onversleutelde radio of public internet.

Key rotatie

Wissel periodiek van PSK als security best practice. Vooral als groepsleden vertrekken. MeshCore ondersteunt meerdere keys tegelijk voor smooth transition.

Default keys

Primary channel heeft vaak geen PSK (public). Secondary channels gebruiken meestal custom PSKs. Er is een standaard "AQ==" key maar die is onveilig omdat iedereen hem kent!

Technische specificaties

Parameter Waarde Beschrijving
Encryption algorithm AES-256-CTR Advanced Encryption Standard, 256-bit key, Counter mode
Key length 256 bits (32 bytes) Military-grade security level
IV (Initialization Vector) Packet counter Unieke waarde per packet, voorkomt replay attacks
Hardware acceleration Ja (ESP32) ESP32 heeft hardware AES voor snelle encrypt/decrypt
Performance impact <1 ms per packet Verwaarloosbare overhead dankzij hardware AES
Forward secrecy Nee Symmetric key, geen PFS zoals in TLS

Voordelen van MeshCore encryptie

🔒

Military-grade security

AES-256 is goedgekeurd door NSA voor top-secret documenten. Praktisch onbreekbaar met huidige computers.

Efficient op embedded hardware

Hardware AES op ESP32 maakt encryptie supersnel (<1 ms). Geen merkbare impact op batterijduur of latency.

🔀

Per-channel keys

Elk channel heeft eigen PSK. Verschillende security levels: public primary, private secondary channels. Flexibel per use case.

🛠️

Eenvoudig te configureren

PSK instellen is simpel: één 32-byte key invoeren en klaar. Geen complexe certificate management zoals bij TLS/HTTPS.

📡

Transparant voor gebruiker

Encryptie gebeurt automatisch. Gebruiker merkt niets van encrypt/decrypt proces. Berichten zijn gewoon leesbaar in de app.

🔐

Admin channel protection

Admin functies zijn altijd encrypted. Voorkomt dat aanvallers je node kunnen overnemen of herconfigureren via de radio.

Veelgestelde vragen

Zijn alle berichten versleuteld in MeshCore?

Nee, alleen berichten op channels met een PSK zijn encrypted. Het primary channel is vaak publiek (geen PSK) voor algemene communicatie. Secondary channels kun je private maken met een eigen PSK. Je kiest per channel of encryption aan staat.

Kan iemand mijn berichten onderscheppen en lezen?

Op public channels zonder PSK: ja, iedereen met een MeshCore node kan meelezen. Op encrypted channels: nee, alleen mensen met de PSK kunnen decrypten. LoRa radio is broadcast, dus encryptie is essentieel voor privacy.

Hoe veilig is AES-256 encryptie echt?

AES-256 is extreem veilig. Met huidige computers zou het miljarden jaren duren om een key te brute-forcen. Het wordt gebruikt voor classified government data. Als je PSK geheim blijft, zijn je berichten praktisch onbreekbaar.

Wat gebeurt er als iemand mijn PSK te weten komt?

Dan kan die persoon alle berichten lezen en versturen op dat channel. Dit is het nadeel van symmetric encryption. Wissel dus direct van PSK als je vermoedt dat de key gelekt is. Deel PSKs alleen via veilige kanalen (niet via radio!).

Ondersteunt MeshCore end-to-end encryptie tussen individuen?

MeshCore heeft channel-level encryption, niet end-to-end per user. Alle nodes op een encrypted channel kunnen elkaars berichten lezen. Voor true E2E zou je een extra encryption layer bovenop moeten bouwen (mogelijk via plugins).

Heeft encryptie invloed op bereik of batterijduur?

Nee, verwaarloosbare impact. Hardware AES op ESP32 is supersnel (<1 ms per bericht). Je merkt geen verschil in bereik, snelheid of batterijduur tussen encrypted en unencrypted channels. Encryptie is gratis qua prestaties.

Beveilig je MeshCore communicatie

Klaar om een versleuteld mesh-netwerk op te zetten? Kies je apparaat en configureer private channels met AES-256 encryptie.