changeset 113:5100b1fb4f5c draft

added "anonymity" section to a2.o
author Nick <nick@somerandomnick.ano>
date Sun, 15 Aug 2010 18:00:42 +0000
parents 9fba60ff2ed3
children 18cc3d409f58
files doc/www.anonet2.org/public_pod/Makefile doc/www.anonet2.org/public_pod/anonymity.pod doc/www.anonet2.org/public_pod/darknet_comparison.pod
diffstat 3 files changed, 405 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/doc/www.anonet2.org/public_pod/Makefile	Fri Aug 13 20:49:44 2010 +0000
+++ b/doc/www.anonet2.org/public_pod/Makefile	Sun Aug 15 18:00:42 2010 +0000
@@ -1,4 +1,4 @@
-all: index.html links.html faq.html darknet_comparison.html
+all: index.html links.html faq.html darknet_comparison.html anonymity.html
 
 %.html: %.pod
 	pod2html --noindex < $< 2>/dev/null > $@.tmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/www.anonet2.org/public_pod/anonymity.pod	Sun Aug 15 18:00:42 2010 +0000
@@ -0,0 +1,385 @@
+=head1 AnoNet2 - Anonymity & Pseudonymity
+
+Back to homepage - L<http://www.anonet2.org/>
+
+=head2 Introduction
+
+This page is intended to explain a bit of the theory behind anonymity
+and pseudonymity.  If your goal in joining AnoNet is to protect your
+anonymity, this page may help you avoid some "leaks."
+
+=head2 Definition
+
+Anonymity translates literally into "having no name," and means having
+no useful identification "marks" ("useful" being defined as "usable
+for future find operations").  While it's technically possible to be
+truly anonymous on AnoNet, true anonymity is not really necessary (nor
+desirable) in order to achieve the goals that most guys here expect.
+Pseudonymity ("having no real name") is what most of us are here to
+achieve.  (Most of us don't care if you can find us again on AnoNet
+(and in fact, we normally _want_ you to).  We only care if you can find
+us _outside_ AnoNet.)  However, the theory behind both is quite similar,
+since the potential attacks against both are quite similar.  Therefore,
+this page primarily concerns itself with true anonymity on the assumption
+that a certain amount of correlation between your actions is already
+feasible for an attacker.
+
+=head2 Introduction to Triangulation
+
+The fundamental method that people use for identification is
+triangulation, where we look at something from a bunch of different angles
+and then narrow down our guesses to items that match that combination
+of observations.  For example, a duck is something that looks like
+a duck, quacks like a duck, etc.  It should go without saying, then,
+that our goal here is to avoid others being able to apply triangulation
+"against" us.  That is, our goal is to prevent triangulation "attacks."
+
+=head2 Simple Triangulation
+
+If you see someone on a chatroom around 1800 GMT, and he tells you that
+his mother just bought him some colourful pants when he got back from
+school, it'd be a pretty safe bet to say that he probably:
+
+=over
+
+=item 1
+
+is a kid (his mother buys him simple clothing items, after school)
+
+=item 2
+
+in England (colourful == British spelling; pants == underpants)
+
+=item 3
+
+who is actually a she (boys with colorful pants?)
+
+=back
+
+Now, obviously, if you found more details concerning the makeup of his
+class, you may be able to narrow down the possibilities for his schools.
+Combine that with his IP address, and you can focus on your candidates
+within range of his geographical location.  Perhaps he (she) talks about
+his older brother walking him (her) to school in the morning, before
+going to his own school.  Well, in that case, you can be reasonably sure
+that his older brother graduated from the same school "back in the day."
+Given the fact that England's birth rate is relatively low, you can
+therefore speculate that this bit of information is likely to narrow
+down the possibilities (especially if he tells you how much older his
+brother is).  Another reasonably safe guess is that he's probably located
+in a rather urban area.  Now, you can add a bit of active triangulation
+to the mix, by telling his ISP that his IP address has been sharing
+your intellectual property.  If the owners of that IP address really
+do have a girl in primary school and your intellectual property sounds
+like something oriented towards kids, the parents' first defense is
+likely to be that they don't fileshare, so it was probably their kid (or
+maybe some guy who drove by with wifi, who happens to like kid stuff).
+(Obviously, if you're a civilian, your country is likely to have laws
+against you committing fraud like that, but intelligence agencies
+routinely do this type of thing, so it's worthwhile understanding some
+of the options physically available to an attacker, even if they're not
+"legally" available to him.  You certainly don't want your anonymity
+dependent on an adversary "playing by the rules," do you?)
+
+=head2 A Bit More Formality
+
+A very powerful science for dealing with these types of problems is
+Mathematics, so we gain an advantage if we can translate our problems into
+Mathematics (and our solutions out of it, of course).  Our Mathematical
+model for triangulation is similar to that of geolocating a cellular phone
+that dials for emergency assistance.  Initially, we can only say that
+the cellular phone is likely to be someplace on (or near) planet Earth.
+Since we know that the cellular signal deteriorates over distance and we
+know (based on the phone's specifications) the original signal strength at
+source, each tower can guage its distance from the phone by translating
+backwards from its observed signal strength to meters.  Most towers
+are well out-of-range, and won't observe any measurable signal at all
+(meaning an effectively infinite distance), while the nearby towers will
+observe measurable signals.  Now, each tower has a circle around it made
+up of all the points at a particular distance from it.  (Actually, it's a
+three-dimensional sphere, but in our case, we're assuming the phone isn't
+in flight or underground, for a bit of simplification.  Real systems will
+add an additional tower in order to triangulate in all three dimensions.)
+Two intersecting circles will normally intersect (touch or cross over each
+other) at two points.  Three intersecting circles will rarely intersect
+at more than a single point.  Therefore, as long as the towers can safely
+assume that the phone is broadcasting a uniform signal in all directions,
+they can safely claim to have triangulated his position.
+
+Now, let's see if we can apply triangulation to our own problem space.
+We know that there are approximately 6 billion people on our planet,
+so we're starting out with a population of 6 billion candidates.
+(Obviously, we're assuming that aliens don't have anything interesting to
+do on our ICANN-dominated Internet, and so for all intents and purposes
+don't count.)  Now, there are many "dimensions" in which these people
+are organized.  (A dimension is simply a metric where each individual
+has a potentially measurable coordinate.)  For example, everybody has
+a gender.  Everybody lives in some country.  Everybody has some level
+of computer expertise, some level of Mathematical education, some set
+of familiar authors, some set of favourite bands, some color skin and
+some length hair, etc.  Now, as you're able to intersect coordinates in
+different dimensions, you can start eliminating unlikely candidates and
+focusing on the likely ones.  For example, the number of males is quite
+high (on the order of 3 billion or so), the number of people in Portugal
+is quite high, the number of 15-year-olds is quite high, the number of
+stay-at-home parents is quite high, the number of people who are still
+married to their first wife is quite high, and the number of parents with
+two kids is quite high, but the number of Portuguese males around age 15
+who stay at home to care for their two kids while their first wife is out
+working is very low (probably well under 1000 - low enough for you to be
+able to go door-to-door looking for him, if you'd recognize him by face).
+Clearly, by triangulating coordinates between a variety of dimensions,
+we're able to take the intersection of a variety of sets, which is quite
+small when the sets have little in common (which is normally true when
+there's no causal relationship between the sets in question).
+
+Therefore, if you're that guy and you don't want others to find you,
+you probably shouldn't give away too many facts about yourself.
+
+=head2 Countermeasures
+
+Remember when we talked about the cellular phone geolocation problem,
+where we noted that the towers need to assume the phone is broadcasting
+the same value (in this case, the same starting signal strength) in
+all directions?  Obviously, a phone without an omnidirectional antenna
+could point a different directional antenna at each nearby (or even far
+away) tower, and transmit a highly focused signal at an arbitrary power
+level to each tower, and thereby confuse the towers.  Alternatively, it
+could even work backwards through the triangulation algorithm in order
+to figure out a set of inputs that would cause the towers to geolocate
+the phone "accurately" as being kilometers away from its true location.
+It should come as no surprise, then, that similar techniques work in
+our own problem space.  For example, how do you know that the guy is
+really male?  Given the other dimensions, wouldn't you say he's more
+likely to be a female?
+
+=head2 Verification
+
+Going back to our cellular phone geolocation problem, we left off
+with our phone fooling the towers into thinking it's someplace else.
+However, we didn't take into account that the towers themselves may
+have directional antennas scanning around on a regular basis in order
+to detect precisely this type of fraud.  If the phone is supposed to be
+southwest of one of our towers, why is its signal coming in from the east?
+Not surprisingly, certain verification techniques may be applicable in
+our own problem space.  For example, suppose you somehow got a list of
+all candidates, and then combed all of Portugal door-to-door looking
+for the guy, and didn't find him?  What if he told you that he was a
+licensed pilot, but you couldn't find any pilot matching his description?
+The goal of a verification algorithm is to assess the probability of
+our data sources being correct.  The goal of a verification algorithm
+is to tell us how likely it is that we've been fooled, not to find the
+right answer.  (Obviously, a verification algorithm may itself reveal
+additional information that we can then triangulate with.  For example,
+the towers employing directional antennas can geolocate our phone with
+the directional antennas (using the law of intersecting lines), without
+even relying on the omnidirectional antennas.  Therefore, the verification
+algorithm in this particular case not only verifies the likelyhood of the
+triangulation, but actually provides its own alternative triangulation
+dataset.)
+
+=head2 AnoNet
+
+On AnoNet, the single most important factor in securing your anonymity is
+precluding verification.  If an adversary can't verify his data about you,
+then he's trivially vulnerable to countermeasures, making it difficult for
+him to trust the results of his triangulation (and making it difficult,
+therefore, for him to even justify the cost of triangulating in the
+first place).
+
+For example, you probably don't want to recycle a nickname you
+use elsewhere, since a simple Google search may give adversaries
+a verification tool to use against anything they learn about you on
+AnoNet.  You also want to make sure that the public IP address you use
+for peering doesn't geolocate your exact location (try MaxMind's online
+tool, for example).  A good way of getting around this one is to get a
+VPS (Virtual Private Server) before peering with too many other guys.
+There are plenty of cheap ones (well under 10EUR or 10USD each month),
+and you can easily get a VPS in a different country.  An even better
+way of getting around this is to peer over i2p, if you don't mind
+installing Java on your routers.  If you're lucky, your ISP may
+SNAT outgoing traffic from its users, giving you a certain amount of
+"built-in" protection.  If you're not comfortable giving a peer your IP
+address and none of the above is an option, you may consider peering
+using TCP over tor or something.  In addition, it's also possible to
+exchange data using DNS, so if each of you has access to a DNS server
+and some method to automatically load TXT records into it, you can
+tunnel a VPN over it without either of you giving away his IP address.
+(This particular method can also get around restrictive firewalls, which
+may be independently useful.)  Other things you probably don't want
+to advertise are your name (especially not your full name), location,
+age, marital status, occupation, school, and hobbies.  Under normal
+circumstances, it's safest to assume that anything you tell anybody
+on AnoNet may be used by anybody else on AnoNet for triangulation or
+verification attacks, and so the only reliable method of preventing
+these types of attacks is to avoid leaking any verifiable information
+to anyone on AnoNet.  When that's not feasible, try to avoid giving
+multiple pieces of information to individuals.  For example, if you're
+coming in with UFO's CP, it's probably unwise to use his IRC server.
+(It's also smart not to come onto IRC as soon as you connect, since
+then UFO can guess that the guy who just joined IRC is probably the
+same guy who just connected to his CP.  To protect your anonymity from
+the organizers of a darknet, it's imperative that you peer with someone
+(preferably not an organizer) ASAP after joining.  The more often you
+come in through the CP, the higher the probability that an organizer
+will find you.  If you've come in over the CP more than a few times
+before getting peered, you'll probably want to at least change your IRC
+nickname before rejoining IRC after peering, so the darknet organizers
+at least can't trivially connect your IcannNet IP address with your
+AnoNet nickname.  If a darknet's organizers try to put you through a
+"hazing" period before they'll allow anybody to peer with you, that's
+a strong indication that they don't care much for I<your> anonymity.
+They may tell you that "nobody here trusts you enough yet to give you his
+IP address," but that's (at best) just a thinly veiled way of saying that
+"nobody here cares enough about your anonymity to have bothered to get
+himself a VPS for peering."  By making it difficult for new users to join,
+they're effectively dooming their darknet into forever being a small and
+incestuous club, a fraternity if you will, where everybody gradually gets
+to know everybody else quite well (since static analysis works quite well
+against rigid structures).  An anonymity-preserving darknet makes it easy
+for users to enter and exit at will, with the organizers keeping minimal
+(or no) tabs, in order to resist static analysis.)
+
+=head2 AnoNet2 vs. The Competition
+
+AnoNet2 aims to provide the best anonymity feasible with TCP/IP, through
+a variety of techniques:
+
+=over
+
+=item minimizing required direct information disclosure
+
+Most TCP/IP-based darknets require new users to submit a fair amount of
+information up-front.  Non-anonymizing darknets like dn42, for example,
+expect users to sign up for a wiki account to register resources, to join
+a mailing list for operational discussions, etc.  (dn42, incidentally,
+deserves special mention, as the resource database has recently been
+migrated over to a decentralized resdb-like registry.  In addition,
+there's now an NNTP gateway to the mailing list reachable from inside
+dn42, making it feasible to avoid giving away much information.)
+So-called "anonymizing" darknets, by comparison, tend to turn these types
+of expectations into policy requirements.  A case in point is AnoNet1,
+where new users are expected to go through a "hazing" process for 2-4
+weeks before anybody is supposed to peer with them.  During the "hazing"
+process, the new user is expected to answer questions like "what brings
+you here?" from an informal panel of existing members, and is expected
+to "participate in the discussion" for a couple of weeks to prove that
+he's serious about joining AnoNet1.  (The official excuses range from
+avoiding "drive-by peerings" to preventing infiltration by law enforcement
+officials.  The former commands a high price relative to the nuisance
+factor of a temporary peering, while the latter is just plain laughable.)
+AnoNet1 also requires members to maintain their resource registrations
+on a centralized wiki, making certain information available to crzydmnd.
+There is only one official client port (run by Kaos), and users are
+discouraged from setting up additional ones.  AnoNet2 gets this part
+right by making it very easy for new users to join, and to peer as early
+as technically possible.
+
+=item avoiding centralization of critical infrastructure
+
+Most TCP/IP-based darknets have a fair amount of centralized
+infrastructure.  Centralized infrastructure is problematic, since it
+creates a single point of control (or evesdropping), making it easy for
+the operator to learn information that's not intended for him, and/or
+alter transmissions that aren't intended for him.  Typical examples are
+things like resource databases, chatrooms, DNS, routing infrastructure,
+documentation stores, forums, mailing lists, and public Web pages.
+AnoNet1 is a model of centralized infrastructure, with centralized
+mechanisms in-place for pretty much all of the above minus routing
+(and even routing is quite centralized on AnoNet1, due to their peering
+policies).  Even dn42 (whose primary claim to fame is decentralization)
+retains centralized mechanisms for IRC, wiki, mailing list, and public
+Web pages.  AnoNet2 has only a single point of centralization, in the
+public Web pages here, and even they are easy for anybody on AnoNet2 to
+modify (although there's still a centralized point of control over what
+ends up getting published here and what doesn't, a point which has never
+been used so far (a fact that's very easy to prove in a decentralized
+way), and which will hopefully never be used).  In addition, users are
+encouraged to set up their own public Web pages and to put links to them
+here, in order to further reduce centralization of AnoNet2's Web presence.
+In addition to protecting your anonymity, this level of decentralization
+makes it far more likely for AnoNet2 to survive a splitbrain condition
+(where some bad guys take a number of central users out of the picture,
+leaving a few disconnected fragments with critical services missing),
+something that an anonymity-preserving darknet always has to plan for.
+If AnoNet1 were to become split, the "non-central" side would most
+likely wither away and die (a statistical fact that AnoNet1 used to
+try and destroy AnoNet2 before it ever got off the ground), whereas if
+AnoNet2 splits, the individual fragments should have no problem carrying
+on indefinitely as independent darknets, and little difficulty merging
+back together again if their paths cross at some point in the future.
+What git and monotone do for software development, AnoNet2 does for
+darknet development.
+
+=item not requiring resource registration
+
+AnoNet1 had a very powerful idea, of allowing people to mark a resource
+"reserved" without specifying who has reserved it, but like most good
+ideas in AnoNet1, this one also turned out incompatible with what
+AnoNet1 has become.  AnoNet2 takes this idea one step further: not only
+can you easily leave out the "owner" field in a resource registration,
+but you can even leave out the registration completely, and let someone
+who happens to notice the resource in use (presumably, someone who's
+scanning to make sure a resource is available before using it himself)
+add it himself as "apparently in use."
+
+=item not requiring resource exclusivity
+
+In fact, AnoNet2 takes it a step further, by having no conflict resolution
+policy for resources.  This means two users can use the same IP address,
+for example, and leave it up to routing to decide who "wins."  (Under
+normal circumstances that's not likely to happen, since at least one of
+the users will almost certainly prefer to renumber rather than fighting
+it out with the other guy.  If they both want to fight it out, though,
+there's no AnoNet2 rule that either of them is violating by refusing
+to "talk it out," even if it's trivial to prove which guy's claim came
+first.)  This is intended to be useful during darknet merges, but it can
+also aid in anonymity protection for cooperating users who agree among
+themselves on some algorithm to determine who gets the resource when,
+or perhaps they use the split routing to their advantage, SNATting (or
+proxying) through each other for locations they can't reach directly
+(or even for locations they I<can> reach directly, if they really
+want to confuse an attacker - and themselves, if they're not careful).
+The same thing goes for ASNs, domains, nicknames, etc.  Static analysis
+against any of these resource types is not guaranteed to yield useful
+information (i.e., excessive triangulation may yield strange results),
+and with only a little bit of coordination, a group of users can achieve
+true anonymity, if that's really what they want.
+
+=item avoiding bandwidth requirements for peering
+
+Not everybody can afford a VPS, but everybody should be able to enjoy his
+anonymity, not just as a leaf, but also as a transit.  Conversely, many
+users will want more path diversity, even if it means using slower links.
+Therefore, AnoNet2 defines no rules about minimum bandwidth for peering.
+Individual users can obviously do whatever they want, but there's no
+official policy for them to use as an excuse.  There's nothing wrong
+with a transit node being on dial-up.  If you prefer speed over path
+diversity, just tell your router to avoid any path going through that ASN.
+By the same token, if you have both VPSes and dial-up links and you want
+to make it easy for people to implement different policies for routes
+passing through each of them, it's probably wise to use different ASNs.
+
+=item avoiding I<all> censorship
+
+AnoNet1 officially sanctions some censorship, and unofficially practices
+much more.  The problem is that once you start complexifying the
+definition of censorship, where do you draw the line?  AnoNet2 has a very
+simple definition of censorship: interfering with communications of which
+you are not the (I<the>, not I<an>) intended recipient.  AnoNet2 doesn't
+impose anybody's morals (nor anybody's legal system) on you, so feel
+free to communicate anything you want.  If we don't like what you say,
+we can always just ignore you.
+
+=item avoiding arbitrary restrictions on freedom
+
+Working around restrictions wastes resources, so those who are determined
+to achieve their goals will still achieve them, while the rest of us
+suffer the consequences of a legal framework.  To avoid wasting your
+resources working around AnoNet2 rules, AnoNet2 simply avoids defining
+any rules.  Anything goes.  If you manage to annoy enough people (and
+you'll probably have to put in a serious effort, if you really want to
+annoy enough of us), you'll most likely wind up forking AnoNet2, which
+is probably what you'd want in that case, anyway.
+
+=back
--- a/doc/www.anonet2.org/public_pod/darknet_comparison.pod	Fri Aug 13 20:49:44 2010 +0000
+++ b/doc/www.anonet2.org/public_pod/darknet_comparison.pod	Sun Aug 15 18:00:42 2010 +0000
@@ -2,6 +2,25 @@
 
 Back to homepage - L<http://www.anonet2.org/>
 
+There are a number of darknets out there.  Different darknets have
+different features, which any individual may consider as advantages (or
+disadvantages) depending on his goals.  This page attempts to present
+an accurate comparison between the different darknets known to SRN.
+In particular, SRN has attempted to avoid being unjustly critical of
+AnoNet1 even after having been a victim of AnoNet1's ugly side on multiple
+occasions (although obviously, no attempt has been made to avoid "earned"
+criticism).  If you'd like to add other darknets to this table, keep
+in mind that all of anonet2.org is freely editable from within AnoNet.
+If none of the existing darknets suit your needs, you're encouraged
+to advertise your new one here.  You're also more than welcome to spam
+AnoNet IRC for new members, but if your advertisements get redundant and
+boring and redundant and repetitive and redundant after a while, don't
+be surprised if people start b</ignore>ing you.  (Please don't let that
+discourage you, if you truly believe your new darknet is worth joining.
+You may want to rethink your advertising strategy, though.)  You may
+also be able to get help in planning and/or building a new darknet on
+AnoNet IRC.
+
 =begin html
 
 <table>