WG chair hat off
On 17/11/2008, at 10:28 AM, Danny McPherson wrote:
On Nov 14, 2008, at 1:07 PM, Geoff Huston wrote:
A good example for me in thinking about this has been the YouTube
hijack at the start of this year. A salient question I asked myslef
was: what mechanisms could YouTube have used to alert relying
parties to the unauthorised advertisement of more specifics from a
different origin AS?
ROAs alone are not a good answer here, in that a ROA does not say
what is bogus.
But does the existence of a ROA, with origin authorization not
make this implicit enough?
I assume you are referring to the situation where, for example, a ROA
exists for 10.1.0.0/16 origin AS 1, and NO ROA exists for 10.1.0.0/16
origin AS2, and you are seeing a route object for 10.1.0.0/16 with
origin AS 2, yes?
The problem is that as a relying party you can't tell whether the
problem is with the retrieval of ROA objects or whether the route
object is bogus. i.e. what if the ROA for 10.1.0.0/16 origin AS 2 was
published a few seconds ago, whereas your local cache of ROA objects
was last refreshed a day ago. i.e. everything you have at hand is
valid, the manifests are good, and you are seeing something that is
not oin a locally held ROA, _but_ it is still valid.
If there was also a BOA published for 10.1.0.0/16 then as a relying
party you now have grounds to believe that anything not described in a
valid ROA can be regarded as an invalid object. In this case there is
still the issue of time lag, and if the prefix holder had intended to
authorize 10.1.0.0/16 using AS 2 as an origination in addition to AS1
then it would be incumbent on the prefix holder to generate and
publish the new ROA well in advance of the advertisement of the new
route.
Of course there is also the other case where AS 1 insists on a ROA as
a precondition for originating the route, and AS 2 does not, and the
prefix holder performs only what is required and no more. In this case
both routes are valid, but only one as a ROA. In tis case the problem
is not one of timing at the relying party side, and will not be
resolved by bring the relying party into sync with the authority
publisher.
The only way that ROAs can do this is when a relying party is
justified in assuming that _absolutely everything_ is covered by a
ROA. In a world of incremental deployment this assumption does not
hold, and therefore the absence of a ROA conveys no information at
all.
In this case BOAs can assist. Lets say that MeTube has published a
ROA to allow 10.1.0.0/16, max length=16 to be advertised from
origin AS 1, and a relying party sees an advertisement for
10.1.1.0/24 originating from AS 2 (a hijack attempt). In this case
the relying party has no grounds to assume that the /24
advertisement is bogus, and will accept the advertisement and the
hijack will be effective. But what if MeTube also published a BOA
for 10.1.0.0/16 at the same time as the ROA. Now as a ROA "trumps"
a BOA then any advertisement for 10.1.0.0/16 with an origination of
AS 1 will be regarded as valid by a relying party, while any other
use of 10.1.0.0/16 or any more specific will be regarded as bogus.
So wouldn't this mean that in the current model everyone would publish
ROAs and BOAs? Do we really want that? Perhaps I'm missing something
here?
Well if relying parties could safely assume that _everyone_ was
publishing ROAs then there would be no need for BOAs as the absence of
a positive authority in the form of a ROA could be reliably inferred
to be unauthorized. But in a world where that assumption does not
hold, and where there is incremental partial deployment of publication
of these origination credentials, when relying parties cannot assume
that the absence of a positive authority means anything at all. All it
means is that if the route object matches the ROA then its been
authorized by the prefix holder. But if there is no matching ROA then
the relying party cannot assume anything at all.
The problem here is similar to the problem of filter generation: There
is a qualitative difference in these two statements:
"I give my authority for AS 1 to advertise a route object for
10.1.0.0/16"
"I give my authority for AS1 and only AS1 to advertise a route object
for 10.1.0.0/16"
If you want the second statement, then we either need to change the
ROA to offer closure ("i.e. include "any only") or introduce a new
object that allows the authorizing party to state the "and only" part
explicitly). I contend that leaving this part of the authority as
something implicit that relying parties may or may not choose to infer
from the authority is a compromised model, imho.
So the BOA is a way of implementing the RPSEC requirement of being
able to support environments of incremental deployment, where it is not
assured that everyone is publishing these authorities. Now if you are
of the view that the requirement of devising mechanisms to support
incremental piecemeal deployment is daft or unnecessary, then perhaps
this is a debate that in the IETF context should be held in the
context of the RPSEC WG, as the SIDR requirement here is one that was
gather up from the earlier RPSEC work and generate mechanisms that met
those requirements as stated in the RPSEC documents.
regards,
Geoff
_______________________________________________
sidr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/sidr