<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://blog.torproject.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>research</title>
 <link>http://blog.torproject.org/category/tags/research</link>
 <description>The taxonomy view with a depth of 0.</description>
 <language>en</language>
<item>
 <title>TorFlow Node Capacity, Integrity and Reliability Measurements at HotPETS</title>
 <link>http://blog.torproject.org/blog/torflow-node-capacity-integrity-and-reliability-measurements-hotpets</link>
 <description>&lt;p&gt;&lt;a href=&quot;https://blog.torproject.org/blog/measuring-tor-network-public-directory-information&quot; rel=&quot;nofollow&quot;&gt;Like Karsten&lt;/a&gt;, I too am presenting at &lt;a href=&quot;http://petsymposium.org/2009/hotpets.php&quot; rel=&quot;nofollow&quot;&gt;HotPETS&lt;/a&gt; in Seattle in August. My presentation will cover my work with my &lt;a href=&quot;https://svn.torproject.org/svn/torflow/trunk/&quot; rel=&quot;nofollow&quot;&gt;TorFlow suite&lt;/a&gt; - a python library and utility set to assist measuring and adjusting performance on the Tor network, and to scan the network for malfunctioning and misbehaving exits.&lt;/p&gt;
&lt;p&gt;One of the highlights is a system for &lt;a href=&quot;https://git.torproject.org/checkout/tor/master/doc/spec/proposals/160-bandwidth-offset.txt&quot; rel=&quot;nofollow&quot;&gt;performance feedback&lt;/a&gt;: a set of &lt;a href=&quot;https://git.torproject.org/checkout/tor/master/doc/spec/proposals/161-computing-bandwidth-adjustments.txt&quot; rel=&quot;nofollow&quot;&gt;training wheels of sorts&lt;/a&gt; for Tor&#039;s load balancing algorithms that once deployed, should greatly improve the performance of the network for 0.2.1 clients. I am very much excited about this and am looking forward to throwing the switch on it in the coming weeks.&lt;/p&gt;
&lt;p&gt;Also of note is the discovery that nodes that use Tor&#039;s built in rate-limiting are far less likely to fail circuits than those that do not, especially for Windows nodes. So if you are a Windows node operator, please rate limit your node slightly below your connection&#039;s capacity using either the Vidalia GUI or the BandwidthRate torrc config option.. I will be emailing the contact info addresses of nodes that are most affected by this soon.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://fscked.org/talks/TorFlow-HotPETS-final.pdf&quot; rel=&quot;nofollow&quot;&gt;paper for the presentation&lt;/a&gt; describes the library, utilities, and their results in much further detail.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/torflow-node-capacity-integrity-and-reliability-measurements-hotpets#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/performance">performance</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <pubDate>Sun, 21 Jun 2009 02:32:49 -0700</pubDate>
 <dc:creator>mikeperry</dc:creator>
 <guid isPermaLink="false">140 at http://blog.torproject.org</guid>
</item>
<item>
 <title>Measuring the Tor Network from Public Directory Information</title>
 <link>http://blog.torproject.org/blog/measuring-tor-network-public-directory-information</link>
 <description>&lt;p&gt;On this year&#039;s &lt;a href=&quot;http://petsymposium.org/2009/hotpets.php&quot; rel=&quot;nofollow&quot;&gt;HotPETs workshop&lt;/a&gt; (August 5-7 in Seattle, WA, USA) I&#039;m going to present some results on &lt;a href=&quot;http://freehaven.net/~karsten/metrics/measuring-tor-public-dir-info-final.pdf&quot; rel=&quot;nofollow&quot;&gt;Measuring the Tor Network from Public Directory Information&lt;/a&gt;. The main idea is to observe trends in the Tor network without having to measure any data other than &lt;a href=&quot;https://git.torproject.org/checkout/tor/master/doc/spec/dir-spec.txt&quot; rel=&quot;nofollow&quot;&gt;public directory information&lt;/a&gt;. These data are there anyway as they are required for clients to make good path selection decisions and build circuits. The results of this paper reveal problems in the current Tor network that need to be addressed, e.g., by &lt;a href=&quot;https://git.torproject.org/checkout/metrics/master/report/dirarch/flagrequirements-2009-04-11.pdf&quot; rel=&quot;nofollow&quot;&gt;lowering requirements for assigning certain flags&lt;/a&gt;, facilitating the upgrade process, improving support for dynamic IP addresses, possibly calculating bandwidth capacity more reliably, and clarifying legal issues for running relays in view of data retention laws. The next step in understanding the problems of the Tor network requires an &lt;a href=&quot;https://blog.torproject.org/blog/performance-measurements-and-blockingresistance-analysis-tor-network&quot; rel=&quot;nofollow&quot;&gt;extension of network measurements&lt;/a&gt; to improve &lt;a href=&quot;https://blog.torproject.org/blog/why-tor-is-slow&quot; rel=&quot;nofollow&quot;&gt;performance&lt;/a&gt; and blocking-resistance of Tor.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/measuring-tor-network-public-directory-information#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/censorship-circumvention">censorship circumvention</category>
 <category domain="http://blog.torproject.org/category/tags/performance">performance</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <pubDate>Tue, 16 Jun 2009 11:25:31 -0700</pubDate>
 <dc:creator>karsten</dc:creator>
 <guid isPermaLink="false">137 at http://blog.torproject.org</guid>
</item>
<item>
 <title>Performance measurements and blocking-resistance analysis in the Tor network</title>
 <link>http://blog.torproject.org/blog/performance-measurements-and-blockingresistance-analysis-tor-network</link>
 <description>&lt;p&gt;The Tor network has grown to more than one thousand relays and millions of casual users over the past few years. We are proud of our network&#039;s popularity, but with growth has come increasing &lt;a href=&quot;https://blog.torproject.org/blog/why-tor-is-slow&quot; rel=&quot;nofollow&quot;&gt;performance problems&lt;/a&gt; and attempts by some countries to block access to the Tor network. In order to address these problems, we need to learn more about the Tor network. In this post, I describe the current state of network measurements in Tor and some proposed additions to help us understand the network better.&lt;/p&gt;
