You are reading:
Under the Surface of Azeroth:
A Network Baseline and Security Analysis
of Blizzard's World of Warcraft
The authentication process into the World of Warcraft universe is relatively straightforward. Once the version check has completed, the World of Warcraft login screen appears.
|
|
The login screen is a very graphical full-screen display complete with wisps of smoke, flaming torches, and an orchestral ovation. Even though the screen is rich with sensory input, there's absolutely nothing happening over the network. There are no packets transferred while the account information is entered into the login screen.
Once the "Login" button is pressed, a TCP connection on port 3724 is made to us.login.worldofwarcraft.com. The next obvious step is for the username and password to be sent to the central authentication sever. Although the password is not sent in plain text across the network, the account name is easily readable inside the network packet.
The authentication process actually occurs in three quick steps:
* The account name and account password is verified
* A list of available World of Warcraft Realms and IP addresses are received from the login server
* The character select screen is loaded
Verifying the username and password
The login process begins with sending the account name to the World of Warcraft login server in frame 6. This frame also contains the version number of the client so that the World of Warcraft login server can perform a final verification of the client software. Prior to this point, every version check could have been bypassed by simply disconnecting from the live Internet connection.
Frame 9 appears to be the password hash that was created by combining the password with the dynamic salt value. Because the salt is different every time, the password hash is also different each time. This provides additional account security because the account password is not only hashed, but the hashed value changes each time.
This analysis of the password transmission is an educated guess based on the information traversing the network. Although the details of the password transfer aren't public knowledge, it's useful to know that the password is not sent in the clear and the information transferred is different each time.




