-
Notifications
You must be signed in to change notification settings - Fork 451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exploring DHT security #4658
Comments
this may be of interest: https://libtorrent.org/dht_sec.html |
Thank you, I have added it to the list. |
Focussing on a single attack (in contrast to solving the full range of DHT vulnerabilities) is usually a good idea. If you want to explore Eclipse Attacks in more detail, I recommend this survey. There is also interesting work related to blockchain p2p networks since eclipsing miners in a blockchain network could be an effective way to limit the rewards of miners (since their blocks are not propagated at full efficiency).
Your idea is based on (existing) Proof-of-Work mechanisms where one has to put in some effort to perform an action. This idea actually goes back to ~1990 already, where Proof-of-Work was proposed to prevent mail spam. Bitcoin (and many other blockchains) ofcourse also uses this mechanism.
That's my favorite solution to address problems in decentralized networks :). Although it compromises on decentralization, which is not always possible or desired.
This is a bit of a "hybrid" solution since it still requires trusted entities for bootstrapping in the network.
This would require a reputation mechanism where nodes with a low reputation are kicked out of the network and honest nodes are rewarded in some way (e.g., preferential treatment). It is well-known that building secure reputation mechanisms in decentralized network is far from trivial (our lab also has much prior work on this). I would suggest to do a bit more research on each individual idea and to get an idea of what would be the required components to implement each idea. Often, it turns out that an idea is already researched (and published). If you want, you can also drop by our office if you want to discuss these ideas in more detail 👍 |
I think that by having a good defense against an eclipse attack you can also mitigate most other attacks. The Route-and-Storage attack is dependent on the eclipse attack for efficient poisoning. The Sybil attack is not really an issue here, as the network is not dependent on a reputation system. I think this is an issue to be solved on the application level. If a good trust function is ever invented it might be appended to the protocol. I do intent to look at the BitTorrent, Bitcoin and Etherium network as they probably have some sort of defense against this.
This is exactly what I'm referring to, and where I got the idea from. It's proven to be at the very least somewhat effective so I don't really see a reason not to add it.
Yes, that compromise is why this is still an issue. In cases where it is possible it is the best solution. In a lot of cases it is not, therefore we have the other solution.
Yes, my idea was that you are always referred by someone, with who you can connect with directly. This person vouches for you, giving access to nodes trusted by this person. Depending on the person you can access a larger amount of nodes. You can then "befriend" other people you know, making you circle larger by every connection you make. This gives the network a small world property, and automatically puts trusted users together, excluding most potential threads. I think this has the most potential of all solutions, as this takes a more practical approach.
I know this is a hard issue, I did my research :). I was thinking way simpler than that, and just dropping any connections which are dropping frames. This does not account for any reputation or something like that. I try to avoid that inside of the network.
I had written this down to start a conversation and write down any ideas I already had. I'm not even halfway trough all the papers mentioned on the top of the page. Only when I think I read all interesting papers will I continue to focus on the most promising idea of the bunch. I don't really feel like making the same mistakes made 30 years ago. I'll be at the office on the first of august, so we can talk in more detail by then. |
As discussed today, it will take a whole month of reading to become a trust expert of the basic level. Many people in our lab worked full-time on this. This is one of the more high-level overview starting points: #31 (comment). We now have 2 full-time people in the lab working on the trust model. Please read their issues in detail: first two items in this table |
It seems like this research was part of a BSc project/course/"general interest" and it is no longer being researched nor does it seem to be in scope of the Tribler code. I'll close this issue now. |
DHT's are not know for there security, but in a general-purpose p2p network there aren't really any viable alternatives. This issue tries to do research on DHT security and eventually maybe find a solution.
The attacks
The main issue is that keeping nodes available against a large adversary. Message security and integrity are fairly straightforward to implement. There are a few main types of attacks for availability:
Related work
This has had a lot of prior work, which should be considered in the design. Below is a non-complete list in no particular order. Not everything has been fully explored yet:
Specifically about trust
Speculation
I'm currently exploring four ideas, which are mainly towards solve eclipse attacks:
This is all very much a work in progress, but I thought it would be a good idea to write out my initial findings so it could be discussed.
The text was updated successfully, but these errors were encountered: