Como verificar a autenticidade de uma solicitação AJAX

Estou projetando um site no qual os usuários resolvem os quebra-cabeças o mais rápido possível. O JavaScript é usado para cronometrar cada quebra-cabeça, e o número de milissegundos é enviado para o servidor via AJAX quando o quebra-cabeça é concluído. Como posso garantir que o tempo recebido pelo servidor não foi falsificado pelo usuário?

Eu não acho que um token de autenticidade baseado em sessão (o tipo usado para formulários no Rails) é suficiente porque eu preciso autenticar ofonte de um valor, não apenas a legitimidade do pedido.

Existe uma maneira de assinar criptograficamente a solicitação? Não consigo pensar em nada que não possa ser duplicado por um hacker. Existe algum JavaScript, por sua natureza exposta do lado do cliente, sujeito a adulteração? Eu vou ter que usar algo que é compilado, como o Flash? (Yikes.) Ou há alguma maneira de esconder uma chave secreta? Ou algo mais que não pensei?

Atualização: Para esclarecer, não quero penalizar pessoas com conexões de rede lentas (e a velocidade da rede deve ser considerada inconsistente), então o tempo precisa ser 100% do lado do cliente (o cronômetro começa somente quando sabemos que o usuário pode ver o quebra - cabeça). Além disso, há dinheiro envolvido para que nenhuma quantidade de "confiar no usuário" seja aceitável.

questionAnswers(15)

yourAnswerToTheQuestion