Wie Meshtastic als Funknetz arbeitet

Wie kommt eine Textnachricht von einem Handy zum anderen, wenn weder Mobilfunkmast noch WLAN noch ein Server beteiligt sind? Meshtastic löst das mit kleinen Funkmodulen, die per Bluetooth am Handy hängen. Die App reicht den Text an das Modul weiter, das ihn verpackt, mit dem Kanalschlüssel verschlüsselt und im 868 Megahertz Band als LoRa Signal aussendet. Jedes Modul in Hörweite prüft, ob es das Paket schon kennt, und wiederholt es andernfalls, bis der Empfänger erreicht ist oder der Hopzähler auf null steht.

Das Netz besteht also aus nichts als den Geräten der Teilnehmer, jedes Gerät ist Endpunkt und Relais zugleich.

Die Technik wirkt auf den ersten Blick unterdimensioniert. Mit rund einem Kilobit pro Sekunde überträgt ein Modul etwa 90.000 mal weniger Daten als ein gewöhnliches WLAN, ein Foto wäre über diesen Weg eine Zumutung. Dafür kommen Textnachrichten, Positionen und Messwerte über Strecken an, die für ein Handy ohne Netz unerreichbar sind, von Berggipfeln aus über mehr als 100 Kilometer, in bebautem Gebiet über wenige Kilometer. Möglich wird das durch drei Bausteine, die ineinandergreifen: ein Funkverfahren, das unter dem Rauschen noch lesbar bleibt, ein Paketformat, das Wiederholer ohne Schlüssel bedienen können, und eine Verschlüsselung, die den Inhalt von Mitlesern fernhält.

Warum LoRa ein Signal unter dem Rauschen noch versteht

Ein LoRa Signal ist ein Chirp, ein Pfeifton, dessen Frequenz in einer festen Zeit über die ganze Bandbreite von 250 Kilohertz hochgleitet, ähnlich einem kurzen Vogelzwitschern. Die Information steckt im Startpunkt: Bei Spreizfaktor 11 gibt es 2048 mögliche Startpunkte, jeder Chirp trägt also 11 Bit. Der Empfänger mischt das Eingangssignal mit einem gegenläufigen Chirp, dabei entsteht aus dem Gleiten ein stehender Ton, dessen Frequenz den Startpunkt verrät. Rauschen dagegen verteilt sich gleichmäßig über das Band und bildet keinen Spitzenwert.

Diese Bündelung der Energie erklärt die Empfindlichkeit. Das thermische Rauschen in 250 Kilohertz Bandbreite liegt bei minus 174 dBm plus 54 dB, also bei minus 120 dBm. Mit einer Rauschzahl des Empfängers von 6 dB steigt die Schwelle auf minus 114 dBm. Ein gewöhnlicher Funkempfänger braucht ein Signal, das über dieser Schwelle liegt. LoRa bei Spreizfaktor 11 erkennt den Spitzenwert noch bei einem Rauschabstand von minus 17,5 dB, das Signal darf also 56 mal schwächer sein als das Rauschen. Das ergibt eine Empfindlichkeit von etwa minus 131,5 dBm. Der Preis dafür steckt in der Datenrate, denn jeder Chirp belegt die Luft für lange Zeit: 11 mal 250.000 geteilt durch 2048 mal 0,8 Coderate ergibt 1074 Bit pro Sekunde. Wie sich daraus die Sendedauer eines Pakets und die Sendepausen ergeben, steht im Beitrag über Meshtastic in Deutschland auf welcher Frequenz.

Datenrate gegen Empfindlichkeit bei vier Presets

Meshtastic fasst Spreizfaktor, Bandbreite und Codierung zu Presets zusammen. Mit jedem größeren Spreizfaktor kommen 2,5 dB Empfindlichkeit hinzu, die Datenrate sinkt auf gut die Hälfte. Die Werte der Tabelle sind Richtwerte, die Rauschzahl von 6 dB ist angenommen, reale Module und Antennen weichen um einige dB ab.

PresetSpreizfaktor und BandbreiteDatenrateEmpfindlichkeit
ShortFastSF7 mit 250 kHz10,9 kBit/sminus 121,5 dBm
MediumFastSF9 mit 250 kHz3,5 kBit/sminus 126,5 dBm
LongFastSF11 mit 250 kHz1,07 kBit/sminus 131,5 dBm
LongSlowSF12 mit 125 kHz0,18 kBit/sminus 137 dBm

