Note: I am writing this as a problem against only the join-proxy draft, but i
think
there may also be text affected in constrained-voucher. I just have not checked
specifically which text.
draft-ietf-anima-constrained-join-proxy:
1. GRASP discovery
514 6.1.2. GRASP discovery
516 This section is normative for uses with an ANIMA ACP. In the context
^ ... according
to RFC8994
517 of autonomic networks, the Join Proxy uses the DULL GRASP M_FLOOD
518 mechanism to announce itself. Section 4.1.1 of [RFC8995] discusses
519 this in more detail. The Registrar announces itself using ACP
520 instance of GRASP using M_FLOOD messages. Autonomic Network Join
521 Proxies MUST support GRASP discovery of Registrar as described in
522 section 4.3 of [RFC8995].
This is insufficient. Section 4.3 only describes the GRASP objective for
EST-TLS, which uses the objective-value "EST-TLS". For the constrained join
proxy,
you need to specify the objective to use a new appropriate objective. For
example, you could specify to continue to use AN_join_registrar, but use an
objective-value of "EST-COAPS". That would IMHO be in the spirit of how we
defined the RFC8995 GRASP objective. And astoundingly (;-)) it wouldn't require
a new IANA registration (i think, Brian ?).
Likewise, draft-ietf-anima-constrained-join-proxy needs to specify the Objective
for Pledges to use for sectin 6.2.2. Section 4.1.1 of RFC8995 specifies
astoundingly an empty
objective-value instead of the logical "EST-TLS". I think this may be the same
type of oversight as discussed below. I would suggest to also use "EST-COAPS".
Note that it is not sufficient to delta RFC8995 and mention "EST-COAPS", because
the GRASP objective also needs to indicate UDP instead of TCP. Even though it
is longer, it would IMHO be prudent to copy the whole GRASP objectives and
examples from RFC8995 and accordingly modify them, so that the constrained-proxy
draft is "standalone" in this respect (even if a page longer).
(but before finishing, see below for point 4.)
2. Other (primarily CoAP) discoveries
Isn't there the thought that some other variations of BRSKI will use protocol
variations, such as not CBOR+JSON ? some other "CMP" encoding ?
I am asking, because it seems to me we need to be aware, that the
constrained-proxy
is logically "just" a DTLS proxy, but once we have more than one DTLS BRSKI
variation, we still need to be able for pledges to connect to registrar(s) that
talk the BRSKI variation that the pledge supports. What we define here initially
is effectively proxy/registrar for EST-COAPS. So let's assume, we get another
protocol, OTHER1-DTLS. The constrained proxy continues to work, but it would now
need to discover the OTHER1-DTLS Registrar, allocate a new UDP port number on
which to offer proxy services for OTHER1-DTLS and announce that to pledges.
I fail to find appropriate text to that (extensibility) extend in the draft.
I wonder if the names choosen for est-coaps discovery, brski.jp and brski.rjp
are
ideal indicative of the fact that we're rather defining brski-est-coaps.jp and
brski-est-coaps.rjp. I guess beauty/explicitness may need to take second place
over encoding efficiency, but lets make sure that the draft text as well as
the registration texts with IANA are as explicit as we can make them.
3. 6tisch discovery
[I-D.ietf-6tisch-enrollment-enhanced-beacon] is now RFC9032, please update draft
accordingly.
Upon quick browse of RFC9032 i fail to see how/where RFC9032 would be able to
deal with more than one discovery protocol. E.g.: How would we discover
BRSKI-EST-COAPS-REGISTRAR
BRSKI-EST-COAPS-PROXY
OTHER1-DTLS-REGISTRAR
OTHER1-DTLS-PROXY
?
4. Stateful vs. stateless proxy discovery
How do i know as a customer of equipment know that all my
pledges/proxies/registrars
will interoperate in the face of those devices seemingly being able to freely
pick stateful and/or stateless mode of operations ?
Given how none of the discovery methods so far includes a specification of the
supported mode(s) of a proxy/registrar, i guess we will end up with only very
limited solutions where even two vendors can pick different preferences (ony
stateful, thre other stateless), and we end up with non-interoperable-by-vendor
networks ?
First of all, whatever the desire of the authors is, it should be written more
explicitly in the document. "Interoperability considerations" or the like.
Secondly, i would very much like to see discovery methods to indicate whether
stateful and/or stateless are supported.
For example, with GRASP, it would of course be easy to indicate:
EST-COAPS-STATEFUL
EST-COAPS-STATELESS
This would require two separate GRASP objectives if a Registrar/Proxy supports
both,
but would be the most easy solution.
Similarily, i guess we could have equal variations of the names for other
discovery
mechanisms.
Cheers
Toerless
_______________________________________________
Anima mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/anima