This all looks good. Thanks for the long write up. Once you have published an updated draft, I will move my Ballot to Yes.
Paul Sent using a virtual keyboard on a phone > On Jan 2, 2024, at 07:44, Michael Welzl <mich...@ifi.uio.no> wrote: > > Dear Paul, > > I now see what happened here. I have made this harder to track by answering > the DISCUSS items only in my email - when, in fact, we have addressed or at > least discussed everything on github. I’m sorry! There were so many emails, > I also didn’t want to make the answers too long. > > As a general comment, for everyone else who might see this: if you miss > answers to your COMMENTS, we’re sorry! - but you’re likely to find them fast > by going to: > https://github.com/ietf-tapswg/api-drafts/issues > … removing “is:open” from the search field but instead writing your last name > there. > > > Paul, please see below: > > >> ---------------------------------------------------------------------- >> COMMENT: >> ---------------------------------------------------------------------- >> >> I updated my discuss items to non-blocking comments. I'm still a bit >> concerned >> that some security items are not fully addressed by the API or its Security >> Considerations. Resolving my comments would make the document a bit more >> clear >> and useful I think. >> >> I'm not sure that the model really expands from netflows to IP flows (or TOR) >> in the future. >> >> I'm not sure the Security Considerations warn enough about re-using the same >> credentials with different protocols/auth mechanisms. (eg TLS and IKEv2, or >> TLS >> 1.2 and QUIC, or using RSA as RSA-PKCS1.5 as well as RSA-PSS) >> >> Unqualified Hostname vs FQDN seems a security risk punted mostly to the >> application. > > These are new comments as part of the COMMENT block. As with the others, we > will file an issue on our github and resolve them there. Personally, I think > we should use these comments to strengthen our security considerations > section (e.g., to warn about the security risk when not using an FQDN. Indeed > such a warning does now exist in the text, and using an FQDN is qualified > with a SHOULD, but the security considerations section could point at it once > again). > > > Here comes an answer for the other COMMENT items on the basis of what > happened on github: > > >> I don't understand this code: >> >> Connection := Preconnection.Initiate() >> Connection2 := Connection.Clone() >> >> Connection -> Ready<> >> Connection2 -> Ready<> >> >> //---- Ready event handler for any Connection C begin ---- >> C.Send(messageDataRequest) >> >> Where does "C" come from in "C.Send" ? The comment says "any Connection C"? > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1368 > PR to resolve: https://github.com/ietf-tapswg/api-drafts/pull/1413 > > We hope that the text that we added makes this clear enough: this code block > is an event handler for Connection C. Either it gets C as a parameter, or > it’s in some other way associated to Connection C. > > >> I have a question on this code: >> >> Preconnections are reusable after being used to initiate a >> Connection, whether this Connection was closed or not. Hence, it >> would be correct to continue as follows after the above example: >> >> //.. carry out adjustments to the Preconnection, if desired >> Connection := Preconnection.Initiate() >> >> What would happen here? I can imagine a "compiler" turning this into >> a noop. I can also see it would kill the existing Connection state and >> start a new one. This could be to a different IP address (eg if the DNS >> name has A and AAAA). When starting a new one, what would happen to any >> Message or Event queues for Connection ? > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1369 > PR to resolve: https://github.com/ietf-tapswg/api-drafts/issues/1369 > > A Preconnection is just a data structure, used as a template to create a > Connection - so, the call to Initiate() after adjustments wouldn’t affect the > already ongoing Connection. > We hope that the text that we added makes this clear enough now. > > >> Preconnection.AddRemote(RemoteCandidates) >> >> Should this not technically be: >> >> Preconnection.AddRemote([]RemoteCandidates) >> >> as the array contains at least a host and a stun server candidate? >> >> Maybe this is just the difference between you using the variable you define >> that has been assigned, versus a more C like prototype format, eg: >> >> Preconnection := NewPreconnection([]LocalEndpoint, >> >> So I guess if your example here had set LocalEndpoint := [a,b] you would not >> have used [] in the call ? > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1371 > Commit: > https://github.com/ietf-tapswg/api-drafts/commit/e1ca6015d25c8a2a3f78f99cfc552ed4fd63019e > > … this should be resolved now. > > >> Section 6.1.4 >> >> Perhaps it would be useful to add a Local Endpoint with ephemeral port before >> the Local Endpoint with static port example, as the ephemeral port should be >> the far more common case. Right now the examples might give the wrong >> impression >> a local port MUST be specified. > > Yes, good catch, thanks! - addressed: > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1374 > PR: https://github.com/ietf-tapswg/api-drafts/pull/1431 > > >> SecurityParameters.Set() seems to allow to set our identiy and our >> certificate, >> but not the remote peer's identity or certificate? For example, one might >> want >> to pin a remote certificate and not just rely on a WithHostname() identifier >> being present as subjectAltname on a certificate. > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1375 > PR: https://github.com/ietf-tapswg/api-drafts/pull/1430 > (this PR introduces client- and server- certificates) > > >> The Connection state, which can be one of the following: >> Establishing, Established, Closing, or Closed. >> >> I think the text in Section 8 should more clearly show the property names if >> the >> goal is to have different implementations use the identical name. Eg in this >> case, why not write: The Connection state ("state"). The next two entries are >> similarly lacking a clear keyword to use: >> >> Whether the Connection can be used to send data. >> >> Whether the Connection can be used to receive data. >> >> eg. why not define words for these to implementations will use the same >> words, >> in this case perhaps ReadySend and ReadyRcv ? >> Writing that now, perhaps "state" should be "State" then ? > > Issue: https://github.com/ietf-tapswg/api-drafts/issues/1377 > PR: https://github.com/ietf-tapswg/api-drafts/pull/1437 > > This PR incorporates your suggestion by introducing three read-only > properties: connState (to query for “Establishing”, “Established”, “Closing”, > “Closed"), canSend, canReceive. > > >> Section 8.1.1: >> >> If this property is an Integer >> >> It is best to define the actual type in this document and not let >> implementations choose, if the goal is to try and harmonize implementations. >> I >> also see no non-integer value being given here ? > > We got a similar comment about this from Lars Eggert, so we discussed both in > this issue: > https://github.com/ietf-tapswg/api-drafts/issues/1346 > > This is a more general thing, affecting several properties. After trying and > discussing (at an interim) a somewhat heavy-handed approach to solve this for > all of them: > https://github.com/ietf-tapswg/api-drafts/pull/1409 > … we ended up with what we agreed was a better way to do it, in this PR: > https://github.com/ietf-tapswg/api-drafts/pull/1410 > > Now it’s a non-negative Integer, with a defined special value of 0, and how > to specify "Full Coverage” is explained in the text. > > > I hope this helps - my apologies for not immediately answering how we > addressed the COMMENT items ! > > Cheers, > Michael > _______________________________________________ Taps mailing list Taps@ietf.org https://www.ietf.org/mailman/listinfo/taps