Subject: Gen-ART review of draft-ietf-sidr-bgpsec-threats-06

From: "Black, David" <[email-masked]>
Date: Mon, 23 Sep 2013 20:25:02 -0400

I am the assigned Gen-ART reviewer for this draft. For background on
Gen-ART, please see the FAQ at
< http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.

Please wait for direction from your document shepherd
or AD before posting a new version of the draft.

Document: draft-ietf-sidr-bgpsec-threats-06
Reviewer: David L. Black
Review Date: September 23, 2012
IETF LC End Date: September 23, 2012

Summary:  This draft is on the right track, but has open issues
described in the review.

This draft describes the threat model for BGP Path Security.  The
draft generally reads well, but does contain quite a bit of serious
security analysis of an important routing protocol and hence requires
both security and routing expertise to fully understand.

Major issue:

This draft contains more than just a threat model.  It also contains
a high level security analysis of the security architecture/approach
that applies the RPKI to secure use of BGP.  That analysis appears to
be good, but it's somehow disconnected from the rest of the sidr WG's
work, by what I hope is simply a terminology problem:
	- This draft refers to the security architecture/approach for
		BGP as PATHSEC.
	- Many of the other sidr WG draft refer to that security as
		BGPsec
In effect, the PATHSEC security architecture/approach appears to be
implicit in this draft.

Something's missing - if those two terms were meant to be the same,
BGPsec should probably be used in this draft, otherwise, the relationship
should be described.  I've tagged this as a major issue, as it makes
text like the following in Section 4.2 rather unclear:

      Stale Path Announcement: If PATHSEC-secured announcements can
      expire, such an announcement may be propagated with PATHSEC data
      that is "expired".  This behavior would violate the PATHSEC goals
      and is considered a type of replay attack.

What is "PATHSEC data"?  What are "the PATHSEC goals"?  The statement
in the abstract that " We use the term PATHSEC to refer to any BGP
path security technology that makes use of the RPKI" doesn't seem to
answer these questions.

Minor Issue:

Section 4.4 seems somewhat loose on caching by RPs, considering the
importance of that caching in countering a number of the attacks described
in that section - in multiple cases, RP detection of an attack relies
upon the RP noticing that something has changed at the publication point
wrt the RP's cached copy in a fashion that should not have happened.

Statements such as "the RPKI calls for RPs to cache" and "RPs are
expected to make use of local caches" strike me as a weak foundation
for the level of security dependence on that caching.  A pointer to a
SHOULD or MUST requirement for caching by RPKI RPs in another document
would alleviate this concern; surely that language exists somewhere.

Nits/editorial comments:

Also in Section 4.4:

   (The RP would be very unhappy if
   there is no CRL for the CA instance anyway.)

Please rewrite to describe how the RP reacts to failure to find a CRL
- the RP surely does something in addition to becoming "very unhappy" ;-).
Some of that may already be in the sentence immediately following the
"very unhappy" text.

idnits 2.12.17 complains about a missing reference:

  == Missing Reference: 'TCPMD5' is mentioned on line 114, but not defined

That citation is embedded in a quote from RFC 4272, nonetheless, [TCPMD5]
should be informatively referenced here - it was RFC 2385, which has been
obsoleted by RFC 5925, which is referenced here.  The fact that RFC 2385
is obsolete will generate a different idnits warning, which is ok to ignore.

Thanks,
--David
----------------------------------------------------
David L. Black, Distinguished Engineer
EMC Corporation, 176 South St., Hopkinton, MA  01748
+1 (508) 293-7953             FAX: +1 (508) 293-7786
[email-masked]        Mobile: +1 (978) 394-7754
----------------------------------------------------

---

From: Stephen Kent <[email-masked]>
Date: Mon, 30 Sep 2013 14:08:33 -0400

David,

