[i2rs] Stephen Farrell's Abstain on draft-ietf-i2rs-protocol-security-requirements-09: (with COMMENT)
"Stephen Farrell" <stephen.farrell@cs.tcd.ie> Sun, 21 August 2016 12:37 UTC
Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: i2rs@ietf.org
Delivered-To: i2rs@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D584412D0E2; Sun, 21 Aug 2016 05:37:15 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
To: The IESG <iesg@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.29.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <147178303586.24090.10213578467078868403.idtracker@ietfa.amsl.com>
Date: Sun, 21 Aug 2016 05:37:15 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/i2rs/tXfGtfGaFE60m7JFn6s0tDKwEIs>
Cc: jhaas@pfrc.org, i2rs@ietf.org, i2rs-chairs@ietf.org, draft-ietf-i2rs-protocol-security-requirements@ietf.org
Subject: [i2rs] Stephen Farrell's Abstain on draft-ietf-i2rs-protocol-security-requirements-09: (with COMMENT)
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.17
List-Id: "Interface to The Internet Routing System \(IRS\)" <i2rs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs>, <mailto:i2rs-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2rs/>
List-Post: <mailto:i2rs@ietf.org>
List-Help: <mailto:i2rs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs>, <mailto:i2rs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Aug 2016 12:37:16 -0000
Stephen Farrell has entered the following ballot position for draft-ietf-i2rs-protocol-security-requirements-09: Abstain When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.) Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html for more information about IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: https://datatracker.ietf.org/doc/draft-ietf-i2rs-protocol-security-requirements/ ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- First, apologies for not getting my review done for this when it was scheduled due to my vacation and thanks for being willing to defer the document. Second, having now properly reviewed this, I am balloting abstain as I think it's unlikely that this document can be fixed in a way that results in something useful happening. I think that the likely outcome is that this document will be used later when people are arguing and will not much help in resolving those arguments, or else this will be ignored and arguments will be held afresh, as needed. That latter outcome is what I'd guess is most likely and therefore it seems that spending all of our cycles on DISCUSS ballot processing for this would not be wise. That said, I am willing to change to a DISCUSS ballot if the responsible AD prefers that, but I suspect I'll end up with an abstain in any case, after some discussion. The only plan I can think of that'd lead to me ending up with a yes or no-objection ballot would be if this was returned to the WG for fixing and possibly major surgery, which is what I actually think would be the best plan. (I realise this has had a somewhat tortured history, so folks may not be willing to take it back to the WG, but honestly, I think the failings visible in this document do indicate that this is not ready for approval and ought be returned to the WG.) Third, I think the overall set of requirements posed here might (with some unknown probability) lead to later specifications that are considered too hard to deploy, with the result that non-secure variants of I2RS become the norm. That seems like it would be a really bad outcome. I would suggest that might be partly mitigated if a requirement were added to the effect that deployment issues and specifically ease of deployment MUST be considered as a first order requirement when developing I2RS protocol solutions. Fourth, the (19!) comments below that are preceded by "(discuss" would have been DISCUSS ballot points had I not decided to abstain. I am happy to chat about any of my comments below, but if the authors/WG do want to chat, it might be more efficient to concentrate on those that would otherwise have been DISCUSS points. (But that's your call, I don't mind.) I think the 19 would-have-been-discuss points is another clue that this ought really be sent back to the WG. And with that, and with apologies for this being such an overall negative review, here're my detailed comments: - general: The writing here is generally poor, for example the opener is "This presents..." whereas it ought be "This document presents..." (or s/document/whatever you prefer/). Such issues are repeatedly seen and all that makes this a much harder read than ought be the case. I'd strongly recommend an editorial pass from someone who hasn't been down in the weeds with this text for a while (which could be one of the authors, if one of them has been less active recently.) Note that this is not only (but is primarily) an editorial issue - there are some cases (hopefully called out below) where the writing does create real ambiguity that might lead to re-opening old arguments later. - abstract: "mutual authentication, transport protocols, data transfer and transactions" don't seem to me to be commensurate things, so the abstract, as written is very uninformative for me. - intro 3rd para: I'm really not sure what you're telling me about [I-D.ietf-i2rs-ephemeral-state]. "The draft [RFC7922]" is odd, that being no longer a draft. I'd have expected such nits would have been fixed by now TBH. Same for the last sentence. That para makes the intro pretty unclear for me. - 2.2: The definition of higher level protocol seems like an odd place to introduce the fact that i2rs == netconf + restconf. That'd be more usefully said in the abstract/intro if that's solidly agreed by the WG. - 2.2: This is wrong: "While it is possible to have an I2RS operation which is contained in multiple I2RS (E.g. write in multiple messages), this is not supported in order to simplify the first version of I2RS." The reason this is wrong, is that it is here that you are defining that it is not possible to have an operation in multiple messages. s/it is/it could have been/ would work maybe. - 2.2: " * The I2RS client issues a read request to a I2RS agent, and the I2RS Agent responding to the read request" Shouldn't that use respond and not responding? Given that you seem to be trying to define the scope of what is and is not a transaction, I think being precise with the language is something well worth doing. The 2nd bullet could also do with a re-write. (discuss1) 2.2: you sort-of define messages, operations, transactions and actions. None of the definitions are that precise, e.g. are those the only operations or examples? And transaction and action aren't really defined at all. I'm not sure if that's likely to be a problem or not. I suspect it will later, e.g. when you get to figuring out the scope within which replay needs to be detectable. - 2.2: s/transation/transaction/ (discuss2) - 2.2: "defines a secondary identity as the entity of some non-I2RS entity " That could be abused for tracking of various kinds I would guess, e.g. if an IMEI were used. I think you need to note that and should impose some requirements that such secondary identifiers are not used thusly for tracking. Also, should the first occurrence of entity there be identity? - 3, 1st para: s/The security for the/The/ - there isn't a thing called the security for the i2rs protocol. (discuss3) - section 3 says "the I2RS protocol requires mutually authenticated I2RS clients and I2RS agents communicating over a secure transport." To me that implies that something like TLS or SSH is MTU which seems to contradict recent emails. - section 3 says: "The I2RS protocol MUST be able to provide atomicity of an I2RS transaction, but it is not required to have multi-message atomicity and roll-back mechanism transactions. Multiple messages transactions may be impacted by the interdependency of data." I don't believe that that's easily enough understood to be useful. Also, wouldn't s/Multiple messages transactions/Multiple-message transactions/ be much clearer if that's what's meant? And finally, I think the MUST embedded in the above is not that great an idea - it's clearer IMO to separate the 2119 language from introductory text in documents like this. - 3: "There are dependencies in some of the requirements below" would be better as "There are inter-dependencies between some of the requirements below" unless you mean dependencies on some external things, which is not clear from the text as-is. (discuss4) " For confidentiality (section 3.3) and integrity (section 3.4) to be achieved, the client-agent must have mutual authentication (section 3.1) and secure transport (section 3.2). " This is incorrect. One can have confidentiality without authentication (see RFC7435) so the text is not accurate. - capitalisation needs fixing in various places, e.g. around the end of p5, we get "secure Transport" and then "I2RS client" and "I2RS Agent" in the title of 3.1 Is any of that capitalisation supposed to be significant? Either way, fixing it now would be good as you'll need to get the RFC editor to do it later if you don't (which takes longer). (discuss5) SEC-REQ-01: what is the scope of uniqueness required here? I see no reason why two different data centres cannot re-use a client or agent identifier, if they so wish. I'd be fine if you say that's for later decision, but being silent on the matter could lead to trouble later if different folks decide differently. (discuss6) SEC-REQ-02: the "MUST utilize" there means MTU, which wasn't what you wanted I think (discuss7) - SEC-REQ-03: how is "upon receiving... MUST confirm" a good choice? As stated that'd be hugely onerous, implying e.g. OCSP checks for each packet received. Same point applies to SEC-REQ-04. (discuss8) - SEC-REQ-05: this either means nothing at all (being a tautology) or else something I don't get. I think it's the former, but am not sure. - 3.1: s/One mechanism such mechanism/One such mechanism/ I guess. And it's not at all clear to me "AAA protocols" is the right idea there, and nor is it clear what's meant, with the text as-is. - SEC-REQ-06: where is a "priority" defined? - SEC-REQ-07: here you say read/write is a transaction, but earlier you said it was an operation, which is it? (discuss9) 3.2: As with others, I don't think the idea of annotating parts of yang modules with "can be insecure" is a good one. There's a separate thread discussing that though, so maybe better to not fork that. (discuss10) - SEC-REQ-O9: I hate to do this to ya, but BCP107 is IMO a fairly clear failure when it comes to routing. And yet again the exceptions clauses here are so broad as to be meaningless (e.g. considered low value by whom?). What is the real goal here? (other than an attempt to keep the sec ADs from being annoying and trying to insist on BCP107? ;-) (discuss11) - SEC-REQ-09: Separately, to my other would-be-discuss point on this requirement, "can guarantee" is well beyond the state of the art in key management. I'd just drop that sentence maybe, but can't make a concrete suggestion until I understand where you want to be wrt BCP107. - SEC-REQ-10: the last sentence here is also involved in the "may do stuff insecurely" thing, and so will likely need fixing when that is fully resolved. - How is SEC-REQ-11 useful? What protocol artefacts do you have in mind here? Perhaps a requirement that DDoS attacks be specifically considered in I2RS would be more useful. - SEC-REQ-12: This seems to me to have too many words, e.g. the current text could be read to imply that outside of critical infrastructure there is less or no need for confidentiality, so those added words (presumably there to motivate) might be counter-productive. (discuss12) SEC-REQ-12: I don't get the meaning of the SHOULD here - combined with "certain data" that SHOULD seems to end up meaning MAY, as in, it seems to mean the same as "Read/write operations MAY have to be protected using a confidentiality service." - 3.4, bullet (2) here means that we're not talking about data integrity but data origin authentication as well. (discuss13) 3.4, (3): Within what scope must replay be detected? The text implies for ever, which can be very onerous. SEC-REQ-14 doesn't quite go so far, but is ambiguous on this aspect. I'd say best is to note that the scope within which replay needs to be detectable is for future study. (discuss14) SEC-REQ-15: Sorry, I don't understand what's required here (having read this >1 time). Can you explain? I'm not sure if any substantive change is needed, but there are certainly editorial changes needed for sure as there are multiple wording problems with the text as-is. - 3.5, 1st para: the text here is not as good as the actual definition of "role" in RFC7921, and in fact I found the text here confusing. Better to just delete that and say that 7921 defines roles. (discuss15) SEC-REQ-16: I don't see any content in this text as it seems to just say "some role based access control and some level of transport protection need to be provided" which is always true, as you are allowing "no transport security" and (I assume) "fully public access" so any protocol/system will always meet this requirement. - SEC-REQ-16: "privacy requirements" here is wrong, you mean confidentiality I think. (discuss16) SEC-REQ-17: "MUST work" is far too vague. That could for example hide a major debate about push v. pull of role information. If the WG haven't considered that, I think you could ack that again by saying that more work is needed to define how RBAC is consistent across multiple transport layer connections. (discuss17) SEC-REQ-18: again this seems to have no content, other than perhaps imposing an odd requirement on implementations - I don't see a protocol requirement here at all. It is reasonable to note that libraries for clients ought not assume a single client identity but even that's very specific to library implementations and since it's just a MAY that's entirely obvious, I'd leave it out. (discuss18) SEC-REQ-19: I fully agree with the motivation here but I think the stated requirement is broken. For example, I don't know how a piece of s/w will determine whether or not it is correlated with a person. I also don't think a SHOULD works here, as again something would need to be stated about the situations when the feature is not needed, and I can't figure out a sensible statement for that. The last sentence also seems likely not useful. All in all, I think this is likely to be ignored or even worse treated like a piece of fig-leaf specification text to pretend that we're caring about privacy. (discuss19) - 3.6: I have no idea whether this other draft is supposed to be considered as setting requirements or not. I assume that the answer is "not" as you've made it an informative reference, but in that case you really should say that. The alternative would be that 3.6 is essentially specifying an applicability statement for the environments in which it is, and is not, ok to run i2rs. If the latter were intended, then you'd need to say it and make the draft a normative reference.
- [i2rs] Stephen Farrell's Abstain on draft-ietf-i2… Stephen Farrell
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Susan Hares
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Stephen Farrell
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Susan Hares
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Susan Hares
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Stephen Farrell
- Re: [i2rs] Stephen Farrell's Abstain on draft-iet… Susan Hares