Ballot for draft-ietf-regext-epp-quic

Discuss

Mahesh Jethanandani

Yes

Mohamed Boucadair

No Objection

Andy Newton
Charles Eckel
Christopher Inacio
Éric Vyncke
Gorry Fairhurst
Gunter Van de Velde
Jim Guichard
Roman Danyliw

No Record

Deb Cooley
Ketan Talaulikar
Mike Bishop
Tommy Jensen

Summary: Has a DISCUSS. Needs one more YES or NO OBJECTION position to pass.

Mahesh Jethanandani
Discuss
Discuss (2026-06-27 for -10) Sent
Section 8.8, 0-RTT and Session Resumption:

472 >    Using 0-RTT for EoQ allows clients to establish connections and
473 >    initiate EPP transactions without round-trip delay, enabling servers
474 >    to use shorter idle timers and reduce connection overhead.  Session
475 >    resumption and 0-RTT introduce privacy and replay risks.  EoQ
476 >    implementations SHOULD follow [RFC8446] and [RFC9001] guidance to
477 >    balance performance and risk mitigation.  Failure to do so increases
478 >    privacy exposure and replay attack risks.

RFC 9001 Section 5.6 states: "An application protocol that uses QUIC
MUST include a profile that defines acceptable use of 0-RTT; otherwise,
0-RTT can only be used to carry QUIC frames that do not carry
application data."  EoQ defines no such profile.  Directing
implementers to "SHOULD follow [RFC8446] and [RFC9001] guidance" is
not a substitute for defining that profile, and this document therefore
does not satisfy the MUST from RFC 9001.

The absence is made more serious by the text above asserting that 0-RTT
allows clients to "initiate EPP transactions."  If EoQ defines no
profile permitting EPP application data in 0-RTT, RFC 9001 prohibits
exactly that use.  The text and the RFC 9001 requirement are directly
contradictory. EPP commands, including <login> itself, are
not safe to replay without application-layer protections that this
document does not specify.

In my view, this section must be revised.  At a minimum, the document
should either:

(a) explicitly prohibit EPP application data (including <login>) from 
being carried in 0-RTT data, specifying only the EoQ Connection Start 
Packet as a candidate for 0-RTT, or 

(b) define a specific 0-RTT profile — including which EPP messages 
may be included, what replay mitigations are required, and how session authentication
state interacts with resumed sessions — thereby satisfying the RFC 9001
MUST.
Comment (2026-06-27 for -10) Sent
Section 5, Data Unit Format:

305 >    The EPP data unit contains two fields: a 32-bit header that describes
306 >    the total length of the data unit, and the EPP XML instance.  The
307 >    length of the EPP XML instance is determined by subtracting four
308 >    octets from the total length of the data unit.  A receiver must
309 >    successfully read that many octets to retrieve the complete EPP XML
310 >    instance before processing the EPP message.

The 32-bit Total Length field permits a declared length of up to
approximately 4 GB.  The SECDIR review (thanks, Mike) against -09 raised this concern.
RFC 5734 is equally silent on length-field bounds checking for the
identical framing it defines.  In my opinion, the Security
Considerations section should recommend that
implementations validate the declared length against a locally
configured maximum before allocating memory or attempting to read the
declared number of octets.  Without such guidance, a single crafted
packet with an oversized length field can exhaust a receiver's memory.
I would suggest adding a sentence to Section 11 to this effect.

---

Section 6, EoQ Connection Start Packet, error handling:

337 >    Absent processing errors or local policy, the server accepts the
338 >    QUIC stream, reads the EoQ Connection Start Packet, and returns
339 >    the EPP <greeting> to the client on same QUIC stream.

The document specifies that a valid EoQ Connection Start Packet MUST be
exactly 24 octets containing the literal string "EoQ Connection Start"
(Section 6).  However, it does not specify what the server MUST or
SHOULD do if it receives a stream-opening packet that does not conform
to this format — for example, if the Total Length field is not 24, or
if the payload does not match the expected constant.  Section 7
addresses error handling for malformed EPP commands, but not for a
malformed EoQ Connection Start Packet.  In my opinion, the document
should specify the required server behavior in this case (e.g., close
the QUIC stream, with or without returning an error).

