commit 29a110faaea01c9973340d2b1f3644f983d36d58 Author: David Goulet dgoulet@torproject.org Date: Tue Nov 26 15:11:38 2019 -0500
rend-spec-v3.txt: Merge prop305 in it
Signed-off-by: David Goulet dgoulet@torproject.org --- dir-spec.txt | 5 +++++ rend-spec-v3.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tor-spec.txt | 3 +++ 3 files changed, 70 insertions(+)
diff --git a/dir-spec.txt b/dir-spec.txt index 2a38d3b..dc2546b 100644 --- a/dir-spec.txt +++ b/dir-spec.txt @@ -2104,6 +2104,11 @@ Min: 0. Max: 255. Default 0. First appeared: 0.4.1.1-alpha.
+ "HiddenServiceEnableIntroDoSDefense" -- This parameter makes tor start + using this new proposed extension if available by the introduction + point (for protover HSIntro=5). Min: 0. Max: 1. Default: 0. First + appeared: 0.4.2.1-alpha. + "shared-rand-previous-value" SP NumReveals SP Value NL
[At most once] 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]
diff --git a/tor-spec.txt b/tor-spec.txt index 21abfdf..8ba8a46 100644 --- a/tor-spec.txt +++ b/tor-spec.txt @@ -2097,6 +2097,9 @@ see tor-design.pdf. "4" -- support ed25519 authentication keys which is defined by the HS v3 protocol as part of proposal 224 in Tor 0.3.0.4-alpha.
+ "5" -- support ESTABLISH_INTRO cell DoS parameters extension for onion + service version 3 only in Tor 0.4.2.1-alpha. + 9.5. "HSRend"
The "HSRend" protocol handles rendezvous points.
tor-commits@lists.torproject.org