> Major issue:
>
> This draft contains more than just a threat model.
agreed.
>   It also contains
> that applies the RPKI to secure use of BGP.
yes. we didn't create a threat model doc for the RPKI, and this seemed
like a good time to address that omission, since the SIDR charter mandates
use of the RPKI as a basis for the path security design.
> That analysis appears to
The term PATHSEC is used to refer to a generic path security solution
approach, consistent with the WG charter, rather than to the specific
solution approach, BGPsec, that has been developed. The rationale for
using the different term is that this threat doc should precede the
requirements doc, which should precede the solution design. In reality,
the requirements doc was generated before the threat analysis, and the
BGPSEC design was well along before this doc was finalized. Earlier versions
of the doc did refer to BGPsec, but the term was changed for the reasons
cited above. This doc does embed assumptions about what a general path 
security architecture would entail, e.g., based on prior work on such 
architectures, e.g, S-BGP.
> text like the following in Section 4.2 rather unclear:
I hope my explanation above explains why the terminology was adopted.
> path security technology that makes use of the RPKI" doesn't seem to
PATHSEC data is whatever data is sent via a path security design to enable
an AS to verify that the UPDATE has traversed the indicated set of ASes. The
goals for PATHSEC are the ones stated in the SIDR WG charter . (The relevant
charter text used to appear up front, but was removed at the request of the
WG chairs and the cognizant AD. The relevant text appears in this version on
page 16, as part of the residual vulnerabilities discussion.)
> would alleviate this concern; surely that language exists somewhere.
The RPKI mandates caching (see RFCs 6480 and 6481), and since use of the 
RPKI
as a basis for PATHSEC is mandated by the SIDR charter, I didn't feel it 
was
necessary to repeat that here. But we can include a cite:

    Note first that the RPKI calls for RPs to cache the data they acquire
    and verify from the repository system *[RFC6480, RFC6481]*.
> Some of that may already be in the sentence immediately following the
I'll remove the flippant parenthetical. You're right that it isn't useful.
> is obsolete will generate a different idnits warning, which is ok to ignore.
I disagree, and I discussed this with Stewart previously. The reference 
appears in a
quote and was appropriate at the time the quoted text was generated.

---

From: "Black, David" <[email-masked]>
Date: Mon, 30 Sep 2013 19:02:09 -0400

Steve,

> architectures, e.g, S-BGP.

That change in terminology is fine - what's missing (IMHO) is an explanation
of how the new terminology relates to terminology used in related drafts.  As
the term "PATHSEC" appears to be unique to this draft, I think this draft
should explain how that term relates to the BGPsec terminology used elsewhere
for a specific instance of the PATHSEC concept.  Discussion of related prior
work that also falls under the heading of PATHSEC would be good to add
(e.g., a sentence or two on S-BGP in addition to BGPsec would make it clear
that PATHSEC is the more general term), but I don't view that as essential.

That should address most of my concerns around text that I found hard to
interpret, e.g., the excerpt from section 4.2 in the original review:

>> What is "PATHSEC data"?  What are "the PATHSEC goals"?
>

I think the terminology clarification will clear up what "PATHSEC data" is, but
the notion of describing the goals of an architecture ("PATHSEC goals") as
"residual vulnerabilities" strikes me as both peculiar and unclear.

[2] Caching

> The RPKI mandates caching (see RFCs 6480 and 6481), and since use of the RPKI
> as a basis for PATHSEC is mandated by the SIDR charter, I didn't feel it was
>   and verify from the repository system [RFC6480, RFC6481].

That addition would definitely help.  I'd suggest: "calls for" -> "requires that"

I would also observe that it's not a good assumption that the RFC that results
from this draft will be read in tandem with the SIDR charter (not much of a
problem here, but a more serious problem in [1] above).  If that really is
intended, then an informative reference to the SIDR charter should be added,
although I don't think it's a good idea for an RFC to reference a WG charter
- the relevant WG charter portions should be reproduced in the RFC.

[3] TCPMD5 reference

> I disagree, and I discussed this with Stewart previously. The reference appears

> in a quote and was appropriate at the time the quoted text was generated.

Ok - I was suggesting adding an informative reference to RFC 2385, but this

is a nit, and so if the responsible AD is happy with omitting that reference

entirely, I don't have a problem.

Thanks,
--David

From: Stephen Kent [mailto:[email-masked]]
Sent: Monday, September 30, 2013 2:09 PM
To: Black, David
Cc: [email-masked]; General Area Review Team ([email-masked]); [email-masked]; [email-masked]; [email-masked]
Subject: Re: Gen-ART review of draft-ietf-sidr-bgpsec-threats-06

David,

Major issue:

 It also contains

That analysis appears to

              BGP as PATHSEC.

              BGPsec

implicit in this draft.
cited above. This doc does embed assumptions about what a general path security architecture would entail, e.g., based on prior work on such architectures, e.g, S-BGP.

answer these questions.

Minor Issue:

would alleviate this concern; surely that language exists somewhere.
The RPKI mandates caching (see RFCs 6480 and 6481), and since use of the RPKI
as a basis for PATHSEC is mandated by the SIDR charter, I didn't feel it was
necessary to repeat that here. But we can include a cite:

   Note first that the RPKI calls for RPs to cache the data they acquire
   and verify from the repository system [RFC6480, RFC6481].

Nits/editorial comments:

Also in Section 4.4:

"very unhappy" text.

is obsolete will generate a different idnits warning, which is ok to ignore.
I disagree, and I discussed this with Stewart previously. The reference appears in a
quote and was appropriate at the time the quoted text was generated.