Ballot for draft-ietf-tls-dtls-rrc

Discuss

Mahesh Jethanandani

Yes

Erik Kline
Mohamed Boucadair
Paul Wouters

No Objection

Andy Newton
Deb Cooley
Gorry Fairhurst
Gunter Van de Velde
Jim Guichard
Mike Bishop
Orie Steele
Roman Danyliw
Éric Vyncke

No Record

Ketan Talaulikar

Summary: Has a DISCUSS. Has enough positions to pass once DISCUSS positions are resolved.

Mahesh Jethanandani
Discuss
Discuss (2025-07-07 for -19) Sent
Hear, hear! My DISCUSS is probably the easiest to address

This document updates RFC9146, but does not seem to include explanatory text
about this in the abstract.
Comment (2025-07-07 for -19) Sent
Section 5, paragraph 1
>    This document describes two kinds of checks: basic (Section 5.1) and
>    enhanced (Section 5.2).  The choice of one or the other depends on
>    whether the off-path attacker scenario described in Section 8.1.2 is
>    to be considered.  (The decision on what strategy to choose depends
>    mainly on the threat model, but may also be influenced by other
>    considerations.  Examples of impacting factors include: the need to
>    minimise implementation complexity, privacy concerns, and the need to
>    reduce the time it takes to switch path.  The choice may be offered
>    as a configuration option to the user of the TLS implementation.)

From an operations perspective, the ability for the user to configure the option should be highlighted in a separate section called "Operational Considerations".

The IANA review of this document has not concluded yet.

Check whether Expert Review is an appropriate registration policy here.

Possible DOWNREF from this Standards Track doc to [IANA.tls-parameters]. If so,
the IESG needs to approve it.

-------------------------------------------------------------------------------
NIT
-------------------------------------------------------------------------------

