Creating Resource Public Key Infrastructure - Routing Origin Authorizations to prevent outages, detours, and unauthorized use of IP addresses
Steven Wallace ssw@internet2.edu
Director - Routing Integrity, Internet2
How would you stop someone from stealing your IP addresses?
How would you prevent or detect these incidents?
[ 2 ]
90% of Internet2-connected networks are less able to than they should be to mitigate these attacks; compared to 35% of the Commodity Internet
“Of the 179 prefixes labeled hijacked, only three were RPKI-signed before they were blocklisted. We infer that hijackers do not usually target RPKI-signed prefixes but rather target unallocated or unrouted non-RPKI signed address spaces.”
from - https://www-cs.stanford.edu/~gakiwate/papers/imc22-drop_roa.pdf
[ 3 ]
We can’t afford to have an Easy Button Gap!
[ 5 ]
The “Easy Button” is powerful, so be careful!
[ 6 ]
RPKI-ROA Planning
General Concepts:
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.0.0/16 | 16 |
If AS87 participated in LHCONE with subnet 129.79.5.0/25, it might need two prefixes in the ROAs, or two ROAs.
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.5.0/24 | 24 |
AS87 (IU) | 129.79.0.0/16 | 16 |
Why does the order matter?
[ 7 ]
RPKI-ROA Planning
(on-demand DDoS scrubbing providers that retain origin ASN)
If the on-demand scrubbing provider can scrub any of your /24s, you’ll need to ensure the covering ROA is appropriate:
However, if scrubbing will be limited to a subset of the /24s, then create a prefix or ROA for each of the potentially scrubbed subnets.
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.0.0/16 | 24 |
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.5.0/24 | 24 |
AS87 (IU) | 129.79.6.0/24 | 24 |
AS87 (IU) | 129.79.0.0/16 | 16 |
[ 8 ]
RPKI-ROA Planning
(on-demand DDoS scrubbing providers that retain origin ASN)
If you’re stuck with needing a long ROA, then consider the following as compensating technical controls:
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.0.0/16 | 24 |
[ 9 ]
RPKI-ROA Planning
(on-demand DDoS scrubbing providers that originate routes from their ASN )
If the on-demand scrubbing provider may scrub any of your /24s, you’ll need to ensure the covering ROA is appropriate, with your scrubbing provider’s ASN:
However, if scrubbing will be limited to a subset of the /24s, then create a prefix or ROA for each of the potentially scrubbed subnets.
Authorized ASN | Prefix | MaxLen |
AS32787 (PROLEXIC) | 129.79.0.0/16 | 24 |
Authorized ASN | Prefix | MaxLen |
AS32787 (PROLEXIC) | 129.79.5.0/24 | 24 |
AS32787 (PROLEXIC) | 129.79.6.0/24 | 24 |
AS87 (IU) | 129.79.0.0/16 | 16 |
[ 10 ]
RPKI-ROA Planning
(on-demand DDoS scrubbing providers that originate routes from their ASN)
As I said earlier…
If you’re stuck with needing a long ROA, then consider the following as compensating technical controls:
Authorized ASN | Prefix | MaxLen |
AS32787 (PROLEXIC) | 129.79.0.0/16 | 24 |
[ 11 ]
RPKI-ROA Planning
(always-on DDoS scrubbing providers that originate your routes)
Good to have your basic ROA, for when you want to directly originate the route.
Create ROAs that cover the always-on DDoS announcements:
Authorized ASN | Prefix | MaxLen |
AS87 (IU) | 129.79.0.0/16 | 16 |
Authorized ASN | Prefix | MaxLen |
AS13335 (CLOUDFLARE) | 129.79.0.0/17 | 17 |
AS13335 (CLOUDFLARE) | 129.79.128.0/17 | 17 |
[ 12 ]
A tool to check a proposed ROA
If you’re running Docker:
docker run -dp 8000:8000 stevenisfine/roa_checker:latest
[ 13 ]
This tool’s user interface is brittle, sorry, will improve later. It expects a prefix in the form 10.0.0.0/16 (and it must exist as a route in the global routing table), and the ASN must not include “AS”.
[ 14 ]
The proposed ROA, below, would effectively allow the /16, but not the /17, silently turning of their DDoS scrubbing service.
In this example, at least two ROAs are required, and the utility won’t check for the results of more than one ROA at a time. You could test each ROA separately and aggregate the results.
[ 15 ]
Tools to investigate ROAs
Public RPKI-ROA validators:
[ 16 ]
RPKI-ROAs aren’t perfect
Evildoers can hijack both the prefix and the origin ASN. It’s harder, but possible.
Autonomous System Provider Authorization (ASPA) improves on RPKI-ROAs, by enabling a network to assert its valid providers. It makes hijacking even harder, but isn’t perfect path protection.
Ultimately we’ll likely see BGPSEC as the comprehensive solution for as-path protection.
[ 17 ]
RPKI-ROA Check List
[ 18 ]