mirror of
https://github.com/torproject/torspec.git
synced 2024-11-27 03:40:47 +00:00
70 lines
3.2 KiB
Markdown
70 lines
3.2 KiB
Markdown
# Tor specifications
|
|
|
|
This repository holds the specifications that describe how Tor works.
|
|
They try to present Tor's protocols in sufficient detail to allow
|
|
the reader to implement a compatible implementation of Tor without ever
|
|
having to read the Tor source code.
|
|
|
|
The [proposals](/proposals) directory holds our design proposals. These
|
|
include historical documents that have now been merged into the main
|
|
specifications. For more information on the proposal process, including an
|
|
explanation of how to make new proposals, see
|
|
[001-process.txt](/proposals/001-process.txt).
|
|
|
|
## What you can find here
|
|
|
|
Tor's specification is pretty big, and we've broken it into a bunch of
|
|
files.
|
|
|
|
* General interest
|
|
* [tor-spec.txt](tor-spec.txt)
|
|
contains the specification for the core Tor protocol
|
|
itself; this is a good place to start reading.
|
|
* [cert-spec.txt](cert-spec.txt) describes a certificate format used
|
|
in the other parts of the protocol.
|
|
* [dir-spec.txt](dir-spec.txt) specifies the operations and formats used to
|
|
maintain a view of the network directory.
|
|
* [padding-spec.txt](padding-spec.txt) describes a set of padding mechanisms
|
|
used to impede traffic analysis.
|
|
* [version-spec.txt](version-spec.txt) explains how to parse Tor
|
|
version numbers.
|
|
* [glossary.txt](glossary.txt) is a glossary of terms used
|
|
in the other specifications.
|
|
* Client operations
|
|
* [address-spec.txt](address-spec.txt) lists a set of special
|
|
addresses that Tor handles differently from the regular DNS system.
|
|
* [guard-spec.txt](guard-spec.txt) explains the "guard node" algorithm
|
|
that Tor clients use to avoid sampling attacks.
|
|
* [path-spec.txt](path-spec.txt) explains how clients choose their paths
|
|
through the Tor network.
|
|
* [socks-extensions](socks-extensions.txt) specifies Tor-specific
|
|
extensions to the SOCKS protocol.
|
|
* Onion services
|
|
* [rend-spec-v2.txt](rend-spec-v2.txt) is the old, deprecated version
|
|
of the onion service protocol.
|
|
* [rend-spec-v3.txt](rend-spec-v3.txt) is the current version of the
|
|
onion service protocol.
|
|
* Censorship resistance
|
|
* [bridgedb-spec.txt](bridgedb-spec.txt) explains how the `bridgedb`
|
|
server gives out bridges to censored clients.
|
|
* [gettor-spec.txt](gettor-spec.txt) describes the `gettor` tool,
|
|
which is used to download Tor in censored areas.
|
|
* [pt-spec.txt](pt-spec.txt) describes the protocol that Tor clients
|
|
and relays use to communicate with pluggable transports used for
|
|
traffic obfuscation.
|
|
* Directory authorities
|
|
* [bandwidth-file-spec.txt](bandwidth-file-spec.txt) specifies the
|
|
file format used by bandwidth-measuring tools to report their
|
|
observations to directory authorities.
|
|
* [srv-spec.txt](src-spec.txt) specifies the protocol that
|
|
directory authorities use to securely compute shared random values
|
|
for the network.
|
|
* Controller protocol
|
|
* [control-spec.txt](control-spec.txt) explains the protocol used by
|
|
controllers to communicate with a running Tor process.
|
|
* Miscellaneous
|
|
* [dir-list-spec.txt](dir-list-spec.txt) explains the format used by
|
|
tools like the fallback directory scripts to output a list of
|
|
Tor directories for inclusion in the Tor source code.
|
|
* The [attic](attic) directory has obsolete or historical documents.
|