Secondary Screening: How much is necessary? #280
Replies: 1 comment 1 reply
-
Here's a way to think about it: The info being stored is mostly copied from Hashcash. Notably, it stores the difficulty, time, challenge, and nonce. If anything in my solution storing the response is probably overkill, but I don't quite think we're at the level of shaving bytes yet. If that becomes a problem I can change this to store the hash values in base 64 instead of base 16. I'm probably about to have to add the algorithm field to signed tokens. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Currently Anubis randomly (roughly 1 out of every 10 requests) performs a "full validation" of the JWT.
On every request the JWT is validated and verified: the token is properly formatted, was signed by Anubis, and is not expired. For some of the requests additional checks are performed, namely that the
"challenge"
matches the user-agent, language headers, IP address, etc., and that the"nonce"
, and"response"
fields are a solution to the challenge. This additional check is to prevent a single client from solving the challenge and re-requesting the same page for different languages or sharing the challenge with different IPs.In my mind the
"nonce"
and"response"
fields of the JWT are not required for verification. As long as Anubis is the only server that signs the tokens, this check was already done at creation (signing) time. So it seems like the only required check is of the"challenge"
field, which is just a string comparison.Perhaps my understanding of the JWT mechanisms is not correct though, so any information on this would be great!
Beta Was this translation helpful? Give feedback.
All reactions