So funktioniert's

Vom Handy über die Antenne zum Empfänger

Die App schickt deine Nachricht per USB-C an die Antenne. Dort liegen die Schlüssel. Die Antenne verschlüsselt die Nachricht und funkt sie per LoRa. Ist der Empfänger zu weit weg, wiederholen andere OffGrid-Geräte den Funkspruch.

  1. 01

    Antenne

    Ein Heltec WiFi LoRa 32 V3 steckt am USB-C-Anschluss. Darauf liegen deine Schlüssel.

  2. 02

    App

    Du tippst einen kurzen Text. Die App gibt ihn per USB an die Antenne.

  3. 03

    Funk

    Die Antenne verschlüsselt mit dem Schlüssel des Kontakts und sendet im 868-MHz-Band.

  4. 04

    Node optional

    Andere OffGrid-Geräte wiederholen den Funkspruch, ohne ihn lesen zu können. Ein Zähler begrenzt die Weitergabe, standardmässig auf drei Hops.

  5. 05

    Empfänger

    Annas Antenne entschlüsselt und funkt eine Quittung von 16 Byte zurück. Beim Absender steht dann zugestellt.

Setup 1

Nodeless

Von Handy zu Handy. Das reicht für eine Gruppe, die zusammen unterwegs ist und sich gegenseitig in Funkreichweite hat. Ausser den Antennen braucht es nichts.

Setup 2

Über Node

Liegt ein Berg dazwischen, hilft ein Node an erhöhter Lage, etwa auf einem Grat oder bei einer Hütte. Auch jedes andere OffGrid-Gerät in Reichweite gibt Funksprüche weiter. Doppelte Pakete erkennen die Geräte und verwerfen sie.

Funktionen

Was die App kann

Kurznachrichten
Mit Zeichenzähler und einem Status, der zeigt, ob die Nachricht noch wartet, gesendet oder zugestellt ist.
Kontakt per QR-Code
Ihr trefft euch und scannt die QR-Codes. Danach könnt ihr euch ohne Mobilnetz schreiben.
Standort
Koordinaten samt Genauigkeit senden. Beim Empfänger zeigt ein Kompass Distanz und Richtung, eine Karte braucht es nicht.
Quittung und Wiederholung
Der Empfänger bestätigt jede Nachricht mit einer Quittung, die sich nicht fälschen lässt. Bleibt sie aus, sendet die Antenne bis zu dreimal neu. Angezeigt wird die Nachricht trotzdem nur einmal.
Warteschlange
Ist die Antenne ab, bleibt die Nachricht auf dem Handy und geht raus, sobald die Antenne wieder steckt.
Reaktionen
Neben Text und Standort kennt das Protokoll Reaktionen auf einzelne Nachrichten.
Gruppen und Handywechsel geplant
Gruppenchats sowie Export und Import sind in den Designs zu sehen. Im Protokoll v1 fehlen sie noch.

Sicherheit

Mitlesen kann nur, wer mit dir gekoppelt ist.

  • Ende-zu-Ende verschlüsselt

    Jede Nachricht ist mit AES-128-CCM verschlüsselt, mit eigenen Schlüsseln pro Kontakt und Richtung. Ändert unterwegs jemand ein einziges Bit, verwirft der Empfänger die Nachricht.

  • Kontakte nur persönlich

    Im QR-Code stehen nur öffentliche Schlüssel. Daraus berechnen beide Antennen mit X25519 und HKDF dieselben Schlüssel. Gefunkt werden diese nie. Zum Schluss vergleicht ihr das Muster auf beiden Bildschirmen.

  • Schlüssel bleiben auf der Antenne

    Identität und Kontaktschlüssel entstehen auf der Antenne und verlassen sie nie. Nach dem Einschalten ist sie gesperrt, bis das gekoppelte Handy sie mit einem Geheimnis aus dem Android Keystore entsperrt. Meldet sich das Handy eine Weile nicht, sperrt sie sich wieder.

  • Weiterleiten ohne Schlüssel

    Geräte, die Funksprüche weitergeben, können sie nicht lesen. Einen zentralen Server gibt es nicht.

Hardware

Die Antenne

Als Antenne dient ein Heltec WiFi LoRa 32 V3 mit ESP32-S3 und dem LoRa-Chip SX1262. Er steckt per USB-C am Android-Handy. App und Antenne tauschen über die serielle Schnittstelle JSON-Zeilen aus.

Board
Heltec WiFi LoRa 32 V3
Chips
ESP32-S3 · SX1262
Funk
LoRa im 868-MHz-Band, kein LoRaWAN
Funkparameter
SF9 · 125 kHz · CR 4/5 (Standard)
Verbindung zum Handy
USB-C · seriell · JSON Lines
Plattform
Android
Reichweite
noch nicht gemessen

Warum kein LoRaWAN? Dafür braucht es Gateways und einen Netzwerkserver. OffGrid nutzt nur das Funkverfahren LoRa und legt ein eigenes Protokoll für Verschlüsselung und Weiterleitung darüber.

Wie weit die Antenne reicht, hängt von Sichtverbindung, Gelände, Antenne und Wetter ab. Im Wald, in engen Tälern und in Gebäuden ist die Reichweite deutlich kürzer. Im 868-MHz-Band ist die Sendezeit begrenzt, deshalb sind Funksprüche kurz. Der Laborprototyp hält dieses Limit noch nicht automatisch ein.