Hi Alan,

Many thanks for your feedback, as ever, we appreciate your valuable time and 
insights. We have added your comments as issues for tracking and resolution in 
the next version.

Please see inline for some initial response:

From: Alan DeKok <al...@deployingradius.com>
Date: Friday, 29 December 2023 at 01:15
To: Douglas Gash (dcmgash) <dcmg...@cisco.com>
Cc: opsawg@ietf.org <opsawg@ietf.org>, John Heasly <h...@shrubbery.net>, Andrej 
Ota <and...@ota.si>
Subject: Re: [OPSAWG] Submission of new version of TACACS+ TLS Spec (V4)
On Dec 22, 2023, at 11:53 AM, Douglas Gash (dcmgash) 
<dcmgash=40cisco....@dmarc.ietf.org> wrote:
> Some brief notes regarding the broader topics raised in v3, all items of 
> course, are open for re-aligning as the group sees fit.
>
>        • Regarding the allocation of a specific port, a key motivation 
> concerns the pervasive use of default ports in current configurations. 
> Ensuring the client implementations work correctly with default ports now TLS 
> is introduced, to minimise burden for operators whilst avoiding wrinkles with 
> downgrade attacks does require said new default port to be allocated, and we 
> will explicitly mention this in a new section in the new doc. We hope this 
> should help account for our request for an allocated port.

  I think it's reasonable to allow use of the old port.  I would add a section 
explaining why this choice was made.  Perhaps also adding some text on how 
packet inspection systems / firewalls can distinguish the two protocols over 
the same port.

  For example, it may be useful for firewalls to allow TACACS+ traffic, but 
only if it's encrypted.

  The non-TLS TACAC+ connections have the first octet as 0xc0 or 0xc1, and the 
second octet is 0x01, 0x02, or 0x03.  Whereas TLS begins with a TLS handshake 
0x16, followed by the TLS major version 0x03.

   I think it would be sufficient to just check the first octet.  If it's 0xc0 
... 0xcf, it's unlikely to be TLS and could be blocked.  Those values are 
unassigned in the TLS ContentType registry, and are likely to remain unassigned 
for the foreseeable future.

 I suspect that by the time those values are assigned for TLS ContentType, all 
uses of non-TLS TACACS+ would be long deprecated.
One of the main factors we have in mind regarding config the Secured T+ 
deployment, including port recommendations, is to try to do whatever we can to 
prevent unintended accidental mixing of secured and unsecured T+ traffic during 
migration of fleets of client devices, likely from different vendors with 
potentially different handling of default ports. In that context, we though a 
separate well defined port would offer advantages over re-using the original. A 
deployment can always override the defaults to get around a local challenge, 
but it wouldn’t be recommended.




>        • RFC9325 does look a timely reference, and we have tried to delegate 
> what we can from the new TACACS+ doc to it.
>        • Tracking the discussion on the deprecation of obfuscation option 
> inside TLS, our current reading is that:
>                • All TLS traffic must NOT use obfuscation.

  I would phrase that as "TACACS+ application data sent inside of a TLS tunnel 
MUST NOT use obfuscation".

>                • Setting the non-obfuscation option (TACACS has a flag for 
> unencrypted)  is mandatory for all TLS TACACS+ traffic.

  Yes.

>                • The aim is to avoid any ambiguity and to remove MD5 
> operations from this level of the protocol.

  It would be good to give some explanation as to why MD5 is being removed.
Issue Tracking #14
In the document we say merely: “The MD5 Obfuscation specified in the original 
protocol definition is not fit for purpose,”
We’ll provide some reference as to why.



>        • We hope we have addressed the raised issues nits and ambiguities.

  It's looking good.

  Some additional nits on the new version:

* Section 2

  I would suggest some modifications to the terms.  Perhaps:

     Historic TACACS+: as defined in RFC 8907

  The intention here is to say also that it's not just "TACACS+ without TLS", 
but it's *historic* and should not be used.

    TACACS+TLS: TLS transport with TACACS+ as the application data
