Open adulau opened 11 years ago
Wow, that is interesting and really an issue. That would poison the opportunistic mode clients :( Did you already discuss possible solutions?
Yes we have many options but it's always a trade-off.
The first (and simple), if you don't trust all the nodes, it's to be in shared mode. I will add an option to choose the opportunistic mode for specific nodes. So like that, you can pick the nodes where you want to grab files from and discard the untrusted ones.
Another option is to separate the share directory between your local shared stuff and the recently acquired stuff via opportunistic mode. And then move these locally if the owner of the node acknowledge.
We discussed another thing regarding "consensus" building to discard such nodes but in any case, we would need to work on the authentication of the node. That's not an easy one if we want to keep the zero-configuration protocol. The idea would be to create a shared secret key (or signature) per "community".
I had many other requests/ideas from OHM2013 participants. I'll add these too.
Yes, in every security option, u always have trade-off. :(
Another option is to separate the share directory between your local shared stuff and the recently acquired stuff via opportunistic mode. And then move these locally if the owner of the node acknowledge.
That would move away from a non-attended synchronization.
. The idea would be to create a shared secret key (or signature) per "community". Secret key and Shared-Key for Reading only it the concept BittorrentSync follows. You have one Key-which allows writing and one key which allows read-only access to you data.
looking forward to the other ideas/requests!!
Fundamentally, Forban seems to be a trust everyone model. Everyone can edit files and have them be accepted by others, no matter who created them in the first place. It seems to be supposed to be used in trusted environments, where you don't have to worry about hackers or bad actors. One small solution to the problem above is to use a versioned hash tree, which will allow files to be updated whether they get smaller or bigger. This is something I plan to implement in my fork. But still bad actors can make malicious edits and overwrite files, there's not a great way to solve that entirely, because of the trust everyone model.
Another option is to separate the share directory between your local shared stuff and the recently acquired stuff via opportunistic mode. And then move these locally if the owner of the node acknowledge.
This would be one partial solution, isn't this distinction already made with var/share
and var/loot
?
Following a discussion with Krunch at OHM2013 about the attacks against the opportunistic mode in Forban, he came with a simple script using the Linux sparse file to always present files bigger than any nodes.