Subject: [Dime] Benjamin Kaduk's No Objection on draft-ietf-dime-rfc4006bis-11: (with COMMENT)

From: Benjamin Kaduk <[email-masked]>
Date: Sun, 26 Aug 2018 09:52:30 -0700

Benjamin Kaduk has entered the following ballot position for
draft-ietf-dime-rfc4006bis-11: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-dime-rfc4006bis/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for addressing my DISCUSS points.  Original ballot comments preserved below:

Some additional significant but not necessarily DISCUSS-worthy
comments, followed by more editorial- and nit-level things.

In Section 1.3, "Advertising Application Support" uses the same
Auth-Application-ID value as for RFC 4006; what are the interop
consequences of this?

Alissa already noted that the text about how to split (sub-)AVPs
between the foo and foo-Extension AVPs is inconsistent among them --
e.g., Redirect-Server-Extension and User-Equipment-Info say "SHOULD
send [in the old one]", but Subscription-Id-Extension has separate
text about "[i]f full backward compatibility with [RFC4006] is
required" and slightly different behavior described.  We should try
to catch all instances of this sort of backwards compatibility and
make them consistent.

The use of UTF8String for URLs and URIs (e.g., Redirect-Address-URL)
might benefit from additional text about the expected contents.  A
lot of the time when we use a UTF8 container for names (whether
domain names or other kinds), we specify what normalization form and
canonicalization are performed, whether domain names are A-labels or
U-labels, etc., as there's a lot of potential flexibility not all of
which is good.  In this case, since the communication is only
between trusted actors, perhaps the additional restrictions are not
needed, but I am curious if the topic was raised in the WG.

Thank you for adding the Privacy Considerations and list of
Privacy-Sensitive AVPs!

Section 14

   [...] The Diameter credit-
   control application is often used within one domain, and there may be
   a single hop between the peers.  In these environments, the use of
   TLS/TCP, DTLS/SCTP or IPsec is sufficient.

I did not see any concrete guidance on what would suffice in other
environments (with multiple hops between peers).  Is this the realm
of the mythical "end-to-end security mechanism" for Diameter that is
much-desired?  (The last paragraph does have guidance on what might
*not* suffice, which is not exactly the same thing.)

   Even without any modification to the messages, an adversary can
   eavesdrop on transactions that contain privacy-sensitive information
   about the user.

This ("an adversary can") makes it sounds as if there is no
confidentiality protection anywhere in the system, but that's what
TLS/DTLS/IPSec are supposed to provide.  So maybe "an adversary that
can eavesdrop on transactions can obtain privacy-sensitive
information [...]" is better.

(Editorial- and nit-level stuff follows.)

Section 4

   A flexible credit-control application specific failure handling is
   defined in which the home service provider can model the credit-
   control client behavior according to its own credit risk management
   policy.

This sentence is hard to parse -- in "credit-control application
specific" what does "specific" bind to?  What is being modelled?  Is
anything being controlled (as opposed to modelled)?

Section 4.1.1

   2.  The Service-Parameter-Info AVP MAY be used as a container to pass
   legacy rating information in its original encoded form (e.g., ASN.1
   BER).  [...]

Why BER and not DER?  The unnecessary flexibility in BER vs. DER has
been known to tickle parser bugs and create security
vulnerabilities.

Section 4.1.2

   [...] To
   facilitate interoperability, it is RECOMMENDED that the rating input
   and the values of the Service-Context-Id be coordinated via an
   informational RFC or other permanent and readily available reference.
   The specification of another cooperative standardization body (e.g.,
   3GPP, OMA, or 3GPP2) SHOULD be used.

The RECOMMENDED and SHOULD seem slightly in conflict.

Section 5.1.1

As noted elsewhere, 60 seconds per minute does not always hold; it
seems that this text could be reworded to just talk about a
"constant rate" or "constant level per fixed time period" or
similar.

Section 5.1.2

   [...]
   timer (Section 13) every time a CCR message with the value
   UPDATE_REQUEST is sent while they are in PendingU state.  When
   answers to all pending messages are received, the state machine moves
   to OPEN state, and Tx is stopped.

Transmission, or the Tx timer (is stopped)?

Using a different title for Section 5.2.2 might make the parallel
between it and Section 5.2.1 more clear.  That is, perhaps something
like "First Interrogation Included with Authorization Messages".

Section 5.7

   [...] It is RECOMMENDED that the client complement the credit-
   control failure procedures with backup accounting flow toward an
   accounting server. [...]

Nit: it looks like there's a missing article here, maybe "a backup
accounting flow" is better.

   The AAA transport profile [RFC3539] defines the application layer
   watchdog algorithm that enables failover from a peer that has failed
   and is controlled by a watchdog timer (Tw) defined in [RFC3539].

Nit: Is it "the" watchdog algorithm or "an" watchdog algorithm?

Section 6.2

Should there be text indicating how the client indicates what
service the balance check is being requested for?

Section 8.54

Maybe give a section reference in RFC 3580 for how the formatting is
done?

Section 12

   [...] Initially, such Expert discussions take place on the AAA
   WG mailing list.

That list appears to be dead, suggesting that this text should be
updated.  (I also agree with Adam's comments about updating the IANA Considerations.)

Why is the disclaimer in Section B.4 (and other examples) not needed in Section B.3?