&lt;p&gt;Right now, relays, &lt;a href=&quot;https://www.torproject.org/bridges&quot; rel=&quot;nofollow&quot;&gt;bridges&lt;/a&gt;, and directories gather the following data for statistical purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Relays and bridges count the number of bytes that they have pushed in 15-minute intervals over the past 24 hours. They include these data in extra-info documents that they send to the directory authorities whenever they publish their server descriptor. See Figure 3 in the &lt;a href=&quot;http://git.torproject.org/checkout/metrics/master/report/dirarch/dirarch-2009-03-31.pdf&quot; rel=&quot;nofollow&quot;&gt;analysis of directory archives&lt;/a&gt; that shows that roughly half of the available bandwidth capacity is utilized.&lt;/li&gt;
&lt;li&gt;Bridges further include a rough number of clients per country that they have seen in the past 48 hours in their extra-info documents. We &lt;a href=&quot;http://git.torproject.org/checkout/tor/master/doc/spec/proposals/126-geoip-reporting.txt&quot; rel=&quot;nofollow&quot;&gt;added this feature&lt;/a&gt; in &lt;a href=&quot;http://git.torproject.org/checkout/tor/master/ChangeLog&quot; rel=&quot;nofollow&quot;&gt;version 0.2.0.13-alpha&lt;/a&gt; to help us learn when a given country is trying to block connections to bridges. It also lets us understand bridge adoption better: see for an example an analysis of &lt;a href=&quot;http://git.torproject.org/checkout/metrics/master/report/bridges/bridges-2009-04-04.pdf&quot; rel=&quot;nofollow&quot;&gt;bridge users by countries&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Directories since version &lt;a href=&quot;http://git.torproject.org/checkout/tor/master/ChangeLog&quot; rel=&quot;nofollow&quot;&gt;0.2.1.1-alpha&lt;/a&gt; can be configured to count the number of clients they see per country in the past 24 hours and to write them to a local file. We have used these data in the past to &lt;a href=&quot;http://git.torproject.org/checkout/tor/master/doc/spec/proposals/ideas/xxx-geoip-survey-plan.txt&quot; rel=&quot;nofollow&quot;&gt;estimate&lt;/a&gt; total &lt;a href=&quot;http://git.torproject.org/checkout/metrics/master/report/dirreq/directory-requests-2009-04-23.2.pdf&quot; rel=&quot;nofollow&quot;&gt;numbers&lt;/a&gt; and &lt;a href=&quot;http://git.torproject.org/checkout/metrics/master/report/dirreq/dirreq-report-2009-04-30.pdf&quot; rel=&quot;nofollow&quot;&gt;origins of clients&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It turns out that we need to learn more about the Tor network to make it more useful for everyone. In particular, we are trying to identify performance bottlenecks and want to be ready to notice if any countries start blocking access to the Tor network. Therefore, I am planning to extend network measurements by the following kinds of data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entry guards should count the number of clients per country seen in the past 24 hours and include these numbers in their extra-info documents. These data are similar to what bridges already gather about their clients as well as directories if configured accordingly. (Remember, because Tor paths are more than one hop, the entry guard knows you are using Tor but does not know anything about your destinations.) We need country counts from entry guards to learn how many clients are connected to a single entry guard and if there are or start to be any restrictions for clients connecting from specific countries.&lt;/li&gt;
&lt;li&gt;Relays should determine statistics about the number of bytes and cells waiting in their local queues and report them to the directory authorities in their extra-info documents. We need to &lt;a href=&quot;http://archives.seul.org/or/dev/Apr-2009/msg00007.html&quot; rel=&quot;nofollow&quot;&gt;learn more&lt;/a&gt; about buffer sizes of relays at various loads to identify current and future performance problems and fix them.&lt;/li&gt;
&lt;li&gt;Exit nodes should include the number of bytes and streams they pushed over the past 24 hours broken down by exiting port in their extra-info documents. These data are important for us to identify load-balancing problems with respect to &lt;a href=&quot;https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#RunARelayBut&quot; rel=&quot;nofollow&quot;&gt;exit policies&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These approaches have been designed so that none of the network data can be used to deanonymize our users. All network data are aggregated before being uploaded to the directory authorities: client addresses are resolved to countries, added up over at least 24 hours, and rounded up to the next multiple of a fixed number (currently 8). All network data should be made available via the directories just as the current statistical data can be obtained from downloading extra-info documents. The details of the network measurements as outlined here will be specified in &lt;a href=&quot;http://git.torproject.org/checkout/tor/master/doc/spec/proposals/001-process.txt&quot; rel=&quot;nofollow&quot;&gt;proposals&lt;/a&gt; and discussed on the &lt;a href=&quot;http://archives.seul.org/or/dev/&quot; rel=&quot;nofollow&quot;&gt;developer mailing list&lt;/a&gt;. You can check out our results on the &lt;a href=&quot;https://www.torproject.org/projects/metrics&quot; rel=&quot;nofollow&quot;&gt;metrics project page&lt;/a&gt; as we make progress.&lt;/p&gt;
&lt;p&gt;We are excited to finally start tackling the performance problems and to prepare ourselves to notice when countries start blocking access to the Tor network. We would love to have help from the rest of the research community in discussing safe ways to measure the described network data and to analyze them later on.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/performance-measurements-and-blockingresistance-analysis-tor-network#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/censorship-circumvention">censorship circumvention</category>
 <category domain="http://blog.torproject.org/category/tags/performance">performance</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <pubDate>Thu, 21 May 2009 13:19:22 -0700</pubDate>
 <dc:creator>karsten</dc:creator>
 <guid isPermaLink="false">129 at http://blog.torproject.org</guid>
</item>
<item>
 <title>&quot;One cell is enough to break Tor&#039;s anonymity&quot;</title>
 <link>http://blog.torproject.org/blog/one-cell-enough</link>
 <description>&lt;p&gt;Tomorrow there&#039;s a talk at Black Hat DC by Xinwen Fu on an active attack that can allow traffic confirmation in Tor. He calls it a &quot;&lt;a href=&quot;http://www.cs.uml.edu/~xinwenfu/paper/ICC08_Fu.pdf&quot; rel=&quot;nofollow&quot;&gt;replay attack&lt;/a&gt;&quot;, whereas we called it a &quot;tagging attack&quot; in the original Tor paper, but let&#039;s look at how it actually works.&lt;/p&gt;
