Skip to Main Content
Onion routing is a general purpose infrastructure for private communication over a widely shared network such as the Internet or the SIPRNET. It provides anonymous connections that are resistant to both eavesdropping and traffic analysis. The connections are bidirectional, near real-time, and can be used for both connection-based and connectionless traffic. Onion routing interfaces with off the shelf software and systems through specialized proxies, making it easy to integrate into existing systems. A proof-of-concept prototype for Web connections ran at NRL for about two years beginning in 1997, processing more than I million web connections per month from more than six thousand IP addresses in twenty countries and in all main top level domains. The program has been reimplemented from scratch. The resulting code base is only one third the size of the previous program but at the same time adds several resource management, efficiency, and attack resilience features, which are briefly described below. Onion routing can be used with applications that are proxy-aware, as well as several non-proxy-aware applications, without modification to the applications. Currently supported applications include those for Web browsing, email, IRC chat, and remote login (e.g., via SSH). We highlight some of the recent advances made in onion routing, followed by a description of how to use onion routing to make servers that are resistant both to denial of service and to physical threats. After that, we briefly describe some of the details of how onion routing works.