aboutsummaryrefslogtreecommitdiff
path: root/spec/SUMMARY.md
blob: 70fa46a4e31f09415799cce1c851452557bbc16d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# Summary

[About these specifications](./README.md)

# Introduction

- [A short introduction to Tor](./intro/index.md)
  - [Notation and conventions](./intro/conventions.md)

# The core Tor protocol

- [`Tor Protocol Specification`](./tor-spec/index.md)
  - [Preliminaries](./tor-spec/preliminaries.md)
  - [Relay keys and identities](./tor-spec/relay-keys.md)
  - [Channels](./tor-spec/channels.md)
    - [Negotiating and initializing channels](./tor-spec/negotiating-channels.md)
      - [Obsolete channel negotiation handshakes](./tor-spec/obsolete-channels.md)
    - [Cells (messages on channels)](./tor-spec/cell-packet-format.md)
  - [Circuit management](./tor-spec/circuit-management.md)
    - [CREATE and CREATED cells](./tor-spec/create-created-cells.md)
    - [Setting circuit keys](./tor-spec/setting-circuit-keys.md)
    - [Creating circuits](./tor-spec/creating-circuits.md)
    - [Tearing down circuits](./tor-spec/tearing-down-circuits.md)
    - [Routing relay cells](./tor-spec/routing-relay-cells.md)
    - [Handling relay_early cells](./tor-spec/relay-early.md)
  - [Application connections and stream management](./tor-spec/streams.md)
    - [Relay cells](./tor-spec/relay-cells.md)
    - [Opening streams and transferring data](./tor-spec/opening-streams.md)
    - [Closing streams](./tor-spec/closing-streams.md)
    - [Remote hostname lookup](./tor-spec/remote-hostname-lookup.md)
  - [Flow control](./tor-spec/flow-control.md)
  - [Subprotocol versioning](./tor-spec/subprotocol-versioning.md)
  - [Certificates in Tor](./cert-spec.md)
- [`Tor directory protocol, version 3`](./dir-spec/index.md)
  - [Outline](./dir-spec/outline.md)
  - [Router operation and formats](./dir-spec/router-operation-formats.md)
    - [Uploading server descriptors and extra-info documents](./dir-spec/uploading-relay-documents.md)
      - [Server descriptor format](./dir-spec/server-descriptor-format.md)
      - [Extra-info document format](./dir-spec/extra-info-document-format.md)
      - [Nonterminals in server descriptors](./dir-spec/nonterminals-server-descriptors.md)
  - [Directory authority operation and formats](./dir-spec/directory-authority-operation-formats.md)
    - [Creating key certificates](./dir-spec/creating-key-certificates.md)
    - [Accepting server descriptor and extra-info document uploads](./dir-spec/accepting-relay-documents.md)
    - [Computing microdescriptors](./dir-spec/computing-microdescriptors.md)
    - [Exchanging votes](./dir-spec/exchanging-votes.md)
      - [Vote and consensus status document formats](./dir-spec/consensus-formats.md)
      - [Assigning flags in a vote](./dir-spec/assigning-flags-vote.md)
      - [Serving bandwidth list files](./dir-spec/serving-bandwidth-list-files.md)
    - [Downloading information from other directory authorities](./dir-spec/downloading-from-other-auths.md)
    - [Computing a consensus from a set of votes](./dir-spec/computing-consensus.md)
    - [Exchanging detached signatures](./dir-spec/exchanging-detached-signatures.md)
    - [Publishing the signed consensus](./dir-spec/publishing-consensus.md)
  - [Directory cache operation](./dir-spec/directory-cache-operation.md)
  - [Client operation](./dir-spec/client-operation.md)
  - [Standards compliance](./dir-spec/standards-compliance.md)
  - [Consensus-negotiation timeline.](./dir-spec/consensus-negotiation-timeline.md)
  - [General-use HTTP URLs](./dir-spec/general-use-http-urls.md)
  - [Converting a curve25519 public key to an ed25519 public key](./dir-spec/converting-to-ed25519.md)
  - [Inferring missing proto lines.](./dir-spec/inferring-missing-proto-lines.md)
  - [Limited ed diff format](./dir-spec/limited-ed-diff-format.md)
  - [`Tor Shared Random Subsystem Specification`](./srv-spec/index.md)
    - [Introduction](./srv-spec/introduction.md)
    - [Overview](./srv-spec/overview.md)
    - [Protocol](./srv-spec/protocol.md)
    - [Specification \[SPEC\]](./srv-spec/specification.md)
    - [Security Analysis](./srv-spec/security-analysis.md)
    - [Discussion](./srv-spec/discussion.md)
    - [Acknowledgements](./srv-spec/acknowledgements.md)
