peter van der Stok
2017-12-06 10:10:01 UTC
Hi all,
I have read this document and found it well structured and
comprehensible.
I do have some suggestions and questions. Apologies if the the subjects
below have already been discussed on the ML.
My interest in this document is quite recent.
Abstract:
The abstract is intended for naive readers like me; and some text can be
improved.
To my understanding this document specifies "the transport of secured
data with CoAP or HTTP".
There is no phrase in the abstract which covers this.
It might be helpful to state that the distribution and generation of
keys is out of scope.
IMO end-to-end encryption is a bit terse for naive people. A phrase
about proxies would be nice.
The last phrase "OSCORE may ... draft." can be removed. It is an aspect
treated later in the text, and now creates the impression to be the main
reason for this document.
1 Introduction;
The abstractions coap message layer and coap request/response layer are
used. The discussions about coap over tcp taught me that these
abstractions are very differently interpreted by different people. A
more concrete statement about coap payload and coap headers will be more
informative.
What is an "in-layer security protocol"? This statement generates more
questions than its absence will.
State that the "Oject-security option" is new and defined in this
document.
The text "OSCORE provides protection of message payload... Figure1" is
really difficult to understand. Problems for me are: Not knowing what a
message is, difference between OSCORE payload and coap payload, and
others. With little extra effort this can be described more concretely.
I suggest to just describe figure 1 which is clearer than the text.
3 Security Context.
The text restricts itself to AEAD algorithms. COSE allows many more. I
can imagine that in some installations, only one context per server is
needed. In that case, the Additional Data can be empty. Is it possible
to extend the choice of algorithms to all COSE (and future ones) and
point out that transmitting the context identifier necessitates an AEAD
algorithm?
The text suggests that the derivation of the keys is done independently
in client and server. Is it not possible to distribute derived keys with
other mechanisms? (oauth-authz is mentioned later).
In 3.2 the text says that input parameters may be pre-established.
Additional text pointing out the current possibilities and their
consequences would be welcome to me.
4 protected message fields.
Again, what is a (coap, Oscore) message?
Most of the text is about Inner and Outer message fields. IMO Figure 5
should be expressed in those two aspects.
Integrity protected coap options does not exist to-day, but its eventual
presence is treated as main focus. This is a bit confusing especially as
letter "I" could stand for Inner and Integrity.
I found the separation of inner and outer Max-age confusing: Is it not
better to add a new option: cache-age?
Also the outer block option is confusing. I understand the block option
to be an end-to-end option, and to be no concern of intermediate
routers, bridges or proxies. The block option should be used by client
and server with knowledge about transmitted packet (datagram) size. If
packet size data are wrong, other means of fragmentation are possible
and these are outside the coap end-to-end security scope.
8 OSCORE compression.
If I understand correctly, the compression removes CBOR tags which are
self-evident.
Could that motivation be added; Once I realized that aspect, the section
became much clearer.
Thanks for all your work; Hope this helps.
Nice document,
Peter
I have read this document and found it well structured and
comprehensible.
I do have some suggestions and questions. Apologies if the the subjects
below have already been discussed on the ML.
My interest in this document is quite recent.
Abstract:
The abstract is intended for naive readers like me; and some text can be
improved.
To my understanding this document specifies "the transport of secured
data with CoAP or HTTP".
There is no phrase in the abstract which covers this.
It might be helpful to state that the distribution and generation of
keys is out of scope.
IMO end-to-end encryption is a bit terse for naive people. A phrase
about proxies would be nice.
The last phrase "OSCORE may ... draft." can be removed. It is an aspect
treated later in the text, and now creates the impression to be the main
reason for this document.
1 Introduction;
The abstractions coap message layer and coap request/response layer are
used. The discussions about coap over tcp taught me that these
abstractions are very differently interpreted by different people. A
more concrete statement about coap payload and coap headers will be more
informative.
What is an "in-layer security protocol"? This statement generates more
questions than its absence will.
State that the "Oject-security option" is new and defined in this
document.
The text "OSCORE provides protection of message payload... Figure1" is
really difficult to understand. Problems for me are: Not knowing what a
message is, difference between OSCORE payload and coap payload, and
others. With little extra effort this can be described more concretely.
I suggest to just describe figure 1 which is clearer than the text.
3 Security Context.
The text restricts itself to AEAD algorithms. COSE allows many more. I
can imagine that in some installations, only one context per server is
needed. In that case, the Additional Data can be empty. Is it possible
to extend the choice of algorithms to all COSE (and future ones) and
point out that transmitting the context identifier necessitates an AEAD
algorithm?
The text suggests that the derivation of the keys is done independently
in client and server. Is it not possible to distribute derived keys with
other mechanisms? (oauth-authz is mentioned later).
In 3.2 the text says that input parameters may be pre-established.
Additional text pointing out the current possibilities and their
consequences would be welcome to me.
4 protected message fields.
Again, what is a (coap, Oscore) message?
Most of the text is about Inner and Outer message fields. IMO Figure 5
should be expressed in those two aspects.
Integrity protected coap options does not exist to-day, but its eventual
presence is treated as main focus. This is a bit confusing especially as
letter "I" could stand for Inner and Integrity.
I found the separation of inner and outer Max-age confusing: Is it not
better to add a new option: cache-age?
Also the outer block option is confusing. I understand the block option
to be an end-to-end option, and to be no concern of intermediate
routers, bridges or proxies. The block option should be used by client
and server with knowledge about transmitted packet (datagram) size. If
packet size data are wrong, other means of fragmentation are possible
and these are outside the coap end-to-end security scope.
8 OSCORE compression.
If I understand correctly, the compression removes CBOR tags which are
self-evident.
Could that motivation be added; Once I realized that aspect, the section
became much clearer.
Thanks for all your work; Hope this helps.
Nice document,
Peter
--
Peter van der Stok
vanderstok consultancy
mailto: ***@vanderstok.org
www: www.vanderstok.org
tel NL: +31(0)492474673 F: +33(0)966015248
Peter van der Stok
vanderstok consultancy
mailto: ***@vanderstok.org
www: www.vanderstok.org
tel NL: +31(0)492474673 F: +33(0)966015248