A high level and somewhat naive approach to this complex topic...

First, what's anonymity in our context?
It means exchanging information without anyone knowing who it is who is
sending and requesting said information.

The principle idea how to achieve this is to use an intermediary who
sends and receives information on your behalf. That way the other end
never knows your identity. Even a plain http proxy does that.

But we haven't solved anonymity yet. We only shifted the problem to the
"anonymity provider", our messenger. He knows our identity and so does
everyone who compromises him. The anonymity provider can make it
"harder" (for others...) to be compromised by using cryptography, not
storing logs, being located in several offshore locations and by
relaying traffic over multiple servers internally that all needed to be
compromised in order to retrace the information back to "you".

But that's still not good enough. We'd need to place all eggs in one
basket and trust a stranger, his integrity and security. We can do better.

So we use multiple intermediaries. No single one of them alone
(and thereby no one who compromised one of them) can correlate
information that is relayed over them back to our identity.

But while it looks like we solved the problem things actually got a lot
more complicated. Now we trust in a "network" of strangers. The
"network" knows our identity and so does everyone who compromises the
network.
Since our "messengers" aren't real people a single adversary can pretend
to be many messengers. He doesn't even have to control the
majority of all peers to pose a serious threat to the anonymity of everyone.

There are further problems, some so called "decentralised" networks in
fact rely on centralised bootstrapping. We not only have to trust the
"network", in addition we have to trust a single central authority. If
that part gets compromised our anonymity is broken.

Finally there are attacks from "the outside". An attacker doesn't have
to compromise anyone if he can track the messages simply by watching the
communication between "you" and the messengers. This generally does
apply to all mentioned approaches and only depends on their specific
implementations (encryption, padding, multiplexing, latency...)

But the fundamental flaw shared by all of them is that they are based on
the assumption that we trust someone whom we actually don't trust.

By definition anonymity in this context needs a third party. Further
this implies that we need to trust this third party with our identity.
We need trust because we can't verify anonymity.
(Compare that to privacy where all that's needed is Alice and Bob and
cryptography can offer mathematical verifiability - to some extents)

The only way to solve the dilemma is to make sure that we only have to
trust people we already trust. We must trust them that they are indeed
different real persons, that they aren't colluding and that it's
difficult to compromise all of them without being tipped off.

In other words, the only sensible approach to strong anonymity is a
fully decentralised darknet. Anything else is flawed by design and can't
ever be fixed, no matter what feature you bolt on. Concrete
implementations of darknets today have a range of weaknesses but those
aren't inherent and can be fixed.

There is another, quite different approach to anonymity/pseudonymity.
Instead of using middlemen you could yourself pretend to be someone else
by disguising your identifying features.
You wouldn't have to trust anybody. However, for obvious reasons, this
isn't a concept worth further pursuing.
But it's an important argument whenever the idea of strong anonymity is
attacked with arguments like: "But you are helping the <insert
bogeyman>". They already have the means for conceptually even stronger
anonymity as they probably don't care about the illegality and
collateral damage of their methods.

Would you agree with this analysis? I'd be very interested in your
comments and criticism. Are there any other fundamental concepts to
"solve" anonymity?
_______________________________________________
chat mailing list
chat@freenetproject.org
Archived: http://news.gmane.org/gmane.network.freenet.general
Unsubscribe at http://emu.freenetproject.org/cgi-bin/mailman/listinfo/chat
Or mailto:chat-requ...@freenetproject.org?subject=unsubscribe

Reply via email to