Aller au contenu
Afficher dans l'application

Une meilleure façon de naviguer. En savoir plus.

Asterobot

Une application plein écran sur votre écran d'accueil avec notifications push, badges et plus encore.

Pour installer cette application sur iOS et iPadOS
  1. Appuyez sur Icône de partage dans Safari
  2. Faites défiler le menu et appuyez sur Ajouter à l'écran d'accueil.
  3. Appuyez sur Ajouter dans le coin supérieur droit.
Pour installer cette application sur Android
  1. Appuyez sur le menu à trois points (⋮) dans le coin supérieur droit du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application.
  3. Confirmez en appuyant sur Installer.

ServerChallengeEvent

(0 notes)
  • summary: The server's challenge in the proof-of-identity handshake. The one message in that chain whose contents you must read.
  • area: Game.Client.Verification
  • confidence: 0.92

The server's challenge in the proof-of-identity handshake. The one message in that chain whose contents you must read.

  • Kind event
  • Area Game.Client.Verification
  • Named by beta, gamemapping

Arrives because you sent ClientChallengeInitRequest, and must be answered with ClientChallengeProofRequest. THE HANDSHAKE DOES NOT COMPLETE UNTIL YOU DO.

WHEN IT ARRIVES

Shortly after your init request, and only then - the server does not send it on its own schedule. But it is delivered as an ordinary event: the client matches it BY TYPE, not by the envelope id it allocated for the init. There is only ever one of these exchanges in flight, so nothing needs correlating, and you should not sit waiting for a uid to come back.

It is the third of four steps. ClientIdRequest and ClientChallengeInitRequest publish the two values this challenge is checked against; if you have not sent both, there is nothing here you can usefully answer.

READ THE PAYLOAD - THIS IS THE ONE STEP WHERE IT MATTERS

PARSE IT AS AN ARBITRARY-PRECISION INTEGER. The value is a decimal string and the real client parses it as a big integer, multiplies it by its private exponent and reduces the result. It is not bounded by anything you can hold in 64 bits, and truncating or overflowing it produces a proof that is silently wrong rather than an error you can see.

ABSENT IS NOT EMPTY, AND ABSENT DOES NOT MEAN SKIP IT. The field has explicit presence and the client tests for it. When the value is missing the client does NOT stay silent and does not fail - it computes a challenge of its own by hashing its handshake values together with a device fingerprint, and answers with that. Treating a missing value as "nothing to do here" leaves the handshake open, which is exactly the state the exchange exists to detect. ClientChallengeProofRequest gives the full recipe for both branches.

WHERE THE ANSWER GOES

ON THE MAIN GAME CONNECTION, even when a second one is open. While a fight-server transfer is active the client holds two sockets (see IdentificationRequest) and routes outbound traffic between them by message type. All three verification requests are on the short list pinned to the FIRST connection - ordinary gameplay traffic is what goes to the fight server. Answering on the wrong socket is a mistake the real client cannot make.

THE COMPLETE ALGORITHM IS ON ONE PAGE. Constants, both exponents, both branches, what the server checks and the ways an implementation goes wrong are written out in full under ClientChallengeProofRequest. Read that before implementing any part of this exchange.

When you may send it

  • Requires authenticated observed

Related messages

Fields

#FieldTypeMeaningYou set it
1valuestringThe server's challenge, as a decimal string, combined with your handshake state to derive the proof.
Explicit presence: absent is not the same as zero.
Parse it as an arbitrary-precision integer. It is not bounded to 64 bits, and a truncated value yields a wrong proof rather than a visible error.
Absent means "no challenge given" - and that is an instruction, not a rest: the client derives its own challenge and answers anyway. See ClientChallengeProofRequest.
never; inbound only

Recovered with score 144, confidence 0.92, margin 144 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.

Commentaires des utilisateurs

Aucun avis à afficher.

Compte

Navigation

Recherche

Recherche

Configurer les notifications push du navigateur

Chrome (Android)
  1. Appuyez sur l'icône de cadenas à côté de la barre d'adresse.
  2. Tap Autorisations → Notifications.
  3. Ajustez vos préférences.
Chrome (Desktop)
  1. Cliquez sur l'icône représentant un cadenas dans la barre d'adresse..
  2. Select Paramètres du site.
  3. Find Notifications et ajustez vos préférences.