Re: [Ecrit] planned-changes: two questions
"Caron, Guy" <g.caron@bell.ca> Thu, 09 September 2021 13:51 UTC
Return-Path: <prvs=87937d530=g.caron@bell.ca>
X-Original-To: ecrit@ietfa.amsl.com
Delivered-To: ecrit@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 745553A12AD
for <ecrit@ietfa.amsl.com>; Thu, 9 Sep 2021 06:51:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
header.d=bell.ca
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 xriZmQQSmaOX for <ecrit@ietfa.amsl.com>;
Thu, 9 Sep 2021 06:51:38 -0700 (PDT)
Received: from ESA3-Dor.bell.ca (esa3-dor.bell.ca [204.101.223.60])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 951533A12CA
for <ecrit@ietf.org>; Thu, 9 Sep 2021 06:51:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=bell.ca; i=@bell.ca; q=dns/txt; s=ESAcorp;
t=1631195494; x=1662731494;
h=from:to:cc:date:message-id:references:in-reply-to:
mime-version:subject;
bh=Nu10jRHxTiOU+U2n8m+ZtkZpI4hdO7xtfZxiTFMBln8=;
b=Qgk+/CbgrQeYTMKt7ZFM/SfwIQ22Xvxo1/4lQ52PBuPlBpXHL20zOI+3
q8bAIbD09Ibn/4QPcIUxO47SOkcBTge7LRPEA0kUMLPLKJ1xJ0DtVe/jF
jEsv/Sns6RNlRD2nT1jz8/Si3sJgcX76B6X5lwnkvjOW6IJ7s+4R4+NJm
rd+Ws+MJpot4TfUQCrtkVPeO30814DtQ8expq1l8145P8PP9MAtiguQvO
xBCqVLx/Mu7dKmCneC8uddGWphCo2TAKtYoPF5VYNeX5ThJGN5M6amDks
q+raxU23e9O8720hnFkyWP8EK9VMWQLX10nfpknQhJw6UncrBv1J2yxlv A==;
IronPort-SDR: 3ptffpiCSSJIpdNw/Xrr/fYFOqp7BuYCGaHlnX/vl+FofIhQ0zzP4BDWsIdukIHx3imymhjiUo
ZeVd+Ldy8qvg==
Received: from dc5cmz-d00.bellca.int.bell.ca (HELO
DG1MBX01-WYN.bell.corp.bce.ca) ([198.235.121.231])
by esa03corp-dor.bell.corp.bce.ca with ESMTP; 09 Sep 2021 09:51:33 -0400
Received: from DG12MBX01-WYN.bell.corp.bce.ca (142.182.18.46) by
DG1MBX01-WYN.bell.corp.bce.ca (142.182.18.11) with Microsoft SMTP Server
(TLS) id 15.0.1497.18; Thu, 9 Sep 2021 09:51:32 -0400
Received: from DG12MBX01-WYN.bell.corp.bce.ca (142.182.18.46) by
DG12MBX01-WYN.bell.corp.bce.ca (142.182.18.46) with Microsoft SMTP Server
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
15.1.2242.10; Thu, 9 Sep 2021 09:51:32 -0400
Received: from DG12MBX01-WYN.bell.corp.bce.ca ([fe80::e0dd:6ba7:3471:98e7]) by
DG12MBX01-WYN.bell.corp.bce.ca ([fe80::e0dd:6ba7:3471:98e7%4]) with
mapi id 15.01.2242.010; Thu, 9 Sep 2021 09:51:32 -0400
From: "Caron, Guy" <g.caron@bell.ca>
To: Brian Rosen <br@brianrosen.net>, Randall Gellens
<rg+ietf@randy.pensive.org>
CC: ECRIT <ecrit@ietf.org>
Thread-Topic: [EXT]Re: [Ecrit] planned-changes: two questions
Thread-Index: AQHXnbLZ8xDlKKXTXU23cWH8anqQbauNeTZQgABQ14D//8deMIAAkTMAgAACPYCAAAUMgIABYHGAgACMI4CAAJxKYIAA2BsAgAEPeICACBZaL4AARk4AgAAGeoCAAB1/gIAAq7KQ
Date: Thu, 9 Sep 2021 13:51:32 +0000
Message-ID: <4aa79e0c61394f588c61badeb779de16@bell.ca>
References: <A0FC259C-DF34-4496-9013-422006278DA6@randy.pensive.org>
<FB2A33E8-E146-404B-B150-1496C40510EF@brianrosen.net>
<5577e2e6daa4405bbe12ef61675e1f55@bell.ca>
<DE195D79-5A01-48EE-95CA-6C4B82E0886D@brianrosen.net>
<e6e17f501711441188119cdfbe384d3d@bell.ca>
<3AD58DEC-1DC9-4BC0-B55C-4E782E4AAA74@brianrosen.net>
<E20342E7-2EFB-4479-96C2-85B4B7E16989@randy.pensive.org>
<A7D59E8E-A014-4CC8-A0FF-5F58E81C6D4A@brianrosen.net>
<2b4abbef37be4131a87471af75b6e7da@bell.ca>
<CF2E8EDC-B38D-4742-B317-F3CE3E831578@brianrosen.net>
<f82108f590674341a22da9c2e4c649e0@bell.ca>
<7C4F6B87-C480-4963-B582-7639A9A1B029@brianrosen.net>
<89a34416a9224a3bbccb520408283373@bell.ca>
<D3AA7F51-01F4-4ED6-BFC3-2B3BF5AB1536@brianrosen.net>
<DA890A1B-E22F-4EBB-B312-53A6C5BCD7B9@randy.pensive.org>
<3441984B-D273-48FC-BCF1-AACB4AFCA2BF@brianrosen.net>
<E31A5619-0FC6-45FD-8541-644C269AE5EC@randy.pensive.org>
<83D1AC98-BE13-4BB7-AAC0-D9D60719D0F6@brianrosen.net>
In-Reply-To: <83D1AC98-BE13-4BB7-AAC0-D9D60719D0F6@brianrosen.net>
Accept-Language: fr-CA, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [172.28.239.64]
Content-Type: multipart/alternative;
boundary="_000_4aa79e0c61394f588c61badeb779de16bellca_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/ecrit/LbuaNSKPk6s1SSCCT7U2f7dN-lw>
Subject: Re: [Ecrit] planned-changes: two questions
X-BeenThere: ecrit@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Emergency Context Resolution with Internet Technologies
<ecrit.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ecrit>,
<mailto:ecrit-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ecrit/>
List-Post: <mailto:ecrit@ietf.org>
List-Help: <mailto:ecrit-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ecrit>,
<mailto:ecrit-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 13:51:52 -0000
I’m aligned with Brian on the proposal to embed a reverse HTTP transaction within an existing one. I think this is asking for trouble. Guy De : Brian Rosen <br@brianrosen.net> Envoyé : 8 septembre 2021 19:32 À : Randall Gellens <rg+ietf@randy.pensive.org> Cc : Caron, Guy <g.caron@bell.ca>ca>; ECRIT <ecrit@ietf.org> Objet : [EXT]Re: [Ecrit] planned-changes: two questions Inline. I think we need other opinions. Certainly, we don’t have rough consensus. On Sep 8, 2021, at 5:45 PM, Randall Gellens <rg+ietf@randy.pensive.org<mailto:rg+ietf@randy.pensive.org>> wrote: Why is a subsequent transaction better than a parallel one? The subsequent transaction model delays knowledge of the state. If the client doesn't see an immediate POST, it doesn't know if there's been an error or not. Yes it does. If it doesn’t see an immediate POST, then there was a problem and it has to try again. If the client sees a POST and sends an ID, it doesn't know if the server received it and stored the URI. Technically true, but vanishingly small issue. You had a complete HTTPS transaction, but somehow the client isn’t sure the server got the ID. If the server tries a POST but gets an error, it may retry but meanwhile the client may retry the query, since it didn't get a POST. That's always going to be something the server has to deal with: re-enrollment of the URI. The client gets a normal response, and that tells it the URI was accepted. Should a client retain IDs if it hasn't seen a POST? No, lack of POST means URI is not enrolled Also, requiring that the client send an ID seems like it may constrain client architectures since any part of the client system that receives a POST must know which IDs are pending. I don’t agree. This is a pretty normal “I send you a magic number and you have to return it to me” thing. There are no “pending IDs”. This is the first ID, so you need to return it, and only it, but it’s the only ID the client has at this point. What is the objection to a parallel POST? I was taught that you don’t embed an HTTP transaction in another with the same partner because things go wrong with timeouts and logic. It’s not a parallel POST, it’s an HTTPS transaction one way that encloses another HTTPS transaction the other way. You are dependent on the inner one completing before the outer one times out or has some other issue. I just think that’s dangerous. I will admit that I was taught this quite a long time ago (before HTTPS for sure) and things could have changed, but I can’t recall an API that does that. Also note that keep alive works exactly the same way as the initial POST. In your proposal, those are different. That’s not much, but it’s some code. The “test” transaction tells you that the mechanism works and your URI is being retained, whether that happens the first time, or a year later. --Randall On 8 Sep 2021, at 14:22, Brian Rosen wrote: I don’t think there is any fragility in the URI setup. For a new URI, the client requests the server to keep it in a findService. That transaction concludes by sending an ID. The server immediately sends the test notification, to which the client responds with the ID. At that point both sides know the URI was accepted and the client is valid. That may be repeated periodically so both sides know the other is happy with the arrangements. If the client doesn’t get the test notification, it knows the URI isn’t accepted. If the server doesn’t see the ID, it’s knows that was a bogus request, or there is some other problem, and it shouldn’t save the URI. I proposed a null ID as the test transaction flag. That would be a piece of XML with the right namespace, the right element name, but no value. I think that is adequate and meets Guy’s minimal mechanism criteria. The same XML is always sent. It either has a set of IDs or it’s empty. Brian On Sep 8, 2021, at 5:11 PM, Randall Gellens <rg+ietf@randy.pensive.org<mailto:rg+ietf@randy.pensive.org>> wrote: The proposed mechanism seems fragile. A client has no way to know if its request to store a URI was accepted. That makes it hard to debug. If there are errors of any kind when the server initially verifies a URI, the client has no idea. Even if the client repeats the transaction, the server will silently discard the URI. To me, that's asking for problems. In my proposal, when the client requests to be notified and provides a URI, the server immediately does a parallel POST to that URI. If it gets a 202 Accepted response to the POST (or we can choose a different value), it stores the URI and returns the query result. If it gets a different response, it does not store the URI and returns the query result with a uriNotStored warning. If a client is trying to get the server to launch an attack on a third party entity, that entity will likely not support the URI in the first place, or will likely return an error response. If you want additional verification, have the server include the queried location in its test POST. That way, if the client maliciously sent a URI of a third party LIS, that LIS will know it does not have a query with that location outstanding. Doing a parallel POST from the server to the client is one small transaction; this mechanism provides immediate feedback to both client and server. If there are DNS failures or network congestion or whatever, the server returns uriNotStored and the client can try again later. As for multiple IDs in a single notification POST, having the client specify in the initial request the maximum it is prepared to accept seems reasonable. We can require that clients support a minimum number. If a server has more than the maximum, it sends them in multiple POSTs, with whatever separation in time it chooses. A server can include fewer IDs in a POST than the client's maximum. We can have a 'test' notification value that is used both for the initial verification test and for periodic keep-alive tests. --Randall On 8 Sep 2021, at 12:17, Brian Rosen wrote: Okay, I think the three of us are converging, Here is a restatement of your description: 1) In a validation query, a Client can request to be notified when the proffered LI should be revalidated, and provides a URI to send the notifications to; 2) In the validation response, the Server provides an ID that the Client associates with the LI it just validated. The server may silently ignore repeated requests to store a URI where the test in 4 below fails. 3) Immediately thereafter, if the URI is new to the Server, the Server sends a ‘test’ notification to the URI, with an empty ID. 4) The recipient at the URI is expected to respond with the ID provided in step 2. If it does, the Server stores the URI for future notifications. If it does not, the server ignores the request to store the URI. 5) Some time after, the Server notifies the Client of an upcoming planned change by sending a notification to the successfully tested URI with the location ID; 6) The client revalidates each LI in its database that matches the ID as of the date of the planned change. If no ID matches, it is a no-op at the Client. Revalidations may also result in no-op at the Client. 7) LIs at the Client that are invalidated by the planned change are modified in its database to be valid (which probably mean another revalidation cycle) with an effective date set to <revalidateAsoF> value. 8) The Server may send ’test’ notifications to the URI without any ID as a form of “keep-alive”. Any ID provided by the Server to the client may be used as the response to the test transaction There has been a discussion of sending more than one ID in a transaction. I think that is a decent idea, but I worry about how big that could be. Either we put a hard limit in the text or have something in the response to the test transaction that specifies a size limit for that client. Brian On Sep 7, 2021, at 8:31 PM, Caron, Guy <g.caron@bell.ca<mailto:g.caron@bell.ca>> wrote: 1) In a validation query, a Client can request to be notified when the proffered LI should be revalidated, and provides a URI to send the notifications to; 2) In the validation response, the Server provides an ID that the Client associates with the LI it just validated; 3) Immediately thereafter, the Server sends a ‘test’ notification to the URI, without any ID;\ [br[For every new ID? Or just once? I wanted this to be a one time registration. [GC] Just once per offered URI. 4) The recipient at the URI is expected to respond with the ID provided in step 2. If it does, the Server stores the URI for future notifications. If it does not, the Server [let’s pick one: reject silently the URI and block the Client permanently/provides a ‘uriNotStored’ warning response to the URI {not compatible with the current proposal to test outside of LoST}/reject silently the URI and block the Client temporarily/other?]; [br]I don’t think an explicit failure is a problem. The LoST server can limit retries if it needs to. [GC] Ok for HTTP failures but what I’m talking about is when it fails to return the ID, like in your DoS example. 5) Some time after, the Server notifies the Client of an upcoming planned change by sending a notification to the successfully tested URI with the location ID; 6) The client revalidates each LI in its database that matches the ID as of the date of the planned change. If no ID matches, it is a no-op at the Client. Revalidations may also result in no-op at the Client. 7) LIs at the Client that are invalidated by the planned change are modified in its database to be valid (which probably mean another revalidation cycle) with an effective date set to <revalidateAsoF> value. [br]I wanted periodic keep alives. How would that work? [GC] You mean at step 3? As I mentioned below, I was wondering about the necessity for periodic tests. If the group is convinced it is needed, the Server can simply redo step 3 and the Client can respond with one or many IDs it has from that Server. ________________________________ External Email: Please use caution when opening links and attachments / Courriel externe: Soyez prudent avec les liens et documents joints
- [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- [Ecrit] PLEASE READ: We need people to comment on… Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- [Ecrit] Fwd: PLEASE READ: We need people to comme… James Kinney
- Re: [Ecrit] planned-changes: two questions Jeff Martin
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Brandon Abley
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Dan Banks
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Jeff Martin
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Caron, Guy
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen
- Re: [Ecrit] planned-changes: two questions Randall Gellens
- Re: [Ecrit] planned-changes: two questions Brian Rosen