Hi

I was asked to do a review of the draft-ietf-anima-brski-discovery feedback, so 
here it comes. The document is quite lengthy, so is this review, sorry for this.

The reviewed ID was: draft-ietf-anima-brski-discovery-05.

The review below consists of two parts: general comments and editing remarks on 
a per-section basis in the detailed comments.

If you have any questions, I remain at your full disposal for further 
discussions.


Best
artur

<review>


  1.  GENERAL COMMENTS

The document is a bit too long and, in my opinion, goes in too many 
side-discussions, not necessarily of primary importance for this specification. 
The beginning of the document (maybe the entire intro) could be rewritten to 
better clarify what this document intends to specify, before discussing why 
it's complicated and all the constraints. The essence of this document are the 
IANA tables in Section 4 - it should be probably shortened to reflect this. All 
other considerations could go into separate "best practice" like drafts. 
Notably:


  *   Clarify early that this document is not proposing any discovery method 
per se.
  *   Give examples of discovery methods, which you believe are suitable for 
what is proposed in this document. Personally, I believe giving some concrete 
examples early in the text and clarifying what you want to specify would make 
the text easier to read.
     *   Can it not be a DHCP option, in particular for IP/IPv6 based setups?
  *   Introduction is probably too long. The given argumentation is hard to 
understand before the explanations would come. Proxies appear too early in the 
text: the document proposes a discovery method for BRSKI, the intro starts 
discussing all kinds of issues with proxies. Why?
  *   The definition of context (or variation context) and the use of it in the 
document is overloaded:
     *   Context or variation context, please use one of the two
     *   "BRSKI" is both context name and the whole protocol family name
  *   Clarify reasons for calling it "responder socket" as opposed to using 
URI/URL and the formats herein
  *   Please provide a rationale for choosing some non-standard encoding as 
suggested in this text over e.g. JSON.
     *   Would seem to lack the type-value pair notion, this opens a debate 
updateability vs. parsing complexity?

  *   To be potentially discussed in the security considerations:
     *   If variants allow for less secure methods, this is a potential 
vulnerability (security downgrade attacks, problematic in particular with 
proxies)
     *   For this document to improve chances of picking non-malicious 
announcements (s. 3.2.4), it should prioritize the "highest security" 
responders, which so far it does not. Otherwise it should prescribe a 
sufficiently secure option as default and discuss required validations along 
this default mechanism. Specifically in 3.2.4, I am not sure this is useful: 
high weights in service announcements are probably as easy to forge, as service 
announcements per se.
  *   Potentially, a "network name" is missing: it would seem that pledge does 
not care what it connects to. It just tries to discover *some*, *any* 
registrar. Is it always the case? Shouldn't the discovery hint on a name?
     *   Consider the following use case: physical infrastructure with a dozen 
of "virtual networks" that I can pledge to, once I have established a physical 
link. The discovery would yield say 20 answers. Yet, with high probability I am 
only interested in the 2 redundant proposals (responders, variants) coming from 
the actual virtual network that I want to and can connect to. Where is that? 
How would it be implemented?
  *   Detailed considerations for proxies (stateless/stateful, selection, 
resilience, etc): not sure that these considerations belong into the discovery 
specification like this text.
     *   Many of these things may not be of primary importance for the 
discovery itself, as the discovery does not have to use any proxy whatsoever.
     *   The opposite also holds: proxies might be useful without any discovery.
     *   The document becomes too heavy and would be difficult to maintain if 
we combine both in one.
     *   Suggestion: probably, a separate draft, can be considered for these 
detailed proxy considerations.
        *   The current text on proxy considerations per se seems valuable e.g. 
for developers, however, it has little to do with the actual discovery 
specification of that document.
        *   This separate draft could summarize best practices for proxies, 
i.e., imaginable/common proxy modes, proxy deployment thoughts, proxy vs. 
discovery coexistence, recommended proxy behaviour (selection of endpoints, 
connection dispatch, etc.) Most of these things do not look like a 
specification, but rather as a BP to me.
     *   Hence: I suggest that these be extracted, put in a different document 