&lt;p&gt;First, remember the basics of how Tor provides anonymity. Tor clients &lt;a href=&quot;https://www.torproject.org/images/htw2.png&quot; rel=&quot;nofollow&quot;&gt;route their traffic&lt;/a&gt; over several (&lt;a href=&quot;https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#VariablePathLength&quot; rel=&quot;nofollow&quot;&gt;usually three&lt;/a&gt;) relays, with the goal that no single relay gets to learn both where the user is (call her Alice) and what site she&#039;s reaching (call it Bob).&lt;/p&gt;
&lt;p&gt;The Tor design &lt;a href=&quot;https://www.torproject.org/svn/trunk/doc/design-paper/tor-design.html#subsec:threat-model&quot; rel=&quot;nofollow&quot;&gt;doesn&#039;t try to protect&lt;/a&gt; against an attacker who can see or measure both traffic going into the Tor network and also traffic coming out of the Tor network. That&#039;s because if you can see both flows, some &lt;a href=&quot;http://freehaven.net/anonbib/#danezis:pet2004&quot; rel=&quot;nofollow&quot;&gt;simple statistics&lt;/a&gt; let you decide whether they match up.&lt;/p&gt;
&lt;p&gt;Because we aim to let people browse the web, we can&#039;t afford the extra overhead and hours of additional delay that are used in high-latency mix networks like &lt;a href=&quot;http://freehaven.net/anonbib/#mixmaster-spec&quot; rel=&quot;nofollow&quot;&gt;Mixmaster&lt;/a&gt; or &lt;a href=&quot;http://freehaven.net/anonbib/#minion-design&quot; rel=&quot;nofollow&quot;&gt;Mixminion&lt;/a&gt; to slow this attack. That&#039;s why Tor&#039;s security is all about trying to decrease the chances that an adversary will end up in the right positions to see the traffic flows.&lt;/p&gt;
&lt;p&gt;The way we generally explain it is that Tor tries to protect against traffic analysis, where an attacker tries to learn whom to investigate, but Tor can&#039;t protect against traffic confirmation (also known as end-to-end correlation), where an attacker tries to confirm a hypothesis by monitoring the right locations in the network and then doing the math.&lt;/p&gt;
&lt;p&gt;And the math is really effective. There are simple packet counting attacks (&lt;a href=&quot;http://freehaven.net/anonbib/#SS03&quot; rel=&quot;nofollow&quot;&gt;Passive Attack Analysis for Connection-Based Anonymity Systems&lt;/a&gt;) and moving window averages (&lt;a href=&quot;http://freehaven.net/anonbib/#timing-fc2004&quot; rel=&quot;nofollow&quot;&gt;Timing Attacks in Low-Latency Mix-Based Systems&lt;/a&gt;), but the more recent stuff is &lt;a href=&quot;http://www.lightbluetouchpaper.org/2007/05/28/sampled-traffic-analysis-by-internet-exchange-level-adversaries/&quot; rel=&quot;nofollow&quot;&gt;downright scary&lt;/a&gt;, like Steven Murdoch&#039;s PET 2007 paper about achieving high confidence in a correlation attack despite seeing only 1 in 2000 packets on each side (&lt;a href=&quot;http://freehaven.net/anonbib/#murdoch-pet2007&quot; rel=&quot;nofollow&quot;&gt;Sampled Traffic Analysis by Internet-Exchange-Level Adversaries&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;What Fu is presenting in his talk is another instance of the confirmation attack, called the tagging attack. The basic idea is that an adversary who controls both the first (entry) and last (exit) relay that Alice picks can modify the data flow at one end of the circuit (&quot;tag&quot; it), and detect that modification at the other end &amp;mdash; thus bridging the circuit and confirming that it really is Alice talking to Bob. This attack has some limitations compared to the above attacks. First, it involves modifying data, which in most cases will break the connection; so there&#039;s a lot more risk that he&#039;ll be noticed. Second, the attack relies on the adversary actually controlling both relays. The passive variants can be performed by an observer like an ISP or a telco.&lt;/p&gt;
&lt;p&gt;Tagging attacks on designs like Tor go back over a decade in the literature. In the 1996 Onion Routing paper (&lt;a href=&quot;http://freehaven.net/anonbib/#onion-routing:ih96&quot; rel=&quot;nofollow&quot;&gt;Hiding Routing Information&lt;/a&gt;), they wrote:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
If the responder&#039;s proxy [exit node] is compromised, and can determine when the unencrypted data stream has been corrupted, it is possible for compromised nodes earlier in the virtual circuit to corrupt the stream and ask which responder&#039;s proxy received uncorrupted data. By working with compromised nodes around a suspected initiator&#039;s proxy [Tor client], one can identify the beginning of the virtual circuit.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When we designed Tor, we made a conscious decision to not design against this attack, because the other confirmation attacks are just as effective and we have no fix for them, and because countering the tagging attack doesn&#039;t come for free. Here&#039;s a quote from &lt;a href=&quot;https://www.torproject.org/svn/trunk/doc/design-paper/tor-design.html#subsec:integrity-checking&quot; rel=&quot;nofollow&quot;&gt;the Tor design paper&lt;/a&gt; in 2004:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Because Tor uses TLS on its links, external adversaries cannot modify data. Addressing the insider malleability attack, however, is more complex.&lt;/p&gt;
&lt;p&gt;We could do integrity checking of the relay cells at each hop, either by including hashes or by using an authenticating cipher mode like EAX, but there are some problems. First, these approaches impose a message-expansion overhead at each hop, and so we would have to either leak the path length or waste bytes by padding to a maximum path length. Second, these solutions can only verify traffic coming from Alice: ORs would not be able to produce suitable hashes for the intermediate hops, since the ORs on a circuit do not know the other ORs&#039; session keys. Third, we have already accepted that our design is vulnerable to end-to-end timing attacks; so tagging attacks performed within the circuit provide no additional information to the attacker. Thus, we check integrity only at the edges of each stream.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Basically, we chose a design where the tagging attack is no more effective than the passive confirmation attacks, and figured that would have to be good enough.&lt;/p&gt;
&lt;p&gt;I should also note here that the correlation attack papers mostly focus on _observing_ flows at either end and matching them up. They do great with just that. But think what you could do if you actually control one of the endpoints, and can modulate how much you send, when you send it, etc. Heck, if you&#039;re the exit relay, you can spoof a much larger webpage for the user, and then have even more bytes to work with. None of that requires a tagging attack.&lt;/p&gt;
&lt;p&gt;So, where does the &quot;one cell is enough&quot; come in? If you can tag a single cell and recognize it on the other end of the circuit, then you can be confident you&#039;ve got the right flow.&lt;/p&gt;
&lt;p&gt;One of the unknowns in the research world is exactly how quickly the timing attack succeeds. How many seconds of traffic (and/or packets) do you need to achieve a certain level of confidence? I&#039;ll grant that if you run the entry and exit, tagging is a very simple attack to carry out both conceptually and in practice. But I think Fu underestimates how simple the timing attack can be also. That&#039;s probably the fundamental disagreement here.&lt;/p&gt;
&lt;p&gt;For example, Bauer et al. in WPES 2007 described a passive timing attack on Tor circuit creation that works before a single relay cell has been transmitted (&lt;a href=&quot;http://freehaven.net/anonbib/#bauer:wpes2007&quot; rel=&quot;nofollow&quot;&gt;Low-Resource Routing Attacks Against Tor&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Fu&#039;s paper also cites concern about false positives -- it seems on first glance that a tagging attack should provide much higher confidence than a timing attack, since you&#039;ll always be wondering whether the timing attack really matched up the right circuits. Here&#039;s a quote from one of the authors of &lt;a href=&quot;http://freehaven.net/anonbib/#hs-attack06&quot; rel=&quot;nofollow&quot;&gt;Locating Hidden Servers&lt;/a&gt;, another paper with a successful timing attack on Tor:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
We were prepared to do parameter tuning, active timing signature insertion, etc. should it be necessary, but it wasn&#039;t. In the thousands of circuits we ran we _never_ had a false positive.  The Bauer et al. paper from WPES&#039;07 extended our work from hidden server circuits to general Tor circuits (although it only ran on a Tor testbed on PlanetLab rather than the public Tor network). The highest false positive rate they got was .0006. This is just a nonissue.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;One of the challenges here is that anonymity designs live on the edge. While crypto algorithms aim to be so good that even really powerful attackers still can&#039;t succeed, anonymity networks are constantly balancing performance and efficiency against attacks like these. One of the tradeoffs we made in the Tor design is that we accepted end-to-end correlation as an attack that is too expensive to solve, and we&#039;re building the best design we can based on that.&lt;/p&gt;
&lt;p&gt;If somebody can show us that tagging attacks are actually much more effective than their passive timing counterparts, we should work harder to fix them. If somebody can come up with a cheap way to make them harder, we&#039;re all ears. But while they remain on par with passive attacks and remain expensive to fix, then it doesn&#039;t seem like a good move to slow down Tor even more without actually making it safer.&lt;/p&gt;
&lt;p&gt;Overall, I&#039;m confused why the conference organizers thought this would be a good topic for a Black Hat talk. It&#039;s not like there&#039;s a shortage of &quot;oh crap&quot; Tor attack papers lately. I guess my take-away message is that I need to introduce Jeff Moss to Nick Hopper et al from Minnesota (&lt;a href=&quot;http://freehaven.net/anonbib/#tissec-latency-leak&quot; rel=&quot;nofollow&quot;&gt;How Much Anonymity does Network Latency Leak?&lt;/a&gt;) and Sambuddho Chakravarty et al from Columbia (&lt;a href=&quot;http://www.google.com/search?q=columbia+global+passive+adversary+tor&quot; rel=&quot;nofollow&quot;&gt;Approximating a Global Passive Adversary against Tor&lt;/a&gt;).&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/one-cell-enough#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/attacks">attacks</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <category domain="http://blog.torproject.org/category/tags/tagging">tagging</category>
 <pubDate>Wed, 18 Feb 2009 22:51:21 -0800</pubDate>
 <dc:creator>arma</dc:creator>
 <guid isPermaLink="false">105 at http://blog.torproject.org</guid>
</item>
<item>
 <title>Overhead from directory info: past, present, future</title>
 <link>http://blog.torproject.org/blog/overhead-directory-info%3A-past%2C-present%2C-future</link>
 <description>&lt;p&gt;A growing number of people want to use Tor in low-bandwidth contexts (e.g. modems or shared Internet cafes in the Middle East) and mobile contexts (start up a Tor client, use it for a short time, and then stop it again). Currently Tor is nearly unusable in these situations, because it spends too many bytes fetching directory info. This post summarizes the steps we&#039;ve taken so far to reduce directory overhead, and explains the steps that are coming next.&lt;/p&gt;
&lt;p&gt;First, what do I mean by &quot;directory info&quot;? Part of the Tor design is the _discovery_ component: how clients learn about the available Tor relays, along with their keys, locations, exit policies, and so on. Tor&#039;s solution so far uses a few trusted directory authorities that sign and distribute official lists of the relays that make up the Tor network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;History of v1, v2, v3 dir protocols&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Over the years we&#039;ve had several different &quot;directory protocols&quot;, each more bandwidth-friendly than the last, and often providing stronger security properties as well. In Tor&#039;s &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/dir-spec-v1.txt&quot; rel=&quot;nofollow&quot;&gt;first directory design&lt;/a&gt; (Sept 2002), each authority created its own list of every relay descriptor, as one flat text file. A short summary of relay status at the top of the file told clients which relays were reachable. Every Tor client fetched a copy from an authority every 10 minutes.&lt;/p&gt;
&lt;p&gt;Tor 0.0.8 (Aug 2004) introduced &quot;directory caches&quot;, where normal relays would fetch a copy of the directory and serve it to others, to take some burden off the authorities. Tor 0.0.9 (Dec 2004) let clients download &quot;running routers&quot; status summaries separately from the main directory, so they could keep more up-to-date on reachability without needing to refetch all the descriptors. It also added zlib-style compression during transfer. At this point everybody fetched the whole directory every hour and the running-routers document every 15 minutes.&lt;/p&gt;
&lt;p&gt;There were two big flaws with the v1 directory scheme: a security problem and an overhead problem. The security problem was that even though there were three authorities, you just went with the most recent opinion you could find, so a single evil authority could screw everybody. The overhead problem was that clients were fetching a new directory even when very little of it had changed. In Dec 2004 there were 57 relays and the uncompressed directory was 172KB; but by May 2006 we were up to 749 relays and the full directory was almost 1MB compressed. Even though we&#039;d lowered the period for fetching new copies to 2 hours (20 minutes for caches), this was not good.&lt;/p&gt;
&lt;p&gt;We introduced the &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/dir-spec-v2.txt&quot; rel=&quot;nofollow&quot;&gt;v2 directory design&lt;/a&gt; in Tor 0.1.1.20 in May 2006. Each authority now produced its own &quot;network status&quot; document, which listed brief summaries of each relay along with a hash of the current relay descriptor. Clients fetched all the status documents (there were 5 authorities by now) and ignored relays listed by less than half of them. Clients only fetched the relay descriptors they were missing. Once bootstrapped, clients fetched one new status document (round robin) per hour. Peter Palfrader produced a &lt;a href=&quot;http://asteria.noreply.org/~weasel/Tor/tor-client-download-stats-longterm-dl.jpg&quot; rel=&quot;nofollow&quot;&gt;graph of bandwidth needed to bootstrap and then keep up-to-date over a day&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All of the improvements so far were oriented toward saving bandwidth at the server side: we figured that clients had plenty of bandwidth, and we wanted to avoid overloading the authorities and caches. But if we wanted to add more directory authorities (a majority of 5 is still an uncomfortably small number), bootstrapping clients would have to fetch one more network status for every new authority. By early 2008, each status document listed 2500 relay summaries and came in around 175KB compressed, meaning you needed 875KB of status docs when starting up, and then another megabyte of descriptors after that. And we couldn&#039;t add more authorities without making the problem even worse.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/dir-spec.txt&quot; rel=&quot;nofollow&quot;&gt;v3 directory design&lt;/a&gt; in Tor 0.2.0.30 (Jul 2008) solved this last problem by having the authorities coordinate and produce an hourly &quot;consensus&quot; network status document, signed by a majority of the six v3 authorities. Now clients only have to fetch one status document.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Next fixes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Based in part on sponsorship by &lt;a href=&quot;http://www.nlnet.nl/&quot; rel=&quot;nofollow&quot;&gt;NLnet&lt;/a&gt; to &lt;a href=&quot;https://www.torproject.org/projects/lowbandwidth&quot; rel=&quot;nofollow&quot;&gt;reduce Tor&#039;s directory overhead&lt;/a&gt;, there are two directions we&#039;re exploring now: reducing relay download overhead and reducing consensus networkstatus download overhead.&lt;/p&gt;
&lt;p&gt;We&#039;ve cut relay descriptor size by 60% by &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/104-short-descriptors.txt&quot; rel=&quot;nofollow&quot;&gt;moving some of the descriptor info to separate &quot;extra-info&quot; descriptors that clients don&#039;t need to fetch&lt;/a&gt;, and we&#039;ve cut the consensus size by 40% by &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/138-remove-down-routers-from-consensus.txt&quot; rel=&quot;nofollow&quot;&gt;leaving out non-Running relays&lt;/a&gt; (since clients won&#039;t fetch descriptors for them anyway).&lt;/p&gt;
&lt;p&gt;We spent the second half of 2008 working on a &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/141-jit-sd-downloads.txt&quot; rel=&quot;nofollow&quot;&gt;much more radical design change&lt;/a&gt; where we move all the descriptor components that are used for path selection into the consensus, and then clients would download each relay descriptor &quot;just in time&quot; as part of circuit extension. This design would have two huge benefits: a) clients download zero descriptors at startup, greatly speeding bootstrapping, and b) the total number of relay descriptor downloads would be based on the number of circuits built, regardless of how many relays are in the network.&lt;/p&gt;
&lt;p&gt;Alas, we have backed off on this proposal: Karsten Loesing&#039;s work on &lt;a href=&quot;https://www.torproject.org/projects/hidserv&quot; rel=&quot;nofollow&quot;&gt;hidden service performance&lt;/a&gt; concluded that the circuit extension is the main performance killer, and our &quot;just in time&quot; download proposal would add more round-trips and complexity into exactly that step. So we have a new plan: we&#039;re still going to move all the path-selection information into the consensus, but then we&#039;re going to put the remaining pieces into a new &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/158-microdescriptors.txt&quot; rel=&quot;nofollow&quot;&gt;microdescriptor&lt;/a&gt; that will hopefully change at most weekly. That means the initial bootstrap costs will still be there (though the microdescriptor is maybe a third the size of the normal descriptor), but so long as you can keep a disk cache, descriptor maintenance will be reduced to roughly zero. We&#039;re aiming to roll this change out in Tor 0.2.2.x, in mid 2009.&lt;/p&gt;
&lt;p&gt;We also have plans to further reduce the consensus download overhead. Since the consensus doesn&#039;t actually change that much from one hour to the next, clients should fetch &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/140-consensus-diffs.txt&quot; rel=&quot;nofollow&quot;&gt;consensus diffs&lt;/a&gt; rather than fetching a whole new consensus. We could expect another 80% reduction in size here. We hope to roll this step out in mid to late 2009. Alas, this goal is stymied by the fact that &lt;a href=&quot;http://archives.seul.org/or/dev/Jun-2008/msg00031.html&quot; rel=&quot;nofollow&quot;&gt;we haven&#039;t found any small portable BSD-licensed C diff libraries&lt;/a&gt;. Anybody know one?&lt;/p&gt;
&lt;p&gt;So these two changes together mean an initial bootstrap cost of maybe 100KB+300KB, and then a maintenance cost of maybe 20KB/hour. But actually, once we&#039;ve gotten the maintenance level so low, we should think about updating the consensus more often than once an hour. The goal would be to get relays that change IP addresses back into action as soon as possible -- currently it takes 2 to 4 hours before a new relay (or a relay with a new location) gets noticed by clients. Since &lt;a href=&quot;http://freehaven.net/~karsten/metrics/dirarch-2009-02-11.pdf&quot; rel=&quot;nofollow&quot;&gt;one-third of Tor relays run on dynamic IP addresses&lt;/a&gt;, bringing that level down to 30 to 60 minutes could mean a lot more network capacity.&lt;/p&gt;
&lt;p&gt;Down the road, there are even more radical design changes to consider. One day there will be too many relays for every client to know about all of them, so we will want to partition the network (see Section 4.4 of &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/roadmaps/2008-12-19-roadmap-full.pdf&quot; rel=&quot;nofollow&quot;&gt;Tor&#039;s development roadmap&lt;/a&gt;). When we do that, we can bound the amount of directory info that each client has to maintain. Another promising idea is to figure out ways to let clients build paths through the network while requiring less information about each relay. There&#039;s definitely a tradeoff here between centralized coordination (which is easier to design, and can more easily provide good anonymity properties) and scaling to many tens of thousands of relays. But that, as they say, is a story for another time.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/overhead-directory-info%3A-past%2C-present%2C-future#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/directory">directory</category>
 <category domain="http://blog.torproject.org/category/tags/performance">performance</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <pubDate>Sun, 15 Feb 2009 23:05:16 -0800</pubDate>
 <dc:creator>arma</dc:creator>
 <guid isPermaLink="false">101 at http://blog.torproject.org</guid>
</item>
<item>
 <title>Two incentive designs for Tor</title>
 <link>http://blog.torproject.org/blog/two-incentive-designs-tor</link>
 <description>&lt;p&gt;One big challenge to making Tor fast is providing incentives for users to act as relays. So far we&#039;ve been getting more relays by 1) building community through interacting more with relay operators, listing the fast ones prominently in the &lt;a href=&quot;http://torstatus.kgprog.com/index.php?SR=Bandwidth&amp;amp;SO=Desc&quot; rel=&quot;nofollow&quot;&gt;Tor status pages&lt;/a&gt;, and generally making it clear that you will make the Tor network better if you do, and 2) making it really easy to configure and run a relay by adding a simple GUI interface in Vidalia and adding UPnP support. But we should also consider more direct incentive approaches, for example where Tor is faster for you if you&#039;re a relay.&lt;/p&gt;
&lt;p&gt;There are two papers that came out in 2008 that everybody pondering incentives in Tor should read. The first is &lt;a href=&quot;http://freehaven.net/~arma/incentives-tr08.pdf&quot; rel=&quot;nofollow&quot;&gt;&quot;Building Incentives into Tor&quot;&lt;/a&gt;, a tech report I coauthored with Johnny Ngan and Dan Wallach from Rice University. The second is &lt;a href=&quot;http://freehaven.net/anonbib/#raykova-pet2008&quot; rel=&quot;nofollow&quot;&gt;&quot;Payment for Anonymous Routing&quot;&lt;/a&gt;, published at &lt;a href=&quot;http://petsymposium.org/2008/program.php&quot; rel=&quot;nofollow&quot;&gt;PETS 2008&lt;/a&gt; by Androulaki et al from Columbia University.&lt;/p&gt;
&lt;p&gt;The first paper proposes that Tor&#039;s directory authorities should spot check relays to make sure they&#039;re behaving well, and assign &quot;gold star&quot; flags to the good ones in the networkstatus consensus. Then relays give priority service to connections from people who have gold stars. We ran simulations of the idea for various combinations of users and strategies (selfish, cooperative, adaptive, etc), and showed that in general the performance for gold-star users stays good even with many other users and a heavy traffic load on the network. The other main goal of the design uses an economic argument: not only does it provide the (explicit) incentive to run a relay, but it also aims to grow the overall capacity of the network, so even non-relays will benefit.&lt;/p&gt;
&lt;p&gt;However, this incentive design has a serious flaw: the set of gold-star users is public. Over time an attacker can narrow down which relays are always the ones online when a certain activity (e.g. posting to a blog) happens. One fix might be to make the gold star status persist for a few weeks after the relay stops offering service, to dampen out fluctuations in the anonymity sets. But I fear that this narrowing-down attack (also known in research papers as the &quot;intersection attack&quot;) is still going to work really well against users who only relay traffic around the times they want good performance.&lt;/p&gt;
&lt;p&gt;It would seem that any incentives scheme that treats currently running relays specially will fall prey to this attack. We need to find some way to greatly increase the set of people who might be getting priority service. That&#039;s where the Columbia paper comes in: they propose that Tor clients use e-cash (digital coins) to pay for high-priority circuits.  The bulk of the paper is in working out how to both a) make sure users can&#039;t cheat too often, and b) make sure relays can&#039;t use the payments to trace users. They use a hybrid digital cash design, where clients don&#039;t mind identifying themselves to the first hop, but then use anonymous digital cash when paying the later hops in the circuit. Most anonymous credential schemes involve way too much computational overhead, so having one that&#039;s more practical is a great step.&lt;/p&gt;
&lt;p&gt;Because anybody can buy the digital coins, it&#039;s not so easy to build a set of suspects when you see somebody use a high-priority circuit.  Of course, once real money gets involved, things get more complex. One big problem is the bank. Actually building a centralized place where people turn dollars into bits and back is a daunting exercise, and other projects have learned the lesson that it&#039;s hard to get right. Plus there are still unsolved anonymity questions -- if we see Alice use a credit card to buy some anonymous coins, and then a few minutes later some anonymous person spends some anonymous coins, what did we learn?&lt;/p&gt;
&lt;p&gt;On top of that are the social implications of adding money into the system. Nick keeps reminding me of sociological studies saying that rewarding volunteers with t-shirts makes them feel good about their contribution, whereas rewarding them with a small amount of cash makes them subconsciously start to value their contribution based on the cash you give them. So they&#039;re more likely to stop volunteering, as they don&#039;t feel their effort is properly appreciated. More details &lt;a href=&quot;http://www.congo-education.net/wealth-of-networks/ch-04.htm&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://fiveandone.wikispaces.com/file/view/Why+Incentive+Plans+Cannot+Work.pdf&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;http://www.google.com/search?q=Effects+of+externally+mediated+rewards+on+intrinsic+motivation&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;. It&#039;s hard to say how right this research is, but it seems a rough set of variables to add in if we can avoid it.&lt;/p&gt;
&lt;p&gt;Beyond that, paying relays introduces other problems. For one, relays now have new incentives to cheat, or to minimize their traffic costs compared to the payments. How do we achieve a good decentralized network if everybody gravitates to the same cheapest hosting provider? Money can even &lt;a href=&quot;http://archives.seul.org/or/talk/Dec-2008/msg00061.html&quot; rel=&quot;nofollow&quot;&gt;change the legal status of relays&lt;/a&gt; in some cases.&lt;/p&gt;
&lt;p&gt;So how to proceed? My current idea is a combination of the two designs. The directory authorities give out digital coins in exchange for being a good relay, and the coins can be used to build high-priority circuits. The relays track the coins just enough to prevent too much double-spending (using a coin more than once), and then discard them. Now there is no bank, and no real money involved. It&#039;s just a resource management approach.&lt;/p&gt;
&lt;p&gt;Will a secondary market appear, where people sell their coins on eBay? Perhaps. Fine with me if so. I think that&#039;s a different situation than having the protocol itself designed to transfer dollars from users to relays.&lt;/p&gt;
&lt;p&gt;The single-use coins make me uncomfortable, because there&#039;s a lot of crypto infrastructure and performance questions in getting all those coins right. Worse, if we&#039;re really spending coins for every circuit, we will want to rethink our current &quot;feel free to build a bunch of circuits and just use a few&quot; approach that we&#039;re getting even more attached to with &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/151-path-selection-improvements.txt&quot; rel=&quot;nofollow&quot;&gt;proposal 151&lt;/a&gt;. In my ideal world we could give out coins (credentials) that could be used as much as you like in a given time period, so we don&#039;t need the whole anonymous cash infrastructure. But if somebody posts their credential to Slashdot, I want some way either to revoke it and/or to notice and not give that guy any more credentials in the future, and that seems hard. So it looks like it&#039;ll be single-use coins or bust.&lt;/p&gt;
&lt;p&gt;Of course, lest I appear too optimistic, there are a few more barriers to getting this right. We need to make sure Tor&#039;s network design can scale to make use of many more relays. We&#039;ve been making some progress lately at &lt;a href=&quot;https://www.torproject.org/projects/lowbandwidth&quot; rel=&quot;nofollow&quot;&gt;decreasing the bandwidth required for directory downloads&lt;/a&gt;, but &lt;a href=&quot;https://www.torproject.org/faq#EverybodyARelay&quot; rel=&quot;nofollow&quot;&gt;many other aspects of this problem still need to be solved&lt;/a&gt;. We also need a better way to actually implement priority circuits: our &lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/111-local-traffic-priority.txt&quot; rel=&quot;nofollow&quot;&gt;current approach&lt;/a&gt; sometimes accidentally gives high priority to other circuits too. Lastly, we might find that per-circuit accounting is not sufficient to handle the load that some users want to put on the network. If so, somebody will need to start doing design and research on per-byte accounting.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/two-incentive-designs-tor#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/incentives">incentives</category>
 <category domain="http://blog.torproject.org/category/tags/performance">performance</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <pubDate>Sat, 17 Jan 2009 12:42:56 -0800</pubDate>
 <dc:creator>arma</dc:creator>
 <guid isPermaLink="false">92 at http://blog.torproject.org</guid>
</item>
<item>
 <title>July 2008 Progress Report</title>
 <link>http://blog.torproject.org/blog/july-2008-progress-report</link>
 <description>&lt;p&gt;&lt;strong&gt;Releases:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Torbutton 1.2.0rc5 (released July 6) provides improved addon compatibility, better preservation of Firefox preferences that we touch, fixing issues with Tor toggle breaking for some option combos, and an improved &#039;Restore Defaults&#039; button. This version also features Firefox 3 cookie jar support, and support for storing cookie jars in memory.&lt;br /&gt;
&lt;a href=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00026.html&quot; title=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00026.html&quot; rel=&quot;nofollow&quot;&gt;http://archives.seul.org/or/talk/Jul-2008/msg00026.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vidalia 0.1.6 (released July 8) fixes a bug introduced in 0.1.3 that could cause excessive CPU usage or crashing on some platforms; continues to prepare Vidalia&#039;s strings for easier translation; adds a Romanian GUI and installer translation; and updated the Farsi, Finnish, French, German, and Swedish translations.&lt;br /&gt;
&lt;a href=&quot;http://trac.vidalia-project.net/browser/vidalia/tags/vidalia-0.1.6/CHANGELOG&quot; title=&quot;http://trac.vidalia-project.net/browser/vidalia/tags/vidalia-0.1.6/CHANGELOG&quot; rel=&quot;nofollow&quot;&gt;http://trac.vidalia-project.net/browser/vidalia/tags/vidalia-0.1.6/CHANG...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tor 0.2.0.29-rc (released July 8) fixes two big bugs with using bridges, fixes more hidden-service performance bugs, and fixes a bunch of smaller bugs.&lt;br /&gt;
&lt;a href=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00038.html&quot; title=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00038.html&quot; rel=&quot;nofollow&quot;&gt;http://archives.seul.org/or/talk/Jul-2008/msg00038.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Torbutton 1.2.0rc6 (released July 12) features fixes for a nasty history loss bug, an exception during Tor toggle, javascript being disabled in some tabs, better pref handling, and more.&lt;br /&gt;
&lt;a href=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00049.html&quot; title=&quot;http://archives.seul.org/or/talk/Jul-2008/msg00049.html&quot; rel=&quot;nofollow&quot;&gt;http://archives.seul.org/or/talk/Jul-2008/msg00049.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tor 0.2.0.30 (released July 15) is the first stable release of the 0.2.0.x branch. The previous stable branch (0.1.2.x) went stable in April of 2007. We are still waiting for Torbutton and Vidalia to stabilize before announcing the Windows and OS X packages on the or-announce announcements&lt;br /&gt;
list. We expect to do that in August.&lt;/p&gt;
&lt;p&gt;Tor Browser Bundle 1.1.1 (released July 20) updates Vidalia to release 0.1.6, updates Pidgin Portable to 2.4.3, updates Pidgin OTR plugin to 3.2, updates Tor to 0.2.1.2-alpha, updates Torbutton to 1.2.0rc6, and sets TZ=UTC environment variable in RelativeLink (needed by Torbutton).&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/torbrowser/trunk/README&quot; title=&quot;https://svn.torproject.org/svn/torbrowser/trunk/README&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/torbrowser/trunk/README&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Torbutton 1.2.0 (released July 30) is finally a stable release for the new Torbutton tree that includes application-level privacy protections.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/torbutton/trunk/src/CHANGELOG&quot; title=&quot;https://svn.torproject.org/svn/torbutton/trunk/src/CHANGELOG&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/torbutton/trunk/src/CHANGELOG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From the Tor 0.2.0.29-rc ChangeLog:&lt;br /&gt;
&quot;When a hidden service was trying to establish an introduction point, and Tor had built circuits preemptively for such purposes, we were ignoring all the preemptive circuits and launching a new one instead. Bugfix on 0.2.0.14-alpha.&quot;&lt;br /&gt;
&quot;When a hidden service was trying to establish an introduction point, and Tor *did* manage to reuse one of the preemptively built circuits, it didn&#039;t correctly remember which one it used, so it asked for another one soon after, until there were no more preemptive circuits, at which point it launched one from scratch. Bugfix on 0.0.9.x.&quot;&lt;/p&gt;
&lt;p&gt;The upcoming Tor 0.2.1.3-alpha and 0.2.1.4-alpha releases include more fixes for hidden service performance and robustness, have slightly improved bootstrap status event behavior, and start hunting down a horrible bug that looks like it could leak private information:&lt;br /&gt;
&lt;a href=&quot;https://bugs.torproject.org/flyspray/index.php?do=details&amp;amp;id=779&quot; title=&quot;https://bugs.torproject.org/flyspray/index.php?do=details&amp;amp;id=779&quot; rel=&quot;nofollow&quot;&gt;https://bugs.torproject.org/flyspray/index.php?do=details&amp;amp;id=779&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proposals:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Proposal 145 (Separate &quot;suitable as a guard&quot; from &quot;suitable as a new guard&quot;) suggests one approach for separating the role of &quot;is still useful as an entry guard&quot; from &quot;should be an option when choosing a new entry guard&quot;. This step will help us load balance over the network better.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/145-newguard-flag.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/145-newguard-flag.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/145-newguard...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 146 (Add new flag to reflect long-term stability) discusses how to ship the Tor client with a set of alternate sources for initial bootstrap directory information. We already have this feature in Tor 0.2.0.x, called the &quot;fallback consensus&quot;, but we never enabled it because the Tor client would spend too long trying directory mirrors that were long since gone from the network. This proposal moves us closer to being able to distinguish the more long-term reliable mirrors.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/146-long-term-stability.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/146-long-term-stability.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/146-long-ter...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 147 (Eliminate the need for v2 directories in generating v3 directories) helps wean us off of needing the old deprecated v2 directory design. Currently we only use it to give advance warning to the v3 authorities about relays that haven&#039;t heard about yet, so they can fetch information about those relays before the time arrives to make an official vote about their state.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/147-prevoting-opinions.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/147-prevoting-opinions.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/147-prevotin...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 148 (Stream end reasons from the client side should be uniform) describes a simple fix for a potential anonymity flaw in Tor&#039;s core protocol for passing explanations from one end of a Tor circuit to the other when an application stream ends.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/148-uniform-client-end-reason.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/148-uniform-client-end-reason.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/148-uniform-...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 149 (Using data from NETINFO cells) starts talking about how to make use of the timestamp and IP address listed in Tor&#039;s new NETINFO cells. In theory we can use them to decide if our clock is skewed, and to decide if a traffic analysis man-in-the-middle attack is happening against us. In practice it appears more complex than we expected.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/149-using-netinfo-data.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/149-using-netinfo-data.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/149-using-ne...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 150 (Exclude Exit Nodes from a circuit) allows users to specify which relays should never be used as the last (exit) hop in a circuit. We took the proposal one step further and allowed users to also specify IP addresses and netmasks for which relays to avoid in the exit position.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/150-exclude-exit-nodes.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/150-exclude-exit-nodes.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/150-exclude-...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 151 (Improving Tor Path Selection) is a draft proposal to implement the results of Fallon Chen&#039;s Google Summer of Code project. Her plan is to measure the expected time it takes to establish a circuit, and then abandon circuits that take significantly longer than that to form. The assumption is that circuits that take a long time to set up will generally have unacceptably high latency as well.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/151-path-selection-improvements.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/151-path-selection-improvements.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/151-path-sel...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Proposal 154 (Automatic Software Update Protocol) starts the discussion of how to let Vidalia automatically manage updates for Tor, Polipo, Vidalia, etc. This is very important for keeping users up to date with respect to security and stability fixes. We will especially aim to do the updates over Tor, a) for privacy, and b) so users who are blocked from the Tor website will still be able to upgrade seamlessly.&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/154-automatic-updates.txt&quot; title=&quot;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/154-automatic-updates.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/tor/trunk/doc/spec/proposals/154-automati...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Research:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Karsten Loesing&#039;s report on 7 ways to improve the performance and robustness of Tor hidden services:&lt;br /&gt;
&lt;a href=&quot;http://freehaven.net/~karsten/hidserv/discussion-2008-07-15.pdf&quot; title=&quot;http://freehaven.net/~karsten/hidserv/discussion-2008-07-15.pdf&quot; rel=&quot;nofollow&quot;&gt;http://freehaven.net/~karsten/hidserv/discussion-2008-07-15.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Four new research papers on Tor came out in July:&lt;br /&gt;
&lt;a href=&quot;http://freehaven.net/anonbib/#loesing2008performance&quot; title=&quot;http://freehaven.net/anonbib/#loesing2008performance&quot; rel=&quot;nofollow&quot;&gt;http://freehaven.net/anonbib/#loesing2008performance&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://freehaven.net/anonbib/#improved-clockskew&quot; title=&quot;http://freehaven.net/anonbib/#improved-clockskew&quot; rel=&quot;nofollow&quot;&gt;http://freehaven.net/anonbib/#improved-clockskew&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://freehaven.net/anonbib/#mccoy-pet2008&quot; title=&quot;http://freehaven.net/anonbib/#mccoy-pet2008&quot; rel=&quot;nofollow&quot;&gt;http://freehaven.net/anonbib/#mccoy-pet2008&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://freehaven.net/anonbib/#danezis-pet2008&quot; title=&quot;http://freehaven.net/anonbib/#danezis-pet2008&quot; rel=&quot;nofollow&quot;&gt;http://freehaven.net/anonbib/#danezis-pet2008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We continued evaluating the TBB footprints here:&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/torbrowser/trunk/docs/traces.txt&quot; title=&quot;https://svn.torproject.org/svn/torbrowser/trunk/docs/traces.txt&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/torbrowser/trunk/docs/traces.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In particular, we added a new &quot;Registry modifications&quot; section to that file, describing some new traces that appear to be left behind after operating Tor Browser Bundle, even from the USB key. One of the most worrying is the &quot;user assist&quot; registry key that gets set, and (incredible as it sounds) is obfuscated by rot-13 before being set.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ease of Use:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tor Browser Bundle 1.1.1 (released July 20) updates Vidalia to release 0.1.6, updates Pidgin Portable to 2.4.3, updates Pidgin OTR plugin to 3.2, updates Tor to 0.2.1.2-alpha, updates Torbutton to 1.2.0rc6, and sets TZ=UTC environment variable in RelativeLink (needed by Torbutton).&lt;/p&gt;
&lt;p&gt;The first Incognito (Gentoo-based Tor LiveCD) release of 2008 is also nearing completion, and we expect to see it released in August.&lt;/p&gt;
&lt;p&gt;Finally, we contracted to start work on the Tor VM project. The idea is to run a Linux kernel and a Tor client inside a thin VM (like QEMU) on Windows, and then transparently intercept outgoing connections and redirect them into Tor. This approach will a) make proxy-avoiding side-channel and sidejacking attacks less devastating, and b) isolate the Tor client from the rest of the OS to provide a more robust security approach. Current design document is under development at&lt;br /&gt;
&lt;a href=&quot;https://svn.torproject.org/svn/torvm/trunk/doc/design.html&quot; title=&quot;https://svn.torproject.org/svn/torvm/trunk/doc/design.html&quot; rel=&quot;nofollow&quot;&gt;https://svn.torproject.org/svn/torvm/trunk/doc/design.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Getting Tor:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have established our &quot;gettor&quot; email auto-responder script that lets people mail &lt;a href=&quot;mailto:gettor@torproject.org&quot; rel=&quot;nofollow&quot;&gt;gettor@torproject.org&lt;/a&gt; and retrieve a copy of Tor from their mailbox. We still need to ponder more usability issues, such as translation.&lt;br /&gt;
&lt;a href=&quot;https://www.torproject.org/finding-tor&quot; title=&quot;https://www.torproject.org/finding-tor&quot; rel=&quot;nofollow&quot;&gt;https://www.torproject.org/finding-tor&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have also automated the process of checking Tor website mirrors: there&#039;s a new update-mirrors.pl script in the website directory that generates a list of mirrors ordered by when they last synced with the main website.&lt;br /&gt;
&lt;a href=&quot;https://www.torproject.org/mirrors&quot; title=&quot;https://www.torproject.org/mirrors&quot; rel=&quot;nofollow&quot;&gt;https://www.torproject.org/mirrors&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Translations:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We have our translation server up and online:&lt;br /&gt;
&lt;a href=&quot;https://translation.torproject.org/&quot; title=&quot;https://translation.torproject.org/&quot; rel=&quot;nofollow&quot;&gt;https://translation.torproject.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We revised our translation tutorial here:&lt;br /&gt;
&lt;a href=&quot;https://www.torproject.org/translation-portal&quot; title=&quot;https://www.torproject.org/translation-portal&quot; rel=&quot;nofollow&quot;&gt;https://www.torproject.org/translation-portal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Users continued to submit updated translations for many different languages.&lt;/p&gt;
&lt;p&gt;We continued enhancements to the Chinese and Russian Tor website&lt;br /&gt;
translations. We added Vidalia, Torbutton, and website translations&lt;br /&gt;
into Farsi.&lt;/p&gt;
&lt;p&gt;We also added the strings for Vidalia&#039;s installer; this required writing several scripts to convert from the &quot;nsh&quot; (nullscript installer language) format to the &quot;po&quot; (preferred by Pootle) format and back.&lt;/p&gt;
</description>
 <comments>http://blog.torproject.org/blog/july-2008-progress-report#comments</comments>
 <category domain="http://blog.torproject.org/category/tags/bridges">bridges</category>
 <category domain="http://blog.torproject.org/category/tags/progress-report">progress report</category>
 <category domain="http://blog.torproject.org/category/tags/proposals">proposals</category>
 <category domain="http://blog.torproject.org/category/tags/research">research</category>
 <category domain="http://blog.torproject.org/category/tags/tor">tor</category>
 <category domain="http://blog.torproject.org/category/tags/torbrowser">torbrowser</category>
 <category domain="http://blog.torproject.org/category/tags/torbutton">torbutton</category>
 <category domain="http://blog.torproject.org/category/tags/translation">translation</category>
 <category domain="http://blog.torproject.org/category/tags/vidalia">vidalia</category>
 <pubDate>Sun, 17 Aug 2008 20:11:31 -0700</pubDate>
 <dc:creator>phobos</dc:creator>
 <guid isPermaLink="false">47 at http://blog.torproject.org</guid>
</item>
</channel>
</rss>
