Or does the extension validate this and the correct value is hardcoded in the extension like stebalien suggested?
Or does the extension validate this and the correct value is hardcoded in the extension like stebalien suggested?
A malicious server could maintain separate key pairs for users it wanted to track, but you can't do it for every user because 1) it'd be clear from the WWW-Authenticate header changing, and 2) you'd have to validate tokens against every key, which would quickly get too slow to work.
> Plus, if you don't trust the service to not issue special key pairs to track you, you probably won't trust us to not do the same publishing the key material.
You could publish it on some sort of blockchain to make sure it can’t be changed and is public for everyone, right?
> A malicious server could maintain separate key pairs for users it wanted to track, but you can't do it for every user because 1) it'd be clear from the WWW-Authenticate header changing, and 2) you'd have to validate tokens against every key, which would quickly get too slow to work.
Makes sense, thanks for explaining!
Your understanding is correct, that's definitely something we could do. It is also something anyone else could do to keep us honest :)
fetch(new Request("https://kagi.com/search?q=test", { method: "GET", headers: new Headers({ "X-Kagi-PrivacyPass-Client": true })})).then((r) => console.log(r.headers.get("www-authenticate")))
A simple response in the body to something like <https://kagi.com/privacypass> would be easier to check.And you answered someone else:
> It is also something anyone else could do to keep us honest :)
While true I believe for such a feature making it as easy as possible for your users to check independently is just better.