and simply referenced in that one.
        *   Only discovery-specific thoughts with regard to proxies (e.g. 
transparent support of new variations, or "arbitrary variation support") could 
potentially stay, in particular if the discussion explains the design choices 
of the variations, contexts, defaults, etc. made in this document through the 
argument of making proxy support simpler. If they rather explain how this 
arbitrary variation support can be best implemented in a proxy, it should be 
moved to the other document. Note that the selection as such is not 
discovery-specific, as a typical proxy could have a preconfigured list of known 
registrars as well, as part of its configuration. How to best map N clients to 
available K servers within a proxy is a fundamental proxy/gateway problem, 
independent of discovery.
  *   Not sure why the discussion on construction of IDevID and the 
verification thereof (3.4.2ff, in particular 3.4.3) should be in this document.
     *   Same argument as for the whole proxy discussion, the point being: 
whether there is discovery, or whether the pledges and registrars are 
respectively preconfigured, the identification string construction and its 
respective matching remain exact the same. It's not because of the discovery 
that these complexities arise.
  *   Not sure why the discussion on host names in 3.5 is absolutely required. 
Isn't it a matter for DNS-SD anyhow, regardless whether it's BRSKI or not?
     *   Granted, some of the discussed facts are BRSKI-specific. Can we not at 
least shorten the text by simply stating these facts? It would streamline the 
text. Something like: "BRSI registrars do not need host names". Etc. But the 
overall discussion seems a bit off for that draft.
  *   Current security considerations seem to be rather related to DNS-SD and 
less specific to the actual specification in this draft. DNS-SD related 
security vulnerabilities do not need to be rediscussed in this draft. 
Potentially better security considerations are suggested above.



  1.  DETAILED COMMENTS

(per section, with section numbers from the draft. s/x/y = substitute x by y)


1. Overview



-   s/new use-case preferences may prefer/new use-case preferences may result in

-   s/with interoperability, that the mechanisms defined in this document 
intent to help sove/with interoperability, which the mechanisms defined in this 
document intend to help solve





2.1.1



-   s/When an initiator such as a BRSKI proxy or BRSKI pledge uses a

   mechanism such as Section 1 to discover an instance of a role it

   intends to connect to, such as a registrar, it may discover more than

   one such instance./""

o   Note: the phrase is present two times, albeit in slightly different forms.

-   s/FOr example/For example

-   Note: "Different BRSKI deployments may prefer different discovery

   mechanisms, such as Section 1, Section 1, Section 1 or others" (check 
Sections).

-   s/This make it/This makes it



3.1



-   s/supporting specific a specific BRSKI role/supporting a specific BRSKI role

-   s/whether that responders variation/whether that responder's variation



3.1.4



-   s/Todays these are based on whether Section 1 is used or not/Today, these 
are based on whether Section 1 is used or not.

o   Note: Section 1 is unclear in this context.



3.1.7



-   s/This document does also not introduce variation contexts for/Also, this 
document does not introduce variation contexts for

o   Note: it seems redundant to write "variation context" given the provided 
definition.

o   A bit later, in 3.1.8 the document says that it introduces variation 
contexts in form of IANA tables. Thus, maybe the phrase above should be 
reworded to: "This document only introduces variation contexts for specific 
roles".



3.1.8.2



-   Note: For example, Section 1 specifies the empty string "" as the 
objective-value in Section 1 discovery.

o   In this phrase, the reference to "Section 1" is unclear. Section 1 of this 
document does not have anything of this kind.



3.1.8.3



-   Note: "one-off" variation string is not very clear without further 
explanations.





3.1.9



-   Note: "Section 1" again. Unclear reference.

-   /s/dcoument/document



3.2



-   s/specific do the target deployment/specific to the target deployment



3.2.1



-   s/Inter-DC service redundany/Inter-DC service redundancy



3.2.2



-   s/Problems such as a hanging//unresponsible/Problems such as a 
hanging//unresponsive

-   s/when the responder did/when the responder died



3.2.3



-   s/Stateless proxies can not/Stateless proxies cannot

-   s/stateless responsivness/stateless responsiveness

-   s/service annuncements/service announcements

-   s/superceeded/superseded



3.3.2



-   s/3.3.2.1.  Direction Connections Mode/3.3.2.1.  Direct Connection Mode

-   s/registrars service announcement/registrar's service announcement

-   s/for that pledges connection/for that pledge's connection