- [`Tor Path Specification`](./path-spec/index.md)
  - [General operation](./path-spec/general-operation.md)
  - [Building circuits](./path-spec/building-circuits.md)
    - [When we build](./path-spec/when-we-build.md)
    - [Path selection and constraints](./path-spec/path-selection-constraints.md)
    - [Cannibalizing circuits](./path-spec/cannibalizing-circuits.md)
    - [Learning when to give up ("timeout") on circuit construction](./path-spec/learning-timeouts.md)
    - [Handling failure](./path-spec/handling-failure.md)
  - [Attaching streams to circuits](./path-spec/attaching-streams-to-circuits.md)
  - [Hidden-service related circuits](./path-spec/hidden-service-related-circuits.md)
  - [Guard nodes](./path-spec/guard-nodes.md)
  - [Server descriptor purposes](./path-spec/server-descriptor-purposes.md)
  - [Detecting route manipulation by Guard nodes (Path Bias)](./path-spec/detecting-route-manipulation.md)
- [`Tor Guard Specification`](./guard-spec/index.md)
  - [State instances](./guard-spec/state-instances.md)
  - [Circuit Creation, Entry Guard Selection (1000 foot view)](./guard-spec/guard-selection/index.md)
  - [The algorithm.](./guard-spec/algorithm.md)
  - [Appendices](./guard-spec/appendices.md)
- [`Tor Vanguards Specification`](./vanguards-spec/index.md)
  - [Full Vanguards](./vanguards-spec/full-vanguards.md)
  - [Vanguards-Lite](./vanguards-spec/vanguards-lite.md)
  - [Path Construction](./vanguards-spec/path-construction.md)
  - [Statistical Analysis](./vanguards-spec/vanguards-stats.md)
- [`Tor Padding Specification`](./padding-spec/index.md)
  - [Overview](./padding-spec/overview.md)
  - [Connection-level padding](./padding-spec/connection-level-padding.md)
  - [Circuit-level padding](./padding-spec/circuit-level-padding.md)
  - [Acknowledgments](./padding-spec/acknowledgments.md)
- [`Preventing Denial-Of-Service`](./dos-spec/index.md)
  - [Overview](./dos-spec/overview.md)
  - [Memory exhaustion](./dos-spec/memory-exhaustion.md)

# Additional behaviors for clients

- [`Tor's extensions to the SOCKS protocol`](./socks-extensions.md)
- [`Special Hostnames in Tor`](./address-spec.md)

# Onion services

- [`Tor Rendezvous Specification - Version 3`](./rend-spec/index.md)
  - [Hidden services: overview and preliminaries.](./rend-spec/overview.md)
  - [Protocol overview](./rend-spec/protocol-overview.md)
  - [Generating and publishing hidden service descriptors \[HSDIR\]](./rend-spec/hsdesc.md)
    - [Deriving blinded keys and subcredentials \[SUBCRED\]](./rend-spec/deriving-keys.md)
    - [Publishing shared random values \[PUB-SHAREDRANDOM\]](./rend-spec/shared-random.md)
    - [Hidden service descriptors: outer wrapper \[DESC-OUTER\]](./rend-spec/hsdesc-outer.md)
    - [Hidden service descriptors: encryption format \[HS-DESC-ENC\]](./rend-spec/hsdesc-encrypt.md)
  - [The introduction protocol \[INTRO-PROTOCOL\]](./rend-spec/introduction-protocol.md)
  - [The rendezvous protocol](./rend-spec/rendezvous-protocol.md)
  - [Encrypting data between client and host](./rend-spec/encrypting-user-data.md)
  - [Encoding onion addresses \[ONIONADDRESS\]](./rend-spec/encoding-onion-addresses.md)
  - [Managing streams](./rend-spec/managing-streams.md)
  - [References](./rend-spec/references.md)
  - [Appendix A: Signature scheme with key blinding \[KEYBLIND\]](./rend-spec/keyblinding-scheme.md)
  - [Appendix B: Selecting nodes \[PICKNODES\]](./rend-spec/selecting-nodes-picknodes.md)
  - [Appendix C: Recommendations for searching for vanity .onions \[VANITY\]](./rend-spec/vanity-onions.md)
  - [Appendix D: (removed)]()
  - [Appendix E: Reserved numbers](./rend-spec/reserved-numbers.md)
  - [Appendix F: Hidden service directory format \[HIDSERVDIR-FORMAT\]](./rend-spec/fs-contents.md)
  - [Appendix G: Managing authorized client data \[CLIENT-AUTH-MGMT\]](./rend-spec/client-authorization.md)
  - [Appendix F: Two methods for managing revision counters.](./rend-spec/revision-counter-mgt.md)
  - [Appendix G: Test vectors](./rend-spec/test-vectors.md)