Issue Tracking #15 "Terms Cleanup"

Agreed


* Section 3

  Perhaps "TACACS+ over TLS" instead of "TLS for TACACS+" ?
Added to Issue Tracking #15 "Terms Cleanup"




  I don't think it's necessary for the first paragraph to re-explain how TACAC+ 
connections work.

  Perhaps also explain that TACACS+TLS is little more than a TLS wrapper around 
un-obfuscated TLS.  i.e. could it be implemented simply with stunnel + a 
historic TLS client/server?
Issue Tracking #16
We will rationalise the summary on T+, there are some restrictions on using a 
pure old server. Will clarify.


* Section 3.1

  Perhaps explain why the same port is being (or could be) used.
Well, as discussed above, we may have a divergence here 😉 What we actually say 
in the doc is: “where a different well-known system TCP/IP port is
   assigned by IANA,” so we do specify a different port. So I think we’d rather 
explain why a different port should be used. LMK if we have a conflict that 
requires resolution here, after we close that, I’ll raise appropriate ticket.


  "Therefore, TLS Hello MUST be initiated ..."

  What's a "Hello" ?  Perhaps just say instead that the connection begins with 
TLS, and leave it at that.

 "This document favors the predictable use of TLS security for a deployment"

  I'm not sure what that means.  Maybe "prefers" or "mandates" the use of TLS?  
I find the phrasing to be confusing.
Issue Tracking #17
Agreed.


* Section 3.2.2

  It may be useful to move the TLS-PSK discussion from 5.1.3 to here.

  Though the RADEXT WG recently went through a long process of defining TLS-PSK 
for RADIUS.  It wasn't trivial.  See 
https://datatracker.ietf.org/doc/draft-ietf-radext-tls-psk/

  If the document is going to say "TLS-PSK is possible" but nothing more, then 
I would suggest just forbidding it.  There are a lot of details to get right 
with TLS-PSK.
Issue Tracking  #18
Thanks for the reference, we will attempt digestion the doc you kindly referred 
to, and optimise the doc structure to incorporate the elements we can extract.


* Section 3.4

  ALPN needs to have ALPN strings defined.  There's a similar (and long) 
discussion in https://datatracker.ietf.org/doc/draft-ietf-radext-radiusv11/

  TACACS+TLS doesn't need that level of complexity.  The RADEXT document is 
trying to be compatible with historic RADIUS, which is hard.  So it's a good 
idea to require the use of ALPN now.

  Perhaps for TACACS+TLS, just say that the client and server MUST use a 
particular ALPN string.  Maybe "tacacs+/12.1", which could mean both 12.0 and 
12.1 versions of TACACS+,
Agreed. The doc is written on the assumption that we will negotiate a String 
(just like with the new port).


 Over all, I'd like to see more content in the document.  Right now it outlines 
how TACACS+TLS should work, but gives very little guidance to implementors or 
operators.  I'd suggest reading the RADEXT TLS-PSK and ALPN documents linked 
above.  They go into exhaustive detail about how every little bit is supposed 
to work.  I've found that documenting the protocol in such detail greatly 
improves the quality of the implementations, and is more likely to result in 
interoperation between the implementations.

We’ll Absorb that doc. I would prefer to defer raising an issue for tracking of 
the doc until we can determine the specifics to fix, and will forward details 
of the specific issues when we get there.
Regarding the TLS specifications and crypto choices, we have attempted as far 
as possible to defer to actual TLS specs docs and TLS best practices docs, such 
as RFC 9325. We have tried to restrict details of T+ to RFC8907, unless changes 
are required.
However, we do believe it is essential to help implementors and operators as 
much as we can at this point and will certainly be keen to leverage your 
experience with the docs you mention.
Many thanks as ever, please LMK on any of the answers above and regarding our 
potential divergence of our intent to recommend a different port.
Best Regards,
The Authors.


  Alan DeKok.


_______________________________________________
OPSAWG mailing list
OPSAWG@ietf.org
https://www.ietf.org/mailman/listinfo/opsawg

Reply via email to