Re: [Dots] Alexey Melnikov's Discuss on draft-ietf-dots-signal-channel-31: (with DISCUSS and COMMENT)

<mohamed.boucadair@orange.com> Thu, 02 May 2019 06:54 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: dots@ietfa.amsl.com
Delivered-To: dots@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3F4A2120240; Wed, 1 May 2019 23:54:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id J-BQ_zsd56tJ; Wed, 1 May 2019 23:54:19 -0700 (PDT)
Received: from orange.com (mta136.mail.business.static.orange.com [80.12.70.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D151E120052; Wed, 1 May 2019 23:54:18 -0700 (PDT)
Received: from opfednr05.francetelecom.fr (unknown [xx.xx.xx.69]) by opfednr26.francetelecom.fr (ESMTP service) with ESMTP id 44vmG11kJjz10PM; Thu, 2 May 2019 08:54:17 +0200 (CEST)
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.101]) by opfednr05.francetelecom.fr (ESMTP service) with ESMTP id 44vmG10tQjzyQD; Thu, 2 May 2019 08:54:17 +0200 (CEST)
Received: from OPEXCAUBMA2.corporate.adroot.infra.ftgroup ([fe80::e878:bd0:c89e:5b42]) by OPEXCAUBM6F.corporate.adroot.infra.ftgroup ([fe80::c489:b768:686a:545b%23]) with mapi id 14.03.0439.000; Thu, 2 May 2019 08:54:16 +0200
From: mohamed.boucadair@orange.com
To: Alexey Melnikov <aamelnikov@fastmail.fm>, The IESG <iesg@ietf.org>
CC: "draft-ietf-dots-signal-channel@ietf.org" <draft-ietf-dots-signal-channel@ietf.org>, Liang Xia <frank.xialiang@huawei.com>, "dots-chairs@ietf.org" <dots-chairs@ietf.org>, "dots@ietf.org" <dots@ietf.org>
Thread-Topic: Alexey Melnikov's Discuss on draft-ietf-dots-signal-channel-31: (with DISCUSS and COMMENT)
Thread-Index: AQHVACq7IO+Ab0Pi30K8BSdSAqIIfqZXYjfg
Date: Thu, 02 May 2019 06:54:15 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B93302EA68A2C@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <155672115649.991.301467308616633255.idtracker@ietfa.amsl.com>
In-Reply-To: <155672115649.991.301467308616633255.idtracker@ietfa.amsl.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.245]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/948j91FFmSKjnYXI8-5r7yfjyMI>
Subject: Re: [Dots] Alexey Melnikov's Discuss on draft-ietf-dots-signal-channel-31: (with DISCUSS and COMMENT)
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "List for discussion of DDoS Open Threat Signaling \(DOTS\) technology and directions." <dots.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dots>, <mailto:dots-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dots/>
List-Post: <mailto:dots@ietf.org>
List-Help: <mailto:dots-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dots>, <mailto:dots-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 May 2019 06:54:21 -0000

Re-,

Please see inline. 

Cheers,
Med

> -----Message d'origine-----
> De : Alexey Melnikov via Datatracker [mailto:noreply@ietf.org]
> Envoyé : mercredi 1 mai 2019 16:33
> À : The IESG
> Cc : draft-ietf-dots-signal-channel@ietf.org; Liang Xia; dots-
> chairs@ietf.org; frank.xialiang@huawei.com; dots@ietf.org
> Objet : Alexey Melnikov's Discuss on draft-ietf-dots-signal-channel-31: (with
> DISCUSS and COMMENT)
> 
> Alexey Melnikov has entered the following ballot position for
> draft-ietf-dots-signal-channel-31: Discuss
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-dots-signal-channel/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> Thank you for a well written document. Despite its length, it was a pleasure
> to
> read.
> 

[Med] Thank you. 

> I have a list of small issues/questions to discuss before I can recommend
> approval of this document.
> 
> 1) RFC 3986 must be Normative as you use URI syntax in the document.
> 

