annotate satp-core-review.txt @ 21:28fb3e434f00

more
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Wed, 21 Oct 2026 13:35:04 +0100
parents 7cf0c76e9749
children f2743a0a4eb7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
1 https://datatracker.ietf.org/doc/draft-ietf-satp-core/
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
2 Document: https://www.ietf.org/archive/id/draft-ietf-satp-core-17.html
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
3 Title: Secure Asset Transfer Protocol (SATP) Core
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
4 Reviewer: Henry S. Thompson
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
5 Review Date: Mon Oct 19 13:48:49 2026
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
6
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
7 *Summary*
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
8
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
9 As far as I can tell as a non-specialist, the ... is in good shape.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
10 There are ... below.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
11
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
12 This draft is part of a package of at least three parts, including
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
13 also _Secure Asset Transfer (SAT) Interoperability Architecture_ and
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
14 _Secure Asset Transfer (SAT) Use Cases_.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
15
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
16 *Minor points*
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
17
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
18 1.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
19
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
20 The restriction to just HTTPS with TLS1.3 is almost certainly not
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
21 what you want. The use of HTTP/2 or QUIC, which requires use of
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
22 TLS1.3, should be allowed.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
23
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
24 In the Introduction, all that's needed is something along these lines:
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
25
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
26 Secure transfer mechanisms such as HTTPS with TLS no less than 1.3
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
27 must be used.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
28
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
29 5.3.9 and 5.4 can actually be simplified by switching to language
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
30 which allows for successor messaging systems which offer the same or
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
31 better security than HTTPS with TLS1.3.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
32
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
33 There might be an argument for a SHOULD support HTTPS with TLS 1.3,
20
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
34 but only if there is a strong case for encouraging interop between
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
35 different gateway implementations.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
36
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
37 5.3
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
38
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
39 The use of the word 'client' here and and client/server terminology
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
40 in 5.4 is unnecessarily confusing with respect to the use of
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
41 'client' as defined in section 3 and used in section 4 (the SATP
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
42 model) and 5.3.8.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
43
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
44 The fact that 'client' is used with two different meanings in the
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
45 section headings of 5.3.8 and 5.3.10 illustrates this unnecessary
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
46 confusion.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
47
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
48 ARCH uses 'client' only in the 'client application' sense, and
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
49 'server' not at all, and it would be a good idea to stick with that.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
50 Following ARCH, Section 3 defines "sender gateway" and "recipient
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
51 gateway" and I would very much encourage their use throughout, as
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
52 already done in 5.3.2.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
53
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
54 For example, 5.3 para 1 could read
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
55
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
56 SATP messages are exchanged between peer gateways, where depending
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
57 on the message type one is the sender gateway and the other the
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
58 recipient gateway.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
59
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
60 and in 5.3.9
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
61
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
62 If the sender gateway transmits a list of supported credential
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
63 schemes, the recipient gateway selects one acceptable credential
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
64 scheme from the offered schemes.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
65
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
66 and in 5.3.10
19
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
67
20
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
68 *5.3.10. Sender Gateway Offers Other Supported TLS Schemes*
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
69
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
70 If a sender gateway wishes to use TLS schemes other than the basic
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
71 scheme (AES-128 in GCM mode with SHA-256), then the gateway may
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
72 may choose to send a JSON object listing the client's supported
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
73 TLS schemes.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
74
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
75 Also, later on the terminology used changes from 'recipient gateway'
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
76 to 'receiver gateway' -- this should be reverted throughout.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
77
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
78 I've listed all this as 'minor' only because it is a matter of
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
79 terminology, but I think it's important to fix it.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
80
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
81 5.4.1
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
82
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
83 See above. Here's a simpler version of this whole section:
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
84
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
85 5.4.1. Protocol requirements
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
86
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
87 Gateways MUST use a secure protocol, HTTPS or successors, in this stage.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
88
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
89 Gateways MUST use the HTTPS POST method or equivalent idempotent
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
90 [RFC 9110] method in this stage.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
91
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
92 7.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
93
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
94 remove ' (client)' and ' (sender)'
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
95
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
96 8., 9., 10.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
97
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
98 remove and/or replace 'client', 'server' and 'receiver' so that all
21
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
99 and only 'sender gateway' and 'recipient gateway' are used.
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
100
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
101 8.3. and others
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
102
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
103 Starting here there are many sentences of the form
20
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
104
21
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
105 "This message is sent from ... to the ... Endpoint at ... ."
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
106
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
107 The typography implies that these are formal properties of SATP, but
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
108 as far as I can see there is no definition of 'endpoint' or how the
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
109 many different ... Endpoints are to be identified between the two
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
110 gateways. Is this information meant to be included in the 'transfer
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
111 context' as defined in 5.3.6?
19
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
112
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
113 *Nits*
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
114
20
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
115 3.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
116
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
117 Since you use them both, I suggest including the ARCH definitions of
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
118 'originator' and 'beneficiary' here.
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
119
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
120 5.3.15
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
121 'immobile' => 'immobilize' [twice]
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
122
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
123 'uses Hashed Time-lock' => 'use Hashed Time-lock'
7cf0c76e9749 hacking away
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 19
diff changeset
124
21
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
125 8.1., 8.2., 8.6., 9.1, 10., 11.3., 11.4.
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
126
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
127 must => MUST [throughout]
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
128
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
129 8.4., 8.6. and 9 others
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
130
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
131 The example JSON ends with a comma, which is strictly speaking not
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
132 allowed, and may cause errors in some tools (e.g. jq). It would be
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
133 best to remove them.
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
134
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
135 11.3.
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
136
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
137 The example JSON is missing a comma after
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
138 "urn:ietf:params:satp:core:msgtype:transfer-proposal-msg"
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
139
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
140 12.
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
141
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
142 'such a' => 'such as'
Henry S. Thompson <ht@inf.ed.ac.uk>
parents: 20
diff changeset
143
19
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
144 15.1
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
145
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
146 RFC 8446 is obsolete, should refer to 9846.
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
147
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
148
7f1bd15f2d23 getting started
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff changeset
149