Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
WoW
Talk
English
Views
Read
Edit
History
More
Search
Navigation
Home
Random page
Help using wiki
Editions
for WoW
for WildStar
for Solar2D
Documentation
for WoW
for WildStar
Reference
WoW
⦁ FrameXML
⦁ AddOns
⦁ API
⦁ WoW Lua
WildStar
⦁ AddOns
⦁ API
⦁ WildStar Lua
Engine
Tools
What links here
Related changes
Special pages
Page information
Site
Recent Changes
Editing
WoW:Battle.net Mobile Authenticator Specification
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Server Communication== ===Authenticator Initialization=== ====Authenticator Initialization Request==== Initialization request is an HTTP POST request to * ''<nowiki>http://m.eu.mobileservice.blizzard.com/enrollment/enroll.htm</nowiki>'' (Europe) (old) * ''<nowiki>http://m.us.mobileservice.blizzard.com/enrollment/enroll.htm</nowiki>'' (North America) (old) * ''<nowiki>http://mobile-service.blizzard.com/enrollment/enroll.htm</nowiki>'' (new) with Content-type "application/octet-stream". The plaintext of the request has the following format: {| class="darktable" |- ! style="width:15%;" align="left" | function code ! style="width:40%;" align="left" | response encryption key ! style="width:15%;" align="left" | region code ! style="width:30%;" align="left" | mobile model |- | 1 byte | 37 bytes | 2 bytes | 16 bytes |} ;Function code : always 0x01 ;Response encryption key : Random bytes for one time pad encryption of the response. Blizzard is using the default Java random number generator (initialized with the current system time), hashes the created random bytes via SHA1 and is using the hash output for the key. But every other good source of randomness would be also OK here. ;Region code : "EU" or "US" but doesn't have any meaning - distinction is only done via the URL and not via the code here. ;Mobile model : Default value is "Motorola RAZR v3" but every other 16 bytes would be also OK. Seems to be only a statistical record. The plaintext is then encrypted with RSA-1024 (upper bytes of the RSA-block are padded with zeros). The modulus is 0x955e4bd989f3917d2f15544a7e0504eb9d7bb66b6f8a2fe470e453c779200e5e 3ad2e43a02d06c4adbd8d328f1a426b83658e88bfd949b2af4eaf30054673a14 19a250fa4cc1278d12855b5b25818d162c6e6ee2ab4a350d401d78f6ddb99711 e72626b48bd8b5b0b7f3acf9ea3c9e0005fee59e19136cdb7c83f2ab8b0a2a99 (big endian) and the public exponent is "0x101" (257). The resulting 128 encrypted bytes are sent to the server within the HTTP-POST-request. Europe and North America are using the same keys for RSA. ====Authenticator Initialization Response==== The HTTP body of the response has the following format: {| class="darktable" |- ! style="width:40%;" align="left" | current server time ! style="width:60%;" align="left" | encrypted initialization data |- | 8 bytes | 37 bytes |} ;Current server time : Milliseconds since midnight, January 1, 1970 UTC (like returnded by System.currentTimeMillis() in Java), big endian format. ;Encrypted initialization data : One time pad encrypted data with initialization information for the authenticator. The decryption key is the key sent to the server within the initialization request. After decryption the initialization information has the following format: {| class="darktable" |- ! style="width:60%;" align="left" | secret key for code calculation ! style="width:40%;" align="left" | authenticator serial number |- | 20 bytes | 17 bytes |} ;Secret key for code calculation : Secret key generated by the server for calculation of the authenticator codes. Refer to [[#Code Calculation|code calculation section]] for the usage of this key. The key ''MUST'' be stored within the authenticator as long as it is linked to a Battle.net account and ''MUST'' kept secret. ;Authenticator serial number : Serial number of the authenticator used for linking it to a Battle.net account. It has the format "EU-1234-5678-9012" or "US-1234-5678-9012". The number seems to be simply incremented by the server for every initialization request. There should be no way to calculate the secret key corresponding to this serial number. The serial number ''SHOULD'' be stored together with the secret key. Though it isn't any longer possible to link a single authenticator to more than one Battle.net account at a time<ref>Blizzard Entertainment: Battle.net Blog: [http://us.battle.net/sc2/en/blog/882513 Battle.net Authenticator Change] (Oct 7, 2010)</ref>, but maybe the support will ask for the serial number if there is a problem with the authenticator. ===Authenticator Time Synchronization=== ====Authenticator Time Synchronization Request==== Synchronization request is simply an HTTP GET request to :* ''<nowiki>http://m.eu.mobileservice.blizzard.com/enrollment/time.htm</nowiki>'' (Europe) (old) :* ''<nowiki>http://m.us.mobileservice.blizzard.com/enrollment/time.htm</nowiki>'' (North America) (old) :* ''<nowiki>http://mobile-service.blizzard.com/enrollment/time.htm</nowiki>'' (new) ====Authenticator Time Synchronization Response==== The HTTP body of the response has the following format: {| class="darktable" |- ! align="left" | current server time |- | 8 bytes |} ;Current server time : Milliseconds since midnight, January 1, 1970 UTC (like returned by System.currentTimeMillis() in Java), big endian format.
Summary:
Please note that all contributions to AddOn Studio are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
AddOn Studio Wiki:Copyrights
for details).
Submissions must be written by you, or copied from a public domain or similar free resource (see
AddOn Studio Wiki:Copyrights
for details).
Cancel
Editing help
(opens in new window)