Re: Review of draft-ietf-radext-radsec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

comments inline.

> This is a review of "TLS Encryption for RADIUS" draft-ietf-radext-radsec.
> 
> Overall, this draft was a pleasant to read, and it is clear that a lot
> of thought as well as implementation experience has gone into it.
> 
> Kudos to the authors.

Thanks :-)

> General Issues
> 
> There is a considerable amount of text relating to dynamic discovery in
> this document, yet
> there is only an informational reference to it.

That's true. As I went through your comments below, I realised that
large parts of the texts you quoted should be moved to the
dynamic-discovery draft altogether as they are are very specific to that
draft.

I'm thinking of taking out all the snippets you mentioned below,
transfer them to dynamic-discovery and leaving nothing but a small
"pointer" paragraph in the RADIUS/TLS document.

This actually coincides with what we've experienced in deployment. While
in earlier times I considered TLS and dynamic discovery rather
intertwined, operations people tell me that these are two very distinct
things; most have no problem changing from UDP to TLS, while leaving
their servers behind a firewall and opening it only to the same known
peers as before; merely changing the transport. They do tend to have
more of a problem with opening the port to the world at large and move
away from hard-wired configurations of known peer addresses though.

So it's indeed best to keep both aspects nicely separated.

> Since inserting a normative reference to dynamic discovery could delay
> the publication of
> this document unnecessarily, my recommendation is to consolidate some of
> the dynamic
> discovery material into a single section in which you can discuss the
> implications, while
> clearly indicating the status of the dynamic discovery work (e.g. still
> under development, optional to
> implement along with RADSEC, etc.).
> 
> For example, you might consider consolidating the following text from
> Sections 3.1 and 6
> and placing it prior to the current Section 3.1:
> 
> Section 3.X:  Implications of Dynamic Peer Discovery
> 
>    One mechanism to discover RADIUS over TLS peers dynamically via DNS
>    is specified in [I-D.ietf-radext-dynamic-discovery].  While this
> mechanism
>    is still under development and therefore is not a normative dependency of
>    RADIUS/TLS, the use of dynamic discovery has potential future
> implications that are
>    important to understand.

I'll add that to the text. Since the text about dynamic discovery would
be externalised to the other draft, how about if I add a sentence:

"Readers of this document who are considering the deployment of
DNS-based dynamic discovery are thus encouraged to read
[I-D.ietf-radext-dynamic-discovery] and follow its future development." ?


Then, those who care can read up on it, while the others just read how
to do TLS instead of UDP.

>    If dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery] is used, peer authentication
>    alone is not sufficient; the peer must also be authorised to perform
>    user authentications.  In these cases, the trust fabric cannot depend
>    on peer authentication methods like DNSSEC to identify RADIUS/TLS
>    nodes.  The nodes also need to be properly authorised.  Typically,
>    this can be achieved by adding appropriate authorisation fields into
>    a X.509 certificate.  Such fields include SRV authority [RFC4985],
>    subjectAltNames, or a defined list of certificate fingerprints.
>    Operators of a RADIUS/TLS infrastructure should define their own
>    authorisation trust model and apply this model to the certificates.
>    The checks enumerated in Section 2.3 provide sufficient flexibility
>    for the implementation of authorisation trust models.
> 
> [BA] I think you need to be more prescriptive here.  Are there specific
> fields that a RADSEC TLS certificate should contain?  Having individual
> implementations/deployments defining their own authorization schemes seems
> like a bad idea. 

That text is best moved out to dynamic-discovery anyway. But to address
your point: this was discussed numerous times in radext wg meetings. The
conclusion in the end was that it is hard to foresee how trust fabrics
are created by people in the wild, so it seemed like a bad idea to be
too prescriptive. E.g. in eduroam we've already been experimenting with
two (
1) subjectAltName:URI to contain a specific value
2) policyOID to distinguish "authorized eduroam" servers from others

Chances are that we might experiment with more, e.g. DNSSEC subtrees
with DANE records.

This goes together with the current discussion of making dynamic
discovery Experimental - then observe how trust models work, and be more
concrete if the document makes it to standards track.