[Med] Done. 

> 2) In 4.4.1: base64url needs a Normative reference. Please point to section 5
> of RFC 4648.

[Med] Ben did also raised this point. Already fixed in my local copy.

> 
> 3) Also in the same section:
> 
>    A DOTS gateway MAY add the CoAP Hop-Limit Option
>    [I-D.ietf-core-hop-limit].
> 
> Use of RFC 2119 language makes this reference Normative. Which means that
> this
> document can't be published as an RFC until [I-D.ietf-core-hop-limit] is
> published as an RFC.

[Med] I'm comfortable to move this one to the normative reverences given that I-D.ietf-core-hop-limit is ready for the WGLC since at least two months.

> 
> 4) Later in the same section:
> 
>    If the request is missing a mandatory attribute, does not include
>    'cuid' or 'mid' Uri-Path options, includes multiple 'scope'
>    parameters, or contains invalid or unknown parameters, the DOTS
>    server MUST reply with 4.00 (Bad Request).  DOTS agents can safely
>    ignore comprehension-optional parameters they don't understand.
> 
> How can DOTS agents know which parameters are comprehension-optional?

[Med] This is done by looking at the key value:

      Key value for the parameter.  The key value MUST be an integer in
      the 1-65535 range.  The key values of the comprehension-required
      range (0x0001 - 0x3FFF) and of the comprehension-optional range
      (0x8000 - 0xBFFF) are assigned by IETF Review (Section 4.8 of
      [RFC8126]).  The key values of the comprehension-optional range
      (0x4000 - 0x7FFF) are assigned by Specification Required
      (Section 4.6 of [RFC8126]) and of the comprehension-optional range
      (0xC000 - 0xFFFF) are reserved for Private Use (Section 4.1 of
      [RFC8126]).

> 
> 5) In 4.4.2:
> 
>    The 'c' (content) parameter and its permitted values defined in
>    [I-D.ietf-core-comi] can be used to retrieve non-configuration data
> 
> Because you define syntax of the parameter by reference, this makes
> [I-D.ietf-core-comi] Normative. (It doesn't matter that the feature is
> optional. Implementors still need to look at [I-D.ietf-core-comi] to
> implement
> this aspect of your document.)
> 
> If you don't want Normative dependency, you should fully specify syntax in
> your
> draft and keep the reference Informative.
> 

[Med] I went with the second approach. Thanks. 


>    (attack mitigation status), configuration data, or both.  The DOTS
>    server MAY support this optional filtering capability.  It can safely
>    ignore it if not supported.  If the DOTS client supports the optional
>    filtering capability, it SHOULD use "c=n" query (to get back only the
>    dynamically changing data) or "c=c" query (to get back the static
>    configuration values) when the DDoS attack is active to limit the
>    size of the response.
> 
> 6) In 4.4.3:
> 
>       {
>        "ietf-dots-signal-channel:mitigation-scope": {
>          "scope": [
>            {
>              "target-prefix": [
>                 "2001:db8:6401::1/128",
>                 "2001:db8:6401::2/128"
>               ],
>              "target-port-range": [
>                {
>                  "lower-port": 80
>                },
>                {
>                  "lower-port": 443
>                },
>                {
>                   "lower-port": 8080
>                }
>              ],
>              "target-protocol": [
>                 6
>              ],
>              "attack-status": "under-attack"
> 
> This value is invalid, as you define this attribute as numeric on the next
> page.

[Med] The example is correct because the JSON encoding is as follows:  

   +----------------------+-------------+-----+---------------+--------+
   | Parameter Name       | YANG        | CBOR| CBOR Major    | JSON   |
   |                      | Type        | Key |    Type &     | Type   |
   |                      |             |     | Information   |        |
   +----------------------+-------------+-----+---------------+--------+
   | attack-status        | enumeration |  29 | 0 unsigned    | String |

> 
>            }
>          ]
>        }
>       }
> 
> 7) In 7.1:
> 
>    When a DOTS client is configured with a domain name of the DOTS
>    server, and connects to its configured DOTS server, the server may
>    present it with a PKIX certificate.  In order to ensure proper
>    authentication, a DOTS client MUST verify the entire certification
>    path per [RFC5280].  The DOTS client additionally uses [RFC6125]
>    validation techniques to compare the domain name with the certificate
>    provided.
> 
> I am glad that you are referencing RFC 6125 here, but the description is not
> complete. Do you allow for wildcards in certificate subjectAltNames? Do you
> support CN-ID, DNS-ID, SRV-ID, URI-ID? I think you only want to support DNS-
> ID
> and possibly SRV-ID and CN-ID. This needs to be explicitly stated in the
> document.
> 

