StarCraft II: signing in
S2
From opening Front to an encrypted Sunken connection: sign-in, choosing the game account, and handing the session over.
| # | Client | Server | What happens | Confidence | |
|---|---|---|---|---|---|
| Front: connect | |||||
| 1 | TCP 1119 → TLS → WebSocket v1.rpc.battle.net |
→ | One WebSocket message per RPC message. | ✅ Verified | |
| 2 | ConnectionService / 1 |
→ | ConnectRequest. service_id 0, token 0, asking for bindless RPC. |
⚠️ Single source | |
| Front: sign in | |||||
| 3 | AuthenticationServer / 1 |
→ | LogonRequest: program S2, platform, locale, SDK identity. Includes the reusable credential if the client has one. |
⚠️ Single source | |
| 4 | ← | ChallengeNotify / 3 |
Only when needed: sends the client to Blizzard's web sign-in. No response. | ⚠️ Single source | |
| 5 | Web sign-in HTTPS |
→ | Blizzard's own sign-in page handles passwords, multi-factor authentication and CAPTCHA. It isn't part of the RPC protocol. | ⚠️ Single source | |
| 6 | AuthenticationServer / 7 |
→ | VerifyWebCredentialsRequest with the short-lived credential from the web sign-in. |
⚠️ Single source | |
| 7 | ← | AuthenticationClient / 5 |
LogonResult: account, StarCraft II game accounts, region and a 64-byte session key. |
⚠️ Single source | |
| 8 | AuthenticationServer / 8 |
→ | Asks for a new reusable credential for next time. | ⚠️ Single source | |
| Front: request the handoff | |||||
| 9 | GameUtilities / 1 |
→ | ClientRequest with the first StarCraft II game account and the session key. |
⚠️ Single source | |
| 10 | ← | GameUtilities / 1 response |
Sunken's address, a 64-byte session seed, and a bit-packed LogonResponse3. |
⚠️ Single source | |
| Sunken: take over the session | |||||
| 11 | New TCP connection to Sunken TCP |
→ | Opened before Front is closed. | ⚠️ Single source | |
| 12 | WebSocket close |
→ | Front is closed directly with a WebSocket close frame. | ⚠️ Single source | |
| 13 | Auth / 1 ResumeRequest |
→ | Sent in plain text once Front has closed. Its proof shows the client holds the session seed, binding the new connection to the account. | ⚠️ Single source | |
| 14 | ← | Resume proof |
The client must check the server's proof before going on. | ⚠️ Single source | |
| 15 | Conn / 5 EnableEncryption |
→ | Turns on RC4, with separate keys for each direction. | ⚠️ Single source | |
| Sunken: encrypted | |||||
| 16 | ← | Service records |
Chat, matchmaking, profiles and every other StarCraft II service, as bit-packed records. | ⚠️ Single source | |
Remarks
Blizzard calls handing the session from Front to Sunken Resume. Front proves who the player is; Sunken then only needs proof that the new connection holds the session seed Front issued.
See Front RPC, Front messages and Sunken records for the formats used in each step.
Sources and credits
- SC2Docs, by Warrior: the full connection sequence
- d4-bnet-mitm (a Diablo IV Battle.net proxy): independent source used to cross-check the Front framing and RPC header