Replies: 5 comments 14 replies
-
Well, with the obvious statement of "by publishing your private key anyone can broadcast as you" out of the way, I wonder about the utility. It is technically possible to publish your public key and encrypt with your private, meaning anyone could decode your message but nobody could send a message as you, but that would require some modification to how the system works. It's also of little benefit over simply signing an unencrypted message (ignoring the fact that Reticulum needs encryption to function). As you noted, it would also entirely break routing, as only the last announced machine would receive messages, but you're discussing for radio broadcast. I think the sharing of an identity breaking routing makes Reticulum rather useless, but it might not be; I don't know all your potential use cases. The signing of an unencrypted message isn't supported, but there may be a way around that, acknowledging that breaking one link of encryption breaks them all. I'd have to think this through, and I'm only about 60% sure it's doable, but you could have shared private identities that were used only on radio endpoints, so the endpoints could decrypt and reencrypt on your behalf, which isn't terribly clean. But you could also share an identity (with all the insecurity that brings, I won't mention it again) and make a custom communication application. Allow me to explain. When you make a destination, there's an app name and aspects. So lxmf.delivery handles LXMF messages but, and this doesn't exist, lxmf.notdelivery can be for anything else. Announces, telemetry, recipes for pie, anything. And, best of my knowledge, the paths are stored per aspect. So, entirely unintended behavior, you can try something like this. Make an app called, say, clear_broadcast. Now, you can set up aspects so you have a single identity across every single instance, but clear_broadcast.Steve would have different routing than clear_broadcast.George. However, you'd have some rather complicated routing decisions to make in the program because you're filtering out absolutely everything except those specific aspects you're listening for. So if you're listening for Steve and George, Ron can't be heard at all. It's a generally bad idea, and expressly advised against in the manual (4.3.1) but it would allow known stations to broadcast in the clear to each other, assuming they were all expecting each other. It should be explicitly noted that you cannot use wildcards in this case, since aspects are used to generate a unique destination hash and the individual aspect data is lost. The best I can think of is a little more complicated, and you'll lose some strength, but if you have a single Ham node you can connect to, you could write a program that sends the data to that radio, broadcasts destination and content in the clear using non-Reticulum encoding, then reassembles at all receiving stations. If those stations know the path, they re-encode and send it along. If they don't, they discard them. You may want to look into interface modes in that case, as there's no real reason to send announces over the air, just set things up either for local Reticulum delivery or for broadcast, which can be sent to the radio via Reticulum as normal. Probably unclear and rambly, but that's my best idea. Specifically mark a message for broadcast and send it to the transmitting radio with instructions as to who's to receive it once it lands at the destination. |
Beta Was this translation helpful? Give feedback.
-
Ok, I need to add some very important points here.
No. Even if you publish your identity file (and you should never, ever do this), communication you initiate would not be decryptable. Remote systems will use the public part of your identity in the link establishment process to verify the encrypted link setup, when creating links to you, but the actual encryption keys are ephemeral on a per-link basis. All of your outgoing traffic would still be completely and totally encrypted, and if you somehow disabled that in your end, packets would never reach the recipient programs/applications. Publishing your private keys (identity file) would only mean that anyone would be able to route traffic intended to you to a location of their choosing instead, and be able to intercept links intended for you. They would need to actively do this though, and for each and every link, and then forward the traffic to you as a MiTM attack, to be able to successfully decrypt traffic to you. If the link request actually reaches you first, the link is still secure, since keys are completely new and random for each link established. Likewise, previously recorded traffic from a link going to you will not be decryptable by obtaining your identity file at some point in the future. This is what is called "forward secrecy", and it would be pretty shoddy if we didn't have this. I have said it before, and I will happily say it again. There is no way to "turn off" encryption in Reticulum. I specifically, and painstakingly, designed it as such. One of the points being to make sure that an idea like this wouldn't be carried out into reality. If you can compromise link integrity in one place, you can compromise it everywhere. As a more constructive approach, I strongly suggest putting effort into changing the antiquated and stagnant stance against encryption within the US ham radio community instead. Reticulum is a fantastic technology for amateur radio, that can help tremendously in making amateur radio digital modes more relevant again. Revolutionary work was done in the 80's and 90's within digital amateur radio, and we still have benefits from that today, but without a more modern approach, which is impossible without encryption, the field will remain irrelevant outside of pure hobby/sports use. And I say this as an amateur radio operator myself, with a great deal of love and respect for the field, but with also a realistic and somewhat sombre outlook on its future. |
Beta Was this translation helpful? Give feedback.
-
I appreciate all the responses. Thanks again, everyone! |
Beta Was this translation helpful? Give feedback.
-
From what I've seen, I get the sense that this is in direct conflict with the broad sense that one of amateur radio's best characteristics is that it's "self-policing." Even SCS released PACMON so people could decode the communications using their proprietary OFDM protocols, so that people can see what others are communicating about. Any significant effort toward this in a way that would allow Reticulum to function would likely see massive opposition at every level, from individual operators to the ARRL and FCC, all the way up to the fact that the United States is a signatory to ITU treaties that forbid the use of encryption on amateur radio. You can predict the reasoning: if you can't decode someone's communications, they could be using the amateur radio service for criminal activities, or business, or other forbidden things, and you'd have no way to tell and snitch on them to the FCC. There is an ITU amendment stating that it doesn't forbid encryption in communications between amateurs in a specific jurisdiction, but it is still a hard uphill fight domestically. The only people I've seen pushing for revision of regulations in that sense are the HSMM people, and as far as I know that's generally abandoned in favor of a technique of publishing keys. Reticulum is an incredible piece of software, and its capabilities are ideal for implementing something wonderful: a nationwide-or-wider, disaster-proof, amateur store and forward HF data radio network, a spiritual successor to the packet radio BBSs of old. However, the only ways I can see of actually achieving this dream are:
it'd be nice if there was another way, but to maintain the philosophical principles of Reticulum, it would have to be an incompatible network. Edit: thinking further about it, the "disclose all communications when requested" solution could sit on top of Reticulum. Just have mail software that will divulge a list of previously sent messages upon request, and their contents upon request, and tie it to a public repository of public keys tied to callsigns. Make it refuse to send mail to a destination that's not a registered amateur public key. Repo updates could be distributed through the network. You could also design it to double-send all messages: once to the recipient, with a copy sent to a central authority that'd handle message requests, or publish them online. That would comply with the "obscure meaning" part of the regulation without compromising the security of Reticulum. People running routing nodes wouldn't be responsible for the forwarded messages any more than someone running a packet node would be responsible if some jackass with no callsign sent messages through it, or a repeater operator would be responsible for a crank using their repeater. If someone runs noncompliant software, they'd be breaking the regulations, but that's on them, not on Reticulum. (Ideally, to keep everyone else happy, you'd also have to make sure that the amateur Reticulum network is airgapped, somehow, to prevent/discourage it from routing non-amateur traffic; is this is possible using IFACs?) |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, I will have to lock this discussion now, since the position of the Reticulum project has been already made very clear, and the discussion keeps circling back to various ideas around breaking core guarantees of security and privacy in favor of neutering Reticulum to fit into a legal context that is directly opposed to the core goals of the project. I don't have the time to answer every permutation of "what if we just add an option that says In this post, and several other like it before, I have already made it very clear why this will never happen, why it is technically impossible to do within Reticulum, and why it would be catastrophic for normal users if such an option existed. Any further discussions on this idea, that does not reflect an understanding of the above, and/or is not completely thought through by its author will be locked with a reference to this post, or simply deleted. |
Beta Was this translation helpful? Give feedback.
-
Since our previous discussion about legality of Reticulum on Ham Radio for US use, I have been thinking about an alternative, significantly more reasonable solution.
In the case for nomadnet, what if I just publicize my identity file? In theory, my communications should be public. It's not ideal, but my communications would be able to be decoded and I have no problem running that over the air. I experimented with this by copying the exact same identity file to two different computers. I was able to decode which ever computer sent the most recent announce. I haven't done much research, but I assume the different IP addresses between the two computers is a contributing factor.
This is just a thought, but perhaps having nomadnet have some sort of monitor mode? Where if fed some other identity file that is also publicized, it could decrypt the communications or perhaps a tool that is specifically designed to decrypt communications on the fly?
I could be entirely off the mark on this, but nevertheless, any feedback is appreciated.
Beta Was this translation helpful? Give feedback.
All reactions