Thoughts on this?

all 11 comments

sorted by: hot top controversial new old
[–] 13 points 1 year ago* (2 children)

I'm not familiar with the design philosophy of the original protocol, or if they decided the protocol should or should not attempt to impose any kind of a security model, but given that the project grew out of the same kind of ethos as HAM, I'd bet it was never a high priority.

That said, these exploits make the mesh untrustable and should be mitigated. If the devs don't want to implement fixes, maybe the answer is stripping out all encryption entirely and adding a plugin system that allows anyone to implement a solution themselves. They could even move the current broken implementation to a plugin and make it the default.

In the future, they'd only ever need to handle requests for maybe new entry points or tweaks to the plugin system.

  • source
  • hideshow 2 child comments
  • [–] 4 points 1 year ago (1 child)

    It is mitigated in 2.6.11 https://github.com/meshtastic/firmware/releases/tag/v2.6.11.60ec05e. When I re-generate keys on a node I get warnings that the public key of that node is changed, and I need to delete the node and wait for the next advertisement to update it. I haven't tried running meshmarauder myself to see if the user profile tampering still works, if they sign and check the updates correctly I don't see why that would still be broken. The other impersonation stuff does not seem to be released yet.

    That said, I think Mestastic works as a kind of hobby, out of band public communication network first and foremost. Even in that kind of setting, knowing who sent which message is valuable, but not a deal breaker in my opinion. Not sure I'd trust it as a network for encrypted person to person messaging. And to be fair, compared to "normal" HAM, any kind of attestation is a bonus. And it's license free and relatively cheap to get into.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 13 points 1 year ago* (last edited 1 year ago)

    If you're looking for a Meshtastic alternative which was designed with cryptographic security in mind instead of adding it as an afterthought, check out Reticulum and its RNode firmware which lets it use (most) Meshtastic-compatible LoRa devices as a modem.

    Reticulum also has much more intelligent routing, can work over things besides just LoRa (including the internet), and (some) applications built on it provide reliable transport.

    see also

    spoiler about iOS support...

    • The Software shall not be used in any kind of system which includes amongst its functions the ability to purposefully do harm to human beings.

    • The Software shall not be used, directly or indirectly, in the creation of an artificial intelligence, machine learning or language model training dataset, including but not limited to any use that contributes to the training or development of such a model or algorithm.

    While I very much appreciate the intention of these clauses, they will inevitably inhibit adoption somewhat.

    There are however already multiple compatible implementations in development under free licenses, as you can see on the Awesome-Reticulum wiki page. (Including one by a company marketing products based on it for military use 😦)

    The Sideband app is also under a non-free license (CC BY-NC-SA).

  • source
  • [–] 6 points 1 year ago

    If I'm understanding correctly, they are actually addressing security issues. For example, they have a blog post called that one time at DEF CON where they discussed what happened and how they mitigated it in firmware 2.7.5.

  • source
  • [–] 6 points 1 year ago
    1. I believe every single exploit we demo'd was previously documented in meshtastics bug tracker 1yr+ ago and were closed by the MT devs and largely ignored for a year.

    2. When I began trying MT in 2024 the devs shutdown convos asking for security fixes saying people should use other comms tools if they wanted security. Rather than address fixable security bugs.

    Well, that pretty much settles the Devs don't care about security.

  • source
  • [–] 3 points 1 year ago

    this is never going to be and was not designed to be a secret spy movie text network anymore than it is an instant messager replacement. the encryption has a ways to go yes but its also come a long way. the benefit of the platform is zero licensing entry with cheap gear. that communities can stand up together and use. or organizers can flash devices between uses and swarm a mesh if needed.

    its fun building meshes that can cover a hundred miles but, to function like that you have to drastically shorten the messages. and repeat messages to deal with drops. the encryption overall is fine for what the mesh can do and what the appropriate use cases could be. not great but it'll do.

  • source
  • [–] 2 points 1 year ago (3 children)

    Is it legal to encrypt communications in the spectrum meshtastic is using?

    I had thought it was not and therefore could not be built into the protocol and so securing communications (potentially illegally) is left as an exercise for the reader.

    Is that not so?

  • source
  • hideshow 3 child comments
  • [–] [S] 6 points 1 year ago (2 children)

    It's apparently legal if you don't enable ham mode. Not a lawyer etc.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 6 points 1 year ago* (last edited 1 year ago) (1 child)

    in the US at least its about broadcast power level. HAMs can broadcast louder but cant enable encryption. default firmware shipped to the US limits your power level so you remain legal.

    *i should add that is MY understanding of the situation and i'm no lawyer.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 1 year ago

    You have it correct. If you're using ham mode, you're allowed to use more power, but hams cannot have encrypted data. Therefore, ham mode is disabled by default.

    Also with Ham Mode, if you do enable it, you can only talk to other nodes also using Ham Mode, unencrypted. Therefore, you lose access to the majority of the mesh, which makes it kind of pointless, except for experiments.

  • source
  • parent
  • 14 comments in c/meshtastic@mander.xyz view that post
    [–] 24 points 1 year ago

    This is the kind of security research we need. By bringing up these issues, they can be fixed.

  • source
  • [–] 13 points 1 year ago (2 children)

    Yeah, I didn't have any current expectations about the privacy, anything beyond security-by-obscurity which is absolutely not reliable for any important private conversation.

    I'm pretty much chatting with complete strangers on the network anyway, and the usefulness I see is as a secondary communication band if traditional networks aren't available in a crisis. The PSK sounded more like a channel filter than an encryption mechanism to me anyway (I hope my past comments describing meshtastic were clear about this).

    I'm all for identifying these flaws and fixing them, improving the protocol in future version so that maybe eventually it can be suitable for sensitive information than hobbyist blather or emergency info.

  • source
  • hideshow 2 child comments
  • [–] 2 points 1 year ago

    Yeah, I just started messing around with Meshtastic, and it is apparent it's more of a beta project. Has lots of little bugs, no real routing, etc. Seems like the user-base outpaced development. It is pretty cool though, and I hope they fix the glaring issues quickly.

  • source
  • parent
  • load more comments (-1 replies)
    [–] 8 points 1 year ago (5 children)

    My first thought would be to encrypt the profile broadcast with your private key and then broadcast it and then broadcast the public key second. That way, if the public key was not correct, they could not decrypt the profile broadcast at all.

    Then again, I'm just a normie, so that's just a thought from somebody who doesn't fully understand the intricacies, so I could be way off base.

  • source
  • hideshow 5 child comments
  • [–] [S] 8 points 1 year ago (4 children)

    In asymmetric encryption, the private key is used for decrypting things which were encrypted using the corresponding public key. You don't encrypt things using the private key.

    The problem here is that Meshtastic doesn't have any means whatsoever of ensuring that a public key is authentic, and they allow keys to be replaced at any time. Verifying keys out-of-band would be the most secure approach, but to enable encryption between nodes who don't do that the thing Meshtastic should be doing is ssh-style TOFU (meaning that users must explicitly acknowledge when a key changes before using the new key).

  • source
  • parent
  • hideshow 4 child comments
  • [–] 5 points 1 year ago (1 child)

    I may be thinking of signing. The idea is that you would have a message that's only proven to be authentic if you get the corresponding key. I probably just have the wrong terminology or something.

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 6 points 1 year ago

    Yes, you can make a signature using the private key and anyone can verify it using the corresponding public key.

    But, if the attacker can replace the public key they can also replace the signature with one made using their own key - so this doesn't solve the problem of keys being unverified.

    If public keys were actually verified, signatures could protect the other fields in the profile packet from being modified. You could also theoretically use signatures to authenticate key rotation, by signing a packet containing your new public key using your old private key. But this doesn't really work in the unreliable radio setting where some messages are likely to be missed.

  • source
  • parent
  • [–] 1 point 1 year ago

    Err, is it just me or does the Android client stop exchanging DMs in an existing chat if a public key changes? I've had to delete conversations between my nodes to reenable comm after regenerating one node's public key.

  • source
  • parent
  • [–] 6 points 1 year ago (1 child)

    Meanwhile, radioamater enthusiasts chatting clear morse that you can listen from literally anywhere in the globe 🤣

  • source
  • hideshow 1 child comment
  • [–] 4 points 1 year ago

    As far as I remember, the end-to-end encrypted DMs are relatively recent thing in Meshtastic. Before, the messages were just encrypted with the symetric channel key.

    The scale of meshtastics avoidance of building security into the design is pretty epic.

    This is not an easy problem to solve. Each possible solution requires a trade-off.

  • source
  • [–] 2 points 1 year ago* (last edited 1 year ago)

    Meshtastic's low privicy design is just dissappointing! I wish persistant identifiers were way less relied apon as they are given out freely in order for the system to work. Verry much NOT designed for urban areas or being in the presence of adversaries.

    There should be "discovery" metadata, encrypted "known" and encrypted "well known" metadata, each with a diffrent encryption key that is given out in stages over a few round trips and maybe some user TOFU prompts and/or auto promotion on a timer. Brand new radios will gain trust with other radios.

    "Known" gives an identifier and public key based on the context, maybe per gps area or per individual device.

    "well known" being enough to preform persistant non contextual identification for the lifetime of the device.

    Actions like karking a device as a "favorite" may also push it into the "well known" catagory.

  • source