- [`Proof of Work for onion service introduction`](./hspow-spec/index.md)
  - [Motivation](./hspow-spec/motivation.md)
  - [Common protocol](./hspow-spec/common-protocol.md)
  - [Version 1, Equi-X and Blake2b](./hspow-spec/v1-equix.md)
  - [Analysis and discussion](./hspow-spec/analysis-discussion.md)

# Anticensorship tools and protocols

- [`BridgeDB specification`](./bridgedb-spec.md)
- [`Extended ORPort for pluggable transports`](./ext-orport-spec.md)
- [`Pluggable Transport Specification (Version 1)`](./pt-spec/index.md)
  - [Introduction](./pt-spec/introduction.md)
  - [Architecture Overview](./pt-spec/architecture-overview.md)
  - [Specification](./pt-spec/specification.md)
    - [Pluggable Transport Naming](./pt-spec/naming.md)
    - [Pluggable Transport Configuration Environment Variables](./pt-spec/configuration-environment.md)
    - [Pluggable Transport To Parent Process Communication](./pt-spec/ipc.md)
    - [Pluggable Transport Shutdown](./pt-spec/shutdown.md)
    - [Pluggable Transport Client Per-Connection Arguments](./pt-spec/per-connection-args.md)
  - [Anonymity Considerations](./pt-spec/anonymity-considerations.md)
  - [References](./pt-spec/references.md)
  - [Acknowledgments](./pt-spec/acknowledgments.md)
  - [Appendix A: Example Client Pluggable Transport Session](./pt-spec/example-client-session.md)
  - [Appendix B: Example Server Pluggable Transport Session](./pt-spec/example-server-session.md)

# For C Tor only

- [`The Tor Control Protocol`](./control-spec/index.md)
  - [Protocol outline](./control-spec/protocol-outline.md)
  - [Message format](./control-spec/message-format.md)
  - [Commands](./control-spec/commands.md)
  - [Replies](./control-spec/replies.md)
  - [Implementation notes](./control-spec/implementation-notes.md)
- [`How Tor Version Numbers Work`](./version-spec.md)

# Less commonly needed file formats

- [`Tor Bandwidth File Format`](./bandwidth-file-spec/index.md)
  - [Scope and preliminaries](./bandwidth-file-spec/scope-preliminaries.md)
  - [Format details](./bandwidth-file-spec/format-details.md)
    - [Definitions](./bandwidth-file-spec/definitions.md)
    - [Header List format](./bandwidth-file-spec/header-list-format.md)
    - [Relay Line format](./bandwidth-file-spec/relay-line-format.md)
    - [Implementation details](./bandwidth-file-spec/implementation-details.md)
  - [Sample data](./bandwidth-file-spec/sample-data.md)
  - [Scaling bandwidths](./bandwidth-file-spec/scaling-bandwidths.md)

# Implementation details

- [`Tor Directory List Format`](./dir-list-spec.md)

# Reserved names and numbers

- [`Tor network parameters`](./param-spec.md)
- [`SSH protocol extensions`](./ssh-protocols.md)

# Unfinished

- [`Glossary`](./glossary.md)

# Maintenance and and editing of the Tor Specifications

- [`About the Tor Specifications documents`](./back-matter.md)
- [`Style guide`](./STYLE.md)
- [`Permalinks`](./permalinks.md)