Re: [radext] Adam Roach's Discuss on draft-ietf-radext-coa-proxy-05: (with DISCUSS and COMMENT)

Alan DeKok <aland@deployingradius.com> Tue, 14 August 2018 17:31 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 CD305130EFC; Tue, 14 Aug 2018 10:31:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-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 Arav3fquW1i1; Tue, 14 Aug 2018 10:31:42 -0700 (PDT)
Received: from mail.networkradius.com (mail.networkradius.com [62.210.147.122]) by ietfa.amsl.com (Postfix) with ESMTP id B4051130EEC; Tue, 14 Aug 2018 10:31:41 -0700 (PDT)
Received: from [192.168.20.32] (CPEf4cc55220745-CM64777ddff610.cpe.net.cable.rogers.com [173.32.191.82]) by mail.networkradius.com (Postfix) with ESMTPSA id 380FF610; Tue, 14 Aug 2018 17:31:40 +0000 (UTC)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Alan DeKok <aland@deployingradius.com>
In-Reply-To: <680f1611-e86a-abd1-fb5f-63f27a265226@nostrum.com>
Date: Tue, 14 Aug 2018 13:31:38 -0400
Cc: Winter Stefan <stefan.winter@restena.lu>, radext@ietf.org, The IESG <iesg@ietf.org>, draft-ietf-radext-coa-proxy@ietf.org, radext-chairs@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <E586556A-97FC-4719-9A76-9201477CEDD9@deployingradius.com>
References: <153421241151.25112.5942779659969287406.idtracker@ietfa.amsl.com> <DCBC0F8A-E486-4844-8C7A-CCDEBD41A0E4@deployingradius.com> <0d9cc14c-d065-87fa-5ea1-f76fde1c9c2f@nostrum.com> <B33A4595-EDBE-41C5-9FD6-5EEACB6EEDE4@deployingradius.com> <b6c70613-40b1-9c78-ec63-927ffdffa094@nostrum.com> <44429A5F-F978-4D7B-8330-C6A665E8BF53@deployingradius.com> <680f1611-e86a-abd1-fb5f-63f27a265226@nostrum.com>
To: Adam Roach <adam@nostrum.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/radext/jqZ3UI4z7fiMjhU8vWJZZzPyZpc>
Subject: Re: [radext] Adam Roach's Discuss on draft-ietf-radext-coa-proxy-05: (with DISCUSS and COMMENT)
X-BeenThere: radext@ietf.org
X-Mailman-Version: 2.1.27
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, 14 Aug 2018 17:31:48 -0000

On Aug 14, 2018, at 1:16 PM, Adam Roach <adam@nostrum.com> wrote:
> You've described what you mean, without saying why you need it, and so I'm not sure what you mean achieves what you think you need -- and I have have a creeping suspicion that it does not.

  Let me back up.

  The scheme could work just as well if Operator-NAS-Identifier contained the actual IP address of the NAS.

  The main reason to make it private is that there is no compelling reason to make it public.  And as a general rule, keeping private things private is a good idea.

> I *think* the idea here is hiding things like how many NASes you have deployed in your network [1]. If that's the case, you'll minimally need some guidance here about each token being encrypted separately, using a unique nonce.

  I don't think that's necessary.  See below.

> I'll note that the creation of opaque tokens that don't differ between requests (as you seem to suggest above) doesn't achieve the goal of hiding the number of NASes -- it's not harder to count unique opaque tokens than it is to count IP addresses.

  Of course.  That being said... Access-Request and Accounting-Request packets typically contain the MAC address of the NAS.  So the number of NASes is already public information.

>>> The document says that the token "SHOULD be verifiable by the Visited Network." What does this mean, and why do you need it?
>>   The visited network needs to know that the token maps to an actual NAS.
>> 
>>   If the token is an encrypted blob, it can decrypt the blob and verify it that way.
> 
> Sorry, verify it how?

  It's probably better to just not refer to verifying the value.

> Let's say my token generation scheme is to take the IP address of the NAS, pack it up in network byte order, and run it through some encryption algorithm. So, I get a blob in a Disconnect-Request message, run it through decryption, and get four bytes:  136, 35, 8, and 43. That looks like a valid IP address to me. I still can't tell whether I generated the blob, or whether someone else just created a random blob and that's what it happened to decrypt to -- because most four-byte sequences are valid IPv4 addresses.
> 
> And, as for needing to know that it maps to an actual NAS: why? If the something is messing up these tokens and the worst thing that happens is that the transaction fails, that seems to be fine.

  Sure.

  To be honest, this is really getting into details which I don't think matter in the real world.  CoA packets are only accepted from trusted parties.  Or transitively, from parties they trust.  All of those parties have access to all of the user session identification information.  If the parties mangle the Operator-NAS-Identfifier, then the transaction fails.  So they have no reason to do so.  And much of the information about a NAS (and their number) is already public.

  Which means that there is substantially less reason to make the Operator-NAS-Identifier unique, verifiable, etc.  Just encrypt the IP address, and it's fine.  Or, create an opaque token per NAS, store token/IP in a table, and it's fine.

  Any security issues with the contents of Operator-NAS-Identifier are largely mitigated by the utter crap-fest that's the rest of RADIUS.  Which means that it doesn't really matter how the values of Operator-NAS-Identifier are created, stored, or used.

  Alan DeKok.