[art] draft-ietf-satp-core-17 ietf last call Artart review

Henry Thompson via Datatracker <noreply@ietf.org> Wed, 21 October 2026 16:29 UTC

Received: by mx.ietf.org (Postfix) id 241B046; Wed, 21 Oct 2026 16:29:30 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ietf.org; s=mail; t=1792600170; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vO/GpBNUYUUCXJDqZp55Ojf8/7IgoxirS3J24Wj2HOk=; b=FQwlIPaNAWdRDLgnlRoSk7NQXE0Ki960MGbe+qOvS3kQavu7X+n4G9Oj8yGLSzyMKk68Dh 7UjhsCG3PC3FEWjICMiP66tfPHi/iO8CZSHg5GySiMMLf10qSeheVbC0nH36+oZulcerAt dcWtOhWv2YYQfUZAoaE5VuELCIgFU0k=
Authentication-Results: ORIGINATING; auth=pass smtp.auth=mail2@ietf.org smtp.mailfrom=noreply@ietf.org
Received: from [10.244.8.185] (gaia.k8s.ietf.org [4.156.85.76]) by mail2.ietf.org (Postfix) with ESMTP id E389013AE4D44; Wed, 21 Oct 2026 09:29:29 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Henry Thompson via Datatracker <noreply@ietf.org>
To: art@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 12.81.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <179260016980.576941.13074394683355811979@dt-datatracker-7457c9c988-j45f7>
Date: Wed, 21 Oct 2026 09:29:29 -0700
Message-ID-Hash: BJXLKCZQ476YCT64I2PEUC5IWBXLUIS2
X-Message-ID-Hash: BJXLKCZQ476YCT64I2PEUC5IWBXLUIS2
X-MailFrom: noreply@ietf.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-art.ietf.org-0; header-match-art.ietf.org-1; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-satp-core.all@ietf.org, last-call@ietf.org, sat@ietf.org
X-Mailman-Version: 3.3.10
Reply-To: Henry Thompson <ht@inf.ed.ac.uk>
Subject: [art] draft-ietf-satp-core-17 ietf last call Artart review
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/VEI0hadszlTZ8XFkxr9fePRc_zg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Owner: <mailto:art-owner@ietf.org>
List-Post: <mailto:art@ietf.org>
List-Subscribe: <mailto:art-join@ietf.org>
List-Unsubscribe: <mailto:art-leave@ietf.org>

Document: draft-ietf-satp-core
Title: Secure Asset Transfer Protocol (SATP) Core
Reviewer: Henry Thompson
Review result: Ready with Issues

https://datatracker.ietf.org/doc/draft-ietf-satp-core/
Document: https://www.ietf.org/archive/id/draft-ietf-satp-core-17.html
Title: Secure Asset Transfer Protocol (SATP) Core
Reviewer: Henry S. Thompson
Review Date: Wed Oct 21 17:12:16 2026

*Summary*

This draft is part of a package of at least three parts, including
also _Secure Asset Transfer (SAT) Interoperability Architecture_ and
_Secure Asset Transfer (SAT) Use Cases_.

Its aim is to present a concrete instantiation of the SAT
Interoperability Architecture in terms of a specific set of message
formats.  As far as I can tell as a non-specialist, it achieves that
goal.

But in my opinion it needs work on the presentation, particularly in
the area of consistency and transparency of terminology, both
internally and in relation to the terminology established by the SAT
Interoperability Architecture, which I take to be the senior party in
the trilogy.

All of my comments below under 'Minor points' bar the very first are
there, rather than under a more serious heading, only because this is
a matter of presentation, not substance, but I think it's important
that they be addressed.

*Minor points*

1.

  The restriction to just HTTPS with TLS1.3 is almost certainly not
  what you want.  The use of HTTP/2 or QUIC, which requires use of
  TLS1.3, should be allowed.

  In the Introduction, all that's needed is something along these lines:

     Secure transfer mechanisms such as HTTPS with TLS no less than 1.3
     must be used.

  5.3.9 and 5.4 can actually be simplified by switching to language
  which allows for successor messaging systems which offer the same or
  better security than HTTPS with TLS1.3.

  There might be an argument for a SHOULD support HTTPS with TLS 1.3,
  but only if there is a strong case for encouraging interop between
  different gateway implementations.

