extremo desbloquear como cifrado encryption client-server bots

encryption - desbloquear - Encriptación del protocolo MMORPG



amazon s3 (7)

¿Alguien sabe cuál es la tendencia de los desarrolladores de MMORPG a cifrar sus protocolos cliente / servidor en estos días?

Los pros y los contras son los siguientes.

Protocolo de cifrado

  • protege los secretos comerciales con respecto al protocolo cliente / servidor en cierta medida?
  • Botting no se detiene, solo se cambia porque la gente creará bots que leen los estados de la pantalla y desencadenan los eventos de mouse + teclado que se desarrollarán, simplemente mitigando el desarrollo de bots en lugar de detenerlos de todos modos. A pesar de que el desarrollo de bot es algo menor en el suministro, pero la demanda sigue ahí, simplemente obtienen mejores ofertas en rentacoder.com

Texto plano regular:

  • bots más avanzados ya que los desarrolladores pueden inyectar sus propios datagramas en el protocolo cliente / servidor. (es decir: atravesando muros, teletransportándose ... que el lado del servidor debe verificar ahora, lo que a su vez conduce a un concurso de desarrollo entre parches exploits mediante inyección (que consume mucho tiempo)

@Samuel y coxymla:

Eso no es del todo cierto. Si el protocolo usa cifrado asincrónico donde la clave privada del servidor es desconocida para el cliente, entonces el bot no puede descifrar la salida del cliente. Esto significa que para modificar los datos salientes, el bot realmente tiene que enganchar el proceso del juego e interceptar los datos antes de cifrarlos.

Es lo suficientemente simple en teoría, pero puede ser técnicamente desafiante. Al menos estás elevando el listón para los atacantes.

@Zombies: Más allá del intercambio de claves inicial, la mayoría de los esquemas de cifrado no requieren transferencia de datos adicional. Además, si bien hay un trabajo adicional por hacer cuando se utiliza el cifrado, la transferencia de datos sin duda será limitada por la red y no por el procesador.

Dicho claramente, el cifrado no conduce a una transferencia de datos más lenta / más.

Nota de precaución: esta página de Wikipedia contiene una historia sobre un error común de cifrado realizado por los desarrolladores de Phantasy Star Online. Vale la pena leerlo.


Como mínimo, el protocolo de inicio de sesión del MMO debe cifrarse para que las personas de la red del jugador no puedan analizar la información de su cuenta.

Esta razón se puede extender fácilmente a otros datos que envía el jugador. Por ejemplo, el chat con otros jugadores puede contener información confidencial. Si el juego ya tiene problemas para configurar un protocolo de encriptación para el proceso de inicio de sesión, probablemente no haya muchas razones para desactivarlo una vez que hayas terminado.


Es bastante irrelevante. Me imagino que encriptar los metadatos, como la información de inicio de sesión y la información de la sesión, pero luego enviar los datos de la mecánica del juego en forma clara. Después de todo, el servidor no puede confiar en el cliente de todos modos (no ha sido pirateado).

La mayoría de los piratas informáticos se engancharán al proceso de ejecución y hurgarán con su memoria, lo cual es totalmente indetectable: a menudo ponen algún reconocimiento de firma que intente detectar hackbots conocidos que se ejecutan en la memoria, pero esto es esencialmente inútil de lo contrario.

Otra técnica posible para detectar hackbots es detectar patrones de juego de los conocidos.

Cifrar los datos no hace nada, ya que los hackbots atacan al cliente, en la memoria.


La razón principal por la cual los desarrolladores deben agregar cifrado a sus protocolos es por razones de marketing. Simplemente necesitan asegurarse de que su servidor sea solo uno (por ejemplo, si quieren (o ya quieren) ser miembros de pago) y nadie simplemente escribirá su propio emulador de servidor después de descubrir el protocolo y lo ofrecerá de forma gratuita. .


Tenía la impresión de que ninguno de los principales MMO utilizaba el transporte de datos cifrados. Como dijo Samuel, en realidad no se obtiene ningún tipo de seguridad, ya que el cliente también debe poder cifrar y descifrar los datos.


Si tiene tiempo, este video de una hora sobre netcode tiene una parte sobre el cifrado (entre otras cosas, como la sincronización del cliente y la compresión de paquetes).

La cita relevante del video es esta: CPU es barata. Simplemente encripte, tiene suficiente tiempo de CPU para cifrar y el beneficio del cifrado es alto (los clientes no verán los comandos de su cliente, aumentarán la barra de piratería, etc.).


Agregar cifrado a sus paquetes solo ralentizará a una persona que escriba un bot por oh, unos segundos. Su cliente necesitaría saber cómo cifrar para enviar datos al servidor y cómo descifrar los datos del servidor, y también lo haría el bot.

Con respecto a evitar el combeo a través de muros, debe hacer estos controles siempre. Nunca confíe en la información del usuario, incluso si ha escrito usted mismo.

Como se mencionó en las llamadas rápidas , aún debe implementar el cifrado de algunos datos. Específicamente los que contienen datos confidenciales, como inicios de sesión y chat.