Live data from Hacker News

Theseus DHT Protocol (2018)

wootfish.github.io

21–30 of 43 posts

Re: Theseus DHT Protocol (2018)

#21

Cool project, which lead me to this post: https://eli.sohl.com/2020/06/10/sybil-defense.html I'm in this space right now (Sybil-resistant DHTs) for an identity project and finding things like this is absolute gold for me. Is there a good place to find more articles on modern sybil protection mechanisms (other than the proof-of-whatever blockchain bs)?

See my sibling comment. I am looking for partners to help implement this “holy grail” stuff together

Re: Theseus DHT Protocol (2018)

#22
post #9

> To a passive observer, all Theseus DHT protocol traffic is indistinguishable from random noise. This. And it should have been a design requirement for every protocol on the internet since day one.

It's a cool property for sure, but in reality it's pretty difficult to implement, especially if you want a protocol that's extensible, interoperable, or allows open communication. At minimum, you're probably going to have to assume any participants trying to speak the protocol to each other have pre-shared cryptographic keys and/or protocol parameters. Even a protocol like Wireguard for example, which does hardcode p…

Can you explain this, how can it be indistiguishable from random noise? What does that even mean? And why is it even important/useful? Surely even if it looks like noise anyone can see that you are communicating with the DHT network?

Re: Theseus DHT Protocol (2018)

#23
post #16

This seems to be ~4 years old. Have any cryptographers reviewed / audited this protocol in the interim? A quick google search comes up empty [1], and google scholar doesn't show anything [2]. [1]: https://www.google.com/search?&q=Theseus+dht+protocol+%22aud... [2]: https://scholar.google.com/scholar?q=theseus+dht+protocol

IANAC† but I think the use of Noise Protocol is completely bogus. Regardless of your protocol of choice, you cannot encrypt things end-to-end if you cannot authenticate who is at the other end that you're encrypting for—hence the use of "safety numbers"[0] in Signal, "certificate authorities"[1] in TLS, "web of trust"[2] in PGP, and the list goes on and on...

This is at best an obfuscation attempt to make fingerprinting more expensive, just like BitTorrent protocol encryption[3].

† I Am Not A Cryptographer

[0] https://support.signal.org/hc/en-us/articles/360007060632-Wh...

[1] https://en.wikipedia.org/wiki/Certificate_authority

[2] https://en.wikipedia.org/wiki/Web_of_trust

[3] https://en.wikipedia.org/wiki/BitTorrent_protocol_encryption

Re: Theseus DHT Protocol (2018)

#25

Earlier quoted context omitted.

It's a cool property for sure, but in reality it's pretty difficult to implement, especially if you want a protocol that's extensible, interoperable, or allows open communication. At minimum, you're probably going to have to assume any participants trying to speak the protocol to each other have pre-shared cryptographic keys and/or protocol parameters. Even a protocol like Wireguard for example, which does hardcode p…

Can you explain this, how can it be indistiguishable from random noise? What does that even mean? And why is it even important/useful? Surely even if it looks like noise anyone can see that you are communicating with the DHT network?

The idea is that from the point of view of an observer able to see every byte of data your protocol puts on the network, there is no way for them to tell whether you are actually speaking the protocol or just exchanging random bytes. Basically this is an extension of the idea that encrypted data should look completely random to someone who doesn't know the encryption key, just applied to an entire network protocol. Achieving this means every single byte your protocol puts on the wire needs to be be encrypted with a key known only to the participants or entirely random. As you can imagine, it's pretty hard to actually do, which is why most protocols don't work this way.

While this is not a universally useful property, it can be valuable in situations where even being able to detect a device is using a particular protocol is a problem. A good example is using an anonymization network like Tor in a repressive country like China. Even if your data is protected by Tor, you probably don't want the authorities to know you're using Tor at all.

As you said, one of the biggest problems with this is that even if the protocol itself is perfect, it's not worth much if the network participants are known and communicating with them is itself evidence you're using the protocol. The solution to that would either be making the participants non-public and hard to discover (so an observer doesn't know you're talking to a network participant) or having participants do a lot of things other than participate in the network you're trying to hide. Tor for example takes the former approach with non-advertised "bridges" that you have to know about via some out of band method (e.g. someone emails one to you).

In practice, this indistinguishably property is becoming less useful even when it works given the ubiquity of "normal" encrypted protocols like SSL/TLS. Arguably just using TLS is far better than trying to look like random noise even if you're trying to hide, since random noise on a network is much less common than TLS and probably more of a red flag these days.

Re: Theseus DHT Protocol (2018)

#26
post #7
post #2

Does it allow someone with knowledge of a key to find the IP addresses of other people interested in that key? Because if yes, the other security guarantees are not all that interesting. The fact that Tor is mentioned would suggest that you have to add that to be secure.

I just had a brief read of the protocol but my understanding is yes, there is nothing like onion routing or similar that could disguise to a peer that is serving the data that the requester is indeed the one who is interested in it.

If I can still get fined or disconnected by my ISP for what I do on the network, the whole "indistinguishable from random noise" and "forward secrecy" really mean nothing as an end user.

Re: Theseus DHT Protocol (2018)

#27
post #6

Oooh interesting! I've been reading up on DHT's for the first time recently (I'm very late to the party). It looks like the original inspiration was an anti-censorship network for sharing/providing scientific papers: https://eli.sohl.com/2017/02/17/theseus-robust-system-for-pr... But as another poster noted, the project seems to be defunct do it being a solo effort: https://eli.sohl.com/2017/02/17/theseus-robust-syst…

https://github.com/anacrolix/dht

Re: Theseus DHT Protocol (2018)

#28
I like the ideas in this, and that it's got changes that allow it to work over stream based protocols, which means webrtc and tor. However DHTs (Kademlia at least) aren't efficient on a large scale if they're not built on packet oriented protocols. I don't know what the solution is, maybe allowing TCP is just a compromise you have to make sometimes.

Re: Theseus DHT Protocol (2018)

#29
post #3

I learned about Elligator quite recently and was shocked by how rarely it's actually been deployed (or even implemented), very happy to see it being used here. > Release date: 4/20/2018 > Revision date: 10/8/2018 Would be nice to get a (2018) in the title.

Elligator is both very cool and surprisingly less useful than one might expect. It does what it promises, but there really aren't all that many situations where it's really important to conceal the fact that you're exchanging Curve25519 keys.

The most common encrypted protocols advertise the cipher suite they're using, so there is little value in concealing the format of the keys being exchanged. And protocols trying to hide their existence entirely are pretty uncommon.

Re: Theseus DHT Protocol (2018)

#30
post #3

I learned about Elligator quite recently and was shocked by how rarely it's actually been deployed (or even implemented), very happy to see it being used here. > Release date: 4/20/2018 > Revision date: 10/8/2018 Would be nice to get a (2018) in the title.

Year added. Thanks!
Post reply on HN