[rpp] Re: [regext] Re: draft-ietf-regext-epp-https-02 early Httpdir review

Mario Loffredo <mario.loffredo@iit.cnr.it> Tue, 17 March 2026 16:49 UTC

Return-Path: <mario.loffredo@iit.cnr.it>
X-Original-To: rpp@mail2.ietf.org
Delivered-To: rpp@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 0E9F8CC5C146; Tue, 17 Mar 2026 09:49:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=iit.cnr.it
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id olItmUeYMRQg; Tue, 17 Mar 2026 09:49:57 -0700 (PDT)
Received: from mx5.iit.cnr.it (mx5.iit.cnr.it [146.48.58.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id C1253CC5C138; Tue, 17 Mar 2026 09:49:56 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mx5.iit.cnr.it 3DDCDC35DB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iit.cnr.it; s=mx520231221; t=1773766195; bh=4FvcYLtzKbkwQLgVg+tqA5PVAvocc7y24ptYw0ZmQC0=; h=Date:Subject:To:References:From:In-Reply-To:From; b=R0R6a8a02ofgl59lHNWFKZdizaRHc+S9Orwm5FLKpWudQ+3EwIjZ02Bd0cGKju48w 9WgfAvu6KsAspR8JUXKiE6jzUjGoCW4j/z+t5w30WmYnasitnRh22eMbw5hVCntN4N JavelQ7IiaO+TWv0w7roNglbM5KHlKb98xEBNIXFrDUdGB4/roCcTXMIomadH2cPKF DJKd/hmp9f/VYPLFeccamSF/egJf9T8W8DwsN4i6khJSi+QtiLSzl+ecxD9OZEM0+s nTLvHiVLxFECzwyRTTrmKRADfr581+PmPba4TjK7cFMMAiAggGoZ85qiZpdu22MF9H Z1UnIfib9uCjw==
Received: from localhost (localhost [127.0.0.1]) by mx5.iit.cnr.it (Postfix) with ESMTP id 3DDCDC35DB; Tue, 17 Mar 2026 17:49:55 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mx5.iit.cnr.it
Received: from mx5.iit.cnr.it ([127.0.0.1]) by localhost (mx5.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10028) with ESMTP id dSu8nDfeO1IA; Tue, 17 Mar 2026 17:49:54 +0100 (CET)
X-Relay-Autenticated: yes
Content-Type: multipart/alternative; boundary="------------q2027vwOtfmqs1QyhSOnA4bY"
Message-ID: <55370503-7d3a-4daa-b7ad-7e3dd7c3fe1d@iit.cnr.it>
Date: Tue, 17 Mar 2026 17:49:46 +0100
Mime-Version: 1.0
Content-Language: it
To: Pawel Kowalik <kowalik=40denic.de@dmarc.ietf.org>, Maarten Wullink <maarten.wullink@sidn.nl>, "Gould, James" <jgould@verisign.com>, "regext@ietf.org" <regext@ietf.org>, "rpp@ietf.org" <rpp@ietf.org>
References: <E2053E51-392F-425C-BF02-ABF7367C3DB0@verisign.com> <AM8P194MB1577C38295E198CCD76261EBE641A@AM8P194MB1577.EURP194.PROD.OUTLOOK.COM> <ef6f02cf-6431-476f-9268-7786d411868c@iit.cnr.it> <7ce197f1-ff8f-41a8-a017-66b36a88a6b8@denic.de> <9c69a003-6ab9-410c-806e-5cbbdebe60d3@iit.cnr.it> <d238cd64-1a57-4c77-b7b5-d60f5aed4b23@denic.de>
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
In-Reply-To: <d238cd64-1a57-4c77-b7b5-d60f5aed4b23@denic.de>
Message-ID-Hash: 2YWZXAJCPALVJ3SBU5VLZYEKM7A6QGAD
X-Message-ID-Hash: 2YWZXAJCPALVJ3SBU5VLZYEKM7A6QGAD
X-MailFrom: mario.loffredo@iit.cnr.it
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [rpp] Re: [regext] Re: draft-ietf-regext-epp-https-02 early Httpdir review
List-Id: "This list discusses a provisioning protocol based on RESTful principles and corresponding data representations using JSON." <rpp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/rpp/_STRPFDBm1KEpmV5zJCNEw4TfVg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rpp>
List-Help: <mailto:rpp-request@ietf.org?subject=help>
List-Owner: <mailto:rpp-owner@ietf.org>
List-Post: <mailto:rpp@ietf.org>
List-Subscribe: <mailto:rpp-join@ietf.org>
List-Unsubscribe: <mailto:rpp-leave@ietf.org>

Hi Pawel,

again my comments inline.

Il 17/03/2026 16:10, Pawel Kowalik ha scritto:
>
> Hi Mario,
>
> On 17.03.26 15:20, Mario Loffredo wrote:
>>
>> Hi Pawel,
>>
>> see my comments inline.
>>
>> Il 17/03/2026 12:25, Pawel Kowalik ha scritto:
>>>
>>> Hi Mario,
>>>
>>> On 17.03.26 12:06, Mario Loffredo wrote:
>>>>
>>>> However, the risk of managing too many sessions or maintaining 
>>>> unused sessions is common to all mechanisms based on 
>>>> server-generated secrets to prevent clients from authenticating on 
>>>> every request. To be clear, EoH sessions = RPP JWTs.
>>>>
>>>> The mitigation measures are the same: limit the number of 
>>>> simultaneously active secrets and optimize secret lifetime.
>>>>
>>> This is only true if the tokens are persisted. This must be true for 
>>> opaque tokens, but is not true most of cases for rfc7523 JWT tokens. 
>>> These tokens are self-carrying and only resource which can be 
>>> exhausted is the token endpoint itself. A sane OAuth2 server will 
>>> rate limit token generation per client to prevent that.
>>>
>> [ML] It's true but with two drawbacks. A JWT once created remain 
>> valid until its expiration time, making them vulnerable to misuse if 
>> stolen, even after a user logs out. Security risks persist throughout 
>> their lifespan. Therefore, in order to mitigate these risks, it's 
>> crucial to finda good compromise between the lifetime of a JWT and a 
>> sustainable rate of requests.
>>
>> Briefly, JWT works well in distributed systems, but it introduces new 
>> risks compared to session-based models, especially around token 
>> leakage and revocation.
>>
>> Security concerns related to JWT are also mitigated by the nature of 
>> the REST service. This is why I'm in favor of using JWT in RDAP but I 
>> see more disadvantages in using them in a provisioning protocol.
>>
>> To be clear, I'm not saying JWTs shouldn't be used, but I'm showing 
>> the pros and cons of using them.
>>
>> The other disadvantage is the additional effort required for clients 
>> to manage tokens in general, compared to HTTP sessions. Clients must 
>> register with the authentication server, access the token endpoint, 
>> obtain the token, and store and refresh it unless they want to 
>> request a new one for each request.
>>
> [PK] My point was not about proving which one is better. Just the 
> statement was not correct about usage of JWTs, that's all. I agree 
> with all you say and the operator of RPP server would have to make 
> some choices and take trade-offs. I think only non-negotiable factor 
> written down in requirements is that RPP must remain stateless.

[ML] I agree with you. As I wrote, I have no prejudice against the use 
of JWTs and tokens in general. Like you, I supported the proposal to use 
them in RDAP authentication, and at .it, we currently use them for 
authentication to some REST services.

I try to objectively weigh the pros and cons of their use.

>> Managing an HTTP session is much less complex than managing a JWT.
>>
>>> For http sessions is different, as usually some server-side 
>>> resources are created to manage the session. There are solutions 
>>> that carry the same properties as JWT tokens, where cookies are 
>>> basically encrypted tokens with full state of the session (and 
>>> nothing on the server), but I don't know how applicable it is to 
>>> EoH. If the session state may change during the session, then strict 
>>> ordering of the requests is required to prevent stale session cookie 
>>> usage.
>>>
>> [ML] The information stored in the EPP session is basically that 
>> negotiated at the time of EPP Login and remains immutable for the 
>> duration of the session.
>>
>>     -  An <options> element that contains the following child elements:
>>
>>        -  A <version> element that contains the protocol version to be
>>           used for the command or ongoing server session.
>>
>>        -  A <lang> element that contains the text response language to be
>>           used for the command or ongoing server session commands.
>>
>>        The values of the <version> and <lang> elements MUST exactly match
>>        one of the values presented in the EPP greeting.
>>
>>     -  A <svcs> element that contains one or more <objURI> elements that
>>        contain namespace URIs representing the objects to be managed
>>        during the session.  The <svcs> element MAY contain an OPTIONAL
>>        <svcExtension> element that contains one or more <extURI> elements
>>        that identify object extensions to be used during the session.
>>
> [PK] ok, if this is all embedded in the cookie  (+ some client 
> identification) and the cookie does not change during the session then 
> server may not need to keep track of open sessions.
>
> But, same time would it be the client who assures order of request 
> processing? The "HTTP transport" cannot assure that any more, because 
> parallel requests with the same cookie will be still legit.
>
[ML] EoH draft specifies that the cookie contains the session 
Identifier, not the entire session.

Regarding the order, James, in reply to Maarten, has already proposed a 
solution to your question.

In any case, in normal operation, a client sends a new request after 
checking the response of the previous one, stating with the EPP Login 
and ending with the EPP Logout.


Best,

Mario

> Kind Regards,
> Pawel
>
-- 
Dott. Mario Loffredo
Senior Technologist
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
Address: Via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web:http://www.iit.cnr.it/mario.loffredo