>    In the case of dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery], a RADIUS/TLS node needs to be
>    able to accept connections from a large, not previously known, group
>    of hosts, possibly the whole internet.  In this case, the server's
>    RADIUS/TLS port can not be protected from unauthorised connection
>    attempts with measures on the network layer, i.e. access lists and
>    firewalls.  This opens more attack vectors for Distributed Denial of
>    Service attacks, just like any other service that is supposed to
>    serve arbitrary clients (like for example web servers).
> 
>    In the case of dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery], X.509 certificates are the only
>    proof of authorisation for a connecting RADIUS/TLS nodes.  Special
>    care needs to be taken that certificates get verified properly
>    according to the chosen trust model (particularly: consulting CRLs,
>    checking critical extensions, checking subjectAltNames etc.) to
>    prevent unauthorised connections.

Both of these security considerations apply only to deployers of
dynamic-discovery; so they should be moved to dynamic-discovery.

> 
> Other comments
> 
> Section 1
> 
>    One mechanism to discover RADIUS over TLS peers with DNS is specified in
>    [I-D.ietf-radext-dynamic-discovery].
> 
> [BA] Recommend moving this to a section devoted to dynamic discovery.

Done in my working copy, by using your text above.

> 
> Section 2.1
> 
>    See
>    section Section 3.3 (4) and (5) for considerations regarding
>    separation of authentication, accounting and dynauth traffic.
> 
> [BA] Recommend changing to:
> 
>    "See Section 3.3 for considerations regarding separation of
>     authentication, accounting and dynamic authorisation traffic."

Done in my working copy.
> 
> Section 2.3
> 
>    4.  start exchanging RADIUS datagrams.  Note Section 3.3 (1) ).  The
>        shared secret to compute the (obsolete) MD5 integrity checks and
>        attribute encryption MUST be "radsec" (see Section 3.3 (2) ).
> 
> Section 3.1
> 
>    (3) If dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery] is used, peer authentication
>    alone is not sufficient; the peer must also be authorised to perform
>    user authentications.  In these cases, the trust fabric cannot depend
>    on peer authentication methods like DNSSEC to identify RADIUS/TLS
>    nodes.  The nodes also need to be properly authorised.  Typically,
>    this can be achieved by adding appropriate authorisation fields into
>    a X.509 certificate.  Such fields include SRV authority [RFC4985],
>    subjectAltNames, or a defined list of certificate fingerprints.
>    Operators of a RADIUS/TLS infrastructure should define their own
>    authorisation trust model and apply this model to the certificates.
>    The checks enumerated in Section 2.3 provide sufficient flexibility
>    for the implementation of authorisation trust models.
> 
> As noted above, I'd suggest removing this material from Section 3.1 and
> consolidating it with other dynamic-discovery material.  

Moved out to dynamic-discovery.

> 
> Section 3.3
> 
>    Note well: it is not required for an implementation
>    to actually process these packet types.  It is sufficient that upon
>    receiving such a packet, an unconditional NAK is sent back to
>    indicate that the action is not supported.
> 
> [BA] What Error-Cause attribute value should be included within the NAK
> to make it
> clear that the action is not supported?  Error 406 "Unsupported Extension"?
> That is what RFC 5176 Section 3.5 seems to indicate.

Indeed. I'll update the text to that end. Note though that adding
Error-Cause is a MAY only in 5176, so it may very well be that an
implementation which doesn't support dynauth would still send only a
"naked" NAK, ignoring the MAY.

I've put the following text into my working copy:

(4) RADIUS/UDP [RFC2865] uses negative ICMP responses to a newly
   allocated UDP port to signal that a peer RADIUS server does not
   support reception and processing of the packet types in [RFC5176].
   These packet types are listed as to be received in RADIUS/TLS
   implementations.  Note well: it is not required for an implementation
   to actually process these packet types.  It is sufficient that upon
   receiving such a packet, an unconditional NAK is sent back to
   indicate that the action is not supported.  The NAK MAY contain an
   attribute Error-Cause with the value 406 ("Unsupported Extension");
   see [RFC5176] for details.

