Roger Dingledine commited on 2011-02-07 09:23:39
Zeige 1 geänderte Dateien mit 70 Einfügungen und 0 Löschungen.
... | ... |
@@ -90,6 +90,8 @@ |
90 | 90 |
<ul> |
91 | 91 |
<li><a href="#EverybodyARelay">You should make every Tor user be a |
92 | 92 |
relay.</a></li> |
93 |
+ <li><a href="#TransportIPnotTCP">You should transport all IP packets, |
|
94 |
+ not just TCP packets.</a></li> |
|
93 | 95 |
</ul> |
94 | 96 |
|
95 | 97 |
<p>Abuse:</p> |
... | ... |
@@ -1574,6 +1576,74 @@ we move to a "directory guard" design as well. |
1574 | 1576 |
|
1575 | 1577 |
<hr> |
1576 | 1578 |
|
1579 |
+<a id="TransportIPnotTCP"></a> |
|
1580 |
+<h3><a class="anchor" href="#TransportIPnotTCP">You should transport |
|
1581 |
+all IP packets, not just TCP packets.</a></h3> |
|
1582 |
+ |
|
1583 |
+<p> |
|
1584 |
+This would be handy, because it would make Tor |
|
1585 |
+more generally useful. It would also solve the whole |
|
1586 |
+need to socksify applications, and it would resolve the <a |
|
1587 |
+href="<wikifaq>#HowdoIcheckifmyapplicationthatusesSOCKSisleakingDNSrequests">DNS |
|
1588 |
+leak problem</a> too. Lastly, it would solve the fact that exit relays |
|
1589 |
+need to allocate a lot of file descriptors to hold open all the exit |
|
1590 |
+connections. |
|
1591 |
+</p> |
|
1592 |
+ |
|
1593 |
+<p> |
|
1594 |
+On the other hand, there are six reasons we haven't done this: |
|
1595 |
+</p> |
|
1596 |
+ |
|
1597 |
+<li>IP packets reveal OS characteristics. We would still |
|
1598 |
+need to do IP-level packet normalization, to stop things like |
|
1599 |
+TCP fingerprinting attacks. This is unlikely to be a trivial |
|
1600 |
+task, given the diversity and complexity of TCP stacks. In |
|
1601 |
+fact, it's worse than this: check out the new class of <a |
|
1602 |
+href="<wikifaq>#DoesTorresistremotephysicaldevicefingerprinting">device |
|
1603 |
+fingerprinting attacks</a> which we would have to tackle as well. |
|
1604 |
+</li> |
|
1605 |
+<li>Application-level streams still need scrubbing. We still need Tor |
|
1606 |
+to be easy to integrate with user-level application-specific proxies |
|
1607 |
+such as Privoxy. So it's not just a matter of capturing packets and |
|
1608 |
+anonymizing them at the IP layer. |
|
1609 |
+</li> |
|
1610 |
+<li>Certain protocols will still leak information. For example, we must |
|
1611 |
+rewrite DNS requests so they are delivered to an unlinkable DNS server |
|
1612 |
+rather than the DNS server at a user's ISP; thus, we must understand |
|
1613 |
+the protocols we are transporting. |
|
1614 |
+</li> |
|
1615 |
+<li><a |
|
1616 |
+href="http://crypto.stanford.edu/~nagendra/projects/dtls/dtls.html">DTLS</a> |
|
1617 |
+(datagram TLS) will be in the 0.9.8 openssl release. We need to design |
|
1618 |
+a new end-to-end Tor protocol for avoiding tagging attacks and other |
|
1619 |
+potential anonymity and integrity issues now that we allow drops, resends, |
|
1620 |
+et cetera. |
|
1621 |
+</li> |
|
1622 |
+<li>Exit policies for arbitrary IP packets mean building a secure |
|
1623 |
+IDS. Our node operators tell us that exit policies are one of the main |
|
1624 |
+reasons they're willing to run Tor. Adding an Intrusion Detection System |
|
1625 |
+to handle exit policies would increase the security complexity of Tor, |
|
1626 |
+and would likely not work anyway, as evidenced by the entire field of IDS |
|
1627 |
+and counter-IDS papers. Many potential abuse issues are resolved by the |
|
1628 |
+fact that Tor only transports valid TCP streams (as opposed to arbitrary |
|
1629 |
+IP including malformed packets and IP floods), so exit policies become |
|
1630 |
+even <i>more</i> important as we become able to transport IP packets. We |
|
1631 |
+also need to compactly describe exit policies in the Tor directory, |
|
1632 |
+so clients can predict which nodes will allow their packets to exit — |
|
1633 |
+and clients need to predict all the packets they will want to send in |
|
1634 |
+a session before picking their exit node! |
|
1635 |
+</li> |
|
1636 |
+<li>The Tor-internal name spaces would need to be redesigned. We |
|
1637 |
+support hidden service ".onion" addresses (and other special addresses, |
|
1638 |
+like ".exit" which lets the user request a particular exit node), by |
|
1639 |
+intercepting the addresses when they are passed to the Tor client. Doing |
|
1640 |
+so at the IP level would require a more complex interface between Tor |
|
1641 |
+and the local DNS resolver. |
|
1642 |
+</li> |
|
1643 |
+</ol> |
|
1644 |
+ |
|
1645 |
+ <hr> |
|
1646 |
+ |
|
1577 | 1647 |
<a id="Criminals"></a> |
1578 | 1648 |
<h3><a class="anchor" href="#Criminals">Doesn't Tor enable criminals |
1579 | 1649 |
to do bad things?</a></h3> |
1580 | 1650 |