You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It might be possible to generate a HMAC with a NULL key and store this result in the DB.
When a new user connects to realmd a new key is generated and applied to hash in the DB.
The text was updated successfully, but these errors were encountered:
As the original implementer for this functionality, doing this seems overkill. The hashing, if the implementation is reasonable, is actually quite cheap and having hard-coded values makes it even more so, although it does somewhat undermine it if the values are fixed. A simpler solution to that is to simply calculate it based on a new key/seed on each startup... or just accept the small performance hit.
Having said that, it should be treated purely as a 'nice to have' for users that might be unknowingly using a client that may not be compatible with the server. It should not be treated as a method of preventing logins from users that are intentionally using clients other than those approved, because bypassing it is trivial.
This is just a thought, that I might test myself when I have time.
In
realmd
theVersionChallenge
is used to check if any client modifications are made.Since generating a hash for the gameclient data is compute expensive and requires the server to have the client data, a custom project is used to precompute this HMAC. (vmangos/LoginHashCalculator)
The key of this HMAC is hardcoded in this project.
https://github.com/vmangos/LoginHashCalculator/blob/3f9c1e97c0faebfd4dee8583df1ef6c479e6f16b/LoginHashCalculator/main.cpp#L20
The key is currently also hardcoded in
AuthSocket
ofrealmd
.core/src/realmd/AuthSocket.cpp
Line 184 in a1cd3ab
It might be possible to generate a HMAC with a
NULL
key and store this result in the DB.When a new user connects to
realmd
a new key is generated and applied to hash in the DB.The text was updated successfully, but these errors were encountered: