[TLS] draft-ietf-tls-dtls-rrc-15 ietf last call Tsvart review

Colin Perkins via Datatracker <noreply@ietf.org> Thu, 12 June 2025 12:34 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: tls@ietf.org
Delivered-To: tls@mail2.ietf.org
Received: from [10.244.8.226] (unknown [104.131.183.230]) by mail2.ietf.org (Postfix) with ESMTP id D46BB3424FCA; Thu, 12 Jun 2025 05:34:57 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Colin Perkins via Datatracker <noreply@ietf.org>
To: tsv-art@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 12.40.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <174973169765.4169355.2905346214627995584@dt-datatracker-59b84fc74f-84jsl>
Date: Thu, 12 Jun 2025 05:34:57 -0700
Message-ID-Hash: 4EI2OKCJFFAYPMTPYVTKVMEBGAZIZCBU
X-Message-ID-Hash: 4EI2OKCJFFAYPMTPYVTKVMEBGAZIZCBU
X-MailFrom: noreply@ietf.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-tls-dtls-rrc.all@ietf.org, last-call@ietf.org, tls@ietf.org
X-Mailman-Version: 3.3.9rc6
Reply-To: Colin Perkins <csp@csperkins.org>
Subject: [TLS] draft-ietf-tls-dtls-rrc-15 ietf last call Tsvart review
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Si3kVBjH8CwgHCnqA4LZdNCqseA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>

Document: draft-ietf-tls-dtls-rrc
Title: Return Routability Check for DTLS 1.2 and DTLS 1.3
Reviewer: Colin Perkins
Review result: Ready with Nits

This document has been reviewed as part of the transport area review team's
ongoing effort to review key IETF documents. These comments were written
primarily for the transport area directors, but are copied to the document's
authors and WG to allow them to address any issues raised and also to the IETF
discussion list for information.

When done at the time of IETF Last Call, the authors should consider this
review as part of the last-call comments they receive. Please always CC
tsv-art@ietf.org if you reply to or forward this review.

Thank you for a well-written document that clearly explains the issue to be
addressed and provides a clear description of the solution. Overall, this seems
ready to progress, but I do have a few minor comments to consider.

Section 6 describes the basic and enhanced path validation procedures, and
states that “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”. I agree that those factors influence the decision on what to
implement, but I was surprised that the draft did not give clearer guidance on
whether the basic or enhanced check was recommended.

Section 6.3 states that the return_routability_check messages MAY be sent
multiple times to account for packet loss. This is appropriate, but I would
expect to see some guidance on how often and how frequently these packets
should be resent. For example, should the initiator send the message when the
timer expires, or after one RTT, or more often? Appropriate timing is likely to
be application dependent, since some applications are more sensitive to path
change latency than others, but some guidance (perhaps once per RTT, up to the
anti-amplification limit?) might be appropriate.

Section 6.3 states that “Each path_challenge message MUST contain random data”.
I presume the intent is that each path_challenge message contains a new cookie
with random contents, rather than a single random cookie being generated once
and resent in each retransmission, but it would be helpful to clarify.

Section 6.4 states “The initiator MUST NOT enforce this behaviour”, but I
didn’t understand how the initiator could enforce the behaviour, since it seems
that the responder that makes the decision. Suggest to either remove or clarify
the intent.

Section 6.4 states that “The initiator MUST silently discard any invalid
path_response or path_drop it receives” – this is appropriate, but I wonder
what would happen if another NAT rebinding occurred while the check was
ongoing, such that the path_response arrived from neither the original address
nor the new address but rather from a third address? Would this be counted as
invalid, would it move the path to the third address, or would it trigger
another check?

In Section 6.5, clarify whether the “active path” refers to the old path or the
new path.

Cheers,
Colin