-   s/registrar sockets it maps to between/registrar sockets they map to between



3.3.2.2



-   Note: probably the order of description here should be slightly changed, or 
the text should be rewritten slightly - current text:

o   It then connects pledges to the best available registrar socket from that 
set.

o   It then announces this socket with the parameters of the best discovered 
registrar socket <...>.

However a proxy does these two things in the opposite order, usually.

-   Note: "Stateless proxies can not learn unresponsiveness" the whole 
paragraph is a repetition from 3.2.3, verbatim, including typos. Is that 
redundant text required?

-   Note: the paragraphs just after it are also repetitions from 3.2.3, 
largely. Please check, if this cannot be organized differently, maybe rather 
re-structure in Considerations for Stateless proxies and Considerations for 
Stateful Proxies, and then introduce particularities for registrars and 
responder selection accordingly?



3.3.2.3



-   s/UDP for connections pledges/UDP for connections from pledges

-   s/implementation can not discover/implementation cannot discover





3.3.4



-   s/example the common cade of/example the common case of



3.4.



-   Note: Section 1 reference again.



3.4.1



-   s/can easier enumerate expected pleges/can enumerate expected pledges more 
easily



3.4.2



-   s/Two different manufacturer/Two different manufacturers

-   Note: the serial number refers to the physical device. I am not sure about 
the precise use case for BRSKI, but I can easily see an additional problematic 
situation, namely, where two or more pledges run on the same physical device. 
This can happen, when the physical device with a serial number visible from 
outside is some form of bay, collection, host, load-balancer, etc., which 
internally has e.g. several line cards, several boards, several storage devices 
or whatever. Also, I can imagine an accessing host being a laptop or a 
smartphone (BYOD), in which resp. only some particular secure enclave is 
supposed to have access. There can be even several such environments, e.g. one 
for product line work, and some other for more general admin tasks. These two 
would hardly be the same as the physical laptop and have to be distinguished 
from each other; besides, the physical laptop might be exchanged e.g. by the 
issuing enterprise every 2-3 years, yet the basic software environment might 
stay quite unchanged, updates notwithstanding.



3.4.3



-   s/use simple numerica/use simple numerical



3.5.1.3



-   s/may need to to discover/may need to discover

-   s/which printer to to pick/which printer to pick

-   s/This requirement exist/This requirement exists

-   s/operators are not unnecessary required/operators are not unnecessarily 
required

-   s/such as a registrar understand/such as a registrar understands

-   s/OUI where assigned/OUI were assigned

-   s/when they have globals scope/when they have global scope

-   s/unique name, is actually unique/unique name is actually unique

-   s/names. instance names/names. Instance names

-   Note: please review and simplify/correct the following phrase:

o   "to pick the same host name requirements based encoding format for both 
type of DNS RR nams when using encoded addresses in them"

-   s/vendors that usecBRSKI/vendors that use cBRSKI

-   s/SRP is useable/SRP is usable

-   s/appening some string/appending some string

-   s/and it's numeric process/and its numeric process



3.5.2.2



-   s/In Figure 5, A separate/In Figure 5, a separate

-   s/value that also support/value that also supports



3.5.3.1



-   s/Section 1 introduces a stand alone/Section 1 introduces a standalone

-   s/In summaery/In summary

-   Note: check the "Section 1" occurrences



3.5.3.2



-   Note: check the "Section 1" occurrences

-   s/assumeption is/assumption is



3.5.3.3



-   s/extensions to what was is specified/extensions to what is specified

-   Note: check/correct the follow-up phrases:

o   "This document does not specifiy how to discover It uses terms"

-   Note: there is a requirement (MUST) to register something with IANA. Does 
it make sense?

o   Shouldn't a specification either register it or assume that it is 
registered?

-   s/likewise, Additional BRSKI/likewise, additional BRSKI



4.1.2



-   s/IANA is asked to add an entries/IANA is asked to add entries

-   s/useable/usable



5



-   Note: please check the occurrences of "Section 1" again

o   "In Section 1, pledges are easier subject to DoS attacks than in Section 1,"



</review>
_______________________________________________
Anima mailing list -- anima@ietf.org
To unsubscribe send an email to anima-le...@ietf.org

Reply via email to