Aunque la respuesta de Philipp es perfectamente buena, hay una forma ligeramente diferente que no requiere una conexión entre el servidor de inicio de sesión y el servidor del juego, lo cual es útil si dicha conexión es difícil.
- Cuando el usuario se autentica con éxito en el servidor de inicio de sesión, se le envía una dirección de servidor de juego y un token de inicio de sesión como se indicó anteriormente. Sin embargo, este token consta de 2 partes: el tiempo en el servidor de inicio de sesión y un hash de ese número más su nombre de usuario, su dirección IP, la dirección IP o ID del servidor del juego y una clave secreta que solo usted conoce.
- El cliente intenta iniciar sesión en el servidor de juego proporcionado enviando este token. El servidor forma el mismo hash que antes, según la información en el token de inicio de sesión más su propia dirección IP / ID y la clave secreta. Si este hash coincide con el del token, sabes que el jugador se autenticó correctamente. Luego verifique que la fecha no sea demasiado antigua (p. Ej., Más de 1 minuto).
Esto funciona porque:
- No se puede copiar y reutilizar ya que la fecha caducará.
- No se puede construir sin un nuevo inicio de sesión sin conocer la clave secreta.
- No puede ser fácilmente interceptado por otra persona (por ejemplo, con un sniffer de paquetes) y utilizado porque la dirección IP original se utiliza para construirlo.
- No se puede usar para una cuenta diferente ya que el nombre de usuario forma parte del hash.
- No se puede usar para inicios de sesión simultáneos en diferentes servidores de juegos, ya que la dirección ID / IP del servidor forma parte del hash.
O, para decirlo de manera más simple, el hash asegura que es casi imposible que el remitente haya falsificado su token de inicio de sesión, por lo que se puede confiar en la información del token.
Al igual que con cualquier hash orientado a la seguridad, use la mejor función de hash que pueda obtener, en este momento a la gente parece gustarle bcrypt, PBKDF2 y scrypt, y asegúrese de que su clave secreta sea muy larga para que la reproducción de la fuerza bruta sea menos práctica.