5.3

  The use of the word 'client' here and and client/server terminology
  in 5.4 is unnecessarily confusing with respect to the use of
  'client' as defined in section 3 and used in section 4 (the SATP
  model) and 5.3.8.  

  The fact that 'client' is used with two different meanings in the
  section headings of 5.3.8 and 5.3.10 illustrates this unnecessary
  confusion.

  ARCH uses 'client' only in the 'client application' sense, and
  'server' not at all, and it would be a good idea to stick with that.
  Following ARCH, Section 3 defines "sender gateway" and "recipient
  gateway" and I would very much encourage their use throughout, as
  already done in 5.3.2.

  For example, 5.3 para 1 could read

   SATP messages are exchanged between peer gateways, where depending
   on the message type one is the sender gateway and the other the
   recipient gateway.

  and in 5.3.9

   If the sender gateway transmits a list of supported credential
   schemes, the recipient gateway selects one acceptable credential
   scheme from the offered schemes.

  and in 5.3.10

    *5.3.10. Sender Gateway Offers Other Supported TLS Schemes*

    If a sender gateway wishes to use TLS schemes other than the basic
    scheme (AES-128 in GCM mode with SHA-256), then the gateway may
    may choose to send a JSON object listing the client's supported
    TLS schemes.

  Also, later on the terminology used changes from 'recipient gateway'
  to 'receiver gateway' -- this should be reverted throughout.

5.4.1

  See above.  Here's a simpler version of this whole section:

  5.4.1. Protocol requirements

  Gateways MUST use a secure protocol, HTTPS or successors, in this stage.

  Gateways MUST use the HTTPS POST method or equivalent idempotent
  [RFC 9110] method in this stage.

7.

  remove ' (client)' and ' (sender)'

8., 9., 10.

  remove and/or replace 'client', 'server' and 'receiver' so that all
  and only 'sender gateway' and 'recipient gateway' are used.

8.3. and others

  Starting here there are many sentences of the form

   "This message is sent from ... to the ... Endpoint at ... ."   

  The typography implies that these are formal properties of SATP, but
  as far as I can see there is no definition of 'endpoint' or how the
  many different ... Endpoints are to be identified between the two
  gateways.  Is this information meant to be included in the 'transfer
  context' as defined in 5.3.6?

8.4. and others

  8.3. and 8.4. define the *Transfer Proposal Message* and *Transfer
  Proposal Receipt Message*. There are a number of message pairs with
  similar pairs of names, with the second part being variously named
  ... Receipt Message or ... Response Message.

  Language along the lines of "The message is sent from the [recipient
  gateway] to the ... EndPoint at the [sender gateway]" appears in
  many if not all of them

  It's never made clear if this just e.g. requires *Transfer Proposal
  Receipt Message* as the form which the HTTPS response body should
  adopt when responding to an HTTPS POST request in the *Transfer
  Proposal Message* form or, as I read it at first, actually means a
  _separate_ HTTPS POST request in the *Transfer Proposal Receipt
  Message* format is sent from the recipient gateway.

  That is, are we being told about a single HTTPS exchange, or two?
  Or is the intent to allow for either?  I think either at the
  beginning of section 8, or somewhere earlier, perhaps section 6,
  this should be explained.  Indeed Figure 2 in section 6 might
  encourage one to think that the Transfer Proposal exchange requires
  one HTTPS exchange, whereas the Lock Assertion exchange involves
  two.

11.

  The discussion of time-outs and aborts leaves it unclear whether a
  gateway which times out waiting at some point in a session should
  send a session-abort-msg or not, but I would think it should.

  Note that the phrase "time-outs due to gateway crashes" doesn't make
  any sense: from the point-of-view of a gateway (G1) which times out
  waiting for a response, there is no way to detect the _reason_ for
  the timeout.  In case a timeout is _not_ because of a crash on the
  part of the other gateway (G2), surely notification that the session
  is being terminated by G1 should be sent, to enable an orderly
  close-down by G2, instead of it having to time-out itself.

*Nits*

3.

 Since you use them both, I suggest including the ARCH definitions of
'originator' and 'beneficiary' here.

5.3.15
  immobile => immobilize [twice]

  'uses Hashed Time-lock' => 'use Hashed Time-lock'

8.1., 8.2., 8.6., 9.1, 10., 11.3., 11.4.

  must => MUST [throughout]

8.4., 8.6. and 9 others

  The example JSON ends with a comma, which is strictly speaking not
  allowed, and may cause errors in some tools (e.g. jq).  It would be
  best to remove them.

11.3.

  The example JSON is missing a comma after
  "urn:ietf:params:satp:core:msgtype:transfer-proposal-msg"

11.3.

  errror => error

11.4.

  I think *Protocol Error Codes* would be better...

11.5.

  'maybe' => 'may be'

12.

  'such a' => 'such as'

15.1

 RFC 8446 is obsolete, should refer to 9846.