Re: [Gen-art] Gen-ART Last Call review of draft-ietf-ace-dtls-authorize-12
Paul Kyzivat <pkyzivat@alum.mit.edu> Tue, 28 July 2020 15:36 UTC
Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BCD543A0DCC; Tue, 28 Jul 2020 08:36:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=alum.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 Fl32X81M9n8R; Tue, 28 Jul 2020 08:36:54 -0700 (PDT)
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2072.outbound.protection.outlook.com [40.107.223.72]) (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 47F933A0DDD; Tue, 28 Jul 2020 08:36:53 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nuUBFpWHa9RBoFYFqjaabU+NLkJ2JY2G9fS4Yn66NUBAQFlxIDjgVmgQgZBAwjnc3zXGQsiIsplg4CDXu9gp6vwo19XzkHO6sVlag9/UcP0sicrc3wvAuY0cPcz/rS4nqle4C11/zpX4Ui5tY/9REQus4wtj+wy7vP3fpKLNBoXBMA5KX2F9eRkSVPOgOdiH7XXFNqDIsyqq5zP/mUqC0kLVf3szeMFqp4pYC5dVzgRI/155aLXTC615e4yANbvo5TDSGa/kwdnjtg/Cy8RrWrM1Jyl2iZoimEt3JjbG15t2dl5fsMjZzjjMv0tetQm69tk9ofObVjU0g1LbV3RYHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2vzmTMLe2zK3Ci03RSLbFvqagyu1lifLzIlD8Fw44R8=; b=fSgiAJL+YvUeIdHuUJXXhrugRjQHUWCvU4ZZ3U4dqXkalALeQhDA2oKYeLyxW8MyJ/QqfDprF0hFTzumID0o2a+3lVBjv0atmUD0cHysOeTIZ4ihUvtQU7P8hj/rqKZyxmyrEbFwiTat2vd60ZKlebgHRdgibmtmyMlGxnjIHP3aE2CJAzHizet+Yt53S3ZTQ8cdBNHorzQ6aGbwCOb6LkrX8wKvW2lXDIyg62uGuMRSCQCGX5wXxfoHO2DtFpzBBqELgnMNWBL/TZRKol+7R/ueK7MucDnO3oZKOq/AkwdmYWy/FvvnndV722keFNiftosszPHxj3U0c0LA4nqdeg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 18.7.68.33) smtp.rcpttodomain=mit.edu smtp.mailfrom=alum.mit.edu; dmarc=bestguesspass action=none header.from=alum.mit.edu; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alum.mit.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2vzmTMLe2zK3Ci03RSLbFvqagyu1lifLzIlD8Fw44R8=; b=SoTtImGwSJGVyLGtgJNNgX+bhXhf78qJ45zCkCtGxZbZ0h1ifDorll16+XlaXYrMt6KCO9ld/CmAHO56YtwDD6dZOZNDIJ92qdRSwmCQ+pi3UyO5ZKgF7OgDP2FEGRgU3YdgDUw9gMqjCzhtwqNI5F0yf8R6bJSaWIdsR/aMb+w=
Received: from SN4PR0201CA0022.namprd02.prod.outlook.com (2603:10b6:803:2b::32) by MWHPR12MB1744.namprd12.prod.outlook.com (2603:10b6:300:111::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Tue, 28 Jul 2020 15:36:52 +0000
Received: from SN1NAM02FT048.eop-nam02.prod.protection.outlook.com (2603:10b6:803:2b:cafe::51) by SN4PR0201CA0022.outlook.office365.com (2603:10b6:803:2b::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.21 via Frontend Transport; Tue, 28 Jul 2020 15:36:52 +0000
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 18.7.68.33) smtp.mailfrom=alum.mit.edu; mit.edu; dkim=none (message not signed) header.d=none;mit.edu; dmarc=bestguesspass action=none header.from=alum.mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of alum.mit.edu designates 18.7.68.33 as permitted sender) receiver=protection.outlook.com; client-ip=18.7.68.33; helo=outgoing-alum.mit.edu;
Received: from outgoing-alum.mit.edu (18.7.68.33) by SN1NAM02FT048.mail.protection.outlook.com (10.152.72.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.10 via Frontend Transport; Tue, 28 Jul 2020 15:36:51 +0000
Received: from Kokiri.localdomain (c-24-62-227-142.hsd1.ma.comcast.net [24.62.227.142]) (authenticated bits=0) (User authenticated as pkyzivat@ALUM.MIT.EDU) by outgoing-alum.mit.edu (8.14.7/8.12.4) with ESMTP id 06SFamVu012225 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 28 Jul 2020 11:36:49 -0400
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: draft-ietf-ace-dtls-authorize.all@ietf.org, General Area Review Team <gen-art@ietf.org>
References: <8c2725a3-f89f-7ea1-dda9-681edd463a32@alum.mit.edu> <20200727191052.GI41010@kduck.mit.edu>
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
Message-ID: <74ae7beb-61f3-6ff3-fa36-0b7e0f311558@alum.mit.edu>
Date: Tue, 28 Jul 2020 11:36:48 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20200727191052.GI41010@kduck.mit.edu>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8b490793-f951-48d0-8edd-08d8330c0c84
X-MS-TrafficTypeDiagnostic: MWHPR12MB1744:
X-Microsoft-Antispam-PRVS: <MWHPR12MB1744A309731AAB84457655A4F9730@MWHPR12MB1744.namprd12.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: gMBTxREHiOrlnbaINXK9fqwqWyva4OBlAvLARodndh8DJXsOAvRWBO6HmpTFpkfI/UXjU9BAxKhTJWIkZRuiTaASbR6OnQJZZo2hPRLrgJZ2sffzMNpNw3OdsVrNiTyfwBs1Uih+InJbNxf7539niiQ1bE1GoXnXkd7NvjPdjQ5o+S5AvLwmvUpGfwUnFwfS7Q8I7wzZeHolD6b5Rly1ayOmJreqy5suzgfsttO9gLgQFzS4jJe087MH8kshHeSTWqQRzT18f1iVmZ6Dg7dlTYgWCvCEBvMbofbY1Eg8FTiLKpMnw6YS6iFQYs42efA61ry7+rQjPXBvB5T9JQe/kC+T/r+xrggF3reJfNEiUb7rpEeAUJZ6bvde1pH69Gy9+bWSvrl5oN+HWOQ8AkOrK27xvno0DulqSKNdk8ToXtgcm7pQ0UnlzJHXgn9nMq+x4jtdubPHF/21g5CHxPt+d3EpzVIkGJBsHhyfmC5OAJochPU33yt8WAAOOYFUFrhn
X-Forefront-Antispam-Report: CIP:18.7.68.33; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:outgoing-alum.mit.edu; PTR:outgoing-alum.mit.edu; CAT:NONE; SFTY:; SFS:(39860400002)(346002)(396003)(376002)(136003)(46966005)(47076004)(478600001)(86362001)(70586007)(6916009)(82740400003)(316002)(70206006)(36906005)(786003)(8676002)(75432002)(26005)(336012)(7596003)(186003)(2906002)(5660300002)(83380400001)(356005)(53546011)(2616005)(956004)(4326008)(31696002)(8936002)(31686004)(82310400002)(43740500002); DIR:OUT; SFP:1101;
X-OriginatorOrg: alum.mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2020 15:36:51.2854 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b490793-f951-48d0-8edd-08d8330c0c84
X-MS-Exchange-CrossTenant-Id: 3326b102-c043-408b-a990-b89e477d582f
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3326b102-c043-408b-a990-b89e477d582f; Ip=[18.7.68.33]; Helo=[outgoing-alum.mit.edu]
X-MS-Exchange-CrossTenant-AuthSource: SN1NAM02FT048.eop-nam02.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1744
Archived-At: <https://mailarchive.ietf.org/arch/msg/gen-art/lw5Xznid-_mnLLuySzJS--vObIQ>
Subject: Re: [Gen-art] Gen-ART Last Call review of draft-ietf-ace-dtls-authorize-12
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Jul 2020 15:36:57 -0000
Hi Ben, Please find my comments inline. On 7/27/20 3:10 PM, Benjamin Kaduk wrote: > Hi Paul, > > Just a couple notes in addition to what Jim already mentioned. > > On Sun, Jul 19, 2020 at 04:23:46PM -0400, Paul Kyzivat wrote: >> I am the assigned Gen-ART reviewer for this draft. The General Area >> Review Team (Gen-ART) reviews all IETF documents being processed >> by the IESG for the IETF Chair. Please treat these comments just >> like any other last call comments. >> >> For more information, please see the FAQ at >> >> <https://trac.ietf.org/trac/gen/wiki/GenArtfaq>. >> >> Document: draft-ietf-ace-dtls-authorize-12 >> Reviewer: Paul Kyzivat >> Review Date: 2020-07-19 >> IETF LC End Date: 2020-07-20 >> IESG Telechat date: ? >> >> Summary: >> >> This draft is on the right track but has open issues, described in the >> review. >> >> General: >> >> TBD >> >> Issues: >> >> Major: 2 >> Minor: 1 >> Nits: 1 >> >> 1) MAJOR: Management of token storage in RS >> >> There seems to be an expectation that when the client uploads an access >> token that the RS will retain it until the client attempts to establish >> a DTLS association. This seems to require some sort of management of >> token lifetime in the RS. The only discussion I can find of this issue >> is the following in section 7: >> >> ... A similar issue exists with the >> unprotected authorization information endpoint where the resource >> server needs to keep valid access tokens until their expiry. >> Adversaries can fill up the constrained resource server's internal >> storage for a very long time with interjected or otherwise retrieved >> valid access tokens. >> >> This seems to imply a normative requirement to keep tokens until their >> expiry. But I find no supporting normative requirements about this. And, >> this section only presents it as a DoS attack, rather than a potential >> problem with valid usage. >> >> ISTM that there is an implied requirement that the RS have the capacity >> to store one access token for every PoP key of every authorized client. >> If so, that ought to be stated. If not, then some other way of bounding >> storage ought to be discussed. >> >> 2) MAJOR: Missing normative language >> >> I found several places where the text seems to suggest required behavior >> but fails to do so using normative language: >> >> * In section 3.3: >> >> ... Instead of >> providing the keying material in the access token, the authorization >> server includes the key identifier in the "kid" parameter, see >> Figure 7. This key identifier enables the resource server to >> calculate the symmetric key used for the communication with the >> client using the key derivation key and a KDF to be defined by the >> application, for example HKDF-SHA-256. The key identifier picked by >> the authorization server needs to be unique for each access token >> where a unique symmetric key is required. >> ... >> Use of a unique (per resource server) "kid" and the use of a key >> derivation IKM that is unique per authorization server/resource >> server pair as specified above will ensure that the derived key is >> not shared across multiple clients. >> >> The uniqueness seems to be a requirement. Perhaps "needs to be unique" >> should be "MUST be unique". (And something similar for the IKM.) >> >> * Also in section 3.3: >> >> All CBOR data types are encoded in CBOR using preferred serialization >> and deterministic encoding as specified in Section 4 of >> [I-D.ietf-cbor-7049bis]. This implies in particular that the "type" >> and "L" components use the minimum length encoding. The content of >> the "access_token" field is treated as opaque data for the purpose of >> key derivation. >> >> IIUC the type of serialization and encoding is a requirement. Will need >> some rewording to make it so. > > Both this and the previous item are scoped by the following text: > > The method for how the resource server determines the symmetric key > from an access token containing only a key identifier is application- > specific; the remainder of this section provides one example. > > So it's not entirely clear that normative language is appropriate in the > discussion of the example behavior. OK. That makes sense. >> * In section 3.3.1: >> >> ... To >> be consistent with the recommendations in [RFC7252] a client is >> expected to offer at least the ciphersuite TLS_PSK_WITH_AES_128_CCM_8 >> [RFC6655] to the resource server. >> >> I think "is expected" should be "MUST". >> >> * Also in section 3.3.1: >> >> ... This >> specification assumes that the access token is a PoP token as >> described in [I-D.ietf-ace-oauth-authz] unless specifically stated >> otherwise. >> >> I think "assumes ... unless" should be "MUST ... unless". > > My understanding is that this is just talking about the text in the > document itself. But as far as I remember we always require PoP tokens, so > this could just be removed. It gets simpler if you always require PoP tokens. Does it state that normatively somewhere? The "unless" construct opens a can of worms about how things are to work in that case. >> * Also in section 3.3.1: >> >> ... New access tokens issued by the >> authorization server are supposed to replace previously issued access >> tokens for the respective client. >> >> Is this normative? Should "are supposed to" be "MUST"? > > I don't think this is a "MUST"; it refers to some behavior in the core > framework that is merely suggested and not mandatory. I commented on this in my reply to Jim. Thanks, Paul > Thanks for the review; it brought up some good points! > > -Ben > >> 3) MINOR: Insufficient specification >> >> (I'm waffling whether this is minor or major.) >> >> There are a couple of places where what seem to be requirements are >> stated too vaguely to be implemented consistently: >> >> * In the previously mentioned paragraph in 3.3.1: >> >> ... This >> specification assumes that the access token is a PoP token as >> described in [I-D.ietf-ace-oauth-authz] unless specifically stated >> otherwise. >> >> The "unless specifically stated otherwise" is too vague to be normative. >> How would the alternative be indicated? Is this an escape hatch for >> future extensions? If so, it needs more work to make that clear and to >> open a path for that future work. >> >> * Also in section 3.3.1: >> >> ... The resource server therefore must >> have a common understanding with the authorization server how access >> tokens are ordered. >> >> The last statement ("must have a common understanding") is mysterious. >> IIUC section 4 is covering the same topic in a less mysterious way. >> >> 4) NIT: Subsection organization >> >> Both 3.2 and 3.3 share a common structure: >> >> * The section begins with discussion of the interaction between the >> client and the AS. >> >> * it is followed by a subsection discussing the interaction between the >> client and the RS. >> >> It is odd to have a section with a single subsection. And the structure >> isn't easily discerned from the TOC. >> >> I suggest it would be clearer if each of these sections had *two* >> subsections, one covering the AS interactions and the other the RS >> interactions. IOW, put the material covering the AS interactions into a >> new subsection.
- [Gen-art] Gen-ART Last Call review of draft-ietf-… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Jim Schaad
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Benjamin Kaduk
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Benjamin Kaduk
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Seitz Ludwig
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Stefanie Gerdes
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Seitz Ludwig
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Benjamin Kaduk
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Olaf Bergmann
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Olaf Bergmann
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Olaf Bergmann
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Göran Selander
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Göran Selander
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Benjamin Kaduk
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Olaf Bergmann
- Re: [Gen-art] Gen-ART Last Call review of draft-i… Paul Kyzivat