All comments below are about very minor potential issues that you may choose to
address in some way - or ignore - as you see fit. Some were flagged by
automated tools (via https://github.com/larseggert/ietf-reviewtool), so there
will likely be some false positives. There is no need to let me know what you
did with these suggestions.

Reference [RFC6347] to RFC6347, which was obsoleted by RFC9147 (this may be on
purpose).
Erik Kline
Yes
Comment (2025-07-04 for -18) Sent
# Internet AD comments for draft-ietf-tls-dtls-rrc-18
CC @ekline

* comment syntax:
  - https://github.com/mnot/ietf-comments/blob/main/format.md

* "Handling Ballot Positions":
  - https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/

## Comments

### S6

* A brief explanation of what is meant by "nested rebinding" would be good.

### S6.{2,3,...}

* I think if I were implementing this I would try to probe both the old
  and the new paths at the same time.

  Can you say something about the considerations such an implementation
  would need to be aware of?
Mohamed Boucadair
Yes
Comment (2025-06-28 for -18) Sent
Hi Hannes, Achim, and Thomas, 

Thank you for the effort put into this specification. 

Thanks to Joe Clarke for the OPSDIR review and Thomas for positively addressing the comment. Much appreciated. 

I’m balloting Yes as this is a specification I would be happily sponsoring myself.

There are some few points that I think need some further considerations:

# Should we tag this document as updating RFC9146?

CURRENT:
   A client offering the
   “connection_id” extension SHOULD also offer the rrc extension, unless
   the application using DTLS has its own address validation mechanism.
 
Although this does not change anything in 9146, this new requirement is worth to be LOUDLY visible for 9146 implementer. 

# Deviation or compliance with the QUIC procedure?

## First, having a statement early in the document to say that this procedure is inspired from the RFC9000 connection migration procedure would be fair.

## I’m not sure if we have full adherence with the approach in RFC9000#Section 8.2 or there are deviations. At least, I see that we don’t have here an equivalent to disable_active_migration. Would it be possible please to have a statement whether we deviate or not from 9000 (and of so list those with the motivation for such deviations?). 

# Path and address control assumptions 

## Path assumptions

For example, Section 5 has the following:

CURRENT:
   For instance, NAT rebinding is improbable if
   packets were recently received on the old path; similarly, rebinding
   is rare on IPv6 paths.   

This puts assumptions on the path that may not be always valid. Also, I would not treat IPv6 as special here because NAT64 may be on-path.

Think about multi-homed address-rewriting devices (multi-homed CPEs with eventually CGNs/NAT64 in all or subset of the network attachment) that use some kind of packet scheduling rather than flow-based to distribute packet among available network attachments. Under such conditions, a client can be seen with distinct addresses. Such scenarios may be possible with UDP. Things are different for TCP, where such mechanisms may be problematic in the presence of firewall (e.g., an on-path stateful device may reject a segment if it didn’t observed a SYN). 

## Impossibility to adhere with a MUST

Section 6.2 has the following:

CURRENT: 
       *  If the path through which the message was received is no
          longer preferred, a return_routability_check message of type
          path_drop MUST be returned.  In either case, the peer echoes
          the cookie value in the response.

This text (and similar) makes an assumption on address control/path awareness of endpoints, which I think does not stand in many cases. 

The external address and forwarding path may not be under the control of the endpoint. It does not even know that the external address changes. Endpoints may use the same local address but distinct external addressed/forwarding paths

## Path control 

Section 6.4 has the following:

CURRENT:
   *  The responder MUST send the path_response or the path_drop on the
      path where the corresponding path_challenge has been received, so
      that validation succeeds only if the path is functional in both
      directions.

Endpoints does not have control on the path. Rather than reasoning on what is beyond their control, may be reason about interface by which a message was received or something this is under the control of an endpoint.

# Broken MUST?

Section 6.4 has the following

CURRENT:
   *  The responder MUST send exactly one path_response or path_drop
      message for each received path_challenge.

This should be applicable only for a valid received challenge message. Please reword.

# Lack of guards against frequent migration and connection oscillation

There might be cases where frequent address changes may be observed. Triggering the validation procedure too frequently may lead to instability. Should there be a guard to control the spacing of migration?

# Detailed comments

## The procedure check in the document is about forwarding, not routing.

## Terminology

### I suggest we grab the definition of “Address” from 9000 and use it through the document.

NEW:
  Address: When used without qualification, the tuple of IP version, IP address, and UDP port number that represents one end of a network path.

### Incomplete list

CURRENT:
   The terms "peer" and "endpoint" are defined in Section 1.1 of
   [RFC8446].

The main text also used “client”. Consider adding it to that list.

## Section 3

CURRENT:
   The client and
   server MUST NOT use RRC unless both sides have successfully exchanged
   rrc extensions.  A client offering the “rrc” extension MUST also offer
   the connection_id extension [RFC9146].  

Consider reorder to follow the validation logic. I would place the second sentence first.

## Section 5

### I would move this section to be a subsection of the Security Considerations.

### Faster routing?!

CURRENT:
   *  An off-path attacker is not on the original path between the DTLS
      peers, but is able to observe packets on the original path and has
      faster routing compared to the DTLS peers, 

I really don’t parse what is meant by faster routing. Please reword/clarify

### Attack types

CURRENT:
              .--> .------------------------------------. <--.
              |    | Inspect un-encrypted portions      |    |
              |    +------------------------------------+    |
              |    | Inject                             |    |
          off-path +------------------------------------+    |
              |    | Reorder                            |    |
              |    +------------------------------------+    |
              |    | Modify un-authenticated portions   | on-path
              '--> +------------------------------------+    |
                   | Delay                              |    |
                   +------------------------------------+    |
                   | Drop                               |    |
                   +------------------------------------+    |
                   | Manipulate the packetization layer |    |
                   '------------------------------------' <--'

                      Figure 2: Attacker capabilities

I would add “store” as an additional line for on-path. That can be used for replay attacks.

## Section 6

### Broken MUST

CURRENT:
   The receiver that observes the peer's address or port number change MUST
   stop sending any buffered application data, or limit the data sent to
   the unvalidated address to the anti-amplification limit.   

This absolute requirement is only valid assuming the extension is successfully validated. Please update accordingly.

Also, s/ The receiver/A receiver

### Hidden Operational Consideration

CURRENT (6):
  (The decision on what strategy to choose depends
   mainly on the threat model, but may also be influenced by other
   considerations.  Examples of impacting factors include: the need to
   minimise implementation complexity, privacy concerns, and the need to
   reduce the time it takes to switch path.  The choice may be offered
   as a configuration option to the user of the TLS implementation.)


CURRENT (6.3):
      -  In general, the number of "backup" path_challenge messages
         depends on the application, since some are more sensitive to
         latency caused by changes in the path than others.  In the
         absence of application-specific requirements, the initiator can
         send a path_challenge message once per round-trip time (RTT),
         up to the anti-amplification limit.

Consider moving this text to be discussed under Operational Consideration section.

### Nested rebinding

CURRENT:
   Please note that the presented algorithms are not designed to handle
   nested rebindings.   

Can we be explicit about the case we are referring to? Is this the case of double NAT, for example? Else? 

## Random Data

CURRENT:
   Each path_challenge message MUST contain random data. 

Does that random data to be unique per challenge message? 

## Section 10

Maybe mention that detection of frequent paths probes is a signal of path instability and that such event can be used to diagnose underlying connectivity service.

## Section 11

### Indicate the registry group

OLD:
   IANA is requested to allocate an entry in the TLS ContentType
   Registry 
NEW:
   IANA is requested to allocate an entry in the TLS ContentType
   Registry under the “Transport Layer Security (TLS) Parameters” registry group

### Use the name used by IANA

OLD: 
   IANA is requested to create a new registry "RRC Message Types" within
   the TLS Parameters  

NEW:
   IANA is requested to create a new registry "RRC Message Types" within
   the Transport Layer Security (TLS) Parameters

## Misc.

### Section 1: 

* s/return routability check (RRC)/Return Routability Check (RRC)

* s/and/or port/and/or port number

* s/address (and port)/address (and port number)


### Section 5

(1)

OLD: We define two classes of attackers

NEW: Two classes of attackers are considered

(2)

OLD: a RRC message

NEW: an RRC message

### Section 7

OLD: 
   In the example DTLS 1.3 handshake shown in Figure 7, a client and a
   server successfully negotiate support for both CID and the RRC
   extension.

NEW:
   In the example of DTLS 1.3 handshake shown in Figure 7, a client and a
   server successfully negotiate support for both CID and the RRC
   extensions.

### Section 10

Per the guidance in draft-opsarea-rfc5706bis, it is recommended to put this section right before the security cons section.

### Global

* s/rrc extension/“rrc” extension (idem for other extensions

* s/Return Routability Check sub-protocol/RRC sub-protocol

Hope this helps.   

Cheers,
Med
Paul Wouters
Yes
Andy Newton
No Objection
Comment (2025-07-01 for -18) Not sent
Thanks for this work. I have no objections to the publication of this document as an RFC. Many thanks to Russ Housley for the ARTART review.
Deb Cooley
No Objection
Comment (2025-07-02 for -18) Sent for earlier
Thanks to Mike Ounsworth for their secdir review. 

Section 2, para 3:  The definition of 'anti-amplification limit' is incomplete.  Three times the amount of data received compared to what?  In RFC 9000, the definition is as follows:  "Therefore, after receiving packets from an address that is not yet validated, an endpoint MUST limit the amount of data it sends to the unvalidated address to three times the amount of data received from that address. This limit on the size of responses is known as the anti-amplification limit."  I think you need to add '...means limiting data sent to an unvalidated address to three times the amount of data received...'.  [at this point the requirement in Section 6 makes more sense]

Section 5, off-path attacker bullet:  '...copies of the observed packets...', does this mean replay packets? I'm not sure what is more widely understood.  Possibly add a 'copy' or 'replay' row to Figure 2?

Section 8, para 2:  Please reword the last two sentences.  Perhaps something like 'To prevent this,...using a reliable source of entropy.  See Appendix C.1 of RFC 8446 for guidance.'  [Note RFC 4086 is pretty old, most O/S have reasonable RNGs (which is what Appendix C.1 states)]
Gorry Fairhurst
No Objection
Gunter Van de Velde
No Objection
Jim Guichard
No Objection
Mike Bishop
(was Discuss) No Objection
Comment (2025-06-26 for -18) Sent
Thank you for addressing my previous DISCUSS and COMMENTs [1].

1 - https://mailarchive.ietf.org/arch/msg/tls/SpdzidiIh2IBCmuNLp7bihX_zAQ/
Orie Steele
No Objection
Roman Danyliw
No Objection
Comment (2025-07-08 for -19) Not sent
** From idnits
  -- The draft header indicates that this document updates RFC9146, but the
     abstract doesn't seem to mention this, which it should.
Éric Vyncke
(was Discuss) No Objection
Comment (2025-07-07 for -19) Sent for earlier
Thanks for addressing my previous DISCUSS point (https://mailarchive.ietf.org/arch/msg/tls/EQ0R8r6C_Vmoq3jMa8hx48XlQ20/ ) and most of the COMMENTS below.

Regards

-éric

## COMMENTS (non-blocking)

### FATT process ?

Out of curiosity, I still wonder what `FATT process` and `FATT review` mean in the shepherd write-up.

### Use of "path"

Probably too late to change, but the choice of "path" rather than "anchor" or "socket" (or something else) is poor... the actual path (the set of network links and devices) keeps changing in an IP network.

### Section 1

A small graphical (packet exchange) would be useful even if the text is clear.

### Section 3

What is the expected server behavior when the client sends the rcc extension without offering the connection_id extension ? Is the whole handshake stopped or is the option ignored ? Please be specific.

### Section 4

Probably due to my lack of familiarity with the used syntax, but it seems that the enum part is not really part of the figure 1 legend of `Return Routability Check Message`. It seems more like an addition to TLS Content Type registry. Suggest to split this figure in two figures with 2 distinct legends.

### Section 5

s/has faster routing/has faster forwarding/ ?

### Section 5.1.1

Related to `the original packet still reaches the intended destination`, does this mean that an attacker can prevent rebinding to a new address/port by sending the packet from the 'old' address/port ?

### Section 5.2.1

What is "AP" in figures 5 and 6?

### Section 10.2

As this section ends with a recommendation, should it clearly be in the protocol specification part rather than in operational considerations ?
Ketan Talaulikar
No Record