Live data from Hacker News

Exploring the Halo 1 System Link Protocol

hllmn.net

51–60 of 65 posts

Re: Exploring the Halo 1 System Link Protocol

#51
post #47

Earlier quoted context omitted.

Xbox Security Protocol. We liked to add X to things back then.

Since you branded it, did you use it in any other games by chance?

What they're talking about is the base protocol for all Xbox system link and Xbox live games.

AFAIK, it persists to this day, extended with newer features (and crypto primitives).

Re: Exploring the Halo 1 System Link Protocol

#52

Huge fan of Halo 1, and for me, the original (via LAN, XLAN or Xlink Kai) is still the preferred way to play compared to Halo MCC (RIP XBconnect). I dabble in map mods so this is mostly over my head, but interesting read. Don't know if would help your research: but are you aware of a mod/mappack called Halo 1: NHE (No Host Edition)? It's a hacky way of using a third box to host the system link game. http://halo1nhe.c…

4 year old account, and this is your first comment? :D You might be interested in super custom xISO with NMP, NMPv2, CXE, etc. I mentioned it in another comment. I'm going to upload to Internet Archive soon.

This is officially my favorite thread on HN, ever. Just waiting for rothgar to show up, sorry @rothgar, I should've hit you up for some Halo while I was in Seattle (and the k8s space).

Re: Exploring the Halo 1 System Link Protocol

#53
post #44

Halo 1 + system link + XBConnect is responsible for a huge swath of my career, life, friendships. I remember sitting in my parents basement as a [very young person] marveling at XBC and wondering how it worked. I can still remember the layout of the webpage I found diving into the protocol, how discovery worked, broadcasting discovery packets to 0.0.0.1. I remember opening Ethereal and seeing the packets. I remember,…

For your last edit, I've only seen that glitch twice: once in a youtube video [1], and once in one of my own games on XBConnect. I heard similar unsubstantiated claims of intentionally reproducing the glitch, but didn't dig too far into it myself.

[1]: https://www.youtube.com/watch?v=TEkmqKYhxnU

Re: Exploring the Halo 1 System Link Protocol

#54

Nice work! Always fun to see something I wrote long ago reverse engineered. The packet format was indeed inspired by ESP over UDP, and I named it XSP. After system link shipped with the original launch of the console, I also worked on Xbox Live networking, including the client/server interactions and the design and implementation of the front-end Security Gateways that all Xboxes would talk to, first to authenticate…

Have you ever connected with the folks behind XBConnect?

No, I never spoke with them.

Re: Exploring the Halo 1 System Link Protocol

#55
post #44

Halo 1 + system link + XBConnect is responsible for a huge swath of my career, life, friendships. I remember sitting in my parents basement as a [very young person] marveling at XBC and wondering how it worked. I can still remember the layout of the webpage I found diving into the protocol, how discovery worked, broadcasting discovery packets to 0.0.0.1. I remember opening Ethereal and seeing the packets. I remember,…

j up, don't rush the count

You're speaking my language friend, and honestly half of this reads like I could have written it myself. I was obsessed with video games and knew I wanted to be a programmer before CE, but H1 on XBC, combined with LANs in high school and thousands of hours of split screen in college truly laid the passion for "how does all this work" and my current career.

I don't play CE as much, my doubles partner and I still hop on MCC every few months for a little nostalgia hit, but we're admittedly not the types that felt that Halo completely died after CE (although nothing ever felt as good after), so these days we generally play BTB Reach/H3, or 4s or Squad Battle on Infinite.

Re: Exploring the Halo 1 System Link Protocol

#56

Earlier quoted context omitted.

Nice! You did a great job on the protocol. Probably my only complaint on the XSP side of things is the fact that you have to do relatively complex parsing of the XSP packets before you can get to the point of verifying the signature of the packet. Seems like all of the corner cases were handled well in the implementation on the boxes, but as someone who does auth/cryptography in my day job, it kind of gives me the he…

That's a valid point about complex parsing. I remember being very concerned about adding unnecessary overhead to each packet during encapsulation. As for the SG, it primarily authenticated the Xbox machine account using Kerberos and then maintained a security association, accepted heartbeats, authenticated and decrypted incoming ESP-UDP packets into IP packets that it forwarded to the backend servers. Responses from…

The SG had to do a few TCP-level things for NAT purposes like rewriting checksums, and it would sometimes synthesize a RST. No layer 7 processing at all

There was a low level protocol allowing backends to get some extra metadata about a connection

Re: Exploring the Halo 1 System Link Protocol

#57

Nice work! Always fun to see something I wrote long ago reverse engineered. The packet format was indeed inspired by ESP over UDP, and I named it XSP. After system link shipped with the original launch of the console, I also worked on Xbox Live networking, including the client/server interactions and the design and implementation of the front-end Security Gateways that all Xboxes would talk to, first to authenticate…

I've had many an adventure with secure gateways on varied xenon Call of Duty games. Nice to meet the person behind them!

Re: Exploring the Halo 1 System Link Protocol

#58

Huge fan of Halo 1, and for me, the original (via LAN, XLAN or Xlink Kai) is still the preferred way to play compared to Halo MCC (RIP XBconnect). I dabble in map mods so this is mostly over my head, but interesting read. Don't know if would help your research: but are you aware of a mod/mappack called Halo 1: NHE (No Host Edition)? It's a hacky way of using a third box to host the system link game. http://halo1nhe.c…

NHE looks interesting, they seem to have modified all clients to make the host player teleport above the map. With the current protocol, it seems like it is impossible to achieve this without modifying the guest clients as well. And by modifying all clients they are also able to add extra maps and make gameplay changes.

Re: Exploring the Halo 1 System Link Protocol

#59
post #44

Halo 1 + system link + XBConnect is responsible for a huge swath of my career, life, friendships. I remember sitting in my parents basement as a [very young person] marveling at XBC and wondering how it worked. I can still remember the layout of the webpage I found diving into the protocol, how discovery worked, broadcasting discovery packets to 0.0.0.1. I remember opening Ethereal and seeing the packets. I remember,…

>Especially given the way MCC massacred Halo1 with the horrendous Halo 1 PC port back to Xbox, and then later to PC again.

MCC launched in a terrible state, but it's had a crazy amount of deep improvements over the years and I think all of the big known issues of the original Halo PC port have been addressed since a few years ago.

Re: Exploring the Halo 1 System Link Protocol

#60
post #7

Earlier quoted context omitted.

Thanks, I was initially surprised that they were encrypted but I can speculate on a few potential reasons: - The Xbox was designed to be able to play online via Xbox Live (e.g. with Halo 2 that came out later in 2004), and they might have simply reused the network stack for System Link over LAN. I looked a little bit at Halo 2 system link, it uses the same system calls from the kernel but the protocol seems to be mor…

From what I've heard from microsofties over beers, it was really the second one. They didn't expect developers to write network code in ~2001 that didn't have memory safety vulnerabilities and wanted a barrier there between simple overflows and system security.

Thanks for the answer. Like 5 years ago I tried snooping around halo system link packets because I just assumed there was no encryption and was disappointed. Wasn't this multiplayer rushed out in a month? Why on earth is a LAN protocol secure in 2001?! lol
Post reply on HN