[Med] Fair enough. Will consider updating the text. 

> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> In Section 3:
> 
>    DOTS agents primarily determine that a CBOR data structure is a DOTS
>    signal channel object from the application context, such as from the
>    port number assigned to the DOTS signal channel.
> 
> I don't think this is a good idea, because CORE allows for conveying of
> Content-Format.

[Med] Agree. We are not recommending it. FWIW, this is why we are defining "application/dots+cbor" content type.

 Besides knowledge of a port number doesn't guaranty that
> valid
> CBOR over COAP data is flowing on it.
> 
>    The other method
>    DOTS agents use to indicate that a CBOR data structure is a DOTS
>    signal channel object is the use of the "application/dots+cbor"
>    content type (Section 9.3).
> 
> Also in the same section:
> 
>    This document specifies a YANG module for representing DOTS
>    mitigation scopes, DOTS signal channel session configuration data,
>    and DOTS redirected signalling (Section 5).  Representing these data
>    as CBOR data can either follow the rules in [I-D.ietf-core-yang-cbor]
>    or those in [RFC7951] combined with JSON/CBOR conversion rules in
>    [RFC7049]; both approaches produce a valid encoding.
> 
> Does this mean that both approaches are normative to implement? (I assume
> they
> don't procuce identical encoding.)

[Med] No, they are not normative. What is really key is the mapping table included in the spec. Implementers do only need to look at Table 4. We are providing to them the rationale for building such table.

> 
> In 4.1:
> 
> Is DHCP option for this defined in another document?

[Med] Yes. I added a pointer to I-D.ietf-dots-server-discovery.

> 
> In 4.4.1:
> 
>    lifetime:
> 
>       A lifetime of negative one (-1) indicates indefinite lifetime for
>       the mitigation request.  The DOTS server MAY refuse indefinite
>       lifetime, for policy reasons; the granted lifetime value is
>       returned in the response.  DOTS clients MUST be prepared to not be
>       granted mitigations with indefinite lifetimes.
> 
>       The DOTS server MUST always indicate the actual lifetime in the
>       response and the remaining lifetime in status messages sent to the
>       DOTS client.
> 
> Can you provide any advice to the server what to return for the “indefinite
> lifetime” requests?

[Med] This is deployment-specific. 

> 
> In 4.6:
> 
>    If the DOTS client has been redirected to a DOTS server to which it
>    has already communicated with within the last five (5) minutes, it
>    MUST ignore the redirection and try to contact other DOTS servers
>    listed in the local configuration or discovered using dynamic means
>    such as DHCP or SRV procedures.
> 
> You don't define DHCP or SRV based procedures in the document. Is there a
> suitable informative reference to be inserted here?

[Med] I added a pointer to I-D.ietf-dots-server-discovery.

> 
> 9.6.1.1.  Registration Template
> 
>       Registration requests for the 0x4000 - 0x7FFF range are evaluated
>       after a three-week review period on the dots-signal-reg-
>       review@ietf.org mailing list,
> 
> Responsible AD should make sure that the mailing list exists before this
> document is published.
> 
>       on the advice of one or more
>       Designated Experts.
>