Ir al contenido

Cómo se comprueban las respuestas

En Lock Challenge, la respuesta correcta no está en la página que abre el jugador, y lo que esconde el candado tampoco. La respuesta del jugador va a nuestro servidor, el servidor decide, y solo una respuesta correcta trae de vuelta la revelación. Así funciona, esto es lo que impide y aquí es donde se queda corto.

De la respuesta del creador a la revelación, en cuatro pasos

  1. El creador fija la respuesta

    En el editor, el creador elige el código, la palabra, el patrón o el lugar que abre el candado, y el contenido que esconde.

  2. El servidor la guarda como hash

    Una respuesta escrita o tocada se convierte en un hash bcrypt antes de guardarse. Un hash demuestra que una respuesta es correcta sin poder leerse. Una posición GPS, un número aceptado con margen y una palabra a adivinar no se pueden comprobar con un hash: se quedan en el servidor como parámetros y nunca se envían a la página.

  3. El jugador envía una respuesta

    La página del jugador contiene el candado, la pregunta y la pista, no la respuesta. Lo que el jugador escribe o toca se envía al servidor.

  4. El servidor compara y envía la recompensa

    El servidor compara la respuesta con el hash o con sus propios parámetros. Una respuesta incorrecta recibe el mensaje de error del creador. Solo una respuesta correcta trae de vuelta el contenido oculto: el texto, el enlace, la imagen o la página.

Lo que impide

  • Leer la respuesta en el código fuente. La respuesta correcta no está en el HTML ni en los scripts que recibe el navegador: las herramientas de desarrollo no revelan nada.
  • Abrir la revelación sin resolver. El contenido oculto se monta en el servidor después de una respuesta correcta. Antes, no está en la página.
  • Probar todos los códigos. Cada candado acepta como máximo 30 respuestas por minuto desde una misma dirección IP, y 120 por minuto sumando todas las direcciones. El creador también puede fijar un número máximo de intentos, limitar el número de jugadores o cerrar el candado tras la primera resolución.

Qué respuesta se comprueba y cómo

  • Las respuestas escritas, los códigos numéricos, los patrones, las flechas, los colores, los interruptores y los accesos con usuario se guardan como hash bcrypt y se comparan en el servidor. Una respuesta escrita ignora mayúsculas y tildes, salvo que el creador diga lo contrario.
  • Una posición GPS, un número aceptado con margen y una palabra a adivinar se comprueban con parámetros guardados en el servidor. La página solo recibe lo necesario para jugar, como la distancia que cuenta como suficientemente cerca o el número de filas del tablero.
  • Una contraseña de acceso pedida antes de empezar el juego también se guarda como hash bcrypt.
  • Para que el editor pueda volver a mostrar al creador su respuesta, una segunda copia se cifra (AES-256-GCM) con una clave que guarda el servidor. Ninguna página de jugador la lee.

Lo que sí contiene la página, y la única excepción

La página del jugador contiene lo que el jugador tiene que leer: la pregunta, la pista, los títulos de los pasos y los mensajes que el creador escribió para una respuesta incorrecta y para una resolución. No es ahí donde va el secreto.

La única excepción es el candado musical que pide repetir una melodía. Sus notas se envían al navegador, porque los jugadores tienen que oírlas: en ese candado, alguien que sepa dónde mirar puede leer la respuesta en la página. Un candado musical en el que hay que adivinar la canción guarda el título como hash bcrypt, como cualquier respuesta escrita.

Los límites, con honestidad

  • Una respuesta compartida sigue compartida. El servidor comprueba la respuesta, no a la persona: un jugador que pasa el código permite a otros abrir el candado. Limitar los jugadores, cerrar tras la primera resolución, una contraseña de acceso o fechas de apertura y cierre reducen hasta dónde llega.
  • Hace falta conexión. La respuesta se comprueba en el servidor, así que un jugador sin red no puede abrir el candado. Basta con un wifi de invitados.
  • La melodía que repetir, como se explica arriba.

Lo que se registra sobre los jugadores

  • Los jugadores nunca crean una cuenta.
  • Un identificador aleatorio se guarda en una cookie, para que los intentos de un mismo jugador cuenten como una sola sesión.
  • Por cada respuesta: si era correcta, la dirección IP y el identificador del navegador (user agent). Por cada sesión: el número de intentos y de pistas, el tiempo empleado, el dispositivo, la página de procedencia y el idioma. El creador lo ve como estadísticas.
  • Una dirección de email o un nombre solo cuando el creador lo pide en la revelación. Va solo a ese creador, y Lock Challenge nunca le envía publicidad.
  • Las páginas de jugador son noindex: un candado y su título no aparecen en los buscadores.

Más detalles en la política de privacidad.

Preguntas

¿Puede un jugador encontrar la respuesta en el código fuente de la página?
No, salvo en un candado musical que pide repetir una melodía, cuyas notas están en la página. Las respuestas escritas o tocadas se guardan como hash bcrypt y se comparan en el servidor, y el GPS, el número y la palabra a adivinar se comprueban con parámetros que la página nunca recibe.
¿Está el contenido oculto en la página antes de resolver el candado?
No. El servidor solo devuelve la revelación tras una respuesta correcta. Cuando el creador exige una dirección de email o un nombre, la revelación también espera a que se dé.
¿Se pueden probar todos los códigos hasta acertar?
Cada candado acepta como máximo 30 respuestas por minuto desde una misma dirección IP y 120 por minuto sumando todas las direcciones. El creador también puede fijar un número máximo de intentos para el candado.
¿Necesita el jugador una cuenta?
No. Los jugadores abren un enlace o escanean un código QR. Sí necesitan conexión a internet, porque la respuesta se comprueba en el servidor.