[tor-commits] [torspec/master] rend-spec-v3.txt: Merge prop305 in it

asn at torproject.org asn at torproject.org
Mon Dec 2 10:49:20 UTC 2019


commit 29a110faaea01c9973340d2b1f3644f983d36d58
Author: David Goulet <dgoulet at 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 at 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.





More information about the tor-commits mailing list