Strong Cryptography
Cryptography is hard, and few LoRa-based text chat systems get it right. UMSH takes a conservative approach to message privacy using well-studied mechanisms that are straightforward to implement and don’t fail catastrophically, like AES-SIV.
Security model →
Modern Text Chat
UMSH supports modern text chat features like long messages, replies, reactions, edits, and deletes—the things you stop noticing until they are missing.
Text messages →
Forward Secrecy
Perfect Forward Secrecy (PFS) sessions allow you to communicate with a peer in a way that cannot be later decrypted even if the private key of one of the devices is later compromised. These sessions not only provide forward secrecy but also obfuscate the identity of the participants involved, helping to further improve privacy.
PFS sessions →
Beyond Private Group Chat
In UMSH, private channels enable more than just encrypted group chat—they can protect unicast chats as well while also obfuscating the sender and destination, kind of like a VPN.
UMSH calls this blind unicast. To anyone without the channel key the traffic is unreadable and unalterable. You can easily invite others to a private channel by sharing a QR code in person or with a simple UMSH text message.
Blind unicast support is implemented in the stack and will be exposed in the iOS app soon.
Channels →
Resilient Repeating
UMSH has two forwarding modes: Flooding and Source Routing. Flooding is used for path discovery and group chats, whereas source routing is used for normal one-on-one text chats. Unlike some other source-routed protocols, UMSH repeaters will retry transmitting if they don’t notice the next hop repeating the message. This dramatically improves the reliability of long-distance sessions. UMSH also allows composing both source routing and flooding, providing a degree of path-self-healing for mobile nodes.
Forwarding confirmation →
Replay Protection
Other LoRa-based mesh protocols have struggled with replay protection, using timestamps that require accurate clocks or caching the signatures of previously-seen packets. UMSH uses frame counters and fast counter synchronization to prevent replay attacks. Additionally, no core UMSH functionality depends on the node knowing what time it is, removing another common source of annoyance.
Replay protection →