[mnet-devel] ONE_HOP_PRIVACY (fwd)

Eugen Leitl eugen at leitl.org
Thu Aug 29 08:42:09 PDT 2002


---------- Forwarded message ----------
Date: Thu, 29 Aug 2002 01:39:05 -0300
From: Zooko <zooko at zooko.com>
To: mnet-devel at lists.sourceforge.net
Subject: [mnet-devel] ONE_HOP_PRIVACY

A discussion on IRC [1] led me to implement this simple hack.  It makes it
so that all outgoing messages that can be sent through your preferred
relayer
are sent through your preferred relayer.  (If you turn on ONE_HOP_PRIVACY
in your broker.conf file.)  If you also turn on SERVE_USING_RELAY under
the YESNO section in your broker.conf, then the only peers who will learn
your actual IP address will be the relay servers that you use and the meta
trackers (with whom you must talk in order to get the IP addresses of the
relay servers, as well as to get the public keys of the various peers).

Needless (?) to say, this is not "strong" anonymity, as envisioned by David
Chaum, capable of hiding your traffic against dedicated NSA spooks.
It is, however, comparable to the kind of anonymity offered by networks
such as Freenet.

Regards,

Zooko

[1] server: irc.openprojects.net, channel #mnet

--- common/MojoTransaction.py   28 Jul 2002 20:46:13 -0000      1.18
+++ common/MojoTransaction.py   29 Aug 2002 04:12:55 -0000
@@ -1292,7 +1292,29 @@
             # pick the most preferred connection strategy and use it
             newcs = reduce(CommStrat.choose_best_strategy, commstrat_list)
             del commstrat_list
-            self._ch.use_comm_strategy(counterparty_id, newcs,
orig_cs=counterparty_info['connection strategies'][0])
+            self._ch.use_comm_strategy(counterparty_id, newcs)
+
+            # XXX begin code for the OneHopPrivacy hack
+            if confman.is_true_bool('ONE_HOP_PRIVACY'):
+                thisisMT = false
+                for meta_tracker_id, meta_tracker_infodict in
MetaTrackerLib.find_meta_trackers(self):
+                    if idlib.equal(meta_tracker_id, counterparty_id):
+                        thisisMT = true
+                        break
+                # copy one of these strategies and change its llstrat to be
"relay through our preferred RS".
+                # Unless of course this *is* our preferred RS.  And unless
of course we don't *have* a preferred RS.
+                preferredrsId =
self._listenermanager._relayl._get_favorite()
+                if (not preferredrsId) and (not thisisMT):
+                    debugprint("WARNING: can't send message to %s because
we currently have no preferred relay server and we are in OneHopPrivacy
mode.\n", args=(counterparty_id,), v=0, vs="metatracking")
+                    fast_fail_handler(failure_reason="no preferred relay
server while in OneHopPrivacy mode")
+                    return
+
+                if (not thisisMT) and (not idlib.equal(counterparty_id,
preferredrsId)):
+                    onehopprivstrat = CommStrat.Crypto(newcs._pubkey,
CommStrat.Relay(preferredrsId, counterparty_id, self), newcs._broker_id)
+                    self._ch.forget_comm_strategy(counterparty_id) #
*force* us to forget the old one.  Else someone could make a TCP connection
to us, and then we would start sending him messages over it.  Oh waitasec --
he can already verify that we are who he suspects us to be by making a TCP
connection and sending us a message encrypted with our public key.  Oh well.
+                    self._ch.use_comm_strategy(counterparty_id,
inehopprivstrat)
+            # XXX end code for the OneHopPrivacy hack
+
             try:
                 # debugprintsend(diagstr="sending directly [a] ...", v=5,
vs="conversation")
                 self._ch.send_msg(counterparty_id, msg, mojooffer,
hint=hint, fast_fail_handler=fast_fail_handler, timeout=timeout)




-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing 
real-time communications platform! Don't just IM. Build it in! 
http://www.jabber.com/osdn/xim
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel





More information about the cypherpunks-legacy mailing list