Re: [radext] Review of draft-ietf-radext-radiusdtls

Jan-Frederik Rieckers <rieckers@dfn.de> Wed, 20 March 2024 02:56 UTC

Return-Path: <rieckers@dfn.de>
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 ACD1BC14CF1F for <radext@ietfa.amsl.com>; Tue, 19 Mar 2024 19:56:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=dfn.de
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bb22gNrxjOVB for <radext@ietfa.amsl.com>; Tue, 19 Mar 2024 19:56:03 -0700 (PDT)
Received: from a1004.mx.srv.dfn.de (a1004.mx.srv.dfn.de [IPv6:2001:638:d:c301:acdc:1979:2:58]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 98B04C14F749 for <radext@ietf.org>; Tue, 19 Mar 2024 19:55:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=dfn.de; h= content-type:content-type:in-reply-to:organization:from:from :references:content-language:subject:subject:user-agent :mime-version:date:date:message-id:received; s=s1; t=1710903352; x=1712717753; bh=qYzjVtbeBXgH/5rjWWFxoUXrQkqjHhMMHn7u5O6QW7A=; b= KVPbPxpRX4+lOYRJC5t9PuIeimVBGrG/AB7IFmWF6KdF+ZJq8ucHTDOX97BscttH A3Ym1RZQYRkUkyIWGXtukx6IFoFo3D3PDWDAnVg7rXA+5pjMQGxwGPO2gwwEVt67 WPF/9SEvYCX5vtlMVBHET6SysL4+qDnjNCcOnObGBmQ=
Received: from mail.dfn.de (mail.dfn.de [IPv6:2001:638:d:c102::150]) by a1004.mx.srv.dfn.de (Postfix) with ESMTPS id 26C972000DC for <radext@ietf.org>; Wed, 20 Mar 2024 03:55:52 +0100 (CET)
Received: from [IPV6:2001:67c:370:128:e50f:ae49:e9e9:6081] (unknown [IPv6:2001:67c:370:128:e50f:ae49:e9e9:6081]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mspool2.in.dfn.de (Postfix) with ESMTPSA id E77CC3D6 for <radext@ietf.org>; Wed, 20 Mar 2024 03:55:50 +0100 (CET)
Message-ID: <18ef8267-474e-49ae-9204-0c6c79d5e50c@dfn.de>
Date: Wed, 20 Mar 2024 12:55:46 +1000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: radext@ietf.org
References: <CA9BEA9C-39EF-4764-A0FE-D122413B37F7@deployingradius.com>
From: Jan-Frederik Rieckers <rieckers@dfn.de>
X-Enigmail-Draft-Status: N11222
Organization: DFN e.V.
In-Reply-To: <CA9BEA9C-39EF-4764-A0FE-D122413B37F7@deployingradius.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-512"; boundary="------------ms000600090205050802000407"
Archived-At: <https://mailarchive.ietf.org/arch/msg/radext/wGMbO73a0nhmfJnx022KBM9sA5U>
Subject: Re: [radext] Review of draft-ietf-radext-radiusdtls
X-BeenThere: radext@ietf.org
X-Mailman-Version: 2.1.39
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: Wed, 20 Mar 2024 02:56:09 -0000


On 11.03.24 23:57, Alan DeKok wrote:
>    Now that I have a little bit of time, I'll do a detailed review of this document.  I still need to compare it to the previous docs and correlate missing / copied / added text, but that can wait a little bit.
> 
>    I'll leave nits for later.
> 
> 1.1
> 
> 	 ... where RADIUS packets need to be transferred through different administrative domains and untrusted, potentially hostile networks.
> 
>    The "and" here should be "or" instead.  Perhaps even just
> 
> 	... where RADIUS packets need to be sent across insecure or untrusted networks.

Integrated.

> 
> 1.2
> 
> 	... 	• RFC6614 marked TLSv1.1 or later as mandatory, this specification requires TLSv1.2 as minimum and recommends usage of TLSv1.3
> 
>    We should mandate that RADIUS servers use TLS 1.3.  If we don't do that, then there is little incentive for clients to upgrade, because servers won't support it.

Well, that's a policy decision up for the WG. The latest consensus IIRC 
was that this document should be as backward-compatible as possible, and 
since the original spec was written before TLS1.3, with TLS 1.2 we get 
the best backward compatibility, while still adhering to other IETF 
documents (mainly the "Deprecating TLS 1.0 and TLS 1.1")

> 	... 	• RFC6614 allowed usage of TLS compression, this document forbids it.
> 
>    Good, but why?  Perhaps "it was not found to be useful", or "no one implemented it".

I'd put it in the Design Decisions section.

To put it somewhere where I can copy the text for this if we decide to 
add this section:
For this specifically, my rationale was that compression is only allowed 
if there is never the possibility of chosen-plaintext (even partial), 
because that would potentially reveal other plaintext through length of 
the record.
And since we have some plaintext that an attacker could potentially 
choose (Username, MAC Address, EAP-Message) it is safer to just forbid 
compression.

> 2.
> 
> 	... Client implementations SHOULD implement both, but MUST only implement one of RADIUS/TLS or RADIUS/DTLS.
> 
>    I'm not sure why clients can't support both?  Perhaps
> 
> 	...  but MUST implement at least one of RADIUS/TLS or RADIUS/DTLS.

Ok, I see the confusion. (or vs xor, and bad placement of the word "only")

Fixed.

> 
> 3.1
> 
> 	... The requirement that RADIUS remain largely unchanged ensures the simplest possible implementation and widest interoperability of the specification.
> 
>    It would be worth repeating here that MD5 is bad, and people should be aware of security issues.  See "Security Considerations" section, and the ALPN doc.

I've added two sentences, probably worth looking over and doing a bit of 
wordsmithing there.


> 3.2
> 
> 	... RADIUS/(D)TLS does not use separate ports for authentication, accounting and dynamic authorization changes. The source port is arbitrary.
> 
>    It would be worth noting here that clients still have an 8-bit ID limitation, and that this issue is addressed by ALPN.
> 
> 	... RADIUS/TLS servers MUST immediately start the TLS negotiation when a new connection is opened. They MUST close the connection and discard any data sent if the connecting client does not start a TLS negotiation.
> 
>    Add "or if the TLS negotiation fails at any point".

Added.
> 
> 	... RADIUS/(D)TLS peers MUST NOT use the old RADIUS/UDP or RADIUS/TCP ports for RADIUS/DTLS or RADIUS/TLS.
> 
>    This seems to contradict the first paragraph in 3.2?

I think this might be a result of different wording in 6614/7360. Would 
have to check. I've added a TODO note.

> 3.3
> 
> 	... RADIUS/(D)TLS clients MUST mark a connection DOWN if one or more of the following conditions are met: * The administrator has marked the connection administrative DOWN. * The network stack indicates that the connection is no longer viable. * The application-layer watchdog algorithm has marked it DOWN.
> 
>    formatting off bullet points

*sigh* markdown being markdown.
Hopefully fixed, will check.

> 
> 	... If a RADIUS/(D)TLS client has multiple connection to a server, it MUST NOT decide to mark the whole server as DOWN until all connections to it have been marked DOWN.
> 
>    Maybe add a discussion of what, exactly, is a "server".  Destination IP?  How is this affected by RFC 7585 dynamic DNS lookups?

I've added a TODO for after the IETF.


> 	... For RADIUS/TLS, the peers MAY send TCP keepalives
> 
>    Perhaps change this to SHOULD, and explain why.  Experience shows that many people put firewalls between critical network services.  And those firewalls then discard TCP session state for sessions they think are "dead".  And then the critical network services can no longer communicate.
> 
>    It may also be worth adding a note that such practices are likely to cause network outages.  Especially when the firewall team is separate from the RADIUS team, and the two don't talk to each other.
> 
> 
> 4.1
> 
> 	... Implementations MUST follow the recommendations given in [RFC9325].
> 
>    Which are...?  Why are we following these recommendations?

I've added a TODO for after the meeting.

> 
> 	... 	• support for TLS 1.3 [RFC8446] / DTLS 1.3 [RFC9147] or higher is RECOMMENDED.
> 
>     I'd make this mandatory for servers.
(see above, compatibility with old spec)
> 
> 
> 4.2
> 
> 	... Allowing anonymous clients would ensure privacy for RADIUS/(D)TLS traffic, but would negate all other security aspects of the protocol
> 
>    add: plus, the use of a fixed shared secret would negate all security if peers were not mutually authenticated.

I've added a sentence.

> 4.2.1.
> 
> 	... 	• Implementations MUST allow the configuration of a list of trusted Certificate Authorities for new TLS sessions.
> 
>    Perhaps also note that this list should be specific to the application, and SHOULD NOT use the default system certificate store.

Why? If the decision is to use WebPKI because it's easier and we have 
well-known hostnames, then this is a perfectly good use case.
I would not per-se label this as less favorable than using a private CA 
(which we would do if we make this a SHOULD NOT)


> 	... Implementations SHOULD indicate their trusted Certification authorities (CAs).
> 
>    Do RADUUS/TLS implementations do this today?
See comment from Fabian.


> 	... For clients configured by name
> 
>    DNS name?
Fixed.


I'll address the other comments in a later mail.

Cheers,
Janfred
-- 
Herr Jan-Frederik Rieckers
Security, Trust & Identity Services

E-Mail: rieckers@dfn.de | Fon: +49 30884299-339 | Fax: +49 30884299-370
Pronomen: er/sein | Pronouns: he/him
__________________________________________________________________________________

DFN - Deutsches Forschungsnetz | German National Research and Education 
Network
Verein zur Förderung eines Deutschen Forschungsnetzes e.V.
Alexanderplatz 1 | 10178 Berlin
https://www.dfn.de

Vorstand: Prof. Dr.-Ing. Stefan Wesner | Prof. Dr. Helmut Reiser | 
Christian Zens
Geschäftsführung: Dr. Christian Grimm | Jochem Pattloch
VR AG Charlottenburg 7729B | USt.-ID. DE 136623822