Re: [radext] Extended IDs

Alan DeKok <aland@deployingradius.com> Tue, 12 December 2017 13:28 UTC

Return-Path: <aland@deployingradius.com>
X-Original-To: radext@ietfa.amsl.com
Delivered-To: radext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E4EF1129459 for <radext@ietfa.amsl.com>; Tue, 12 Dec 2017 05:28:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-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 IwpHD01f6oA8 for <radext@ietfa.amsl.com>; Tue, 12 Dec 2017 05:28:00 -0800 (PST)
Received: from mail.networkradius.com (mail.networkradius.com [62.210.147.122]) by ietfa.amsl.com (Postfix) with ESMTP id 86267129453 for <radext@ietf.org>; Tue, 12 Dec 2017 05:28:00 -0800 (PST)
Received: from [192.168.2.25] (198-84-205-59.cpe.teksavvy.com [198.84.205.59]) by mail.networkradius.com (Postfix) with ESMTPSA id 8B047CC; Tue, 12 Dec 2017 13:27:59 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Alan DeKok <aland@deployingradius.com>
In-Reply-To: <1465D072-52D7-4FC3-88A6-E1A97740B753@cisco.com>
Date: Tue, 12 Dec 2017 08:27:58 -0500
Cc: "radext@ietf.org" <radext@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <C22B96D7-5F08-4089-AA74-F95675C0995E@deployingradius.com>
References: <fef698a5-9802-c9be-04d7-1e869651c988@restena.lu> <dfd0ff02-c9e8-7253-4fb4-1e6def3e93b2@restena.lu> <C50ED086-A344-492B-9782-53FB5A1C0761@cisco.com> <2D707CD0-5C6D-4ABE-9829-820D6145E98F@deployingradius.com> <1465D072-52D7-4FC3-88A6-E1A97740B753@cisco.com>
To: "Brian Weis (bew)" <bew@cisco.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/radext/fHygUFCRIEz4r6RoEgqAGQS51pQ>
Subject: Re: [radext] Extended IDs
X-BeenThere: radext@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: RADIUS EXTensions working group discussion list <radext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/radext>, <mailto:radext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/radext/>
List-Post: <mailto:radext@ietf.org>
List-Help: <mailto:radext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/radext>, <mailto:radext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Dec 2017 13:28:03 -0000

On Dec 11, 2017, at 9:39 PM, Brian Weis (bew) <bew@cisco.com> wrote:
> From your comments I see that the point that the draft effectively modifying the RADIUS header is due to requiring that the Extended-Identifier be the first attribute. That seems to be an optimization that does not appear to be necessary, and could be removed to address this point. (I assume either draft would undergo change if it became a WG draft.)

  It still is effectively a modification of the RADIUS header.  i.e. the 25 year-history of "look at the first 20 octets" is now changed.

  In contrast, draft-dekok changes *nothing* about request packets.

> Regarding leakage, does a proxy normally replace the Request Authenticator field with a new value? (I’m asking for information.)

  Yes.  draft-dekok is hop-local by design.  There is no possibility to leak data which is never in the packet...

>> Given the existing definition of the Request Authenticator field, it is *impossible* at this time to change how it's calculated.  Similarly, it's impossible to change the meaning of the field for packet signatures.  And, it's impossible to change the usage of the field within other attributes.
> 
> I’m missing where draft-chen does any of these things (assuming that the “MUST be first attribute” is removed).

  It doesn't.  But neither does draft-dekok.  My comment was about risk, not about draft-chen.

  i.e. draft-dekok changes nothing about Request Authenticator, but it's risky.  Or, draft-chen adds a 32-bit ID which may leak across proxy boundaries, and has undefined behavior when an extended ID is re-used.  But that's less risky.

> I appreciate the enumeration, and I’m not implying that you’ve missed any known risk. But so often overloading fields leads to unforeseen results (due to bad assumptions by a developer or future specification writer) and that’s the basis for my concern.

  The exhaustive enumeration of possibilities was intended to mitigate the risk, by explaining and understanding all possible situations.

  As for unforeseen results, RFC 2865 Section 3 says:

         ... the Request Authenticator field
         SHOULD exhibit global and temporal uniqueness.

  That sure sounds like a unique ID to me.  The draft then proposes that:

1) if a server receives a request that matches a "live" one (src/dst IP/port, code, ID), then it MAY also use the Request Authenticator to differentiate the packets
2) as a result of (1), the original Request Authenticator is echoed back in response packets.

  That's really it.  I'll remind the WG that the behaviour of (1) is currently *undefined* in RADIUS.  So the draft is arguably mitigating the existing risk by defining that behaviour.  Not only for the new proposal, but also for existing RADIUS.

> Personally, I did not find the background and explanatory text to make draft-dekok seem seem more risky. I’m reacting to the overloading, where given similar outcomes I prefer not to introduce additional semantics to an existing field.

  The concern here is that we *already* have these semantics on the Request Authenticator.   Implementations *cannot* inter-operate without choosing some semantics for Request Authenticator.  

  So draft-dekok just explains these semantics, documents existing practice, and explains how existing semantics can be leveraged to gain new functionality.

  I think the main difference here is that it's simple to say "add a 32-bit attribute".  In contrast, it seems weird to use the Request Authenticator like this.  But as an implementor... it's already being used like this in ever server implementation in the world.

  Alan DeKok.