Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

RPKI doesn't sign hops in the path for a BGP update. That means to hijack a prefix, all you need to do is to take a legitimate route and re-advertise it with your AS as the second hop in the path.

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.



But, with RPKI getting the cert infra in place, would that not then make it relatively easier to take that 2nd step, than when not even RPKI was in place?


The problem is the number of updates / changes that happen all the time in BGP, and having each router cryptographically validate each one / sign every update it sends.... it doesn’t scale well.

The BGPSEC theory is there but not sure if we can make a workable system.

https://www.potaroo.net/ispcol/2011-07/bgpsec.pdf


Current routers can't handle it, but ... it's not like routes changes that much that we're talking about an intolerable amount of RSA operations. We're really talking about fewer operations per day per router than some web frontends do in a second.


That doesn't sound right? In 2018 there were, according to Geoff Huston, days with 700,000 updates per day. That sounds high for handshakes/second.


OK, OK, my bad; a single large multicore NGINX box can only do about 100k full TLS handshakes per second with 2048 RSA. So it'd be several seconds.

On the other hand, verify is cheaper. My crappy laptop will do ~320k RSA-2048 verifications per second...


https://www.nginx.com/wp-content/uploads/2014/07/NGINX-SSL-P....

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


https://www.nginx.com/blog/testing-performance-nginx-ingress...

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.


Thanks for the reference, new benchmark looks nice.

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.



A modern CPU can do how many thousands of signatures per second?

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...


Routers don't typically use PC cpus.


For the BGP portion of the work they absolutely do.


Took me a minute to realize you were Job Snijders too lol.

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.


I'm not sure which platform you're talking about, mine uses PPC, which hasn't been in a desktop in quite some time.

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.


You can easily do origin validation on that type of CPU. It’s a very efficient lookup.


I guess we'll see what happens TBH. I didn't realize it'd been available in JunOS since 12.2 which covers a variety of devices (even some old stuff I've seen on customer sites), I've yet to come across a site with it deployed. Maybe I should do some consulting for folks.


Big isp core and edge routers absolutely use large Xeon CPUs.


If you count a single multicore 1.9Ghz CPU as a "Large Xeon" then you'd be right, otherwise thats incorrect.


8 cores in Cisco rsp880, released a few years ago so not that small back then.


Nothing stops you hooking up a regular PC to do route validation and run the BGP protocol and stuff, and load validated routes into any router you choose.


There are lots of things stopping that...

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.


A lot of people, including very large companies are doing this in production. Using a route reflector/route server isn’t new, and it is very common.


Doing it right is not easy, and most people don't do it correctly nor do they know how to make it work all the time.


Isn't that the entire idea behind the "software defined networking" craze?


There's certainly an aspect to that, but generally no.


> mine uses PPC, which hasn't been in a desktop in quite some time

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: