Battleships Over BGP

The Border Gateway Protocol (BGP) is one of the foundations of the internet. It’s how the big routers that shift data around the Internet talk to each other, passing info on where they can send data to. It’s a simple protocol, with each router sending text messages that advertise the routes that they carry. The administrators of these routers create communities, each with an individual code, and this information is passed between routers. Most top-level ISPs don’t spread this data far, but [Ben Cox] realized that his ISP did. and that he could use this as an interesting way to transmit data over the Internet. What data to send? He decided to play battleships.

He did this by writing some code that encoded the battleship board into a new community announcement. By squishing the data representing the board down, he was able to send the entire board of blank spaces, hits and misses into a single 16-bit number that was sent as a part of this community announcement. At the other end of the game,  a friend running the same software would receive this announcement, see the change and be able to send a move in response.

Needless to say, this is not something that should be done lightly. Both [Ben] in London and his opponent in New York are running large networks, and they didn’t want to break anything. So, they limited the system to one move every 30 seconds. This was to avoid what’s called BGP Route Flapping, where the routers start blocking BGP data because there are too many changes. Despite their precautions, the game was interrupted for 45 minutes when the routers sending the data began damping the connection, so they increased the time between moves to 90 seconds.

Is there any point or purpose to this hack? Not really, except to show that, with a bit of thought, it is possible to send data in ways that you might not expect.

14 thoughts on “Battleships Over BGP

  1. “By squishing the data representing the board down, he was able to send the entire board of blank spaces, hits and misses into a single 16-bit number” – I’m not sure where you get this from, but this is of course not possible. If you read the article, a single *move* is represented by a 16-bit number.

    1. This already happened. Fake a letter of authorization for the target IP range and get a BGP feed set up to your router. Then announce their netblock. It will become unreachable for part of the internet.

  2. “Is there any point or purpose to this hack? Not really, except to show that, with a bit of thought, it is possible to send data in ways that you might not expect.”

    NSA, take note.

    1. Communication is pretty interesting. For most bad things you just need a few bits of information. This can be accomplished a lot of ways…

      From a story: In the second world war there where was people smuggling, for the good. One of the boys was send out to get/sell either red cabbages or white cabbages. meaning, there is a people drop off to night or no drop off tonight. To the Germans it was meaningless. To them it was life or death.

      In today’s tech:
      Just turn on/off a website. Ping a know address. Visit a page or not. There are so many ways to distribute a few bits of information the NSA has the job cut out for them.

Leave a Reply to NimajaminCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.