>    There
>    is no RADIUS datagram to signal an Accounting NAK.  Clients may be
>    misconfigured to send Accounting packets to a RADIUS/TLS server which
>    does not wish to process their Accounting packet.  The server will
>    need to silently drop the packet.  The client will need to deduce
>    from the absence of replies that it is misconfigured; no negative
>    ICMP response will reveal this.
> 
> [BA] This seems like a bad idea.  How about requiring implementations not
> supporting Accounting to respond with an Accounting-Response containing
> Error-Cause attribute value 406?  Implementations receiving an
> Accounting-Response
> with this Error-Cause can be required to treat this like an ICMP response.

I'm slightly confused here. To my best knowledge, Error-cause is only
specified in the context of DynAuth (RFC5176). That attribute is listed
as only allowed in a NAK as per the attribute occurence table in 5176.

I would be hesitant to use Error-Cause in RADIUS Accounting packets -
unless the corresponding RFCs get updated to specify that this attribute
is now also to be used in Accounting semantics. And to be honest, I
would even be rather against such a change, and introduce a proper
Accounting-NAK packet type instead; but that's a different story.

The non-ability to indicate "No accounting please" has been discussed in
a radext wg meetint. The conclusion was that auth and acct are two
separate, unrelated items. RADIUS Accounting needs to be configured
differently and explicitly; so there is little risk that accounting
packets are sent "by chance" anyway. If they are sent to the wrong
place, that is an administrative error: misconfigured on the sender-side.

> Section 4
> 
>    As a consequence, the selection of transports to communicate from a
>    client to a server is a manual administrative action.  An automatic
>    fallback to RADIUS/UDP is NOT RECOMMENDED, as it may lead to down-
>    bidding attacks on the peer communication.
> 
> [BA] If a fixed shared secret "radsec" is used alongside fallback to
> RADIUS/UDP,
> that seems more like a MUST NOT!!

That paragraph was also brought up in the AD review. It was not meant in
the way you perceived it; please see the thread of the AD review of this
document for an extensive explanation how it was really meant.

In any case, I take the point that the text is confusing for readers.

While resolving the AD comments, I agreed with Dan Romascanu to
reformulate this whole paragraph and move it to Security Considerations
instead. I'll follow up with the new text later today.

> Section 6
> 
>    In the case of dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery], a RADIUS/TLS node needs to be
>    able to accept connections from a large, not previously known, group
>    of hosts, possibly the whole internet.  In this case, the server's
>    RADIUS/TLS port can not be protected from unauthorised connection
>    attempts with measures on the network layer, i.e. access lists and
>    firewalls.  This opens more attack vectors for Distributed Denial of
>    Service attacks, just like any other service that is supposed to
>    serve arbitrary clients (like for example web servers).
> 
>    In the case of dynamic peer discovery as per
>    [I-D.ietf-radext-dynamic-discovery], X.509 certificates are the only
>    proof of authorisation for a connecting RADIUS/TLS nodes.  Special
>    care needs to be taken that certificates get verified properly
>    according to the chosen trust model (particularly: consulting CRLs,
>    checking critical extensions, checking subjectAltNames etc.) to
>    prevent unauthorised connections.
> 
> 
> [BA] I'd recommend collecting this and other dynamic-discovery related
> material
> into a separate section prior to 3.1.

Moved out of the document, to go into dynamic-discovery.

> Appendix C. Assessment of Crypto-Agility Requirements
> 
> 
>    The RADIUS Crypto-Agility Requirements (link to RFC once issued here)
>    defines numerous classification criteria for protocols that strive to
>    enhance the security of RADIUS.  It contains mandatory (M) and
>    recommended (R) criteria which crypto-agile protocols have to
>    fulfill.  The authors believe that the following assessment about the
>    crypto-agility properties of RADIUS/TLS are true.
> 
> [BA] The Crypto-Agility RFC is now published so you should reference that.

Done now in my working copy.

Thanks for this extensive review, much appreciated!

Greetings,

Stefan Winter

-- 
Stefan WINTER
Ingenieur de Recherche
Fondation RESTENA - Réseau Téléinformatique de l'Education Nationale et
de la Recherche
6, rue Richard Coudenhove-Kalergi
L-1359 Luxembourg

Tel: +352 424409 1
Fax: +352 422473

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Ietf mailing list
Ietf@xxxxxxxx
https://www.ietf.org/mailman/listinfo/ietf

[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]