¿Cómo funciona Timeseal? [cerrado]


8

Sé que los fics (servidor gratuito de ajedrez de Internet: www.freechess.org/) utilizan un programa llamado timeseal para medir el tiempo que un usuario necesitaba para moverse. Este timeeal es una medida de tiempo en el cliente. Medir en el cliente es mucho mejor y más justo que medir el tiempo en el servidor, ya que no pierde tiempo solo por tener una mala conexión.

Pero dado que los fics tienen muchas interfaces para jugar, ¿qué impide que las interfaces no autorizadas digan que siempre usaron 0.1 segundos para cualquier movimiento? ¿Alguien sabe cómo se maneja esto?

Solo una nota al margen: no quiero construir una interfaz maliciosa, pero estoy tratando de construir algo similar que esté midiendo el tiempo del lado del cliente pero que no debería ser fácil de engañar.


2
Esta es probablemente una pregunta mejor formulada en un intercambio de programación, ya que no es realmente específica del ajedrez, incluso si esta implementación lo es. Supongo que hay alguna forma de ofuscación, ya que no puede cifrar el funcionamiento en la memoria sin tener la clave en algún lugar del cliente. (O podría hacer que resida en el servidor, pero eso derrota totalmente el punto de las operaciones del lado del cliente ...)
Jonathan Garber

Respuestas:


12

Soy un jugador de ajedrez y programador. En realidad, hubo un documento sobre esto hace 10 años sobre la marca de tiempo y otras medidas de seguridad en ICC. Debe leerlo con el entendimiento de que las cosas pueden ser diferentes ahora:

Cómo hacer trampa en el ajedrez: un análisis de seguridad del Internet Chess Club

Pero en general, tienes razón. Es posible manipular los tiempos reportados en timeseal (marca de tiempo). De hecho, lo he hecho, incluso con la interfaz oficial de ICC, solo para ver si se puede hacer. Los trucos de velocidad existen para muchos juegos y utilicé un programa de pirateo de velocidad existente para ralentizar mi reloj en lugar de acelerarlo (lo que normalmente harías para correr más rápido en un juego). El resultado fue un juego que jugué contra KBNK (un bot que te permite practicar B + N mate), en el que emparejé la computadora después de unos 30 movimientos en menos de 3 segundos. Promediar 0.1 segundos por movimiento más o menos en un compañero no trivial definitivamente no es natural.

Informé el efecto a los administradores del sitio, pero me dijeron que pudieron detectarlo. De hecho, tenían un registro de mis marcas de tiempo fraudulentas detectadas (en algún lugar ... supongo que pueden ver informes falsos evidentes, así como compararlo con las marcas de tiempo TCP / IP y ver si los números son razonables). Me dijeron que pudieron detectar tales trampas y por favor no usarlas, pero gracias por mi preocupación.

Entonces, sí, es posible manipular cualquier cosa del lado del cliente, pero también es posible que puedan detectar marcas de tiempo fraudulentas del lado del servidor. Los mejores servidores de ajedrez generalmente ya tienen un equipo de personas que investigan los informes de trampas, ya sea por computadora o por manipulación del reloj.


gracias - ese documento describe principalmente lo que estaba buscando.
Simon Meyer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.