[regext] Comments to the feedback about epp-over-http

Mario Loffredo <mario.loffredo@iit.cnr.it> Fri, 25 March 2022 15:00 UTC

Return-Path: <mario.loffredo@iit.cnr.it>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 643273A1502 for <regext@ietfa.amsl.com>; Fri, 25 Mar 2022 08:00:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0zTi5dYC4nVq for <regext@ietfa.amsl.com>; Fri, 25 Mar 2022 08:00:40 -0700 (PDT)
Received: from smtp.iit.cnr.it (mx4.iit.cnr.it [146.48.58.11]) by ietfa.amsl.com (Postfix) with ESMTP id 810A93A1590 for <regext@ietf.org>; Fri, 25 Mar 2022 08:00:32 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by smtp.iit.cnr.it (Postfix) with ESMTP id 77F77B80C16 for <regext@ietf.org>; Fri, 25 Mar 2022 16:00:30 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mx4.iit.cnr.it
Received: from smtp.iit.cnr.it ([127.0.0.1]) by localhost (mx4.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8O5eSY7CJTLZ for <regext@ietf.org>; Fri, 25 Mar 2022 16:00:27 +0100 (CET)
Received: from [192.12.193.108] (pc-loffredo.staff.nic.it [192.12.193.108]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by smtp.iit.cnr.it (Postfix) with ESMTPSA id 09D3AB80BDB for <regext@ietf.org>; Fri, 25 Mar 2022 16:00:27 +0100 (CET)
Content-Type: multipart/alternative; boundary="------------hvpzAOCL5LwQ2Ypl9b0oTFB4"
Message-ID: <6ae5ea77-10a5-8eeb-cbbc-f08dc8831140@iit.cnr.it>
Date: Fri, 25 Mar 2022 15:58:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
To: "regext@ietf.org" <regext@ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/DUrJwwMaalwrK7dCPXqwapRhwaU>
Subject: [regext] Comments to the feedback about epp-over-http
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Mar 2022 15:00:47 -0000

Hi folks,

here are in the following some comments grouped by subject to last 
meeting's feedback about EPP-over-HTTP:


*1) Draft title*

Ulrich suggested to call the document EPP-over-HTTPS.

I replied that the name was assigned to be consistent with RFC5734, i.e. 
EPP-over-TCP.

SImilarly to RFC5734, the draft states, first in the abstract and then 
in the security considerations, that TLS is required.

That being said, the authors don't object to renaming the dcocument 
EPP-over-HTTPS if the WG agrees.


*2)  Cookies*

Jim (Reed) asked why cookies should be used in this case.

The reasons why we have used session cookiea are that they represent a 
standard method (RFC6265), well known to the community of REST service 
implementers, largely used and natively supported by libraries and 
frameworks on both client and server side. For example, it is the same 
method used by rdap-openid to map an RDAP session and tie it to an 
access token :-)

.it and .pl have been using this method since the beginning and the 
registrars, after being informed that they had to enable cookies in 
their HTTP clients, have no longer complained about cookie management.

In addition, the implementation of such a method doesn't  introduce any 
change to the EPP core spec. Indeed, it preserves EPP comands semantics 
and doesn't mix the application layer with the transport layer.

I would like to say that, regarding the clear distinction between those 
layers, this proposal is even better than RFC5734 as every EPP response 
is returned by the server as a consequence of receiving an EPP request.

On the contrary, in RFC5734, an EPP <greeting> is returned to the client 
after the TCP connection has been established so, at least in this case, 
the**two layers get mixed.

Which method other than session cookie shoud be used instead ?


*3)   Security Considerations*

Ulirch recommended to review the security considerations by inheriting 
those from TLS WG about which versions and ciphers of TLS to use.

Thanks a lot for the heads up, Ulrich. Surely, we'll do.


Gavin noted that, unlike EPP-over-TCP, this draft states that client IP 
address check is optional.

As a matter of fact, it is stated as recommended.

Anyway, the authors don't object to changing it into an absolute 
rquirement if the WG agrees.


*4)  Cookie vs. HTTP Connection*

One comment from James in the chat is about establishing the cookie at 
setup of the connection and not linking it to the EPP Login command.

James, can you further clarify why we should opt for establishing the 
cookie at setup of the connection and how shoudl it be possible? For 
example, what kind of request should be used to start the HTTP connection?

IMO, an HTTP session is something that is inherently unlinked to the 
HTTP connections.

HTTP connections can be broken but sessions don't get lost.

Programmatically, REST implementers are in charge of processing HTTP 
requests and building responses rather than managing HTTP connections, 
which is instead delegated to the application servers.

Finally, I would like to outline that Section 2.9.1 of RFC5730 states 
that an EPP session starts with a Login command and the mechanism 
described by RFC6265 lets (I'm quoting here) "the servers maintain a 
stateful session over the mostly stateless HTTP protocol". As a 
consequence, it seems much more practical to start the EPP/HTTP session 
as a result of a Login command.


*5) EPP/HTTP Sessions vs. HTTP3 Connections*

Ulrich remarked that, in HTTP3, it is possible to have multiple sessions 
on an HTTP connection.

This is valid also for the other HTTP versions.

In fact, an HTTP connection can be kept alive and, over it, a client 
could submit multiple login-commands-logout sequences.

This is quite usual for a smart client managing a pool of HTTP connections.

Instead, It is unlikely but not impossible to come across HTTP 
connections supporting multiple concurrent sessions.

What should be the possible drawbacks for a server in allowing the 
scenarios above?


*6) Client authentication in HTTP3*

Another note pointed out that HTTP3 client authentication requirements 
are different from this draft and they need to be reconciled.

Think that it could be sufficient to add to the security considerations 
some text similar to what is included in section 4.4 "Peer 
authentication" of RFC 9001 "Using TLS to secure QUIC":

    A client MUST authenticate the identity of the server.  This
    typically involves verification that the identity of the server is
    included in a certificate and that the certificate is issued by a
    trusted entity (see for example [RFC2818  <https://datatracker.ietf.org/doc/html/rfc2818>]).

The draft has only considered the optional use of a certificate on 
server side (not on client side). In doing that, the draft is consistent 
with another sentence in the same paragraph of RFC9001:

    A server MAY request that the client authenticate during the
    handshake.  A server MAY refuse a connection if the client is unable
    to authenticate when requested.


Would it address the feedback?



That's all for now.

Hope I did not miss anything.

Thanks a lot for your interest and feedback.

Looking forward to your further comments.

Best,

Mario


-- 
Dr. Mario Loffredo
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web:http://www.iit.cnr.it/mario.loffredo