Re: [netmod] Common etag, timestamp on all interfaces (draft-lindblad-netconf-transaction-id)

Kent Watsen <kent@watsen.net> Thu, 24 March 2022 23:24 UTC

Return-Path: <0100017fbe3ef0c1-de2d2f32-3f9a-44fc-a1f2-6ce1a246ab20-000000@amazonses.watsen.net>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5BF943A0E4E for <netmod@ietfa.amsl.com>; Thu, 24 Mar 2022 16:24:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=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
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
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 qpasz5DSvLjk for <netmod@ietfa.amsl.com>; Thu, 24 Mar 2022 16:24:32 -0700 (PDT)
Received: from a48-94.smtp-out.amazonses.com (a48-94.smtp-out.amazonses.com [54.240.48.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D696E3A0DDD for <netmod@ietf.org>; Thu, 24 Mar 2022 16:24:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1648164270; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:In-Reply-To:Cc:To:References:Feedback-ID; bh=bHaVU0JAXFU9rkYiTWHp3JjPhi1g7cNilyeRjdAvEQk=; b=M10YAzXTcKJI2mroaaYJsudkcrcWsDop8IQoPDDiCdmq1LKTdc5r+fdJP+zVH72+ bxauMu92hToacDIU4cKrPFBzmsiDdOUaSzsoRfCzYvN8kpjiRZKjgKUZA1j2das2TKw pg0JOVxZIY6h2sbVI+t244C4rPPKajUZCV6HvXC0=
From: Kent Watsen <kent@watsen.net>
Message-ID: <0100017fbe3ef0c1-de2d2f32-3f9a-44fc-a1f2-6ce1a246ab20-000000@email.amazonses.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_FBAF7DD7-9C6D-4AB5-BDA5-25965BE8E582"
Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.60.0.1.1\))
Date: Thu, 24 Mar 2022 23:24:30 +0000
In-Reply-To: <F9E14193-2EC9-41AE-8788-1EA115CC2F20@tail-f.com>
Cc: Andy Bierman <andy@yumaworks.com>, =?utf-8?Q?Bal=C3=A1zs_Lengyel?= <balazs.lengyel=40ericsson.com@dmarc.ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
To: Jan Lindblad <janl@tail-f.com>
References: <VI1PR0701MB2351D399AB78445A66E16DD1F0189@VI1PR0701MB2351.eurprd07.prod.outlook.com> <0100017fb906d433-172359f0-01a8-4a82-8e25-8079bdafef76-000000@email.amazonses.com> <VI1PR0701MB2351A58EB0EC5973DAD7454EF0189@VI1PR0701MB2351.eurprd07.prod.outlook.com> <CABCOCHSBHUy4gdQ9vnxMEKGkB4azv5Hjw0shiorVV2-WW_Unrw@mail.gmail.com> <F9E14193-2EC9-41AE-8788-1EA115CC2F20@tail-f.com>
X-Mailer: Apple Mail (2.3693.60.0.1.1)
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2022.03.24-54.240.48.94
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/bU1pb9bC_xuO7OgveNZSfSmaZ6A>
Subject: Re: [netmod] Common etag, timestamp on all interfaces (draft-lindblad-netconf-transaction-id)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Mar 2022 23:24:45 -0000

Hi Jan,

> On Mar 24, 2022, at 4:37 PM, Jan Lindblad <janl@tail-f.com> wrote:
> 
> f this isn't obvious, here's an example:
> 1. Client A sends an edit to the server If-Unmodified-Since t0. Successful. Receives a Last-Modified timestamp t1.
> 2. Client B sends a an edit to the server. Last-Modified timestamp on server is now t2.
> 3. Client A sends an edit to the server without If-Unmodified-Since. It just sets one tiny little leaf off in one corner. Successful. Received a Last-Modified timestamp t3.
> 4. Client A sends an edit to the server If-Unmodified-Since t3. Successful, but clobbers Client B's edit, leading to a misconfiguration, which opens a security hole.
> 
> This is because the If-Unmodified-Since uses less than or equal in its test. The ETag mechanism is not susceptible to this issue, as it uses an equality test.

I don't think this example is valid.   Skipping past the obvious programming error, the equivalency you're trying to make applies to Etags too.

1. Client A sends an edit to the server If-Match e0. Successful. Receives a ETag e1.
2. Client B sends a an edit to the server. ETag on server is now e2.
3. Client A sends an edit to the server without If-Match. It just sets one tiny little leaf off in one corner. Successful. Received a ETag e3.
4. Client A sends an edit to the server If-Match e3. Successful, but clobbers Client B's edit, leading to a misconfiguration, which opens a security hole.


Kent // contributor