aboutsummaryrefslogtreecommitdiff
path: root/rend-spec-v3.txt
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2019-11-26 15:11:38 -0500
committerDavid Goulet <dgoulet@torproject.org>2019-11-26 15:11:38 -0500
commit29a110faaea01c9973340d2b1f3644f983d36d58 (patch)
treeedaad8071cc0ad3be039cd91f598985e5f49878e /rend-spec-v3.txt
parent42339301d427e831498ba592a41473afc12f8900 (diff)
downloadtorspec-29a110faaea01c9973340d2b1f3644f983d36d58.tar.gz
torspec-29a110faaea01c9973340d2b1f3644f983d36d58.zip
rend-spec-v3.txt: Merge prop305 in it
Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'rend-spec-v3.txt')
-rw-r--r--rend-spec-v3.txt62
1 files changed, 62 insertions, 0 deletions
diff --git a/rend-spec-v3.txt b/rend-spec-v3.txt
index a3e0b0a..68f6c28 100644
--- a/rend-spec-v3.txt
+++ b/rend-spec-v3.txt
@@ -50,6 +50,7 @@ Table of contents:
3. The introduction protocol [INTRO-PROTOCOL]
3.1. Registering an introduction point [REG_INTRO_POINT]
3.1.1. Extensible ESTABLISH_INTRO protocol. [EST_INTRO]
+ 3.1.1.1. Denial-of-Server Defense Extension. [EST_INTRO_DOS_EXT]
3.1.2. Registering an introduction point on a legacy Tor node [LEGACY_EST_INTRO]
3.1.3. Acknowledging establishment of introduction point [INTRO_ESTABLISHED]
3.2. Sending an INTRODUCE1 cell to the introduction point. [SEND_INTRO1]
@@ -1566,6 +1567,67 @@ Table of contents:
Otherwise, the node must associate the key with the circuit, for use
later in INTRODUCE1 cells.
+3.1.1.1. Denial-of-Service Defense Extension. [EST_INTRO_DOS_EXT]
+
+ This extension can be used to send Denial-of-Service (DoS) parameters to
+ the introduction point in order for it to apply them for the introduction
+ circuit.
+
+ If used, it needs to be encoded within the N_EXTENSIONS field of the
+ ESTABLISH_INTRO cell defined in the previous section. The content is
+ defined as follow:
+
+ EXT_FIELD_TYPE:
+
+ [01] -- Denial-of-Service Parameters.
+
+ If this flag is set, the extension should be used by the introduction
+ point to learn what values the denial of service subsystem should be
+ using.
+
+ EXT_FIELD content format is:
+
+ N_PARAMS [1 byte]
+ N_PARAMS times:
+ PARAM_TYPE [1 byte]
+ PARAM_VALUE [8 byte]
+
+ The PARAM_TYPE possible values are:
+
+ [01] -- DOS_INTRODUCE2_RATE_PER_SEC
+ The rate per second of INTRODUCE2 cell relayed to the
+ service.
+
+ [02] -- DOS_INTRODUCE2_BURST_PER_SEC
+ The burst per second of INTRODUCE2 cell relayed to the
+ service.
+
+ The PARAM_VALUE size is 8 bytes in order to accomodate 64bit values.
+ It MUST match the specified limit for the following PARAM_TYPE:
+
+ [01] -- Min: 0, Max: 2147483647
+ [02] -- Min: 0, Max: 2147483647
+
+ A value of 0 means the defense is disabled. If the rate per second is
+ set to 0 (param 0x01) then the burst value should be ignored. And
+ vice-versa, if the burst value is 0 (param 0x02), then the rate value
+ should be ignored. In other words, setting one single parameter to 0
+ disables the defense.
+
+ The burst can NOT be smaller than the rate. If so, the parameters
+ should be ignored by the introduction point.
+
+ Any valid value does have precedence over the network wide consensus
+ parameter.
+
+ Using this extension extends the payload of the ESTABLISH_INTRO cell by 19
+ bytes bringing it from 134 bytes to 155 bytes.
+
+ This extension can only be used with relays supporting the protocol version
+ "HSIntro=5".
+
+ Introduced in tor-0.4.2.1-alpha.
+
3.1.2. Registering an introduction point on a legacy Tor node
[LEGACY_EST_INTRO]