Is BGP Safe Yet?
isbgpsafeyet.com
isbgpsafeyet.com
SS7 networks are basically wide open, with no auth and anyone can get an SS7 hub for cheap and start sending nefarious commands to peoples handsets. They can forward or record calls and read SMS. They can track you or they could just be a jerk and keep rebooting your phone. Worse still it can be used to intercept 2FA codes over SMS, which is the approach a lot of banks are taking for personal account security. intelligence agencies are without a doubt using it for intercepting and tracking.
The Telcos are lost with how to address the issues combined with cost considerations, so most are taking the approach of hoping it stays out of the news and waiting for it to eventually be deprecated from the network.
I (other account) once submitted their work to HN to see what real smart people thought about it, but it got 0 traction.
Edit: It's true. RPKI works, it's just harder to use than not using it, and network engineers have been doing bgp without rpki since forever. Managing PKI is outside the scope of a Cisco flat file and so it's not getting done. Route maps are easier to write than managing PKI. In the same vein IPv4 networks work and have been done since forever and as long as it's easier to shim over your v4 core and do carrier NAT and memorize dotted quads v6 will not get done with haste.
I recommend using RTR and native origin validation, not to depend on the route-map language to accomplish the task ;-)
https://github.com/cloudflare/gortr
And the fact that major ISPs with complex networks like AT&T, NTT, and Telia have implemented it proves it’s possible.
This isn't as damaging as being able to advertise a smaller prefix because it won't send all traffic to you. It will just send from routers where your path is shorter than the original.
To actually prevent hijacking via path shortening attacks like this, you need a full BGPSEC implementation https://en.wikipedia.org/wiki/BGPsec which is a much higher barrier than RPKI because the crypto operations jump 1 or 2 orders of magnitude (signing every re-advertised route rather than just originated routes).
So RPKI gets the cert infra in place, but it doesn't really fully solve the problem.
The BGPSEC theory is there but not sure if we can make a workable system.
On the other hand, verify is cheaper. My crappy laptop will do ~320k RSA-2048 verifications per second...
350 per core per second... you are way off at 100k/s.
If there is such a thing I'd really like to see setup to get it running / try it out myself as well.
do note there are ways to cache ssl data so connections are resumed / avoid handshake again for same user
60k/second across 24 cores, admittedly on very fast hardware (though not using all the cores that hardware has). Pretty much the same number on 16 cores.
In general, telling someone they're "way off" about performance and citing 6 year old benchmarks isn't a winning plan.
In any case, it's immaterial to what we're discussing. My slow laptop could verify all the signatures for a busy day of updates in a couple seconds, and it's clearly -possible- to put a big fraction of this horsepower in a router.
Apologize for the 'way off', its reach-able.
And agree its immaterial to signature checks, but since it was brought up...
Either way, there is probably something holding routers back from reaching that, would be fun to speculate.
How many internet routes change per second?
How many dollars per second would pay for enough CPU's to sign every changed route? I'd bet less than one... I'd guess 1000x less than one...
kern.version: JUNOS 18.XXX.X #0: XXXX-XX-XX 03:28:10 UTC builder@svl-junos-p001:/volume/build/junos/18.X/release/18.XXX.X/obj/powerpc/junos/bsd/kernels/JUNIPER-PPC/kernel
There certainly are some routers that use x86 based CPUs, but they're embedded versions which you'd be unlikely to use on a PC.
Raptor sells desktops with IBM POWER9 CPUs – https://www.raptorcs.com/content/base/products.html – they are expensive, and the same amount of money would buy you a much more powerful x86 system, but they exist.
The first namely being that nobody is going to do that unless they have too much time on their hands and don't actually run a real network. "Just loading routes" into a router is not really that straightforward.
We both know there are still garbagey nets out there using ARM32, MIPS and who knows what else out there for control plane processing. Only the big guys are gonna upgrade to support this.
Remember, there are two parts here: -Signing your IP address space (generating ROAs to reference your Origin ASN and Max Prefix Length). -Implementing Origin Validation in your network (getting an RPKI validator, grabbing ROAs, talking RTR to routers).
There's also another aspect here worth calling out. Which is that RPKI at the moment doesn't address path validation. Basically, stopping routing leaks or addressing as-path spoofing. AS Path Authorization is still in the early days at the IETF, but the idea is people can piggyback off the existing RPKI infrastructure to implement it without making any major changes. Some folks will say because there is no ASPA - that Origin Validation isn't worth the effort, but I disagree with that - any bit helps to stop hijacks.
Going back to ROA generation, there are two ways to sign announcements. You can go to your RIR and use their APIs or website to do it. Some of the RIRs have okay APIs, some are not so great (which is a pain if you are into automation). You can run in delegated RPKI mode and do your own CA, but that is a fair amount of work and only a few people on the planet do it (but props to those people who have open sourced the s/w and making this easier). The other two challenges with ROA generation are that if you screw it up, it's real painful to unwind. Revoking the ROA can take hours to take effect, or publishing a new/corrected ROA can take hours. If you screw up and specify the wrong ASNs (or lets say you migrate ASNs over), or screw up the max prefix length, you can invalidate your address space on the Internet and blackhole yourself. The other issue is with ARIN - specifically the fact that people running RPKI validators have to deliberately accept the ARIN Trust Anchor for legal reasons (ARIN indemnification). There is evidence that some people are installing the validators and not adding ARINs trust anchor, resulting in not accepting any ROAs that went through ARIN - which is a big chunk of the Internet.
As for Origin Validation, there have been some great open source efforts in the last few years to make this easier to adopt (and big thanks to those whove lowered the bar here). That said, it still means building/deploying this in a robust way, enabling RTR on all your routers and writing policy to reject invalids. It's just a bunch of work and for some networks, it takes time to roll that out globally. Then there is the question of which routes do you apply validation on? What if your have customers who screwed up ROAs? Now you have to coordinate and get them to clean up their game before you turn on the switch or poke holes (nasty). Finally, you have to agree that you are going to essentially drop invalid prefixes for destinations on the Internet. That means if someone on the other side of the world screws up a ROA, you're not routing to them. You've got to be prepared to tell a customer why they can't reach their destination on your network, but another network without origin validation can (like a competitor).
that said, there is no reason to not sign your address space today and start rolling origin validation. there are a number of network operators in the right spots (irc, mailing lists) who are there to help you and give you guidance if you need it.
ps - hi tom. i still have your enteract card from years ago and recall meeting you a few times at the third coast cafe.
Providers won't implement RPKI for the same reason they haven't implemented IRR filtering or BCP38 for the last 10 years. It adds operational overhead, adds another thing that might go wrong, and there is no financial incentive.
The BCP38 war is lost. Credit to those who try to do better but it's the hosting shops who are the biggest offenders. Most broadband and cloud providers do this proper. I chase down tcp syn reflection attacks and they always come from the same types of hosters.
RPKI is a lot saner thing to be using.
There are like 70,000 ASNs out there, so a lot of orgs need to implement. But you’re right, if all the Tier 1’s do it we’ll be in a good place.
The “problem” with it is it doesn’t solve the path validation problem, so while it helps it doesn’t fix BGP completely.
I have been a huge fan of Hurricane Electric (he.net) for over ten years and have done a lot of evangelizing ... rsync.net uses he.net pops all over the world (except for Zurich, where we use init7...).
They have been very progressive, clueful and efficient in all of our dealings with them.
So I am surprised to see them marked unsafe. I have emailed my point of contact there and asked for some explanation - perhaps I can update this comment in a bit ...
My ISP had one of these boxes and was quite proud of it. It worked really well against BGP idiocy. It might not have worked against a concerted attack, but it did stop several of the "Ooops. All the routes are belong to us." problems that seem to be the "normal" BGP "attacks".
I am surprised that these big players don't already have something that does something similar.
Maybe the relevant parties didn’t get the message because the call was coming from inside the building. [1]
[0] https://en.wikipedia.org/wiki/Room_641A
[1] https://tvtropes.org/pmwiki/pmwiki.php/Main/TheCallsAreComin...
The internet community (I.e. routing guys/Nanog/ietf etc) is fairly open. I’ve not heard much of such approaches being used. It is a very interesting idea.... I guess you gotta weight delaying inserting an update with potentially blackholing a destination until you do.
I agree that this approach isn’t really suitable for much else because it’s much too overt and likely to notify the target. Modern engagements use BGP hijacks as a critical tool with a lot of capabilities but also extreme visibility and publicity. So it’s not good for most jobs as other better suited tools for those jobs already exist. [0] [1]
[0] https://en.wikipedia.org/wiki/Operation_Onymous
[1] https://arstechnica.com/tech-policy/2015/11/fbi-the-allegati...
rpki-client 6.6p1 was released Apr 13, 2020: https://www.rpki-client.org/txt/rpki-client-6.6p1.txt
* https://man.openbsd.org/rpki-client
Looks like there may be problems with the mirror sites, a generated tarball is on the official portable github, but it may be worth waiting for an official announcement as github can re-roll these (it's not an uploaded release asset): https://github.com/rpki-client/rpki-client-portable/releases
you can also work with https://github.com/rpki-client/rpki-client-portable currently runs on a bunch of systems! coming to packages in the popular formats close to you soon!
[1] https://www.scion-architecture.net/
[2] https://www.scion-architecture.net/pages/publications/
[3] https://news.ycombinator.com/item?id=21546214
[4] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
They deserve to be called out for this. It’s not hard to implement RPKI. Only valid excuse is if your routers don’t support it.
Signing ROAs is trivially easy in the RIPE region. Why haven’t they done so before the pandemic???
Wasting time with this response instead isn’t maybe the best use of their time.
Netravnen kindly provides a route export compatible with GoRTR and Routinator [2], which has been working nicely for me.
[1] https://dn42.us
The trick is to get something VPs / "Decision Makers" can use to make decisions that's easy for them to digest especially if they are not technically sophisticated. This meets that criteria.
They should add microsoft azure to this list.
This could absolutely become an RFP requirement / preference point for a lot of compliance focused / not only tech focused buyers (govt / large agencies and companies)
A huge thumbs up!
Here was the initial commit which added the first diagram (originally there was only one):
But you’re totally correct about the JS only toggling between path="happy" and path="sad"
[1]: https://graphics.reuters.com/CHINA-HEALTH-SOUTHKOREA-CLUSTER...
What, to me, would have provided a little more value would have been to diagram how BGP hijack happens (visualize a router announcing the wrong route), and how RPKI solves the issue. Of course, those 2 things are probably much harder to diagram.
edit: re-phrased a sentence.
If you don't agree that this is news.ycombinator.com and believe instead it's 4chan or Reddit, then the Web PKI can't help you, and "improving" the Web PKI to some people decide this is Apple and others that it's PornHub is pointless. If you want other names, go build your own network.
In RPKI the identities aren't DNS names like in the Web PKI they're number resources - IP addresses and Autonomous System numbers. Again though, if you can't agree with everybody else about global identity you can't participate in the network.
If you believe maybe 1.1.1.1 is the IP address of your PC and everybody else thinks it's a distributed DNS service run by Cloudflare, there's no purpose to trying to allow us to "agree to disagree". We're right, and you're wrong, go away.
Having global agreement about identity doesn't magically mean we all agree on who to trust, just because I agree with you that Reddit is Reddit, doesn't mean I agree about how much faith to put in a post you saw there.
I remember the first time i setup a rack of servers in a cage in a datacenter for a company i founded. We bought a block of IPs in bulk and then we bought an interconnect from a provider within the datacenter. To get those IPs pointing to our server we had our severs announce ownership over BGP. It's that easy.
Usually BGP messages are filtered out by routers. Otherwise home users would announce ownership of the Google addresses and have all those messages come to them for example. But if you have access to an interconnect in a datacenter you can state you own whatever IP addresses you want. There's really nothing at all stopping it right now.
Also, normally you have your router announce routes over BGP, not your servers.
It’ll be more secure, sure. But RPKI only addresses origin validation, not path validation. It won’t stop me announcing your space spuriously provided it has your AS as the origin. Path-validation a la BGPSEC would be needed to stop that. But that’s an extremely difficult problem to solve given the amount of churn in the global routing table. The amount of crypto validation routers would need to do is prohibitive. And Moore’s law doesn’t help because as CPU power goes up so do the key sizes we need to use.
Either way people should implement RPKI, or at least sign ROAs for their space. It’s easy to do and makes a bit improvement.
To your example, airlines could screen passengers flying out of Eastdakota Regional Airport but nowhere else.
But, more generally, I think the network engineers at ISPs want to implement RPKI. It’s the managers who haven’t prioritized. Hopefully this helps escalate it as a priority.
I really appreciate this kind of meta-commentary on the recent trend of single purpose sites. It would be easy to dismiss them, but they’re as much a part of the web as any other content a browser can render. It’s a sign of a mature platform when you have trends and norms while also admitting outliers and oddities.
Which is to say: Please don't advocate for behaviors that harass line employees at corps you don't like.
Would it come down to an irresponsible ISP blindly trusting the bad router?
It does seem important for not putting this burden on each ISP, just trying to understand the scope of all this.
As for whats stopping the announcement of bad routes? Mostly just the ISPs, the big transit providers, and the IX's.
The problem isn't the small users. You, as a nefarious individual, are unlikely to be able to cause much real damage. In datacenters where you don't bring your own dedicated transit (expensive), you have to tell them your ASN and IP information so it gets whitelisted.
The problem is large players. If China Telecom wants to claim Google's IPs... well the entire world's transit providers may not acknowledge that - but enough will to cause a real problem. More examples: https://en.wikipedia.org/wiki/BGP_hijacking#Public_incidents