Die Spanne zwischen den Zeilen ist größer, als sie auf den ersten Blick aussieht. Von ShortFast zu LongSlow gewinnt ein Modul 15,5 dB Empfindlichkeit, im freien Raum entspricht das einer knapp sechsfachen Reichweite, bezahlt mit einer 60 mal geringeren Datenrate. Bereits der Sprung von ShortFast auf LongFast bringt mit 10 dB eine gut dreifache Reichweite bei einem Zehntel der Rate. Wichtig ist, dass alle Teilnehmer eines Netzes dasselbe Preset verwenden, denn ein Modul auf SF9 kann ein SF11 Paket nicht entziffern, es hört nur Rauschen. Deshalb steht auf dem Standardkanal meist LongFast, es ist der Treffpunkt, auf dem sich neue Geräte finden. Mit jeder Gruppe, die ein anderes Preset wählt, teilt sich das Netz in Inseln. In Leistung gerechnet sind 15,5 dB ein Faktor 35: Das schwächste noch lesbare Signal von LongSlow trägt nur ein Fünfunddreißigstel der Leistung, die ShortFast zum Verstehen braucht.

Vom Textfeld im Handy bis zum Paket im Funkband

Die App kennt keine Funktechnik, sie spricht per Bluetooth, WLAN oder USB nur mit dem Modul. Dieses kodiert den Text in ein kompaktes Datenformat, setzt einen Kopf von 16 Byte davor und sendet das Ganze aus. Der Kopf bleibt unverschlüsselt, und das hat einen Grund: Ein Wiederholer, der den Kanalschlüssel gar nicht besitzt, muss trotzdem erkennen, ob er ein Paket schon gesehen hat, und den Hopzähler senken. Dazu genügen Absender, Paketnummer und Zähler im Kopf, der Inhalt bleibt für ihn Rauschen. Das Netz läuft deshalb auch über Geräte, die selbst nie an der Unterhaltung teilnehmen. Jedes Modul führt eine Liste zuletzt gesehener Paketnummern und verwirft bekannte Pakete, ohne sie zu öffnen. Die Teilnehmerliste in der App entsteht aus kurzen Infopaketen mit Name und Gerätetyp, die jedes Modul in Abständen von mehreren Stunden aussendet.

Schema eines Funkpakets mit vier Kopffeldern und verschlüsselter Nutzlast

Eine Bestätigung braucht keinen eigenen Funkverkehr. Hört der Absender, wie ein Nachbar sein Paket wiederholt, gilt das als Quittung, ein ausbleibendes Echo löst bis zu drei neue Sendeversuche aus. Bei Einzelnachrichten an ein bestimmtes Gerät wartet der Absender zusätzlich auf eine Bestätigung des Empfängers. Wie weit ein Paket wandert und warum Wiederholer sich untereinander bremsen, behandelt der Beitrag über Meshtastic Hops und Reichweite.

Verschlüsselung und was sie verbirgt

Den Inhalt jedes Pakets schützt AES mit dem Schlüssel des Kanals. Der Standardkanal nutzt einen allgemein bekannten Schlüssel, er hält Zufallshörer fern, nicht aber jeden, der dieselbe Firmware besitzt. Für eine geschlossene Gruppe erzeugt die App einen eigenen Kanal mit zufälligem 256 Bit Schlüssel, das sind rund 1,2 mal 10 hoch 77 Kombinationen. Ein solcher Schlüssel lässt sich nicht erraten, er wird per QR Code an die Mitglieder weitergegeben. Persönliche Nachrichten zwischen zwei Geräten laufen seit der Firmware 2.5 zusätzlich mit einem Schlüsselpaar der beiden Teilnehmer, sodass auch andere Mitglieder des Kanals sie nicht mitlesen.

Technisch arbeitet AES hier im Zählermodus als Schlüsselstromgenerator. Aus Paketnummer und Absender entsteht für jedes Paket ein eigener Startwert, gleiche Texte erzeugen deshalb verschiedene Funksignale. Die Paketnummer steht lesbar im Kopf und muss nicht geheim sein, entscheidend ist nur, dass sie sich pro Absender nicht wiederholt, sonst ließen sich zwei Pakete gegeneinander verrechnen.

Grenzen gibt es trotzdem. Der Kopf bleibt lesbar, ein Beobachter mit einem Empfänger erkennt Absender, Empfänger und Zeitpunkt jedes Pakets, nur nicht den Text. Für den Betrieb in einer Gruppe heißt das:

  • Für erste Versuche reicht der Standardkanal, private Inhalte gehören dort nicht hin.
  • Für eine geschlossene Gruppe lohnt ein zusätzlicher Kanal mit selbst erzeugtem Schlüssel, weitergegeben von Hand und nicht per Messenger.
  • Geht ein Gerät verloren, taugt der Schlüssel nicht mehr, der Kanal wird für alle neu erzeugt.
  • Positionsdaten sind Teil des Kanals, wer sie nicht teilen will, schaltet die Übermittlung am Gerät aus.

Copyright SoftProxx.de | Impressum | Datenschutz