Xbox Live
Xbox Live is an online multiplayer gaming and digital media delivery service created and operated by Microsoft. It was first made available to the Xbox system in November 2002. (Wikipedia) Xbox Live support for the original Xbox ended in April 15, 2010.
The Xbox Live architecture consists of Kerberos-based authentication tickets, with a Secure Gateway used to then access services (such as Matchmaking, Statistics/Leaderboards, and custom game servers)
Contents
Authentication servers
Authentication and access to Xbox Live services is controlled using the Kerberos protocol with a few proprietary customisations for the Xbox.
The first time an Xbox connects to Xbox Live from the factory, it'll connect to MACS.XBOXLIVE.COM and use a pre-shared key based from the Online Key, HDD Key, and a unique key present in all Xbox Live binaries. The server would then return a machine account that is then used for all further authentication (for example, to authenticate for the service to create a new Xbox Live user account).
padata-type | description |
---|---|
131 | ? |
204 | ? |
206 | Information about Xbox Version, Title, and Title version |
Matchmaking servers
Game servers
XDK Functions
function | description |
---|---|
XOnlineGetUsers(XONLINE_USER* XBLAccountusers, DWORD* numOfXBLiveAccounts) | The XOnlineGetUsers function will enumerate both the hard disk and any attached memory units looking for user accounts |
XOnlineTaskClose(XONLINETASK_HANDLE logonHandle) | Called to abort the authentication process. |
XOnlineStartup( XONLINE_STARTUP_PARAMS* ) | |
XOnlineLogon(XONLINE_USER* XBLLoggedOnUsers, DWORD* XBLservices, DWORD SERVICE_COUNT, NULL, XONLINETASK_HANDLE &logonHandle) | When a title calls XOnlineLogon to sign in, instead of blocking until the authentication completes, an asynchronous task handle is returned. As part of the authentication process a title must specify which services it will be using (XBLservices, SERVICE_COUNT). |
XOnlineTaskContinue(XONLINETASK_HANDLE logonHandle) | Called to check the status of XOnlineLogon. It will return XONLINETASK_S_RUNNING while the login process has not been completed. |
XOnlineLogonTaskGetResults(XONLINETASK_HANDLE logonHandle) | Will return XONLINE_S_LOGON_CONNECTION_ESTABLISHED when the task is successfully completed. Otherwise it will return an error code. |
XOnlineGetLogonUsers() | This returns a pointer to an array of XONLINE USER structures. This array is similar the XONLINE USER array we populated and passed into XOnlineLogon, but is updated with error status and permission flags for each user. |
XOnlineSetUserGuestNumber(dwUserFlags , 1) | |
XOnlineTitleUpdate(DWORD) | The XOnlineTitleUpdate function will boot into an updater application, which performs the actual update |
XOnlineGetServiceInfo(Service, ?) | XOnlineGetServiceInfo returns the connection status for a service |
XOnlineNotificationSetState |
Discontinuation of service
The service was officially discontinued on April 15th, 2010.
12 players decided to stay in a lobby of Halo 2 24/7 to keep a server running. The final player, Apache N4SIR was streaming the entire event, as the player count of 12 twindeled down to just him. At 11:40 PM PDT, on May 11th 2010, Apache N4SIR was booted from the game[1].