Zum Inhalt springen

Wie Antworten geprüft werden

Bei Lock Challenge steht die richtige Antwort nicht in der Seite, die ein Spieler öffnet, und auch nicht das, was das Schloss verbirgt. Die Antwort des Spielers geht an unseren Server, der Server entscheidet, und nur eine richtige Antwort bringt die Enthüllung zurück. So funktioniert das, das verhindert es, und hier sind seine Grenzen.

Von der Antwort des Erstellers bis zur Enthüllung, in vier Schritten

  1. Der Ersteller legt die Antwort fest

    Im Editor wählt der Ersteller den Code, das Wort, das Muster oder den Ort, der das Schloss öffnet, und den Inhalt, den es verbirgt.

  2. Der Server speichert sie als Hash

    Eine getippte oder angetippte Antwort wird vor dem Speichern in einen bcrypt-Hash umgewandelt. Ein Hash beweist, dass eine Antwort richtig ist, ohne selbst lesbar zu sein. Eine GPS-Position, eine Zahl mit Toleranz und ein Wordle-Wort lassen sich nicht gegen einen Hash prüfen: Sie bleiben als Parameter auf dem Server und werden nie an die Seite gesendet.

  3. Der Spieler sendet eine Antwort

    Die Seite des Spielers enthält das Schloss, die Frage und den Tipp, nicht die Antwort. Was der Spieler tippt oder antippt, wird an den Server gesendet.

  4. Der Server vergleicht und sendet dann die Belohnung

    Der Server vergleicht die Antwort mit dem Hash oder mit seinen eigenen Parametern. Eine falsche Antwort erhält die Fehlermeldung des Erstellers. Nur eine richtige Antwort bringt den verborgenen Inhalt zurück: den Text, den Link, das Bild oder die Seite.

Was das verhindert

  • Die Antwort im Quelltext der Seite lesen. Die richtige Antwort steht weder im HTML noch in den Skripten, die der Browser erhält, die Entwicklertools verraten also nichts.
  • Die Enthüllung öffnen, ohne zu lösen. Der verborgene Inhalt wird erst nach einer richtigen Antwort auf dem Server zusammengesetzt. Vorher ist er nicht in der Seite.
  • Jeden Code durchprobieren. Jedes Schloss nimmt von einer IP-Adresse höchstens 30 Antworten pro Minute an und über alle Adressen hinweg 120 pro Minute. Der Ersteller kann außerdem eine Höchstzahl an Versuchen festlegen, die Zahl der Spieler begrenzen oder das Schloss nach dem ersten Lösen schließen.

Welche Antwort wie geprüft wird

  • Geschriebene Antworten, Zahlencodes, Muster, Pfeile, Farben, Schalter und Logins werden als bcrypt-Hashes gespeichert und auf dem Server verglichen. Eine geschriebene Antwort ignoriert Groß- und Kleinschreibung und Akzente, sofern der Ersteller nichts anderes verlangt.
  • Eine GPS-Position, eine Zahl mit Toleranz und ein Wordle-Wort werden gegen Parameter geprüft, die auf dem Server bleiben. Die Seite erhält nur, was der Spieler zum Spielen braucht, etwa die Entfernung, die als nah genug gilt, oder die Zahl der Zeilen im Raster.
  • Ein Zugangspasswort, das vor Spielbeginn abgefragt wird, wird ebenfalls als bcrypt-Hash gespeichert.
  • Damit der Editor dem Ersteller seine eigene Antwort wieder anzeigen kann, wird eine zweite Kopie mit einem Schlüssel des Servers verschlüsselt (AES-256-GCM). Keine Spielerseite liest sie je.

Was die Seite enthält, und die eine Ausnahme

Die Spielerseite enthält, was der Spieler lesen soll: die Frage, den Tipp, die Titel der Schritte und die Nachrichten, die der Ersteller für eine falsche Antwort und für das Lösen geschrieben hat. Dort gehört das Geheimnis nicht hin.

Die einzige Ausnahme ist das Musikschloss, bei dem Spieler eine Melodie nachspielen. Seine Töne werden an den Browser gesendet, weil die Spieler sie hören müssen; bei diesem Schloss kann also jemand, der weiß, wo er suchen muss, die Antwort aus der Seite lesen. Ein Musikschloss, bei dem Spieler den Titel nennen, speichert den Titel wie jede geschriebene Antwort als bcrypt-Hash.

Die ehrlichen Grenzen

  • Eine weitergegebene Antwort bleibt weitergegeben. Der Server prüft die Antwort, nicht die Person: Ein Spieler, der den Code weitersagt, lässt andere das Schloss öffnen. Eine Begrenzung der Spieler, das Schließen nach dem ersten Lösen, ein Zugangspasswort oder Start- und Enddaten begrenzen, wie weit er sich verbreitet.
  • Spieler brauchen eine Verbindung. Die Antwort wird auf dem Server geprüft, ein Spieler ohne Netz kann das Schloss also nicht öffnen. Ein Gast-WLAN genügt.
  • Die nachzuspielende Melodie, wie oben beschrieben.

Was über Spieler gespeichert wird

  • Spieler legen nie ein Konto an.
  • Eine zufällige Kennung wird in einem Cookie gespeichert, damit die Versuche eines Spielers als eine Sitzung zählen.
  • Für jede Antwort: ob sie richtig war, die IP-Adresse und der User-Agent des Browsers. Für jede Sitzung: die Zahl der Versuche und Tipps, die benötigte Zeit, das Gerät, die verweisende Seite und die Sprache. Der Ersteller sieht diese Daten als Statistiken.
  • Eine E-Mail-Adresse oder ein Name nur, wenn der Ersteller bei der Enthüllung danach fragt. Sie gehen nur an diesen Ersteller, und Lock Challenge sendet nie Werbung dorthin.
  • Spielerseiten sind auf noindex gesetzt, ein Schloss und sein Titel erscheinen also nicht in Suchergebnissen.

Mehr dazu in der Datenschutzerklärung.

Fragen

Kann ein Spieler die Antwort im Quelltext der Seite finden?
Nein, außer bei einem Musikschloss, bei dem Spieler eine Melodie nachspielen; dessen Töne stehen in der Seite. Getippte und angetippte Antworten werden als bcrypt-Hashes gespeichert und auf dem Server verglichen, und GPS-, Zahlen- und Wordle-Antworten werden gegen Parameter geprüft, die die Seite nie erhält.
Steht der verborgene Inhalt schon vor dem Lösen in der Seite?
Nein. Der Server sendet die Enthüllung erst nach einer richtigen Antwort zurück. Verlangt der Ersteller eine E-Mail-Adresse oder einen Namen, wartet die Enthüllung außerdem, bis diese angegeben sind.
Kann jemand jeden Code durchprobieren, bis einer passt?
Jedes Schloss nimmt von einer IP-Adresse höchstens 30 Antworten pro Minute an und über alle Adressen hinweg 120 pro Minute. Der Ersteller kann außerdem eine Höchstzahl an Versuchen für das Schloss festlegen.
Braucht ein Spieler ein Konto?
Nein. Spieler öffnen einen Link oder scannen einen QR-Code. Sie brauchen allerdings eine Internetverbindung, weil die Antwort auf dem Server geprüft wird.