De-Orchestrating Freenet / Hyphanet with the QUEEN program
So Poul-Henning Kamp thought this just a thought experiment …
In Fosdem2014 Poul-Henning Kamp talked about a hypothetical “Project ORCHESTRA” by the NSA with the goal of disrupting internet security: Information, Slides, Video (with some gems that are not in the slides).
Before you read on, take some time to watch the talk. It is great.
One of the ideas he mentioned was the QUEEN program: Psy-Ops for Nerds.
I've been a contributor to the Freenet Project for several years. And in that time, I experienced quite a few of these hypothetical tactics first-hand. This is the list of good matches: Disruptive actions which managed to keep Freenet from moving onwards, often for several months.
The most obvious fix is: Stay friendly, stick together, keep honest and greet every newcomer as a potential ally. And call out disrupting behaviour early on.
It's quite horrifying how many disruptive actions there were which badly de-orchestrated Freenet:
- Steer discussions to/from hot spots ("it can't be that hard to exchange a text file!” ⇒ noderef exchange fails all the time, which is the core of the friend-to-friend structure! — it’s much more robust in 2023)
- Disrupt consensus building: Horribly long discussions which cause the resolution to be forgotten due to a fringe issue.
- “Secrecy without authentication is pointless".
- “It gives a *false sense of security*” (if you talor [these kind of things] carefully, they speak to people's political leanings: If it's not perfect: “No, that wouldn't do it". This stopped many implementations, till finally Bombe got too fed up and started the simple and working microblogging tool Sone)
- “you shouldn't do that! Do you really know what you are doing? Do you have a PhD in that? The more buttons you press, the more warnings you get” ← this is “filter failed": No, I don't understand this, “get me out of that!” ⇒ Freenet downloads fail when the filter failed. Up to 2023 the first time wizard asked lots of questions people could not answer without lots of reading.
- Getting people to not do things by misdirecting their attention on it. Just check the Freenet Bugtracker for unresolved simple bugs with completely fleshed out solutions that weren't realized.
- FUD: I could be supporting bad content! (just like you do if your provider has a transparent proxy to reduce outgoing bandwidth - or with any VPN, Tor, i2p, …. Just today I read this: «you seriously think people will ever use freenet to post their family holiday photos, favourite recipes etc? … can you envisage ordinary people using freenet for stuff where they don't really have anything to hide?» — obvious answer: I do that, so naturally other people might do it, too.)
- “Bikeshed” discussions: Sometimes just one single email from an anonymous person can derail a free software project for months!
- Soak mental bandwidth with bogus crypto proposals: PSKs? (a new key-proposal which could make forums scale better but actually just soaked up half a year of the time of the main developer and wasn't implemented - and in return, critical improvements for existing forums were delayed)
- Witless volunteers (overlooking practical advantages due to paranoia, theoretical requirements which fail in the real world, an overly pessimistic stance which scares away newcomers, voicing requirements for formal specification of protocols which are in flux).
- Affect code direction (lot's of the above - also ensuring that there is no direction, so it doesn't really work well for anybody because it tries to have the perfect features for everybody before actually getting a reasonable user experience).
- Code obfuscation (some of the stuff is pretty bad, lots of it looks like it was done in a hurry, because there was so much else to do).
- Misleading documentation (or outdated or none…: There is plenty of Freenet 0.5 documentation while using 0.7 actually requires different steps — and don’t get me started on the forced Hyphanet renaming ← 2023)
- Deceptive defaults (You have to setup your first pseudonym by hand, load two plugins manually and solve CAPTCHAS, before you are able to talk to people anonymously, darknet does not work out of the box, the connection speed when given no unit is interpreted as Bytes/s - I'm sure someone once voiced a reason for that)
Phew, quite a list…
Psy-Ops for Nerds
I provided this because naming the problems is an important step towards resolving them. I am sure that we can fix most of this, but it's important to realize that while many of the points I named are most probably homegrown, it is quite plausible that some of them were influenced from the outside. Freenet was always a pretty high profile project in the crypto community, so it is an obvious target. We'd be pretty naive to think that we weren't targeted.
And we have to keep this in mind when we communicate: We don't only have to look out for bad code, but also for influences which make us take up toxic communication patterns that keep us from moving forward.
The most obvious fix is: Stay friendly, stick together, keep honest and greet every newcomer as a potential ally. And call out disrupting behaviour early on: If someone insults new folks or takes up huge amounts of discussion time by rehashing old discussions instead of talking about the way forward - in a way which actually leads to going forward - then say that this is your impression. Still stay friendly: Most of the time that's not intentional. And people can be affected by outside influences like someone attacking them in other channels, so it would be important to help them recover and not to push them away because their behaviour became toxic for some time (as long as the time investment for that is not overarching).
If you realize that you yourself get irritated quickly, say so in a way that enables others to help you get out (“I find myself getting irritated more quickly lately”). Almost every time you lash out in frustration or cynicism, you hit and hurt an innocent person.
Overall it's about keeping the community together despite the knowledge that some of us might actually be aggressors or influenced from the outside to disrupt our work.