---

Section 4, Message Exchange, stream limiting:

229 >    A server SHOULD limit a client to a maximum number of QUIC
230 >    streams per QUIC connection based on server capabilities and
231 >    operational load.  Absent such limit, a server may be subject to
232 >    overload and resource exhaustion.

RFC 9000 Section 4.6 defines the normative QUIC mechanism for this:
servers use the max_streams transport parameter and MAX_STREAMS frames
to limit the number of streams a peer may open, and endpoints MUST NOT
exceed the limit set by their peer.  In my opinion, this section should
reference that mechanism explicitly, so that implementers understand
both how to enforce the limit and the QUIC-level error (STREAM_LIMIT_ERROR)
that results from a client exceeding it.  The TSV-ART review against
-09 also noted this gap.

---

Section 3, Session Management, max_idle_timeout:

207 >    The max_idle_timeout transport parameter defined in
208 >    Section 18.2 of [RFC9000] MUST NOT be set to a non-zero value by the
209 >    client or server.  Once the last QUIC stream for a QUIC connection is
210 >    closed, the server MAY end the QUIC connection immediately.

I understand the intent. However, a consequence of setting max_idle_timeout to 0 is that a
QUIC connection with no open streams can remain open indefinitely.
The server is permitted but not required to close the connection when
the last stream closes.  In my opinion, the document should say
something about the expected behavior in this state, perhaps elevating
the "MAY end the QUIC connection immediately" to SHOULD, to help
operators avoid accumulating zombie connections.

---

Section 9.2, Registration of Port Number:

511 >    This document requests IANA to update that entry so that it is
512 >    reassigned to EPP and add a reference to this document.

The phrase "reassigned to EPP" is confusing because port 700/UDP is
already assigned to the EPP service (service name "epp").  What the
document is requesting is an update to the Description field (from the
current generic EPP text to "EPP run over QUIC") and the addition of
this RFC as an additional reference alongside [RFC5734].  
The IANA request should be stated precisely: for example,
"This document requests IANA to update the Description field of the
EPP UDP/700 entry to 'EPP run over QUIC' and to add this document as
an additional Reference alongside [RFC5734]."
Mohamed Boucadair
Yes
Andy Newton
(was Discuss) No Objection
Comment (2026-07-07) Sent
Thanks for the work on this draft.
Charles Eckel
No Objection
Comment (2026-07-02 for -10) Sent
Seeing all the helpful points already raised by others in their reviews, the only additional comment I have is with respect to the reuse of port 700.

I see the WG discussed and reached consensus to reassign the reference for UDP port 700 to the EPP-over-QUIC specification rather than assign a new port number, citing the absence of any known legacy UDP implementations. In order to safely accommodate any implementation that may exist now or in the future, it might be helpful to add a reference to RFC 9443 and mention that this mechanism can be used to demultiplex EPP over UDP from EPP over QUIC.
Christopher Inacio
No Objection
Comment (2026-07-02 for -10) Sent
Thanks to Mike O. for the SECDIR review.

Thanks for the well written draft.

* Please consider protections against excessively long messages as noted in Mike's SECDIR review.

* Is a “MUST” with an “unless” really a MUST?
Section 3 ¶2: `By default, an EPP server MUST listen for QUIC connection requests on a well-known UDP port number assigned by IANA (see Section 9.2), unless there is a mutual agreement to use another port number.`

* I will echo the comment of other ADs - I'm not sure what the support of multiple QUIC streams does or why its useful; parallel processing on the EPP server maybe?

* Most of my other comments are already covered by other ADs.
Éric Vyncke
(was Discuss) No Objection
Comment (2026-06-29 for -10) Sent
# Éric Vyncke INT AD comments for draft-ietf-regext-epp-quic-10
CC @evyncke

