Replies: 1 comment 13 replies
-
The ability to switch or discard identities is core to Reticulum. Rolling through them is generally as simple as switching out a file. Application-specific rolling identities is possible, but as you say, is application specific. There's no practical reason you can't make an LXMF client that aggregates multiple identities into a single message stream and sends to a random member on a list. However, that's just "security through obscurity." While deception is a part of a layered defense, it's really just playing for time. A holistic approach to network security (in both pertinent definitions of "network") is warranted and, quite frankly, I should sit down and consider the situation more thoroughly. I don't have this library for show. :D But it's worth a simple example to assess the threat posed by such an attack. Yes, this will get very long. I'm sorry. Alice and Bob do not wish to be detected. Eve is a state actor hostile to Alice and Bob. There are three public distribution nodes, Alpha, Bravo, and Charlie, all secure, as well as Eve's node, Echo. They all see each other and have arbitrary interfaces attached. Echo (and thus Eve) can see Alice and Bob's announces, and see they're two hops away, as well as if they're through A, B, or C, and thus Eve knows they're connected to those nodes. If their identities are compromised, that's a problem, but if it's a fresh identity and a widely used node, then there should be no need for suspicion. Alice sends a message to Bob. Eve never sees it, since it's not routed through Echo. Bob to Alice is the same. Eve compromises Alpha. which is where Alice and Bob are connected. Alice sends Bob a message. Eve sees that Bob is receiving a message, but not that Alice sent it. Time of fight analysis can be an issue, but given an active node with multiple actors, it's difficult to determine who's talking to whom (assuming automatic receipts are off). Bob moves to Bravo. Now Eve sees Bob's packets go to Bravo, but without an announce has no idea where they go from there. Alice starts node Delta, attached only to Charlie, and now Eve sees announces come from Charlie, but three hops away. This means any node connected to Charlie could be the next step in the chain. Eve only knows that Alice's packets are going to Bob and routed through Delta, not who sent them or their exact node of origin. Alice uses two identities, one attached to Alpha and the other to Delta. Both send to Bob, and it's impossible to link the two identities to the same sender without out of band knowledge. A fully crosslinked network, while important for distribution at our current scale, is less secure than people spinning up their own node and linking to a single endpoint. This creates a fault intolerant network, but it also creates a path with multiple hops and added security. The more people run their own nodes, the more secure the network becomes. (at least in this threat case) If something is three hops away, and the node two hops away has five nodes attached, an announce leaks very little information. It's also helpful to run a node with IFAC enabled, effectively making a password protected interface, so that node will always be one hop away from any malicious actor. It might be worth the ability to hard-code or ingest paths and public keys using out of band communications, such as paper messages, but I think the threat of this kind of announce-based tracking is a wider operational security issue, where a healthy ecosystem provides all the protection necessary so long as the identity doesn't somehow out itself as suspicious. I believe it to be an issue of network topology and how people intend to use the network as opposed to an engineering issue. If nations A and B don't want communication, then both nodes connecting to nation C completely obfuscates crossing the border. A only knows B is two hops away, not where the server is. If there's a specific case I'm overlooking, please let me know, but I think auto-rotating identities due to announces isn't the best option. |
Beta Was this translation helpful? Give feedback.
-
Hey, I'm wondering if there's been any thought put into the threat model of someone (let's say a state actor) monitoring an area for announce packets to keep track of who's present in an attempt to crack down on freedom of assembly. Not that any state actor has ever done that, but it might be something worth considering anyway.
The easiest way to handle this would be at the application level, by rotating through different identities/destinations and burning old ones, but without some cooperation at the protocol level you'd have to choose between blowing your cover by announcing an old destination with 0 hops, or risking non-delivery of packets addressed to your previous destinations.
I could imagine something as sophisticated as constructing an arbitrary social graph for your spoofed identities and setting the number of announced hops appropriately for the one you're announcing as. For added confusion, you could even exchange unused spoofed identities with trusted parties to subvert any attacker's attempts at clustering of identities by announced hop count, as the social graph would change dramatically if you exchanged an identity with a friend. As far as I can tell there are no facilities for this, but it's something I'd like to see. I don't think that a LoRa PHY layer can tolerate much chaff with its bandwidth constraints, but Reticulum or LXMF should probably have a story here because this is a legitimate threat in way too many places.
Beta Was this translation helpful? Give feedback.
All reactions