I have a very simple idea that can allow allow authentication of players without additional infrastructure.
Method
The client chooses a string of characters. The client then hashes this string with a one-way algorithm. Then, the hash is sent to the server where the client is trying to connect. On the server side, the hash is hashed again. This final hash is stored in a file on the server, and connected with the name of the client when he first connected. Then, a player could execute a command to check who another player is, and, if his hash is stored in the server, the name of the player is sent to the querying client.
Pros
- No additional infrastructure
- Protects against both malicious servers and clients (if hashing only takes place on the client side, then the client could send a fake hash and impersonate a player. If hashing only took place on the server side, the server admin could impersonate players by knowing their unhashed ID strings.
Cons
- Only on a per-server basis
I urge the developers to implement this system as soon as possible.