Thank you for the work put into this document.

Special thanks to Med Boucadair, the responsible AD, to point me to the last paragraph of section 7 (which could use a MUST though) to handle my previously [DISCUSS ballot](https://mailarchive.ietf.org/arch/msg/regext/4zJiC7I3GlGPdjPuVqXi5smwYpQ/)

Please find below some non-blocking COMMENT points/nits (replies would be appreciated even if only for my own education).

I hope that this review helps to improve the document,

Regards,

-éric

Note: this ballot comments follow the Markdown syntax of https://github.com/mnot/ietf-comments/tree/main, i.e., they can be processed by a tool to create github issues.

## COMMENTS (non-blocking)

### Gorry's DISCUSS

I second Gorry's DISCUSS issues as they are sensible

### Why QUIC in Section 1

I failed to find why using QUIC is useful, especially with `EPP sessions use a single QUIC stream for all command and response exchanges` especially when reading section 3 `This means that a single QUIC connection may support multiple EoQ sessions.` The introduction should probably state that there could be several EPP sessions (for different domains ?) over a single QUIC connection.

### Section 3

`As shown in Figure 1 in Section 4,` it is painful for the reader to scroll down. Suggest moving the figure in section 3.

s/on a well-known UDP port number assigned by IANA/on *the* well-known UDP port number assigned by IANA/ (if there is only one)

### Section 4

Why not a "MUST" in `Absent local policy, a server SHOULD end an EoQ session and close the QUIC stream if a well-formed command is not received within the time limit` ?

Also note https://datatracker.ietf.org/doc/statement-iesg-statement-on-clarifying-the-use-of-bcp-14-key-words/ (and thanks for the guidance provided for previous "SHOULD")

### Section 5

s/The 32 bits total length/The *32-bit* total length/

### Use of SVG graphics

To make a much nicer HTML rendering, suggest using the aasvg tool to generate SVG graphics. It is worth a try especially if the I-D uses the Kramdown file format ;-)
Gorry Fairhurst
(was Discuss) No Objection
Comment (2026-07-10) Sent
Thank you for submitting this document, I have the following (non-blocking) comments:

## I couldn't really understand why this RFC is specifying transport over QUIC, but expect there was some specific need. I think that ought to be clearer. 
GF: DONE in rev -12

## The security properties of QUIC do differ to those of TLS/TCP, in as much as QUIC us an encrypted transport - see 21.1 in the security considerations of RFC9000.
GF: DONE in rev -12

# Please address the issues raised by Zahed as a part of his TSVART review:

## Even though section 3 explains it the correct way, in section 6, it says -

       The EoQ Connection Start Packet is written by the client after creating
       a QUIC stream to signal to the server to create the QUIC stream.

  This is inaccurate when client-initiated bi-directional streams are used. The
  server does not create streams; it just uses the streams created by the
  client. The snipped emphasizes that "signal to the server to create stream "
  that needs to be fixed. If there are no specific explanations, then it would
  suggest to rewrite the sentence to --

     The EoQ Connection Start Packet is sent by the client after creating a
     QUIC connection to signal to the server, on the client-initiated stream,
     respond with EPP<greeting>.
GF: DONE in rev -12

# Nits -

- Section 7 : the references to RFC9000 are out of order in the description of
"Stateful Nature". RFC 9000 section 2 is about streams and section 5 is about
connections.
GF: DONE in rev -12

I thank you for addressing my discussion topics in rev -12.
Best wishes,
Gorry
Gunter Van de Velde
No Objection
Comment (2026-06-24 for -10) Not sent
No Routing associated observations
Jim Guichard
No Objection
Roman Danyliw
No Objection
Comment (2026-06-29 for -10) Not sent
Thank you to Joel Halpern for the GENART review.
Deb Cooley
No Record
Ketan Talaulikar
No Record
Mike Bishop
No Record
Tommy Jensen
No Record