Re: [sidr] Key learning procedures in BGPsec?

Stephen Kent <kent@bbn.com> Mon, 30 January 2012 21:46 UTC

Return-Path: <kent@bbn.com>
X-Original-To: sidr@ietfa.amsl.com
Delivered-To: sidr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 652DA11E80BA for <sidr@ietfa.amsl.com>; Mon, 30 Jan 2012 13:46:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.488
X-Spam-Level:
X-Spam-Status: No, score=-106.488 tagged_above=-999 required=5 tests=[AWL=0.111, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l-TpRwqKvGZR for <sidr@ietfa.amsl.com>; Mon, 30 Jan 2012 13:45:59 -0800 (PST)
Received: from smtp.bbn.com (smtp.bbn.com [128.33.1.81]) by ietfa.amsl.com (Postfix) with ESMTP id 4C67F11E80B0 for <sidr@ietf.org>; Mon, 30 Jan 2012 13:45:59 -0800 (PST)
Received: from dhcp89-089-190.bbn.com ([128.89.89.190]:49201) by smtp.bbn.com with esmtp (Exim 4.77 (FreeBSD)) (envelope-from <kent@bbn.com>) id 1Rrz2z-000J7H-Cx; Mon, 30 Jan 2012 16:45:57 -0500
Mime-Version: 1.0
Message-Id: <p0624080dcb4ca86f5b85@[128.89.89.190]>
In-Reply-To: <CAH1iCiq04z2k+q2xBFGmnoRyuHmrE44_8cdgjTN4JVg6YwJALw@mail.gmail.com>
References: <13269421-8A36-4628-9F1A-30E02B922AE1@verisign.com> <24B20D14B2CD29478C8D5D6E9CBB29F6074CA8@Hermes.columbia.ads.sparta.com> <A0B7EE2D-8E59-4DC8-9DC0-140E9574B479@verisign.com> <p06240804cb3caa4fd051@128.89.89.66> <CCE15AEB-D606-4A59-8118-BA5CD53413E8@verisign.com> <p06240807cb3e3e117777@128.89.89.66> <12C07EA1-EDC5-4F88-99F7-B57B9AF53C53@verisign.com> <p06240801cb43712287ed@10.243.32.68> <79053E60-25FE-4A84-9391-F451C8F0E720@verisign.com> <p06240818cb477d54edae@128.89.89.66> <CAH1iCiq04z2k+q2xBFGmnoRyuHmrE44_8cdgjTN4JVg6YwJALw@mail.gmail.com>
Date: Mon, 30 Jan 2012 16:37:38 -0500
To: Brian Dickson <brian.peter.dickson@gmail.com>
From: Stephen Kent <kent@bbn.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Cc: "sidr@ietf.org list" <sidr@ietf.org>
Subject: Re: [sidr] Key learning procedures in BGPsec?
X-BeenThere: sidr@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Secure Interdomain Routing <sidr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sidr>, <mailto:sidr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sidr>
List-Post: <mailto:sidr@ietf.org>
List-Help: <mailto:sidr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sidr>, <mailto:sidr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Jan 2012 21:46:00 -0000

>...
>Let's consider off-axis risks.
>
>Originator O, Relying party R, Weak-operator W, and Bad Actor B.
>
>If poor key management on W makes it possible for the private keys of
>a single router in W's network to be learned by B, then all bets are
>off for anything advertised via W.

To put this into perspective you need to say how the secruity problem 
created by poor key management by W for this router is substantively 
different from B successfully attacking W's network management system 
or compromising the router in question to achieve the same goal.

>Here's why:
>
>Presume all the good stuff you want about O, and the RPKI system.
>Route X, originated by O, is fully validated and legitimate.
>
>Topologically, let's say the following BGPSEC sessions and links exist:
>
>O--?--W--?--R--?--B--?
>
>(All the "?" mean there could be intermediate parties, but none are
>required for this example to still be applicable.)
>
>In order to spoof announcements, B need two things: The private key of
>a single router (such as the key for a W router), and the data that
>would be signed by that router (for X).

You're example is a bit underspecified, so I'll try to fill in the blanks.

	- B's goal is to send a route to R, for address space 
legitimately originated by O, which will attract traffic to B rather 
than to W, right?

	- B needs to acquire an update for the target (O), that 
passed through W, otherwise the forward sig on the BGPSEC update will 
fail, making the attack fail.

	- in your example, B will get the BGPSEC update for O, from 
R, after it has passed through W, which satisfies the criteria above.


>The process would be:
>B sets up a router F ( which claims to be the W router for which the
>key was compromised).
>The (W_fake) router F is configured with ASN == W.
>B sets up a BGPSEC session between F and B, and signs the results.

In many cases, ASes have external info about neighbors to which they 
are directly connected, e.g., they executed a contract, paid for a 
link, etc. So, if B tries to claim it's W, based only on having a key 
from one of W's routers, that often may not work. (It might work if B 
and R are peers at an IXP and the VLAN at the IXP is not too strong.)

I would expect the attack to be:

	- upon receiopt of the signed update, B strips the sigs 
applied by W, and by any ASes between W and R, and any ASes between R 
and B.

	- using the compromised router key from W, B generates an update
that shows O-?-W-B. it signs the update using its (B's) key, and 
sends it to R, possibly via an intermediate AS ("?"). this way B does 
not have to pretend to be W. It only asserts that it (B) has a link 
to W, and that it has the same path to O as W had, plus itself.

If there are one or more ASes between W and R, legitimately, then the 
bogus route is shorter and probably preferable. So, the presence of 
one or more "?" ASes between W and R is critical, contrary to your 
assertion. If W is directly connected to R, the bogus route is longer 
and may not be preferred.

You go on to observe that W's poor key management practices allow B 
to cause O's traffic to be routed through it, even though O and R did 
nothing wrong. That's true. But it also would be true if B 
compromised a router or network management computer in W and caused 
the AS/router to forward traffic destined for O (from R) to B. Or, W 
may be evil and takes $ from B to send it a copy of traffic from R to 
O. All of these are ways that the targeted traffic ca be misrouted, 
due to some bad behavior by W. This is an inherent limitation, in 
your example; R is dependent on W's secruity, realtive to traffic 
beign sent to O, because W is between O and R.

I don't agree with any of your proposed changes for the design.

#1 calls for a level of micromanagement that is not common in IETF standards

#2 is not relevant; my detailed attack example did not need to 
acquire the updates by wiretapping "off axis."

#3 suggests multiple sigs per something (AS?, router?) are more 
secure than a single sig. Absent a lot of unspecified context 
details, this assertion is not valid.

#4, viewed in the context of Eric's message, seems to suggest that if 
every AS were required to publish self-assertions about key 
management, then this info would be used as a "trust" value inputs to 
local routing policy by other ASes. Really?

Steve