Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 (2nd Part)

Benjamin Kaduk <kaduk@mit.edu> Wed, 16 January 2019 22:27 UTC

Return-Path: <kaduk@mit.edu>
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 55CA21311D7; Wed, 16 Jan 2019 14:27:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level:
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=mit.edu
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 b5Cx0gssQLIU; Wed, 16 Jan 2019 14:27:48 -0800 (PST)
Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710116.outbound.protection.outlook.com [40.107.71.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A8AB91311CF; Wed, 16 Jan 2019 14:27:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v3NqGtT74Kose7eEjJMpWdd0MMUvVqo2IAZ9WYBs3V8=; b=nmHyt8Y9I3DYV6oBnEZ7TW0FQTyD4CsBopznoa4i7DZwvzEOhJggl4XZvC3WgyI/1NhQ6ktL41xKTT6LMeCiLW58ZnLPRLpcEtQoQq6LZaUDbzV4B6WxVVA6cKxog6mLJMR1zqucP+Tu9XM5eetGElp02paH2NPXjgr4JV7LdVQ=
Received: from MWHPR01CA0036.prod.exchangelabs.com (2603:10b6:300:101::22) by DM6PR01MB4026.prod.exchangelabs.com (2603:10b6:5:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.25; Wed, 16 Jan 2019 22:27:46 +0000
Received: from DM3NAM03FT050.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::202) by MWHPR01CA0036.outlook.office365.com (2603:10b6:300:101::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1537.26 via Frontend Transport; Wed, 16 Jan 2019 22:27:46 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by DM3NAM03FT050.mail.protection.outlook.com (10.152.82.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1471.13 via Frontend Transport; Wed, 16 Jan 2019 22:27:45 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x0GMRgWF012187 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jan 2019 17:27:44 -0500
Date: Wed, 16 Jan 2019 16:27:41 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: "Konda, Tirumaleswar Reddy" <TirumaleswarReddy_Konda@mcafee.com>
CC: "mohamed.boucadair@orange.com" <mohamed.boucadair@orange.com>, "draft-ietf-dots-signal-channel@ietf.org" <draft-ietf-dots-signal-channel@ietf.org>, "dots@ietf.org" <dots@ietf.org>
Message-ID: <20190116222741.GK91727@kduck.mit.edu>
References: <787AE7BB302AE849A7480A190F8B93302EA08269@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <BYAPR16MB279064AFE1D99F1455E32466EA820@BYAPR16MB2790.namprd16.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BYAPR16MB279064AFE1D99F1455E32466EA820@BYAPR16MB2790.namprd16.prod.outlook.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(136003)(346002)(39860400002)(396003)(376002)(2980300002)(199004)(189003)(55784004)(13464003)(51914003)(53434003)(356004)(58126008)(4326008)(54906003)(36906005)(229853002)(75432002)(47776003)(316002)(6666004)(55016002)(50466002)(5660300001)(478600001)(86362001)(53546011)(26826003)(966005)(186003)(14444005)(30864003)(8676002)(8936002)(6306002)(786003)(305945005)(106002)(1076003)(426003)(26005)(33656002)(2870700001)(7696005)(336012)(76176011)(6246003)(126002)(956004)(476003)(106466001)(104016004)(11346002)(23756003)(486006)(2906002)(246002)(6916009)(53416004)(88552002)(446003)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR01MB4026; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1;
X-Microsoft-Exchange-Diagnostics: 1; DM3NAM03FT050; 1:yYD11iULQEB6JwhsyPt1MyFODkMd9DkEQyFrs8r1HA3qjA2sh6pit4NmbPskTP5emFQq/33jdgsWPGrcGoR9EGb8wToME9OGEewqwT2nzk2M8Q5PRb8Du9z7UC6k5Der
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ed4dfe01-3766-4838-80d4-08d67c01d6c7
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060); SRVR:DM6PR01MB4026;
X-Microsoft-Exchange-Diagnostics: 1; DM6PR01MB4026; 3:mQYpR9fXxzDfHI7soaS1dowEbdjP7S/uASVthy8IXc9ykX3D0CF63UEUyktngWsS5ctUUifgQy7ymiqihpDkW683MkzmCxGr2iw50AZkDwyWqijRwNtjNq1kbBafbbls7jb5xlekT5cBVoZxgM6Hi9h0//WzjCBJIzcsQXMgc24R09l/LbsC9PeTpZE4ayor2WHpAeGLK2ds/Pu5/ohFbWGiFQ6LzoGXiFmmqXDfFl/FdQR7UU5WgQx7Or24vgrTc2VtDbDi2Uzq4UpJ8e3sBvETrZDhifH4BJmcHlxFbzhNkKGkTsV1cTpoTpVDIvbM7jlW5q2tb8WB0oGzm4flybPezl+J/bgPOH+ulbLvLaujoeG6yyDNLqAL77XnTflB; 25:vNz6P7OYXpYgqs2DMxVuFYqe8FUvSNcx9mVUN2k78PunOAL82RpAIpcO4HRUodr5jLK/hXyBoyiQvfUWSjieiETVox65D6EceapicB6HpnkqJgQ0O91l4+SQESYd8C4b/orM/ZUWtEgy5Js+YF1C5mOeVMKg5FLsCRNAVZRMY+YNizo9Oli6x2zX7ukypTZ2bL+uE+RduMLcK/4Sf1Cu2zlIH0yW2lPaS4Q89sk+APFxJCYolwBlcaENjJqUfvlfLDrORVLutLc5KtjmyGgHisft+YDucT6W761LFfaGf2Ow1rXtBujiRn3fUXZorT/Q8nSaAmXlKj0inHxkopz0MQ==
X-MS-TrafficTypeDiagnostic: DM6PR01MB4026:
X-Microsoft-Exchange-Diagnostics: 1; DM6PR01MB4026; 31:xzTwIkeb8o+qRt+S9aeLDPrVZvo9h42DSylKMmYEBllowqqAKW+9b6paQ3VPYPuML6ffMg4/hp8R/CuaIR/tKq5OjhQvKQSZTbX0F3ct/ra2/Ve4kl+JLimR41FI0htqapIfgkTIw4MZ8xaJe+YAzhSfp3WDbWbI0D8cCI+uIvr7XledzDCG77xes1AeSjcow5lLW1htjou+MD7uE4TD991ZJSwrkak55QvFQBrEPxs=; 20:GZ2IQOBEK1hulo78Qnu5iDwKAlWoMHEDbkd2vfvvCcTFdpBjqnUFT9rD5jfc2a+EHRqloNTWi235CBJ/McFvgNSR0v53N5fszKOJaeWLm6CJt4T6Xs4E2vfoF8E0q1be5/i0jnZOUcOsQm3pVXcmOwkuEuAFPIdlcF5qKBL6uuwY3I9UjgTBRAhSSPtKxaVEVMPjD6cZXzgz/IzgSqSmUY8bOYf/ALrDg8YlSH1caqcyhV/LZQvAxI4V6U9XbuUtUU6LZBKWdt2IfZk3KEZ6RP+aSumQq7yPEi5lTUD6T/VSgAfx0aNeoW85gbVC96jERoZJwBnm494GGQjEz7R5unkjducs2QDQM22G6+vuEG5me5IkJ8e98yx+Riw6pQksuBfuFNbufkgZyVDP+sVZdVILIoBeEwikBIYT61/kjI76AFxtu6GiFI4Y86B+hMrzIj/6+jlsXZqblDleiVlCDtV75EJfw3CpJhVAL6xO+qB3l0hMEQvpkkrjoSs8HCxwc3KSRHsehsbGeuwzVGYXPlV+WQq8cgGfFxszvBeHId6lh6kcXgaskDOLq7ctOmNFD4KwEoFSPLyXlbeb/99xOQg6j9+GOwSMxvfYM15QwPE=
X-Microsoft-Antispam-PRVS: <DM6PR01MB4026E948C4AA7C05178EDA9FA0820@DM6PR01MB4026.prod.exchangelabs.com>
X-Microsoft-Exchange-Diagnostics: 1; DM6PR01MB4026; 4:MXtIpjQVvinL75H2HwDSkucxCy1rfbn9koMNPtc/bS2Ry9bIfaB1Di49hN/0uRd/LGXORmwYLdGrLLg2Ghh2Xw+sC93BDKf0TyrYCV2+NFrSbCPQeaJGFjsPUSP6Zq2cSjxg6Y4k4X5KwRl2YF459vKEVbN2pirUvOuJeCj953FeKgJLZxtGRApj88aSXZMauPsVOWI5Z1duQZzdy9320f4U1a8FETcyN49BVtztudG7FMP6HyShu8Rk29Zmm3zWtoBlAKwv8OCNb2A/IRODC1DRShLCVpr7AkJw+OSgnDe9miafUq/HtsoutWMzOgcD
X-Forefront-PRVS: 091949432C
X-Microsoft-Exchange-Diagnostics: 1; DM6PR01MB4026; 23:SYDERZbWZhYHkCycoS0sa0V+2H0xapZyTlBOHLNP7qAqfbhDZI7QGngY6G06fFEC6yzDFbuFp+D8qwmFIOUEEEq8PY23BArasGPbmp0bkYEuNWOyS2T0C1L82aEc+SIOv/YgVDvEShkaJXH41xYNAkcW3xd1nmqySiljTLrym7I8mh2J3nwqdE8e8r0WSQgtN2UGY3dIrg5imdCcoTMe/c3J11CwiSh4Pr1mR0wR+kP0CiP0vSHRJZXOCixMYLrmRTvIAYfLCCv7x4IrB8N4tmFhpQ5gtEx4rD0RU/3hAhvf977/rXcVHJxSavsG6HC5gAvpkgmu89aLFBrvcqTzIX7onC75igK3/fyKrdFSDYRXGW+SEqZdEfL4ENZRK/WSeu6jlfV2ZmNUGBCsjYdhz9Wmoyu4+tpRg/7rvAJ662gkHtVPqs9QuoAuV3TQUHKe5EhCY0gZCnK0/oKMoeH/AcuEnpU35GJSambWHyMjFBE0Geg9fN0/V/uEUgJsYcWTQ74mHM0JtWSh+ipYzPnkGshjH7jsxWvCle259EWiwCNn4EFAtspRtgQWv/E7deqOpQSW38fKvj8/bCpoUTV9BA6j1ATIU1L5tg/pLTDksD5xUnRwItWw2cSpDzHU+TAKXjLfFk2QjReNFB/ojPHkug1gNaxoaVuFYOG4at8Z95VmjckD2CIYakk33pGqFoyLmfP/FIkpB2j+cxghBZtHMQDgxjTbECzqvRq4ecgnLq74TZSttaq2eytBiAOZqy4akHvP6oeUsLTTtlXaRLbZo+O9Csdd/mXbvvCeDJ465AO/XXf/9EorGvTQN/nEsLZxmGrbR+YIBAzig88iO4OeqTDbUR1iwur/xeg+jojorKOw1ilbOaAB3DrTw3P0TuOsJr56ObRRb32+kaPGzXasIoTaF9zaqKWqhKCluD162ANBvoVHYhpbS8Xg9PgJSwa06c6AxVcmflzcyhhXDTmxNl75Q3sCAds0Orm3R+CntPwo6laZbkCNukyANwTu12lnzrKsqin8Vo274A7gf4ERyXkJeZE20jzEVmv1SvubRuHQ0DE0KJjtHl3VcfBrUGj0xItjJqv9KHaGrYkXGTXGtKpoq95XXfOFvmGrAdOdKfMifFNLeixLQQz1jK6CyErVthv8OIEcMm9obY75NdksOHn6zpAbh7K+Uir8LWFTOyy8F8ie54+nJTaDiVzNPeNd8lwLZNbgwZIGLyVN7sSS3jEgH3MWkpqbFN4D5xfu4DOMDUtQcckVa86vYaKumE3C/euCA8QXpKUN6huiG1+Tml8Hl6ROnYYhjif5R/N4dKUZkgANDx7b6x6K2GxLJS8N3o0OVQ+g/GfXPG8lPYX8UZM6+ooPmlntV5zoR9cBgII=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: r/FgHmOarT2RHVFP/08u8LDsPlADV3iyYyPH29xdJaevFivsAg7+kssFd3lI7ZT4Dg2nvZUE+atXVjcwIhwQGl76wvyc2ufwbWkG0x0W6/fM5c6GrUsrvo4kCD8YNO1oGy5cCiqAJbExQNxWtcvOkd3j7bWziobl9DaARhripowgPPL3adK3eQMmYl4jFJ3qNCmd8ajMnZJ+bR1JwtIzpr7XZfef0YLRVrura0LsQjECswrgCbnpCV4QBk2O7UT5eMkb+KhpLZDFxpi0UWaCymB80pf6vOnAPRdw9ALFVy94/6LtLDOm1xMX8vlrhpyoMDuS08qYc7dZtHdqIscbFPYajGaJopLoxYigutZKlx1SSNDYKD3xs9NT67nwyY7apxtkhTqkUg8DJJlNan78Pexubha1i3P8ch1aX1TdfRE=
X-Microsoft-Exchange-Diagnostics: 1; DM6PR01MB4026; 6:9F8X2BtQJZ9EFVrgh3o8NeXqgqBbvFIKCo3WoALnjDL3Gh9KtuqAvtnVnbU+BlNxyOVOp8DICWoD6BFWPS0r1M1DT4GxQDGuu+x7sNHaymM6RqdgoppRl4Pwmmb7If4WhaZeAUWZg9DqWQ8klHh1iQYvtBaK7G1zG2tsvmN2MBqndHOH03bDtR3bCFD9WtpPX0KhF+oRbYIRrVBq9nH6GiXeU7T/jz/E35C/3xvXaqz3tAKLhsmNhPFptZCFGlc5NAvfNIVcfWPDmn9xsAib/lPOeRCBZzoyUAeCdiB2O5kBMEchFI89bjT1/1tqRYMVOTLbylpVfKolMRLnKI/9D33mqv+0DhqJtxFfvArBj64hDQKG5llKk5t8l5r+52l+7rXHXeiHgEs45pDgik2q/0Riccg9ky3InnHQyMjxA4Y/h55UFeOy0bAmUGI6kspHzojygbuSkFolF2B3tTCpEg==; 5:BYZRDk4p7w6AbrITeWSiAZ3Lujdb2FeXSgR966rbgOb44qNmCs4565fXpYkXTo2s0dWDU4g5BOI8ltM75qzOAYkD9C25P9U7L66ArWFpfY/U6BTctmwMrqui14N+ZmWm+6HZc6O4DQ4WYENlrkjFxDUdP4XyYKkZcEKm2xvKz46o1AQc+7DezrHewZzp8eV7rB6/zG+LUZ7FXs6E0DlDmQ==; 7:FiIUYRPdXDOYUOn0vs6zdSx4aLew0hUNVMsGQ7DycMKl2Fd75ObEFHitMZB3e8FbB0nvgb+GQ706I702dAOeyEgBhbA9C6bEfsRMinav1zAzyb0gtW0vUlfc7KIqHiyovbuNeYjCSkc7ORu8ywF2sw==
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2019 22:27:45.6589 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ed4dfe01-3766-4838-80d4-08d67c01d6c7
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11]; Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR01MB4026
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/nodk97t0DySSkVYKkj2xzU6gqEE>
Subject: Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 (2nd Part)
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: Wed, 16 Jan 2019 22:27:51 -0000

On Wed, Jan 16, 2019 at 01:30:01PM +0000, Konda, Tirumaleswar Reddy wrote:
> > -----Original Message-----
> > From: Dots <dots-bounces@ietf.org> On Behalf Of
> > mohamed.boucadair@orange.com
> > Sent: Wednesday, January 16, 2019 4:11 PM
> > To: Benjamin Kaduk <kaduk@mit.edu>; draft-ietf-dots-signal-
> > channel@ietf.org
> > Cc: dots@ietf.org
> > Subject: Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 (2nd Part)
> > 
> > 
> > 
> > Re-,
> > 
> > Please see inline.
> > 
> > Cheers,
> > Med
> > 
> > > -----Message d'origine-----
> > > De : Benjamin Kaduk [mailto:kaduk@mit.edu] Envoyé : mercredi 16
> > > janvier 2019 01:14 À : draft-ietf-dots-signal-channel@ietf.org
> > > Cc : dots@ietf.org
> > > Objet : AD review of draft-ietf-dots-signal-channel-25
> > >
> > >
> > > Section 4.4
> > >
> > >    GET:    DOTS clients may use the GET method to subscribe to DOTS
> > >            server status messages, or to retrieve the list of its
> > >            mitigations maintained by a DOTS server (Section 4.4.2).
> > >
> > > I'm not really a canonical HTTP expert, but I suspect that using GET
> > > to "subscribe" will raise some eyebrows at later stages of review.
> > 
> > [Med] We are following RFC7641. I would be surprised if this is an issue.
> > 
> >  Maybe
> > > we should just leave it as-is and wait for such review to arrive,
> > > though, rather than trying to do something preemptively.
> > 
> > [Med] Yes.

Sounds good.

> > >
> > > I don't know if this is the proper section to talk about it, but we
> > > should probably have some text justifying the use of application-layer
> > > acknowledgment as opposed to just using Confirmable CoAP messages.
> > 
> > [Med] I'm not sure to understand this one. Which "application-layer
> > acknowledgment" are you referring to?

Maybe I was just misreading.  Does

   Requests marked by the DOTS client as Non-confirmable messages are
   sent at regular intervals until a response is received from the DOTS
   server.

refer to a "response" at the application layer (as opposed to the CoAP
layer)?

> > >
> > > Section 4.4.1
> > >
> > > If Figure 5 is going to use actual/example values for cuid and mid,
> > > then I'd suggest also using actual/example values for the JSON fields
> > > (instead of "integer" and "string" and such).
> > 
> > [Med] I split the figure into two so that we don't have this problem.
> > 
> > >
> > >    cuid:  Stands for Client Unique Identifier.  A globally unique
> > >       identifier that is meant to prevent collisions among DOTS clients,
> > >       especially those from the same domain.  It MUST be generated by
> > >       DOTS clients.
> > >
> > > In order to get global uniqueness we either need sufficient randomness
> > > or a hierarchical allocation strategy.  Since we recommend a strategy
> > > that involves hashing the (public) client certificate, we may also
> > > want to note that this value does not need to be unguessable.  If a
> > > random allocation is possible, I suggest giving guidance on how many
> > > random bits must be used to sufficiently ensure global uniqueness (128
> > > might be enough).
> > 
> > [Med] An attack vector that can be achieved if the cuid is guessable is if a
> > misbehaving client from within the client's domain succeeds to be granted
> > access by the server and then uses the cuid of another client of the domain
> > to delete active mitigation/etc.
> > 
> > For this attack vector to happen, the misbehaving client needs to pass
> > security validation checks by the server. Therefore, I'm not sure if it is worth
> > to add an allocation reco given this perquisite.
> > 
> > Thoughts?

I don't think we need to have text around 'cuid' allocation, but should
mention the possibility of this spoofing attack by a compromised client, in
the security considerations.

> UUID discussed in https://tools.ietf.org/html/rfc4122 is another way of generating a globally unique identifier.  A compromised DOTS client can sniff the TLS 1.2 handshake, use the client certificate to identify the "cuid" used by another DOTS client. This attack is not possible with TLS 1.3 (TLS handshake is encrypted).

For 1.3 the attacker would need to have data from a server in order to see
another client's certificate, yes, which is presumably a harder attack.

I don't think a UUID reference would be very valuable here.

> Cheers,
> -Tiru
> 
> > 
> > >
> > >                           The output of the cryptographic hash algorithm
> > >       is truncated to 16 bytes; truncation is done by stripping off the
> > >       final 16 bytes.  The truncated output is base64url encoded.
> > >
> > > side note: Truncation to 128 bits reduces the collision resistance to
> > > 64-bit strength, though this is probably acceptable in this use case.
> > >
> > >       DOTS servers MUST return 4.09 (Conflict) error code to a DOTS peer
> > >       to notify that the 'cuid' is already in-use by another DOTS
> > >       client.  Upon receipt of that error code, a new 'cuid' MUST be
> > >       generated by the DOTS peer.
> > >
> > > Is there any way in which this situation could arise during some sort
> > > of migration scenario?
> > 
> > [Med] This can be for example a client which does not follow the "SHOULD"
> > for creating the cuid.

Of course.  I'm wondering if a legitmiate client that does follow the
"SHOULD" could ever see this error code in the absence of an attack, for
example if the client's network address changes.

> > >
> > >       Client-domain DOTS gateways MUST handle 'cuid' collision directly
> > >       and it is RECOMMENDED that 'cuid' collision is handled directly by
> > >       server-domain DOTS gateways.
> > >
> > > Is a gateway supposed to know if it is "client-side" or "server-side"
> > > by explicit configuration or some more automatic method?
> > 
> > [Med] This can be done by an explicit configuration.

Okay.  Let's wait to see if any other reviewers ask for clarifying text
that this can only be known via explicit configuration.

> > >
> > >    'cuid' and 'mid' MUST NOT appear in the PUT request message body.
> > >
> > > Do we need to say this given that there's no obvious structure in
> > > which to put them?  (That is, is this just a reminder to implementors
> > > of a previous version of the draft versus guidance to new
> > > implementations?)
> > 
> > [Med] We used to have those in the message body in previous versions of
> > the spec/implementations. Furthermore, there are cases where "mid" is
> > allowed to be included in the message body (e.g., PUT response). We
> > included this note for implementers because of some behaviors observed
> > during past interops.

Okay.  (I think this is actually one of the things I asked before and you
already answered; sorry for the duplication.)

> > >
> > >       The prefix list MUST NOT include broadcast, loopback, or multicast
> > >       addresses.  These addresses are considered as invalid values.
> > > In
> > >
> > > Does "invalid" mean that the particular address gets ignored or that
> > > the entire request is rejected?
> > 
> > [Med] The expected behavior is covered by this text:
> > 
> > " ... or contains invalid or unknown parameters, the DOTS server MUST reply
> > with 4.00 (Bad Request)."
> > 
> > >
> > >    target-fqdn:   A list of Fully Qualified Domain Names (FQDNs)
> > >       identifying resources under attack.  An FQDN is the full name of a
> > >       resource, rather than just its hostname.  For example, "venera" is
> > >       a hostname, and "venera.isi.edu" is an FQDN [RFC1983].
> > >
> > > I would suggest referring to draft-ietf-dnsop-terminology-bis rather
> > > than trying to reproduce a definition of FQDN.
> > >
> > 
> > [Med] I added an informative reference to draft-ietf-dnsop-terminology-bis.

Thanks

> > > We also may want to note that the DNS view can change depending on the
> > > vantage point used to make the observation.
> > 
> > [Med] Not sure what to do with this one given that the text says:
> > 
> > "How a name is passed to an underlying name resolution library is
> > implementation- and deployment-specific."

I was thinking something like "the results returned for resolving a name
can depend on many factors, including when the request was made and the
address of the DNS resolver used -- there is no guarantee that the DOTS
server will resolve a name to the same addresses that the DOTS client
does".

> > >
> > > On page 18 we say that server-domain DOTS gateways "MUST supply [...]
> > > 'cdid'", but the previous paragraph says that there SHOULD be a
> > > configuration option for whether to insert 'cdid' on such systems.
> > > The two requirements are in conflict; which was intended?  (I assume
> > > the MUST -- why would it be desired to not have the information
> > > available?)
> > 
> > [Med] This text is about gateways that are instructed to insert the cdid
> > parameter. gateways facing a client's domain are in this case.
> > 
> > I updated the text with "server-domain DOTS gateways instructed to insert
> > the 'cdid' parameter MUST supply.."

Ah, that makes sense -- thanks.

> > >
> > > The same paragraph also says that the 'cdid' is "likely to be the same
> > > as" the 'cuid', though in addition to the listed reasons the client
> > > only has a SHOULD requirement to follow this procedure for generating
> > > 'cuid'; it may be worth noting the client's leeway here as well.
> > 
> > [Med] Yes, this is why we have "likely" in the text.
> > 
> > >
> > >       If a DOTS client is provisioned, for example, with distinct
> > >       certificates as a function of the peer server-domain DOTS gateway,
> > >       distinct 'cdid' values may be supplied by a server-domain DOTS
> > >       gateway.  The ultimate DOTS server MUST treat those 'cdid' values
> > >       as equivalent.
> > >
> > > Is this paragraph trying to say that a client might supply different
> > > certs to different gateways in the same domain
> > 
> > [Med] Yes.
> > 
> >  (e.g., if one such
> > > gateway does not support ecdsa certs)?  It was pretty confusing on the
> > > first read, in particular how the ultimate DOTS server would know that
> > > the different 'cdid' values actually correspond to the same client
> > > [domain].
> > 
> > [Med] This is supposed to be provisioned on the server. This is deployment-
> > specific; hence no mention in the draft.

Ah, thanks for the explanation.  I don't have any suggested rewording that
would help clarify -- all I can come up with is to add ", when configured
to know they represent the same client", which is both long and not really
saying anything new.

> > >
> > >       DOTS servers MUST ignore 'cdid' attributes that are directly
> > >       supplied by source DOTS clients or client-domain DOTS gateways.
> > >       This implies that first server-domain DOTS gateways MUST strip
> > >       'cdid' attributes supplied by DOTS clients.  DOTS servers SHOULD
> > >       support a configuration parameter to identify DOTS gateways that
> > >       are trusted to supply 'cdid' attributes.
> > >
> > > Is there any mechanism (e.g., autodetection) other than this by which
> > > servers/proxies can learn about the topology information needed to
> > > fulfil these requirements?
> > 
> > [Med] I'm not aware of such mechanism.

Okay, thanks.

> > >
> > >    Because of the complexity to handle partial failure cases, this
> > >    specification does not allow for including multiple mitigation
> > >    requests in the same PUT request.  Concretely, a DOTS client MUST NOT
> > >    include multiple 'scope' parameters in the same PUT request.
> > >
> > > "multiple 'scope' parameters" reads like a CBOR object with duplicate
> > > keys; is this intended to refer to a multi-valued array?
> > 
> > [Med] What is intended is that the scope list should include only one entry..
> > 
> > I can change to "multiple 'scope' clauses"

I'm not sure how different that is.  It sounds like you're trying to avoid
"multiple entries in the 'scope' array"?

> > >
> > >    The DOTS server couples the DOTS signal and data channel sessions
> > >    using the DOTS client identity and optionally the 'cdid' parameter
> > >
> > > This requires the client to use the same certificate to authenticate
> > > the signal and data channels to a given server (even when a gateway is
> > > in use).  Above, we discussed cases where a client might have multiple
> > > certificates available.
> > 
> > [Med] Actually, the text above applies also if distinct certificates are used.
> > Equivalent "client identity" are supposed to be known to the server by an
> > out of band means. In all cases, the identity (same or equivalent) is used to
> > couple the sessions.

Hmm.  If we are talking anything fancier than just comparing Subject
information from the certificate (which apparently I forgot about when I
wrote the above!), I think we may want to have some text in the document
mentioning the possibility of out of band configuration.

> >   Where do we specify the requirement to use the
> > > same certificate for signal and data channels?
> > 
> > [Med] We don't have such requirement in existing DOTS documents.
> > 
> > >
> > >                                                DOTS agents can safely
> > >    ignore Vendor-Specific parameters they don't understand.
> > >
> > > This is not a very useful statemnet if the agent must know that a
> > > parameter is vendor-specific in order to safely ignore it.
> > 
> > [Med] The agent relies on the cbor key value to determine that a parameter
> > can be safely ignored or not (comprehension-required). A range of keys is
> > reserved for comprehension-optional. An agent checks the range to which
> > belong a parameter, and then behaves accordingly.

If we really mean comprehension-optional, maybe we should just say that,
instead of "Vendor-Specific".

> > >
> > >    If the DOTS server does not find the 'mid' parameter value conveyed
> > >    in the PUT request in its configuration data, it MAY accept the
> > >    mitigation request by sending back a 2.01 (Created) response to the
> > >    DOTS client; the DOTS server will consequently try to mitigate the
> > >    attack.
> > >
> > >    If the DOTS server finds the 'mid' parameter value conveyed in the
> > >    PUT request in its configuration data bound to that DOTS client, it
> > >    MAY update the mitigation request, and a 2.04 (Changed) response is
> > >    returned to indicate a successful update of the mitigation request.
> > >
> > > There are two "MAY"s spread across these two paragraphs; do we want to
> > > say anything about in what cases the server might want to have
> > > different behavior (i.e., ignore the MAY)?
> > >
> > 
> > [Med] For the first MAY, a typical example is when a rate limit is enforced:
> > 
> >    Rate-limiting DOTS requests, including those with new 'cuid' values,
> >    from the same DOTS client defends against DoS attacks that would
> >    result in varying the 'cuid' to exhaust DOTS server resources.  Rate-
> >    limit policies SHOULD be enforced on DOTS gateways (if deployed) and
> >    DOTS servers
> > 
> > For the second MAY, the server may have more visibility on the attack and
> > then may decide to update accordingly.
> > 
> > I don't know if it is worth to add examples. Any preference?

I would lean towards adding "A server could reject mitigation requests when
it is near capacity or needs to rate-limit a particular client, for
example" for the former, but leaving the latter as-is.  But I have no
strong preferences here and am happy to advance the document either way.

-Ben